Component Showcase 135 templates · 251 macros · 9,700+ lines CSS

Buttons

Standard button variants, sizes, and states.


Variants
Sizes
With Icon
Disabled & Loading

Icon Buttons

Square icon-only buttons for toolbars and dense UIs.


Button Groups & Segmented Control


Button Group (default)
Button Group — End aligned
Button Group — Space Between
Actions Bar (semantic wrapper)

Form content above the action bar...

Actions — Stacked (mobile-friendly)
Segmented Control

Split Button


Effect Buttons

Shimmer, ripple, and pulsing effects for CTAs.


Shimmer
Ripple (click me)
Pulsing

Cards

Standard cards with header, body, footer, and icon support.


Basic Card

Standard card with header and body.

With Icon

Active

Icon + badge in header, vertically centered.

Settings

Card with header actions and icon.

Card widget root (stable id)

Surface chrome for dashboard tiles: set id on the outer <article> (or <a> for link KPIs) so HTMX can swap into it (hx-target="#…"). In Kida, use card(…, attrs_map={"id": "my-widget"}) — same for config_card and metric_card.


id="static-showcase-widget-demo"

Plain HTML preview of the element macros render.

Card Variants


Collapsible Card

Click to collapse

This card body can be collapsed/expanded.

Gradient Cards

Gradient border and gradient header variants.


Gradient Border

Animated gradient border via border_variant="gradient".

Gradient Header

Gradient header background via header_variant="gradient".

Both Combined

Gradient border + gradient header together.

Effect Cards

Glow, spotlight, and border beam effects.


Glow Card

Mouse-following radial glow.

Accent Glow

Accent-colored variant.

Spotlight

Auto-rotating spotlight. Pure CSS.

Border Beam
Default

Rotating conic gradient border.

Success

Green beam variant.

Warning

Amber beam variant.

Metric Cards

KPI cards with icon badges, trend arrows, and footer links.


👥
72,540Active Users
+12.5%
💰
$48.2MRevenue
+8.1% View reports →
23Open Issues
-3.2%

Badges & Status


Badges
Primary Success Warning Error Muted Info
Status Indicators
Online Healthy Live
Live Badge
LIVE

Progress & Charts


Progress Bars
Gold · 75%
Success · 45%
Radiant · 90%
Watched (sm)

Number Tickers & Counters

CSS @property animated counters — count from 0 on load.


Number Tickers
$ %
Animated Counters
Active Users
$M
Revenue
%
Uptime

Tables


Default table

NameStatusRoleLast Active
Alice ChenActiveAdmin2 min ago
Bob SmithAwayEditor1 hour ago
Carol DavisOfflineViewer3 days ago

Per-column alignment + column widths

Service Status Requests Latency (ms)
api-gateway Healthy 12,847 23
auth-service Healthy 8,203 41
worker-pool Degraded 3,912 187

Compact + striped + row hover

Key Value TTL
session:abc123{"user":"alice"}3600s
cache:homepage{"html":"..."}300s
rate:10.0.0.1{"count":42}60s
lock:deploy{"owner":"ci"}120s

Empty state

NameStatusActions
◇ No records found

Timeline

Enhanced with icons, avatars, semantic colors, time column, and hoverable rows.


2:30 PM
Deployed to productionToday
Version 2.4.1 released
1:15 PM
Build warningToday
3 deprecation warnings
11:00 AM
Tests passedToday
All 397 tests green
Pipeline failedYesterday
Lint error in forms.html
Branch createdMonday

Description List


Horizontal (default term width)

Name
chirp-ui
Version
0.1.6
License
MIT

Custom term width (12rem) + right-aligned details

Total Requests
1,284,739
Avg Latency
23ms
Error Rate
0.02%
Uptime
99.97%

Narrow term width (6rem) + compact

Host
prod-us-east-1
Port
8443
TLS
1.3
Region
us-east-1

Center-aligned details

Status
Online
Environment
Production
Last Deploy
2 hours ago

Hoverable rows

Database
PostgreSQL 16
Cache
Redis 7.2
Queue
Celery + RabbitMQ
Search
Elasticsearch 8.x

Divided rows

Created
March 12, 2026
Modified
March 18, 2026
Owner
alice@example.com
Visibility
Public

With icons

Endpoint
https://api.example.com
Protocol
gRPC over TLS 1.3
Region
us-east-1
Tier
Production

Relaxed spacing + divided + hoverable

Plan
Enterprise
Billing
Annual ($2,400/yr)
Seats
25 / 50 used

Pagination


Alerts


Info: A new version is available.
Success: Changes saved.
Warning: Rate limit approaching.
Error: Database connection failed.

Toast


File uploaded successfully
Upload failed

Skeleton


Spinner


Tooltip

Pure CSS tooltips with 4 positions. Dark-mode aware.


Tooltip above Tooltip below Tooltip left Tooltip right

Notification Dot


Form Fields


Toggles

Size, color variants, and label-inside-track.


Sizes
Colors
Label Inside Track

Checkboxes & Radio


Tabs


Floating Dock

macOS-style dock with magnification on hover.


Stepper


Surfaces


Default
Base surface.
Muted
Background grouping.
Elevated
Attention surface.
Accent
Primary action.

Gradient Surfaces

Gradient, mesh, and glass surface variants.


Gradient Subtle
Soft gradient background.
Gradient Accent
Accent-colored gradient.
Gradient Border
Gradient border, solid fill.
Gradient Mesh
Multi-point mesh gradient.
Glass variants (over colored background)
Glass
Subtle blur.
Frosted
Stronger blur.
Smoke
Dark tint.

Grid / Frame / Stack / Cluster


Grid (flow — auto-fit)
1
2
3
Frame hero (explicit two columns)
Media
Copy
Stack
A
B
C
Cluster
Tag 1 Tag 2 Tag 3 Tag 4

Bento Grid


Wide (span 2)
Normal
Normal
Wide (span 2)

Filter chips

Faceted pill row (not the same as the filter bar form toolbar). Pairs with filter_group + filter_chip in Kida.


Label overline

Small caps section label inside cards and dense panels.


Inventory

Use label_overline(..., section=true, tag="h3") for accessible headings.

Segmented control

Mutually exclusive mode switcher (segmented_control radiogroup).


Fragment island

HTMX-safe region that opts out of inherited hx-select / swap rules (safe_region / fragment_island). See docs/DND-FRAGMENT-ISLAND.md.


Inner mutations do not inherit boosted navigation swap settings from the app shell.

Split Panel

Resizable split panel with draggable handle.


Left

Sidebar or nav.

Right

Main content area.

Full-height main

App shell pages that should own the viewport (chat, dashboards) use chirpui-app-shell__main--fill on <main>, a chirpui-page-fill root inside #page-content, and chat_layout(..., fill=true) when using the chat layout. Scroll stays on inner regions (e.g. chirpui-chat-layout__messages-body), not on #main. See docs/LAYOUT-VERTICAL.md in the chirp-ui repo.


Live structure (fixed height simulates the viewport)

Thread region scrolls independently; the composer stays pinned below.

This mirrors the flex chain: main--fill#page-contentchirpui-page-fillchirpui-chat-layout--fill.

For SSE or HTMX roots inside the messages column, add chirpui-chat-layout__messages-body to the streaming wrapper.

Line four.

Line five.

Line six.

Line seven.

Line eight.

Composer strip (does not scroll with the thread)
Kida (excerpt)
{% block main_shell_class %}chirpui-app-shell__main--fill{% end %}

{% block content %}
<div class="chirpui-page-fill">
  {% from "chirpui/chat_layout.html" import chat_layout %}
  {% call chat_layout(fill=true, show_activity=false) %}
  {% slot messages %}
    <div class="chirpui-chat-layout__messages-body">…</div>
  {% end %}
  {% slot input %}…{% end %}
  {% end %}
</div>
{% end %}

Divider


or

Accordion


What is chirp-ui?

A comprehensive CSS-first component library for server-rendered applications using Kida templates, Alpine.js, and htmx.

Do I need a build step?

No. chirp-ui uses no build tools — just CSS, HTML templates, and optional Alpine.js.

Does it support dark mode?

Yes. All components use semantic CSS custom properties that adapt via prefers-color-scheme and manual data-theme override.

Hero


Build beautiful interfaces

135 templates. Zero build step. Dark mode included.

Hero Backgrounds

All five hero background variants.


Gradient

background="gradient"

Mesh

background="mesh" — multi-point radial gradient

Animated Gradient

background="animated-gradient" — respects prefers-reduced-motion

Callout


💡
Tip: All chirp-ui components respect prefers-reduced-motion automatically.

Avatars


AC BS CD

Code


Inline: pip install chirp-ui

from chirp_ui import get_loader, register_filters

app = App(...)
register_filters(app)

Empty State


📭

No results found

Try adjusting your search or filters.

Post Card


JD
Jane Doe @jane · 2h

Just shipped the new chirp-ui component library! 135 templates, zero build step, and it looks great in dark mode. 🚀

Message Bubbles


Hey! How's the new UI coming along?
Alice · 2:30 PM
Static showcase updated — see the component app for interactive demos. 🎉
You · 2:31 PM

Reactions & Mentions


👍12 🎉5 ❤️8 @alice @bob

Live Badge & Typing


LIVE

Typography Effects


Gradient Text
Premium Feature
Animated Gradient
Shifting Colors
Text Reveal (refresh to replay)

Welcome to the future

Text Reveal — Gradient

Bold gradient statement

Typewriter

Step-based text reveal with blinking cursor. Pure CSS.


Default
Hello, welcome to chirp-ui!
Fast Speed
Rapid fire typing...
Heading Tag, No Cursor

The future is here.

Glitch Text

RGB-split distortion with pseudo-element layers.


Default
SYSTEM ERROR
Subtle
SOFT GLITCH
Intense
HACK THE PLANET

Neon Text

Layered text-shadow glow with color and animation variants.


OPEN LIVE ARCADE BAR COCKTAILS HOT

Aurora Background

Drifting gradient blobs behind content. Great for hero sections.


Default Aurora

Gentle drifting gradient blobs

Intense Variant

Stronger, less blurred

Scanline / CRT Overlay

Retro repeating-gradient line overlay. Pairs well with neon and glitch.


> SYSTEM READY
> LOADING...
> WELCOME USER_
> CRT VARIANT
> ROUNDED + VIGNETTE
> RETRO VIBES_
> HEAVY SCANLINES
> MORE VISIBLE
> WARNING MODE_

Film Grain

SVG noise texture overlay. Adds analog warmth.


Default Grain
Subtle film texture
Heavy Grain
Vintage photograph
Animated
Jittery film grain

Orbit

Items rotating around a center point. Pure CSS animation.


Default (4 items)
🌍
🐍 🔥 💎
Large + Fast + Reverse
⚙️
🛠 📦 🧪 🚀 📊 🔧

Sparkle

Staggered star twinkles wrapping content.


Default (accent)
Magic Button
Gold
Premium
Rainbow
Celebration!

Confetti

Alpine-triggered celebration burst. Click the button!


Wobble / Jello / Rubber-band

Micro-interaction animation utilities. Hover to trigger.


Marquee

Infinite horizontal scroll. Pauses on hover.


Acme CorpGlobex IndustriesInitechUmbrella CorpWayne Enterprises Acme CorpGlobex IndustriesInitechUmbrella CorpWayne Enterprises

Meteor Effect


Meteor Shower

Diagonal streaks for hero sections

Particle Background


Floating Particles

Gentle bobbing dots behind content

Symbol Rain

Matrix-style cascading ASCII characters from the chirp-ui icon map.


Default

Accent-colored cascading symbols

Gold Variant

Golden symbol cascade

Holy Light

Divine ascending sparkles in three parallax depth layers with glow pulse.


Default (Gold)

Ascending sparkles with parallax depth

Silver Intense

Silver with enhanced drop-shadow glow

Rune Field

Mystical ASCII symbols drifting in three parallax depth layers.


Arcane

Purple mystical runes

Frost

Cyan ice runes

Ember

Orange fire runes

Constellation

Twinkling ASCII starfield with gentle drift. Configurable density and color.


Default

Gentle twinkling starfield

Warm + Dense

Golden stars, faster twinkle

Cool

Cyan-tinted starfield

Border Beam (standalone)

Also shown in Effect Cards above. Wraps any content.


Featured

This container has an animated accent beam tracing its border.

ASCII Border

Box-drawing character frames. Four variants: single, double, rounded, heavy.


Single
Default box-drawing frame
Double
Double-line emphasis
── ✦ ──
Rounded + Glyph
Soft corners with accent
━━ ★ ━━
Heavy + Glyph
Bold frame with star accent

ASCII Divider

Glyph-centered separators using box-drawing characters.


Single
Double
Heavy
Dots
No glyph
Spin (momentum)
Spin Reverse
Spin Drift

ASCII Sparkline

Inline data visualization using Unicode block characters (▁▂▃▄▅▆▇█).


Default
Accent
Gradient
In context Requests trending up

ASCII Progress

Terminal-style progress bars using block fill (█) and empty (░) characters.


Build 75%
Tests 100%
Deploy 30%
Upload 45%

ASCII Spinner

Loading spinners that cycle through Unicode character sets via CSS step animations.


braille
box
dots
arrows
blocks
Loading data...
Processing...

ASCII Toggle

Switch control rendered with box-drawing track and Unicode knobs. Pure CSS transitions.


Default

Color variants

Sizes

Disabled

ASCII Switch (Vertical Breaker)

Vertical flip switch with block characters. Feels like a physical breaker panel.


Default + checked

Sizes

Breaker panel (combine with ascii-border for full effect)

ASCII Indicator Lights

Blinking status LEDs. Mainframe beep-boop energy.


Status lights with labels

PWR NET DISK ERR AUX SYNC

Glyph shapes

Square Round Diamond

ASCII Tile Buttons

Square pushbuttons that glow when lit. Toggle them on and off.


Toggle buttons (click to toggle)

Channel selector (4x2 grid)

ASCII Knob

Rotary dial selector. Click a position to turn the knob.


Volume
Mode
Priority

ASCII Breaker Panel

Pre-composed breaker set with frame, title, status indicators, and optional master switch.


Production
Staging

ASCII Faders

Vertical mixing-board sliders with block-character fill levels.


Channel Levels
CH1 75
CH2 50
MAIN 100
AUX 25
MUTE 0

ASCII VU Meter

Horizontal level bars with hot zones. The peak indicator glows red past 75%.


System Resources
CPU 60%
MEM 90%
I/O 40%

ASCII 7-Segment Display

Retro LCD-style readouts with glowing digits. Perfect for dashboards, counters, clocks.


Uptime 9 9 . 9 7
Clock 0 8 : 4 2
Requests 1 2 8 4 7
Errors 0 0 3

ASCII Checkbox & Radio

Form controls with Unicode ballot and circle characters. ☐ ☑ ○ ●


Features
Log Level
Environment

ASCII Stepper

Pipeline/wizard progress using box-drawing connectors. [✓]───[●]───[○]


Deploy pipeline (step 3 of 5)

Setup wizard (step 1 of 4)

All complete

ASCII Split-Flap Display

Mechanical departure-board characters that flip into place. Like Solari boards at train stations.


Default

H E L L O   W O R L D

Amber departure board

departures
0 8 : 4 2 G R A N D   C E N T R A L O N   T I M E T K   7
0 9 : 1 5 P E N N   S T A T I O N   D E L A Y E D T K   3
1 0 : 3 0 U N I O N   S Q U A R E   O N   T I M E T K 1 2

Green terminal variant

S Y S T E M   R E A D Y

ASCII Ticker

Scrolling text banner. Stock ticker / news crawler / alert bar.


Default

System healthy — 99.97% uptime — 0 errors — Next deploy in 2h   ◆   System healthy — 99.97% uptime — 0 errors — Next deploy in 2h   ◆   

Warning (fast)

⚠ ALERT: Memory usage at 92% — Scale up recommended — Contact oncall   ◆   ⚠ ALERT: Memory usage at 92% — Scale up recommended — Contact oncall   ◆   

Success (slow)

✓ Deploy v2.4.1 successful — All 453 tests passing — Zero downtime   ◆   ✓ Deploy v2.4.1 successful — All 453 tests passing — Zero downtime   ◆   

Control Panel (Full Demo)

Combining switches, tile buttons, indicators, knobs, and progress bars into a retro mainframe console.


┤ SYSTEM CONTROL PANEL ├
STATUS
CPU MEM I/O ERR AUX
CPU ████████████████████
MEM ████████████████████
DSK ████████████████████
SUBSYSTEMS
ACTIONS
TUNING
Gain
Rate

ASCII Table

Tables rendered with box-drawing character borders. Four line-style variants.


Single (default)

Service Status Latency
api-gateway Healthy 23ms
auth-service Healthy 41ms
worker-pool Degraded 187ms

Double

Key Value TTL
session:abc123 {"user":"alice"} 3600s
cache:homepage {"html":"..."} 300s

Heavy + striped

PID Command CPU % MEM
1842 python serve.py 12.3 256M
2091 nginx worker 3.1 48M
3344 redis-server 1.7 82M
4102 celery worker 8.9 192M

Rounded + compact

Variable Value
DATABASE_URL postgres://localhost/app
REDIS_URL redis://localhost:6379
LOG_LEVEL debug

ASCII Badge

Inline status labels framed with box-drawing characters.


deployed active pending failed no glyph archived
Frames: bracket angle no frame

ASCII Empty State

Centered zero-data moments with personality.


Nothing here

No data to display yet

No results

Try adjusting your search

All clear

No issues to report

Glyph Fill Hover

Hover and press these glyphs — they scale with spring physics on interaction. Pair with Alpine.js for hollow→filled swaps.


◇ diamond
☆ star
○ circle
✧ spark
▷ play
□ square
Parent-triggered (hover the whole row):

ASCII Error Pages

Stylized error states with ASCII art compositions for common HTTP errors.


404

Page not found

The page you're looking for doesn't exist.

403

Access denied

You don't have permission to view this.

500

Internal server error

Something went wrong on our end.

503

Service unavailable

Temporarily offline for maintenance.

timeout

Request timed out

The server took too long to respond.

ASCII Skeleton

Loading placeholders using cycling braille/dot characters instead of shimmer gradients.


Text (3 lines)
Card
Avatar + Heading

ASCII Bento

Composing ASCII border frames into a bento-style dashboard layout.


══ ★ ══
System Overview
CPU 60%
Mem 80%
Disk 90%
── ✦ ──

1,247
Active
── ◇ ──

99.9%
Uptime
Requests / hr
━━ ⛓ ━━
Pipeline Status
◎ Build pass ◎ Test pass ◎ Deploy pending

Animated Stat Cards


Active Users
↑ +12%
$M
Revenue
↑ +8.1%
Open Issues
↓ -3.2%

Config / Settings Rows


Dark ModeAuto-detect from system
Notifications
Language

Bar Chart (CSS-only)


Donut Chart (CSS-only)