Product Decision
Sealion owns a small component styling system. It is Tailwind-inspired, but not Tailwind-compatible by default. Tailwind remains optional for apps that choose it.
Authoring Model
sl_component("button")
.style("inline-flex items-center gap-2 rounded-md px-4 py-2 text-sm font-medium bg-primary text-on-primary hover:bg-primary-strong")
.render(ctx);
Compilation Model
component source -> utility parser -> token resolver -> generated CSS artifact
The generated CSS is a build artifact. Component source and theme tokens are the source of truth.
Regression Requirements
- Valid utilities compile and unknown utilities fail CI.
- Generated CSS is deterministic.
- Missing tokens produce actionable errors.
- Components compile without Tailwind, Node, npm, or PostCSS.
- Plain CSS remains an escape hatch, not the primary authoring path.