Creating themes

Buat tema Bosia Anda sendiri — kontrak token, tata letak file, dan integrasi CLI.

Kontrak token

Block mengonsumsi token ini berdasarkan nama semantik. Selama Anda mendefinisikannya, setiap block berganti gaya secara otomatis.

Token Purpose
--color-background Latar halaman
--color-foreground Teks default
--color-card / --color-card-foreground Permukaan kartu
--color-primary / --color-primary-foreground CTA primary
--color-muted / --color-muted-foreground Teks sekunder, pembatas
--color-accent / --color-accent-foreground Sorotan aksen
--color-border / --color-input / --color-ring Border, input, ring fokus
--font-display Heading (judul, eyebrow)
--font-body Paragraf
--radius Radius dasar

Gunakan custom property HSL (hsl(var(--card))) agar modifier opasitas Tailwind seperti bg-card/80 tetap berfungsi.

Tata letak file

registry/themes/<name>/
├── tokens.css     # @theme { … } + :root + .dark variables
└── meta.json      # name, description, files[], fonts{}, npmDeps{}

meta.json

{
	"name": "my-theme",
	"description": "Short description shown in docs.",
	"files": ["tokens.css"],
	"fonts": {
		"Family Name": "https://fonts.googleapis.com/css2?family=Family+Name&display=swap"
	},
	"npmDeps": {}
}

Field fonts otomatis menyuntikkan baris @import url(...) yang idempoten ke src/app.css saat tema diinstal.

Install lokal saat membuat

Dari direktori aplikasi:

bun x bosia@latest add theme my-theme --local

--local me-resolve registry dari workspace (registry/themes/my-theme/) alih-alih mengambil dari GitHub.

Publish

Tambahkan "my-theme" ke registry/index.json di bawah themes, push ke main.