Every part of an app, already built.
107 Svelte components with Material 3's looks and none of its rulebook — for phone apps and storefronts as much as for consoles. Themeable down to the hue, and documented well enough that you, or your agent, never read the source.
bunx omaris init - components
- 107 components
- exports, all typed
- 187 exports, all typed
- whole apps, running
- 25 whole apps, running
- colour presets
- 10 colour presets
One knob re-skins everything.
Colours are OKLCH derived from a hue, a chroma and a tint. Drag it — the header, the screens below and the code samples all follow.
235
°Presets
It is not a dashboard library.
The same 107 components make a phone app, a shop, a console and an assistant. Every screen below is running — press things.
Today
Tuesday, 6 May
A bottom navigation bar, list rows, a floating action button — the phone shapes, with the touch targets and the ripples that go with them.
Open StrideOpinionated where it saves you time. Open where it doesn’t.
Material 3, expressive
Five fill styles crossed with seven colour roles, MD3 state layers, ripples, the real easing curves, and thirty-six outlines that morph into one another. Not a flat theme wearing Material’s name.
Every part is reachable
class covers the root and always wins. classes reaches every inner element by name, typed — so you never fork a component to move one thing.
Phone-shaped things too
Sheets you throw, pull-to-refresh, an A–Z scrubber, swipeable rows, a bottom navigation bar. The parts a library aimed at desktops never ships.
One command to a phone
omaris native puts the SvelteKit app you already have in the app stores, omaris apk builds one installable file, and omaris run reloads it on the handset as you type.
Right-to-left, not bolted on
Logical properties throughout — start and end rather than left and right — so an Arabic build is a dir attribute, not a second stylesheet.
Built for agents too
The API is generated from source into one page per component, and /llms.txt indexes them. A model reads the index, fetches the pages it needs, and stops guessing prop names.
25 whole apps, running, on their own URLs.
Not screenshots and not embedded demos — a till, a support inbox, a ride-hailing map, a status page, a sign-in. Every one built only from what this library exports, and every one re-themeable and re-languageable while it runs.
Every page shows it first, then says when not to use it.
Each page opens with live examples, then “Use it for” and “Not for” — with the alternative named and linked — then every prop, generated from the source. CI fails if the reference drifts.