Skip to content
Cuelark UI
Library · 107 components

Components

Every card below is the live component. Press, type and toggle, then open one for its source, props and accessibility notes.

107

Agents29

DocumentQ4 billing changes

Q4 billing changes

Tax is now computed in one helper and applied only to customers with a tax ID. Totals match across the API and PDFs.

  • Reverse-charge VAT for B2B customers
  • Cent-accurate rounding
  • 22 billing tests, all passing

Artifact

Something the agent made, in its own panel with actions.

Centralize tax in tax(): zero without a tax ID, cent-rounded otherwise. Both the API and PDFs call it; two new tests lock the behavior in.

3 / 3

Branch

Flip between regenerated versions of a reply.

  1. Read the failing test output (in progress)
  2. Searched the codebase for “prorate” (pending)
  3. Writing the fix in billing/prorate.ts (pending)
  4. Run the test suite (pending)

Chain of Thought

The steps an agent took, on a rail with live status.

Checkpoint

A restore point in a conversation.

billing/tax.tsts
1export function tax(i: Invoice) {2  if (!i.customer.taxId) return 03  return Math.round(i.subtotal * i.rate * 100) / 1004}5 6export function total(i: Invoice) {7  return i.subtotal + tax(i)8}

Code Block

Code in a reply: filename, line numbers, highlights, wrap and copy.

Send the weekly report to 24 recipients?

The agent drafted the email from this week's dashboard.

Run a command in production

This deletes rows and cannot be undone.

psql $DATABASE_URL -c "delete from sessions where expires_at < now()"

Confirmation

An agent asking permission, with press-and-hold for risky actions.

Context Meter

How full the context window is, with tokens and cost on hover.

What's the fastest way to add dark mode?
Put your colors in CSS variables, define a .dark block, and toggle the class on <html>. Cuelark's theme already does this.
And to avoid a flash on load?
Run a tiny inline script in <head> that reads the saved preference and sets the class before the first paint.
Can the user override the system setting?
Yes: store their choice in localStorage and only fall back to prefers-color-scheme when nothing is saved.

Conversation

A transcript that sticks to the bottom while streaming and lets go when you scroll.

src/billing/tax.ts+4 −1
11 import { Invoice } from './types'
22
3−export const tax = (i: Invoice) => i.subtotal * i.rate
3+export function tax(i: Invoice) {
4+ if (!i.customer.taxId) return 0
5+ return Math.round(i.subtotal * i.rate * 100) / 100
6+}
47
58 export function total(i: Invoice) {
69 return i.subtotal + tax(i)
710 }

File Diff

A change an agent proposes to a file, with accept and reject.

File Tree

The files an agent touched, with added, modified and deleted marks.

Tailwind v4 moves configuration into CSS with the @theme directive1, and every GSAP plugin became free for commercial use in version 3.132.

Inline Citation

Numbered citations inside a sentence, with a preview on hover.

Can you summarize what changed in the billing service this week?
C

Three changes shipped: proration now rounds to the cent, failed renewals retry twice before emailing the customer, and invoices include the tax ID when one is on file.

Message

One conversation turn: user bubble or assistant document, with hover actions.

Model Selector

Pick the model: grouped by provider, searchable, with context and tags.

Plan · fix tax on invoices1/6
  1. Create a shared tax helper
  2. Use it in the invoice API
  3. Use it in the PDF renderer
  4. Add tests for both paths

Plan

A plan an agent asks to run, with approve, reject and auto-run countdown.

Prompt Input

The composer for prompting an agent: autosize, attachments, model picker, stop.

Queued3
  • 1Also update the changelog
  • 2Then open a draft pull request
  • 3Ping #billing when it's up

Queue

Messages queued while the agent is busy, reorderable.

Reasoning

A model's thinking, streamed live, then folded to "Thought for 6s".

Sources

"Used N sources" with stacked tiles, expanding into the list.

TypeError: Cannot read properties of undefined (reading 'taxId')

  1. taxsrc/billing/tax.ts:3
  2. totalsrc/billing/invoice.ts:18
  3. renderInvoicesrc/pdf/render.ts:57
  4. (anonymous)at async Promise.all (index 0)

Stack Trace

Readable errors: your frames highlighted, library frames folded.

Subagent

Work delegated to a sub-agent, nested with its live activity.

Suggestions

Follow-up prompt chips that scroll sideways on small screens.

  • Write the shared tax helper
  • Switch the API to the helper
  • Switch the PDF renderer
  • Backfill invoices from this month

Task

A to-do list the agent works through, with progress.

agent · shell
$ pnpm test billing

Terminal

Streaming command output in a dark console.

1 failing 3 1 120ms
    • totals include tax6ms
    • credit notes are negative9ms
      expected -42.5 to equal -42.50
        at invoice.test.ts:31
    • multi-currency (pending)

Test Results

Pass/fail summary with failing assertions inline.

Searching the docs…Generating a migration plan

Text Shimmer

A light sweeping through muted text: the "working" status.

Parameters

{
  "env": "production"
}

Error

Error: build failed: Type error in src/routes/index.tsx:42

Tool

A tool call: name, live status, timing, parameters and result.

Span
0s2s4s6s8s
support-agent
7.8s
model.plan
1.5s
search_docs
1.2s
billing-subagent
3.4s
sql.query
1.1s
stripe.refund
0.6s
stripe.refund
1.2s
model.reply
1.2s
agentmodeltool2,760 tok · $0.018

Trace Waterfall

An agent run on one timeline: agents, model calls and tools.

Web Preview

A small browser for what the agent built, with device widths.

Actions4

Button

Tactile buttons with loading state, keyboard hints and six variants.

Button Group

Join buttons into one control: split buttons, toolbars, steppers.

npx shadcn@latest add https://ui.cuelark.com/r/button.json

Copy Button

Copy-to-clipboard button whose icon twists into a check.

Press and hold

Hold to Confirm

Press-and-hold button for destructive actions, with a timed fill.

Forms19

Checkbox

Checkboxes with a self-drawing check mark and an indeterminate state.

Combobox

Searchable select with fuzzy filtering and a gliding highlight.

@

Your public handle. Letters, numbers and dashes.

Field

Label, control, description and error wired with the right aria.

Drop files here or click to browse

PNG, JPG or PDF · up to 10 MB

File Dropzone

Drag-and-drop file upload with size checks and a file list.

We only use it for receipts and security alerts.

Input

Recessed text inputs with leading and trailing add-ons.

Input OTP

One-time-code input with slots that spring as digits land.

Label

Accessible form labels with required and optional markers.

Native Select

A styled native select: platform pickers, autofill, zero JavaScript.

Number Field

Numeric stepper with hold-to-repeat, keyboard steps and locale formatting.

  • 8+ charactersnot met
  • A numbernot met
  • Upper and lower casenot met
  • A symbolnot met

Password Input

Password field with show/hide and a live strength meter.

Radio Group

Radio buttons and selectable cards with springing dots and crop marks.

4.0 · 1,284 reviews

Rating

Star rating input with hover preview and a pop cascade.

Select

Dropdown select with grouped options and a cascading open.

Slider

Range sliders with value bubbles, ticks and multiple thumbs.

Switch

Toggle switches in three sizes with a stretch-on-press thumb.

ReactTypeScript

Enter or comma to add · Tab accepts the suggestion · Backspace twice removes

Tag Input

Type tags into one field, with suggestions, paste and keyboard removal.

0 / 160

Textarea

Multi-line input that auto-grows, with a live character counter.

Toggle

Two-state buttons that sink in when on and ping on press.

Toggle Group

Segmented controls with a gliding chip, plus outline and ghost groups.

Layout4

Run the shadcn CLI with the component URL. The source is copied into your project, so you can change anything.

Accordion

Stacked disclosure sections with numbered, dashed and separated styles.

16 : 9

Aspect Ratio

Keep media at a fixed ratio so layout never shifts.

Plan · 02

Studio

For small teams shipping every week.
Popular

$24 / seat / month

  • Unlimited projects
  • Shared component library
  • Priority support

Card

Surfaces with crop marks, raised and inset styles, and a divided footer tray.

3 changed files
src/routes/index.tsx

Collapsible

Show and hide a region with a measured height animation.

Navigation8

Command

⌘K command palette with fuzzy search and a gliding highlight.

Right-click here

Context Menu

Right-click menus that spring out from the pointer.

Dock

macOS-style dock with magnifying icons and labels.

Dropdown Menu

Action menus with keycap shortcuts, submenus and checkable items.

  1. AccountName and email
  2. 02
    WorkspaceTeam and URL
  3. 03
    BillingPlan and card
  4. 04
    DoneInvite your team

Stepper

Multi-step progress with an ink-filling connector.

A snapshot of this week: 12 releases, 3 open incidents, 98.9% uptime.

Tabs

Segmented and underline tabs with a gliding active indicator.

Overlays8

Alert Dialog

Confirmation dialogs for destructive or irreversible actions.

Cookie Consent

GDPR-friendly cookie banner with equal choices and per-category toggles.

Dialog

Modal dialogs with crop marks, an Esc hint and a footer tray.

Designed by @cuelark and the community.

Hover Card

Preview cards for links and mentions, opened on hover.

Popover

Anchored panels that spring open, with optional crop marks.

Sheet

Side panels and drawers that slide in, with a footer tray.

Toast

Toast notifications with a pausable countdown and promise states.

Tooltip

Inverted tooltips with keyboard shortcut hints and arrows.

Feedback5

New version available
Cuelark UI 1.1 adds motion tokens. Re-run the CLI to update.
Domain verified
ui.cuelark.com is now serving over HTTPS.

Alert

Callouts with a colored rail, tone icons and fold-away dismiss.

No messages yet

When customers write in, their conversations land here. Connect a channel to get started.

Empty

Empty states with a framed icon, guidance and actions.

Uploading35%

Progress

Progress bars: eased, segmented and indeterminate.

Skeleton

Loading placeholders with a slow light sweep.

Spinner

Loaders, including the signature crop-mark spinner.

Display10

ALGHATC
ALGHATKJLT+2

Avatar

Avatars with tinted initials, presence dots and fanning groups.

NeutralPrimarySuccessWarningDestructiveOutlineSolid

Badge

Compact status and category labels with status dots and a mono style.

LightDark

Compare Slider

Before/after comparison slider for images, themes and redesigns.

Launch · Dec 1, 17:00 UTC

Countdown

Launch and sale countdown timer with flipping digits.

Search ⌘K

Command palette Ctrl+Shift+P

Close Esc

Kbd

Keycaps and key combinations.

Releases

v1.40.0
v1.39.0
v1.38.0
v1.37.0
v1.36.0
v1.35.0
v1.34.0
v1.33.0
v1.32.0
v1.31.0
v1.30.0
v1.29.0
v1.28.0
v1.27.0
v1.26.0
v1.25.0
v1.24.0
v1.23.0
v1.22.0
v1.21.0
v1.20.0
v1.19.0
v1.18.0
v1.17.0
v1.16.0
v1.15.0
v1.14.0
v1.13.0
v1.12.0
v1.11.0
v1.10.0
v1.9.0
v1.8.0
v1.7.0
v1.6.0
v1.5.0
v1.4.0
v1.3.0
v1.2.0
v1.1.0

Scroll Area

Thin custom scrollbars with edge fades.

or
Docs
Components
Theming

Separator

Solid and dashed rules, with an optional label.

Invoices for October 2026.
InvoiceCustomerStatusAmount
INV-0042Atlas LabsPaid$1,290.00
INV-0043BorealisPending$480.00
INV-0044Cinder & CoPaid$2,350.00
INV-0045DriftwoodOverdue$99.00
Total$4,219.00

Table

Semantic tables with mono numerals, zebra rows and a sticky header.

  1. v1.0

    Cuelark UI 1.0

    52 components, GSAP motion tokens and the live theme editor.
  2. v0.9

    Motion layer

    One --cl-motion knob scales every animation, and reduced motion always wins.
  3. v0.8

    Crop marks

    The signature cue marks land on cards, dialogs and popovers.

Timeline

Timelines whose rail draws itself as you scroll.

Motion8

Magnetic

Magnetic hover: elements lean toward the cursor and spring back.

React 19Tailwind CSS v4Radix UIGSAPTypeScriptshadcn/uiTanStackViteCloudflare
React 19Tailwind CSS v4Radix UIGSAPTypeScriptshadcn/uiTanStackViteCloudflare

Marquee

Seamless infinite scrolling loop that eases to a stop on hover.

$128,450Revenue
98.9Uptime %
52Components

Number Ticker

Odometer-style animated counter with Intl formatting.

Scroll this panel

Reveal

Scroll-triggered reveals that never flash above the fold.

Components for dashboards

Rotating Text

Cycling words that roll letter by letter, with width easing.

SIGNAL ACQUIRED

Hover to decode: cuelark.com

Scramble Text

Decoding text effect with GSAP ScrambleText.

Reading · 4 min

Paragraph 1. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Paragraph 2. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Paragraph 3. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Paragraph 4. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Paragraph 5. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Paragraph 6. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Paragraph 7. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Paragraph 8. On a real page, drop ScrollProgress at the top of the layout with no target and it tracks the whole document; give it a target to follow a single article instead.

Scroll Progress

Reading progress bar scrubbed to scroll.

Interfaces with a cue.

Every word is in the server-rendered HTML, so search engines read it all while visitors watch it arrive.

Text Reveal

GSAP SplitText reveals by character, word or line.

Effects12

Hover: each icon picks its own motion

Animated Icon

Any icon, animated with a motion that fits it: bells ring, arrows nudge, gears turn.

  • Payment received$240 from Atlas Labs
    now
  • New memberGrace joined Borealis
    1m
  • Pull request mergedfeat: motion tokens
    3m
  • New comment“Ship it.” on Roadmap
    6m

Animated List

A live feed where items arrive and push the rest down.

Pro plan

$24 / month

Everything in Studio, plus SSO and audit logs.

Border Beam

A light that travels around a card's border.

Burst

Confetti that sprays from any button on click.

Move · click

The background answers back.

Dot Field

An interactive dot-grid background that reacts to the cursor.

Signed, sealed, drawn

Draw Path

Draws SVG strokes as if by hand: signatures, underlines, diagrams.

Button
Dialog
Input
Tooltip
Switch
Copy
Select
Sheet

Flip Grid

A grid whose items glide to new places when filtered or sorted.

Interfaces with a signal.

Move your pointer across this line to light it like a torch.

drift · spotlight

Gradient Text

Text with a living highlight: a drifting shimmer or a pointer spotlight.

cue

Orbit

Icons orbiting a center on dashed tracks.

Shimmer Button

A pill CTA whose surface catches a sweeping band of light.

Cuelark · Member
4242 0042 1987 2026Ada Lovelace · 10/29

Tilt Card

A 3D card that tilts toward the pointer with a moving glare.

Ship dashboards.

Typewriter

Text that types itself out, cycling through phrases.