Themes. Pick one to preview it across this page, then use it on the site, customize it in the Studio, or install it with the CLI.

Make your own
8 themes

Community themes are unavailable right now. Built-in themes still work.

Sivir

Sivir UI · Built-in

Compact warm workspace with a blue accent, flat chrome, and tight radii.

Customize in Studio

Rate-limit the public API

Add per-key rate limits to the public API. 100 requests a minute, and return a proper 429 when a client goes over.

Every request passes through authenticate, so the limiter sits right after it and keys on the API key. It uses a sliding window in Redis, so a client cannot burst across a minute boundary.

src/app.ts +3 −1
.use(authenticate)
.use(rateLimit({ limit: 100, window: "1m" }))
.route("/v1", routes);
.route("/v1", routes)
.onError(rateLimitErrors);

Each API key now gets 100 requests per minute. Over the limit, the API returns 429 and tells the client when to retry.

bun test api passes, including 4 new limiter tests.

Axes

Brand
#1c68ff
Neutral
Warm
Radius
Default
Density
Compact
Motion
Subtle
Sans
Geist
Mono
Roboto Mono

Install

Writes the theme to theme.css. Import it after ui.css.

bunx @sivir-ui/svelte add theme sivir
Open stylesheet