From 021beaa9625e7c2d4065be127de81d657d2eb4c5 Mon Sep 17 00:00:00 2001 From: flemming-it Date: Tue, 2 Jun 2026 01:35:53 +0200 Subject: [PATCH] chore: initial studio-theme-space 0.1.0 Signed-off-by: flemming-it --- .gitignore | 2 + Cargo.toml | 32 ++++++++++++++++ MODULE.de.md | 8 ++++ MODULE.md | 18 +++++++++ README.md | 22 +++++++++++ module.wasm | Bin 0 -> 53604 bytes module.yaml | 17 +++++++++ rust-toolchain.toml | 4 ++ src/lib.rs | 91 ++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 194 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 MODULE.de.md create mode 100644 MODULE.md create mode 100644 README.md create mode 100644 module.wasm create mode 100644 module.yaml create mode 100644 rust-toolchain.toml create mode 100644 src/lib.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2c96eb1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +target/ +Cargo.lock diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..2075e0f --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,32 @@ +# Standalone Cargo.toml — targets wasm32-wasip2. +# +# Build: +# cargo build --release --target wasm32-wasip2 +# +# Output: target/wasm32-wasip2/release/studio_theme_space.wasm + +[package] +name = "studio_theme_space" +version = "0.1.0" +edition = "2021" +authors = ["Dr. Stefan Flemming "] +license = "Apache-2.0" +publish = false +description = "F∆I Studio plugin — Deep-space indigo / violet / cyan Studio theme." +repository = "https://git.flemming.ai/fai-plugins/studio-theme-space" +rust-version = "1.85" + +[lib] +crate-type = ["cdylib"] + +[dependencies] +fai-plugin-sdk = { path = "../../fai_plugin_sdk_rust" } + +[package.metadata.component] +package = "fai:studio-plugin" + +[profile.release] +opt-level = "s" +lto = true +codegen-units = 1 +strip = true diff --git a/MODULE.de.md b/MODULE.de.md new file mode 100644 index 0000000..5a1128b --- /dev/null +++ b/MODULE.de.md @@ -0,0 +1,8 @@ +# space + +Tiefraum-Indigo / Violett / Cyan Studio-Look. + +Eines der mit F∆I Studio gelieferten Theme-Plugins. Nach +Installation erscheint es unter **Einstellungen → Themes** +neben den eingebauten Hell- und Dunkel-Themes. Auswahl +schaltet die gesamte Studio-Oberfläche um — ohne Neustart. diff --git a/MODULE.md b/MODULE.md new file mode 100644 index 0000000..9941107 --- /dev/null +++ b/MODULE.md @@ -0,0 +1,18 @@ +# space + +Deep-space indigo / violet / cyan Studio theme. + +This is one of F∆I Studio's bundled theme plugins. When +installed, it appears in **Settings → Themes** alongside the +built-in light and dark themes. Select it and the entire +Studio UI re-themes immediately — no restart required. + +## When to pick this theme + +- Late-night sessions where dark mode helps focus +- Audit work where you want long inspection sessions + without eye strain +- Operators who associate "deep work" with darker palettes + +Light mode is a softer lavender base; dark mode drops the +surface to near-black navy so the canvas reads as the focus. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0044d3b --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# studio-theme-space + +Deep-space indigo / violet / cyan Studio theme. + +Ships a Material 3 ColorScheme pair (light + dark) through +the WIT `theme` export. Studio loads it as a +`studio.theme.space` capability and switches the app's +ColorScheme when the operator picks it from the themes +picker. + +## Build + +```bash +cargo build --release --target wasm32-wasip2 +``` + +Output: `target/wasm32-wasip2/release/studio_theme_space.wasm`. + +## Palette + +See `src/lib.rs` for the 14 ARGB tokens per brightness, in +Material 3 order (primary → on_primary → … → outline_variant). diff --git a/module.wasm b/module.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e0118cb204d51be1c02a0e9ede19b371351a09fd GIT binary patch literal 53604 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 Result { + let tokens = match brightness.as_str() { + "light" => SPACE_LIGHT.to_vec(), + "dark" => SPACE_DARK.to_vec(), + other => { + return Err(PluginError::Declined(format!( + "space has no scheme for brightness '{other}' \ + (supported: light, dark)" + ))); + } + }; + Ok(ColorScheme { brightness, tokens }) + } +} + +impl bindings::exports::fai::studio_plugin::translate::Guest for SpacePlugin { + fn translate( + _text: String, + _from_locale: String, + _to_locale: String, + ) -> Result { + Err(PluginError::Declined( + "space is a theme plugin and does not translate".to_string(), + )) + } +} + +impl bindings::exports::fai::studio_plugin::output_view::Guest for SpacePlugin { + fn render( + _mime_type: String, + _data: Vec, + ) -> Result { + Err(PluginError::Declined( + "space is a theme plugin and does not render outputs".to_string(), + )) + } +} + +export_plugin!(SpacePlugin);