Svelte 5 · v0.2.2

Components that get out of your way.

A focused Svelte 5 component library with accessible primitives, sensible defaults, and tokens you can bend to your brand.

No runtime dependencies beyond Svelte. MIT licensed.

Button.svelte
Open docs Includes an external-link icon

The set

Six pieces. One visual language.

Enough to build a real interface, small enough to understand at a glance. Every component shares the same radius, spacing, and accent tokens.

Under the hood

Designed for the edges.

The details that usually get skipped are the ones that make a component library feel finished.

Svelte 5 first

Runes, snippets, and bindable props are used where they make the component simpler.

Themeable by default

Every surface reads from CSS variables, so your brand can replace the defaults without fighting selectors.

Accessible interactions

Dialogs trap focus and inert the background. Toggles keep native input semantics. Icons stay out of the accessibility tree.

Small on purpose

A tight set of primitives instead of a framework. Import only what you render.

Install

Two lines to your first component.

Add the package, import the tokens once, and start composing.

bun
add velne-lib
import { Button } from 'velne-lib';
import 'velne-lib/tokens.css';

<Button variant="solid">Save changes</Button>