feat: studio-theme-solarized v0.1.0 — skeleton
First Studio plugin in the new `studio.*` capability namespace.
SKELETON — does not yet compile.
Why ship the skeleton now:
* Pins Ethan Schoonover's Solarized palette as two const
Material 3 ColorScheme arrays so the in-tree reference
doesn't bike-shed at SDK-integration time.
* Gives the future fai-studio-plugin-sdk author a concrete
consumer to validate the generated `#[plugin(theme)]`
macro output against.
* Validates that the WIT in fai/platform parses by being a
real crate that references it.
What it does NOT yet do:
* Compile. The `fai-studio-plugin-sdk` dependency it points
at doesn't exist. Tracked in
`fai/platform/docs/advanced/studio-plugin-sdk.md`.
* Plug into Studio. The plugin-host module that would
discover and invoke this component lives in the same
deferred-Phase-1 work.
What it ships:
* module.yaml declaring `provides: studio.theme.solarized`
and `studio_extension.hooks: [theme]`.
* Cargo.toml with the future SDK dependency commented out,
crate-type=cdylib, component metadata.
* src/lib.rs with both Solarized colour palettes
(SOLARIZED_LIGHT and SOLARIZED_DARK), 14 ARGB tokens
each in Material 3 order, plus the future `#[plugin]`
function body commented out and two sanity tests on the
palette constants.
* README.md explaining the status and the steps to finish
the plugin once the SDK ships.
Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
commit
a1f8412205
5 changed files with 228 additions and 0 deletions
42
README.md
Normal file
42
README.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# studio-theme-solarized
|
||||
|
||||
First in-tree Studio plugin, by way of being the smallest one
|
||||
the Studio plugin design supports: a theme.
|
||||
|
||||
## Status
|
||||
|
||||
**Skeleton.** The crate compiles to the Cargo manifest level but
|
||||
not to a `.wasm` artefact, because the dependency it points at
|
||||
(`fai-studio-plugin-sdk`) does not exist yet.
|
||||
|
||||
Why ship the skeleton now: pins the Solarized colour palette so
|
||||
the in-tree reference doesn't bike-shed at integration time, and
|
||||
gives the future SDK author a concrete consumer to test the
|
||||
generated `#[plugin(theme)]` macro output against.
|
||||
|
||||
Tracked in:
|
||||
- `docs/advanced/studio-plugin-sdk.md` (SDK design)
|
||||
- `docs/advanced/studio-plugins.md` (plugin subsystem overview)
|
||||
- `docs/advanced/system-gaps.md#s-21`
|
||||
|
||||
## 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).
|
||||
|
||||
The Light and Dark schemes are explicit constants in `src/lib.rs`
|
||||
so the file's history is a self-contained record of the palette
|
||||
choice. Bike-shed there if at all.
|
||||
|
||||
## How to finish this plugin
|
||||
|
||||
When the SDK lands:
|
||||
|
||||
1. Uncomment the `fai-studio-plugin-sdk` dependency in
|
||||
`Cargo.toml`.
|
||||
2. Uncomment the `#[plugin(theme)]` block in `src/lib.rs`.
|
||||
3. `cargo build --release --target wasm32-wasip2`.
|
||||
4. `fai pack . -o studio-theme-solarized-0.1.0.fai`.
|
||||
5. Add to seed.yaml (or to a `studio-plugins/` channel — open
|
||||
decision; see docs/advanced/studio-plugins.md).
|
||||
Loading…
Add table
Add a link
Reference in a new issue