Svelte 5 · Tailwind 4 · MIT

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
Live on this page

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

primary
on primary
secondary
tertiary
on tertiary
success
warning
surface

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.

Stride · Phone app

Today

Tuesday, 6 May

Omer Chetin
Morning run 5.2 km · 27 min Done
Stretch 10 min · mobility
Push notifications For every session

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 Stride

Opinionated 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.