Three SDK families convention from fai/platform/docs/architecture/sdks.md: base name carries family, suffix carries language. This plugin now depends on fai-plugin-sdk (was fai-studio-plugin-sdk) and moves to the fai-plugins/ org on Forgejo. Signed-off-by: flemming-it <sf@flemming.it>
51 lines
1.7 KiB
Markdown
51 lines
1.7 KiB
Markdown
# studio-theme-solarized
|
|
|
|
First in-tree Studio plugin. Ships Ethan Schoonover's
|
|
Solarized palette as a Material 3 ColorScheme pair through the
|
|
WIT `theme` export.
|
|
|
|
## Status
|
|
|
|
**v0.1 builds.** The `target/wasm32-wasip2/release/studio_theme_solarized.wasm`
|
|
artefact (~22 KiB stripped) is a valid F∆I Studio plugin
|
|
component. What remains for full round-trip:
|
|
|
|
- The Hub side needs an `InvokePlugin` gRPC RPC + a
|
|
Component-Model loader path for `studio-plugin`-world
|
|
components. Tracked as task #80.
|
|
- Studio side needs `plugin_host.dart` + a theme-picker UI
|
|
that lists installed `studio.theme.*` capabilities.
|
|
|
|
Until those land, this plugin can be inspected with
|
|
`wasm-tools component wit` and packed via `fai pack` —
|
|
`/tmp/studio-theme-solarized-0.1.0.fai` is sha256
|
|
`e3d5aae44bb97f14f8f84e293ef8742700956b69c7d6fe46bb8b3c97fc1b23a0`.
|
|
|
|
## Palette
|
|
|
|
Ethan Schoonover's [Solarized](https://ethanschoonover.com/solarized/).
|
|
14 Material 3 tokens per brightness, in the order Studio
|
|
expects (primary → on-primary → secondary → … →
|
|
outline-variant). Both Light and Dark are explicit consts in
|
|
`src/lib.rs`.
|
|
|
|
## Why the source has three Guest impls
|
|
|
|
v0.1 of the SDK declares all three plugin hooks (`theme`,
|
|
`translate`, `output-view`) in a single WIT world. A plugin
|
|
that only cares about one hook still has to declare all three
|
|
— the other two return `PluginError::Declined`, and Studio
|
|
falls back to its built-in renderer / the `[EN]` badge.
|
|
|
|
v0.2 will split the WIT into one world per hook so a theme
|
|
plugin only writes the theme impl. See
|
|
`docs/advanced/plugin-sdk.md` in `fai/platform` for
|
|
the design notes.
|
|
|
|
## Build
|
|
|
|
```bash
|
|
cargo build --release --target wasm32-wasip2
|
|
cp target/wasm32-wasip2/release/studio_theme_solarized.wasm module.wasm
|
|
fai pack .
|
|
```
|