omena-css is a CSS-family semantic engine with CLI, LSP, SDK, build, and editor surfaces.
Browse the documentation for guided setup, generated reference, release notes, and an in-browser WASM playground.
VS Code:
Install Omena CSS Modules from the Marketplace.
CLI:
cargo install omena-cli --lockedNode and browser bindings:
npm install @omena/napi
npm install @omena/wasmCreate path/to/file.module.css with no local @keyframes pulse declaration:
.button {
animation: pulse 1s ease;
}Run the zero-config single-file lint path:
omena lint path/to/file.module.cssThe report includes this finding:
2:14 missing-keyframes @keyframes 'pulse' not found in this file.
The documentation gate executes this fixture with the Rust CLI and compares the captured finding, so the example changes when product behavior changes.
- CSS, SCSS, Sass, Less, CSS Modules, and source-language fact production.
- Shared diagnostics, navigation, references, rename, explain, and code actions.
- Cascade-, value-, provenance-, and target-aware transform decisions.
- Lint, format, minify, bundle, module, Sass, intelligence, and migration commands.
- NAPI, WASM, CLI, and LSP workflows over snapshot-bound contracts.
- Vite, PostCSS, ESLint, Stylelint, and VS Code integration surfaces.
For CSS Modules, the emitted token is not a contract; classMap, namedExports,
and the generated .d.ts are. Hand-writing an emitted token into markup, tests,
or CSS is unsupported.
| Area | Guide |
|---|---|
| Start here | Getting started |
| CLI | Command guide |
| SDK | NAPI, WASM, CLI, and LSP workflows |
| Playground | Run the Rust engine in your browser |
| LSP | Rust API docs, Zed, Neovim |
| Bundler | Rust bundler, Vite host |
| Lint plugins | ESLint, Stylelint |
| Sass and SIF | Compatibility and provenance |
| Codemods | Using omena migrate |
| VS Code | Extension behavior and settings |
| Positioning | Scope, comparisons, and non-goals |
| Architecture | Current codemap |
| Performance | Reproduction and evidence |
| Releases | Changelog |
| Contributing | Contributor guide |
| Reference | Generated CLI, config, persona, and LSP tables |
The packaged VS Code extension starts the Rust omena-lsp-server; the extension
host handles process supervision, UI, configuration, and file events. NAPI,
WASM, CLI, and LSP expose the same snapshot-bound query and typed-outcome
contracts. TypeScript adapters and shadow checks protect compatibility without
becoming a second CSS semantic authority.
The architecture, product-path matrix, generated IDL, and public reference surfaces are checked in CI. Unknown, unresolved, and unsupported cases remain typed outcomes rather than guessed successes.
pnpm install
pnpm check
pnpm test
pnpm buildContributor recipes and the complete generated command inventory live in CONTRIBUTING.md and docs/reference/.