Component showcase

Every YunUI component, on one page.

The full gallery — every exported primitive, form control, overlay, data-display piece, layout chrome, pattern and AI component, each in a live Preview / Code frame. Jump to a category below or scroll the whole thing.

Live theming

Pick a preset or a single brand palette — the whole page re-themes instantly, no rebuild. Drives data-brand/accent/neutral via useYunUITheme().

Aa.text-brand-gradient · .bg-brand-sheen · .glow-brand

Foundations

The tokens, type scale, surfaces and motion that define the YunUI look.

Color tokens

CSS variables, theme-aware — they re-map under .dark and .true-black.

bg-base
bg-elevated
bg-card
border-subtle
border-default
accent
success
warning
error

Type scale

Heading XL

Heading LG

Heading MD

Body — the default paragraph rhythm and color.

Caption — secondary supporting text.

LABEL · UPPERCASE

font-mono · JetBrains Mono 0123456789

Surfaces

.card · .glass-card · .glass-panel · .stat-card

.card

Base surface

.glass-card

Frosted

.glass-panel

Elevated glass

.stat-card

128K

Radii & shadows

shadow-xs
shadow-sm
shadow-md
shadow-lg

Utility Classes

Apps built on YunUI use these classes directly — the design lives in CSS; components are thin wrappers.

Badges (.badge-* + variants)

successwarningerrorinfoFellowApprovedPendingVisionThinkingFunction CallingYAMLAPIActiveInactiveDeprecated

Buttons via raw .btn classes

Nav items (.nav-item — sidebar building block)

Dashboard Demo

Overview

A page composed from YunUI layout pieces — just like a real product page.

4.2%
Balance
0
12.0%
Requests
0
API keys
0
3.0%
Spend
0
1,284
Balance
952
Requests
18
API keys
3
Spend

Getting started

bash
1curl https://api.example.com/v1/models \
2 -H "Authorization: Bearer $KEY"

Layout & Chrome

Navbar, Sidebar and Footer — framed previews of the fixed app chrome.

Navbar

Floating top nav; switcher/toggle are slots, links are props.

Sidebar — with collapse

Click the toggle to collapse / re-open. nav-item active states included.

Footer

Sections + social are props; layout and styling are the design system.

Flex

Flexbox layout primitive — direction, gap, align/justify as props.

1
2
3

PageLayout

Full-height page shell — navbar slot · offset main · footer slot.

navbar slot
main content
footer slot

Buttons & Actions

Variants

Sizes & states

Icon button & shiny

Form Controls

Input & textarea

Password, number & keys

Press K to open search.

Checkbox & switch

Segmented select

Custom select & combobox

Radix select

Slider

Value: 40

Capability selector (AI)

Multi-select capability chips for AI models.

Selected: vision, thinking

Provider select — real provider icons (AI)

CustomSelect with the bundled provider-icon system; Combobox above also uses it.

openai
anthropic
deepseek
google
mistral
qwen
groq
cohere

RadioGroup

Single-choice group — keyboard-navigable, label-wrapped items.

Overlays

Dialog (Radix)

Modal & Sheet (custom)

Popover, tooltip, dropdown

Dropdown — checkbox & radio items

DropdownMenuCheckboxItem (toggles) and DropdownMenuRadioGroup / DropdownMenuRadioItem (single choice).

Confirm modals

ConfirmModal plus the DeleteConfirmModal / RegenerateConfirmModal presets — portal-rendered with scroll lock and escape-to-close.

Data Display

Cards & badges

Pro planActive

Everything in Basic, plus higher limits.

DefaultInfoWarningError

Table

The Table primitive carrying a dense, many-column admin model row (icons, id chips, badge groups, multi-line price, row actions). Scrolls horizontally when the columns outgrow the viewport.

名稱供應商開發者類型狀態上下文 / 解析度最大輸出 TOKEN價格(輸入/輸出)能力操作
anthropic
Claude Opus (Agent)
claude
Claude Code
anthropic
Anthropic
Chat
Approved200.00K128.00K
5.00K / 25.00K
ChatFunction CallingStreamingThinking
openai
GPT-5.1
openai
OpenAI
openai
OpenAI
Chat
Approved400.00K128.00K
1.25K / 10.00K
ChatVisionFunction CallingStreaming

Model manager card

A dense admin model row as a card — EVERY column present (name + ids, provider, developer, type, status, context / resolution, max output, price in/out, capabilities, actions). Starting point for discussing the model-management layout.

anthropic
Claude Opus (Agent)
供應商 / Provider
claude
Claude Code
開發者 / Developer
anthropic
Anthropic
類型 / Type
Chat
狀態 / Status
Approved
上下文 / 解析度
200.00K
最大輸出 TOKEN
128.00K
價格(輸入/輸出)
5.00K / 25.00K
能力 / Capabilities
ChatFunction CallingStreamingThinking
flux
FLUX.1 KontextYAMLSuspended
供應商 / Provider
fal
fal.ai
開發者 / Developer
flux
Black Forest
類型 / Type
Image generation
狀態 / Status
Pending
上下文 / 解析度
256–2048 × 256–2048
最大輸出 TOKEN
價格(輸入/輸出)
25.00 /req
能力 / Capabilities
Image EditNegative PromptSeed ControlLoRA Support

Avatar & progress

YX

Animated number

Springs from 0 on mount — re-enter the section to replay.

Requests
0
Uptime
0%
Latency
0ms

Tabs

Inbox content.

Collapsible

Bento grid

Fast
Sub-second interactions.
Scalable
From prototype to prod.
Polished
Designed down to the detail.

Marquee

OpenAIAnthropicDeepSeekMistralGoogle
OpenAIAnthropicDeepSeekMistralGoogle
OpenAIAnthropicDeepSeekMistralGoogle
OpenAIAnthropicDeepSeekMistralGoogle

Accordion

Collapsible sections — single or multiple open.

Feedback

Skeleton & spinner

Loading...
Loading...
Loading...

Empty state

No messages

When you get messages they'll show up here.

Page loader

Full-screen centered loader for route transitions — framed here in a fixed-height stage (its min-h-dvh is capped to the frame).

Loading...

Loading workspace

Fetching your models and keys…

Page states

PageLoadingState · PageErrorState · PageEmptyState — the in-content (not full-screen) variants.

Loading...
Loading…
Couldn't load models.
No models yet
Add a provider to get started.

Media states

MediaLoadingState · MediaErrorState · MediaEmptyState — used across the media generation pages.

Generating…
Error
Generation failed — try again.
No images yet
Your generated images will appear here.

Thinking block (AI)

Let me reason about this step by step… 1. Parse the request 2. Plan the answer

Toast (sonner)

Themed toast helpers — success / error / info / warning.

Alert

Heads up

Your trial ends in 3 days.

Saved

Your changes have been saved.

Tags, avatars & separator

visionstreamingfunction-calling
YH
AI
UI
+2

Status, inline code & steps

OnlineBusyAwayOffline

Install with pnpm add @yuhuanowo/yunui

  1. Create account

    Sign up with email or OAuth.

  2. Add an API key

    Generate a key in the dashboard.

  3. Make a request

    Call the gateway from your app.

Provider card — footer alignment in a grid

A real provider-card layout: card-col + card-footer pin the model count + toggle to the bottom, so cards with different badge rows still line up across the grid.

anthropic

Claude Code

Healthy50ms
Local ProviderBuilt-in adapter
cloudflare

Cloudflare Worker

Healthy1588ms
Key Configuredhttps://api.cloudflare.com/…Built-in adapter

Patterns

Media page header

Title + sync button + error/stats — used across the media generation pages.

Images

Generate and manage your images.

128images
42this month

Model card

AI model card — icon is a slot, all fields are props (no API/schema coupling).

claude
Claude Opus 4.8
Most capable model for complex reasoning and agentic work.
Anthropic
Anthropic
200Kpro$15/M
deepseek
DeepSeek R1Unofficial
Open reasoning model with strong math and code.
DeepSeek
DeepSeek
64K$0.55/M

Model select

A generic, searchable model picker — provider grouping + capability filters + a pinned section. Domain-agnostic: map your models to options.

Show pricing in rows

Full icon set

Every bundled brand icon (309 brands, lobe avatar tiles). Resolved by id from /icons — search to filter.

openai
openai
anthropic
anthropic
claude
claude
claudecode
claudecode
google
google
gemini
gemini
gemma
gemma
deepseek
deepseek
meta
meta
mistral
mistral
qwen
qwen
grok
grok
xai
xai
groq
groq
ollama
ollama
perplexity
perplexity
cohere
cohere
microsoft
microsoft
azure
azure
aws
aws
bedrock
bedrock
huggingface
huggingface
nvidia
nvidia
cloudflare
cloudflare
openrouter
openrouter
together
together
fireworks
fireworks
replicate
replicate
stability
stability
midjourney
midjourney
zhipu
zhipu
moonshot
moonshot
minimax
minimax
baidu
baidu
alibaba
alibaba
alibabacloud
alibabacloud
bytedance
bytedance
tencent
tencent
github
github
vercel
vercel
googlecloud
googlecloud
deepmind
deepmind
doubao
doubao
yi
yi
siliconcloud
siliconcloud
modelscope
modelscope
opencode
opencode
zai
zai
ace
ace
adobe
adobe
adobefirefly
adobefirefly
agentvoice
agentvoice
agui
agui
ai2
ai2
ai21
ai21
ai302
ai302
ai360
ai360
aihubmix
aihubmix
aimass
aimass
aionlabs
aionlabs
airjelly
airjelly
aistudio
aistudio
akashchat
akashchat
alephalpha
alephalpha
amp
amp
antgroup
antgroup
antigravity
antigravity
anyscale
anyscale
apertis
apertis
apple
apple
arcee
arcee
askverdict
askverdict
assemblyai
assemblyai
atlascloud
atlascloud
automatic
automatic
aya
aya
azureai
azureai
baai
baai
baichuan
baichuan
baiducloud
baiducloud
bailian
bailian
baseten
baseten
bfl
bfl
bilibili
bilibili
bilibiliindex
bilibiliindex
bing
bing
briaai
briaai
burncloud
burncloud
capcut
capcut
centml
centml
cerebras
cerebras
chatglm
chatglm
cherrystudio
cherrystudio
civitai
civitai
cline
cline
clipdrop
clipdrop
codebuddy
codebuddy
codeflicker
codeflicker
codegeex
codegeex
codex
codex
cogvideo
cogvideo
cogview
cogview
colab
colab
cometapi
cometapi
comfyui
comfyui
commanda
commanda
copilot
copilot
copilotkit
copilotkit
coqui
coqui
coze
coze
crewai
crewai
crusoe
crusoe
cursor
cursor
cybercut
cybercut
dalle
dalle
dbrx
dbrx
deepai
deepai
deepcogito
deepcogito
deepinfra
deepinfra
deepl
deepl
devin
devin
dify
dify
doc2x
doc2x
docsearch
docsearch
dolphin
dolphin
dreammachine
dreammachine
elevenlabs
elevenlabs
elevenx
elevenx
essentialai
essentialai
exa
exa
fal
fal
fastgpt
fastgpt
featherless
featherless
figma
figma
fishaudio
fishaudio
flora
flora
flowith
flowith
flux
flux
friendli
friendli
geminicli
geminicli
giteeai
giteeai
githubcopilot
githubcopilot
glama
glama
glif
glif
glmv
glmv
goose
goose
gradio
gradio
greptile
greptile
hailuo
hailuo
haiper
haiper
hedra
hedra
hermesagent
hermesagent
higress
higress
huawei
huawei
huaweicloud
huaweicloud
hunyuan
hunyuan
hyperbolic
hyperbolic
ibm
ibm
ideogram
ideogram
iflytekcloud
iflytekcloud
inception
inception
inference
inference
infermatic
infermatic
infinigence
infinigence
inflection
inflection
internlm
internlm
jimeng
jimeng
jina
jina
junie
junie
kilocode
kilocode
kimi
kimi
kiro
kiro
kling
kling
kluster
kluster
kolors
kolors
krea
krea
kwaikat
kwaikat
kwaipilot
kwaipilot
lambda
lambda
langchain
langchain
langfuse
langfuse
langgraph
langgraph
langsmith
langsmith
leptonai
leptonai
lg
lg
lightricks
lightricks
liquid
liquid
livekit
livekit
llamaindex
llamaindex
llava
llava
llmapi
llmapi
lmstudio
lmstudio
lobehub
lobehub
longcat
longcat
lovable
lovable
lovart
lovart
luma
luma
magic
magic
make
make
manus
manus
mastra
mastra
mcp
mcp
mcpso
mcpso
menlo
menlo
meshy
meshy
metaai
metaai
metagpt
metagpt
monica
monica
morph
morph
moxt
moxt
myshell
myshell
n8n
n8n
nanobanana
nanobanana
nebius
nebius
newapi
newapi
notebooklm
notebooklm
notion
notion
nousresearch
nousresearch
nova
nova
novelai
novelai
novita
novita
nplcloud
nplcloud
obsidian
obsidian
openchat
openchat
openclaw
openclaw
openhands
openhands
openhuman
openhuman
openwebui
openwebui
palm
palm
parasail
parasail
phidata
phidata
phind
phind
pika
pika
pixverse
pixverse
player2
player2
poe
poe
pollinations
pollinations
ppio
ppio
prunaai
prunaai
pydanticai
pydanticai
qingyan
qingyan
qiniu
qiniu
qoder
qoder
railway
railway
recraft
recraft
relace
relace
replit
replit
reve
reve
roocode
roocode
rsshub
rsshub
runway
runway
rwkv
rwkv
sambanova
sambanova
search1api
search1api
searchapi
searchapi
sensenova
sensenova
sillytavern
sillytavern
skywork
skywork
slock
slock
smithery
smithery
snowflake
snowflake
sophnet
sophnet
sora
sora
spark
spark
speedai
speedai
statecloud
statecloud
stepfun
stepfun
straico
straico
streamlake
streamlake
submodel
submodel
suno
suno
sync
sync
targon
targon
tavily
tavily
tencentcloud
tencentcloud
tiangong
tiangong
tii
tii
topazlabs
topazlabs
trae
trae
tripo
tripo
turix
turix
udio
udio
unstructured
unstructured
upstage
upstage
v0
v0
vectorizerai
vectorizerai
venice
venice
vertexai
vertexai
vidu
vidu
viggle
viggle
vllm
vllm
volcengine
volcengine
voyage
voyage
wenxin
wenxin
windsurf
windsurf
workersai
workersai
worldrouter
worldrouter
xiaomimimo
xiaomimimo
xinference
xinference
xpay
xpay
xuanyuan
xuanyuan
yandex
yandex
youmind
youmind
yuanbao
yuanbao
zapier
zapier
zeabur
zeabur
zencoder
zencoder
zenmux
zenmux
zeroone
zeroone

AI avatars & type icons

ProviderAvatar / ModelAvatar (rounded, image-backed), ProviderIconImg (short alias) and ModelTypeIcon (capability glyphs).

ProviderAvatar

openai
anthropic
google
deepseek
mistral
groq
cohere

ModelAvatar (developer-resolved, with iconUrl fallback)

claude
openai
deepseek
meta
qwen

ProviderIconImg (rounded alias)

openai
anthropic
google
mistral
perplexity

ModelTypeIcon

chatembeddingimage_generationttssttvideorerankmoderation

Fumadocs button variants

buttonVariants — a class-variance-authority recipe for fumadocs-themed buttons; applied to plain elements via className.

Code block

bash
1curl https://api.example.com/v1/chat/completions \
2 -H "Authorization: Bearer $KEY"

FAQ

A versioned React 19 + Tailwind v4 design system you sync across every project.
Bump the yunui version; the design follows.
Yes — light, zinc-dark and true-black.

Blog card

Engineering

Introducing YunUI

One design system, every project in sync.

Jun 21, 20264 min readyuhuan

Blog post header

Full article header — category, title, author, date and reading time.

Engineering

Building a shared design system

How the design system is versioned and synced across every project.

June 21, 20266 min read

Category filter & pagination

CategoryFilter + BlogPagination — both controlled; the host owns routing.

...
Page 3

Page 3 · category: Engineering

Code demo (tabbed)

CodeDemo — a tabbed CodeBlock preset with Python / Node.js / cURL quick-start snippets.

1import openai
2 
3client = openai.OpenAI(
4 base_url="https://api.example.com/v1",
5 api_key="your_api_key"
6)
7 
8response = client.chat.completions.create(
9 model="deepseek-r1",
10 messages=[{"role": "user", "content": "Hello!"}]
11)
12 
13print(response.choices[0].message.content)

Docs page actions

LLMCopyButton (copy page as Markdown for an LLM) and ViewOptions (raw Markdown / GitHub links) — the fumadocs-styled doc header actions.

Account locked card

Terminal auth screen (banned / suspended) — presentational; the host owns logout/redirect via onBack.

YunUIYunUI

Account suspended

Your account has been temporarily locked for review.

If you think this is a mistake, you can appeal the decision.

Banner

Tinted announcement / release / verification rows (info · warning · critical · success). Dismissible; icon, meta and actions are slots.

Scheduled maintenance
2h ago
v1.4.0 shipped
1d ago
Verify your email
Payment failed

Notification

Presentational notification center — a bell with an unread badge, the dropdown panel chrome, and rows with type icons, time and a hover dismiss. The host owns data.

Notifications

2 unread

Inline status

A compact async-job status: a (spinning) icon plus a label, or a percentage while running.

Starting62%DoneFailed

Session item

A row in an active-sessions / signed-in-devices list — device glyph, name with current/inactive badges, browser·OS, IP + last-seen, revoke.

MacBook ProCurrent
Chrome on macOS
203.0.113.7Active now
iPhone 15
Safari on iOS
198.51.100.223h ago
Windows PCInactive
Edge on Windows
192.0.2.442d ago

Metric bar

A labelled row with a thin proportion bar for 'top N' breakdowns — spend by provider, usage by category, storage by bucket.

OpenAI4,820 credits
Anthropic3,140 credits
Google1,090 credits
Mistral410 credits

Feature locked state

The centered 'feature unavailable' screen — icon medallion, title, description and an optional dashed restricted-note card.

Coming soon

Video generation isn't on your plan yet.

Access restricted

This feature is limited to higher tiers — contact your admin to enable it.

Setting row

One labelled row in a settings list — title, optional description, and a trailing control slot (Switch, Select, button). Stack several; a divider separates them.

Email notifications
Receive a summary of account activity in your inbox.
Push notifications
Get notified on your devices the moment something happens.
Weekly digest

Link row

A tappable row that links somewhere — leading icon, title + description, trailing chevron. For support links and settings navigation.

Connected account row

A row in a connected-accounts list — provider avatar with a badge overlay, name + sub-name, detail line, connected-time footer, and an unlink button.

GitHub· primary
@octocat
Connected 3 months ago
Google
Connected 1 year ago

Avatar uploader

A clickable avatar that opens a file picker — image or initials fallback, a camera overlay on hover, and a spinner while uploading.

Error boundary (catches a crashing child)

Child renders fine — click to crash it.

Background effects (decorative)

A subtle dotted radial backdrop — it sits behind your page content (intentionally faint).

Your content here

BackgroundEffects renders behind it