hope-uiearly-preview
Now in early preview

Beautiful components, built on hope.

Elegant, themeable, accessible components for SolidJS. Powered by semantic design tokens and Tailwind v4 — so every component is themeable, accessible, and SSR-ready out of the box.

Preview
Fabien MARIE-LOUISE
@verstaple
Active

hope-ui features: Semantic tokens, Light & dark, WAI-ARIA patterns, SSR-ready, Tree-shakeable, TypeScript-first, Tailwind v4, Themeable presets, SolidJS 2.0.

Everything you need, nothing you don't

A carefully composed system — from the design tokens up to the polished components.

Themeable to the core

Every color, surface, and interaction state resolves through one semantic token vocabulary. Flip to dark mode or swap a preset, and your entire UI follows — no per-component overrides.

primary
success
info
warning
danger
neutral

Accessible by default

WAI-ARIA patterns, focus management, and full keyboard interaction are built into every primitive — verified with axe on real browsers.

Built for SolidJS 2.0

Fine-grained reactivity with clean server rendering and hydration, characterized against the 2.0 beta so upgrades never surprise you.

Tailwind v4 + variants

Styling flows through tailwind-variants recipes into clean, unprefixed utilities — no runtime CSS-in-JS, no style tags to hydrate.

Real components, right here

Polished, out of the box

Every one of these is a live hope-ui component — hover it, tab to it, toggle the theme. What you see is exactly what ships.

Theming

Speak in tokens, not hex codes

You never hard-code a color. Components reference finished semantic tokens, and a preset maps them to a palette — so restyling or theming is a contract, not a rewrite.

  • A single set of role tokens — primary, success, info, warning, danger, neutral.
  • Elevation surfaces and a foreground ramp that stay legible on every background.
  • Each token carries its own dark value, so one class drives both modes.
App.tsx
// one import per component subpath
import { Button } from "@hope-ui/components/button";

<Button variant="soft" colorScheme="primary">
  Save changes
</Button>
sunken
surface
raised

Start building with hope

Install the components, drop in a preset, and ship an interface you're proud of — themeable and accessible from the very first line.

Get started