zeekayandHanzo Dev 3bc5353314 ci: canonical pair — hanzo.yml + forge caller
github.com has no runner for hanzo-build-linux-amd64, so a caller under
.github/workflows is a gate that can never be scheduled. This is the ~7-line
caller on the plane that can (git.hanzo.ai git-runner fleet), pinned @v1.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-06 02:34:51 -07:00

@hanzo/svelte

Hanzo UI for Svelte 5.

These components used to live inside @hanzo/ui as @hanzo/ui/svelte. They are here now because a component library should be one stack: @hanzo/ui is React on @hanzo/gui, and shipping a second renderer inside it meant every consumer resolved svelte whether or not they used it.

Nothing about the components changed. Same shapes, same cva variants, same tokens.

Install

npm i @hanzo/svelte svelte

Two dependencies, on purpose: svelte (peer, yours) and class-variance-authority (the variant function). No design-system runtime, no icon pack, no CSS-in-JS.

Use

<script>
  import { Button, Card, CardHeader, CardContent } from '@hanzo/svelte'
</script>

<Card>
  <CardHeader>Ship it</CardHeader>
  <CardContent><Button variant="default">Go</Button></CardContent>
</Card>

Import one component if you want one component:

import Button from '@hanzo/svelte/Button.svelte'

Composition

Every component takes class and spreads the rest onto its root element, so a variant is a function of props and nothing is hidden behind a theme provider. Compose by wrapping, not by configuring.

S
Description
@hanzo/svelte — the Svelte 5 backend for Hanzo UI. Extracted from @hanzo/ui so the core library stays single-stack; same components, same tokens.
Readme
69 KiB
Languages
Svelte 73.7%
TypeScript 26.3%