Skip to content
Kura UI

Components

35 components, each with a manifest your agent can read. Generated from the source — new components appear here automatically.

Primitives

Button

primitives

The Kura button: six variants, four sizes, loading state, asChild, tactile press and a signal focus ring.

Icon Button

primitives

Square icon-only button with a mandatory accessible label and an automatic tooltip (with optional shortcut).

Esc

Kbd

primitives

Keyboard key or key combo, platform-aware (⌘ on Apple, Ctrl elsewhere) and hydration-safe.

Popover

primitives

Floating translucent panel anchored to a trigger, with focus management and origin-aware motion.

Loading

Spinner

primitives

Eight-segment radial spinner for indeterminate loading that inherits the current text color.

Tooltip

primitives

Short label on hover or focus with an optional shortcut, origin-aware motion and instant skip between tooltips.

Input

q3-board-report.pdf

File and image attachment chips with thumbnails, upload progress rings, error/retry, remove, a “+N” overflow stack and a dropzone.

⌘K command palette for agent actions: fuzzy search, groups, recents, nested pages with async loading, and shortcut hints.

Prompt input for chat and agents: auto-growing textarea, attachments, toolbar slot, send→stop button, paste/drop files and a length hint.

SendControl Enter

Labelled keyboard-shortcut hint (“Send ⌘↵”) that can also bind the shortcut and light its keys while pressed.

Searchable popover for choosing an AI model, grouped by provider, with capability icons, context size, speed and cost hints.

Starter prompts for empty chat states — chips, cards or a list that rise in with a short stagger and fill the composer when clicked.

Inline “/” command menu anchored to the caret of a textarea, with filtering, groups, icons, descriptions and keyboard navigation.

Voice

Voice agent idle

Glassy liquid sphere for voice agents, drawn in a shader: breathes when idle, reacts to mic and voice levels, swirls while thinking.

Canvas audio visualiser — live bars, mirrored history or oscilloscope line from a mic or media element, or recorded peaks with a seek scrubber.

Mic button that expands into a live waveform pill with a timer and live transcript; speech-to-text with recording fallback, toggle or hold-to-talk.

Conversation

Markdown · 1,240 words
Q3 launch plan ready

Artifact Card

conversation

Card for something an agent made — document, code, web page, image, sheet or diagram — with generating/updating progress, versions and open-in-panel.

React exposes a dedicated hook for optimistic updates1.

Citation

conversation

Inline numbered citation pill that links to its source and previews favicon, title, domain and snippet on hover/focus, plus a Sources strip or list.

tsx
import { StreamingText } from "@kura-ui/react/streaming-text";​export function Answer({ stream }: { stream: AsyncIterable<string> }) { // Bursty tokens are evened out into a calm cadence. return <StreamingText stream={stream} speed={90} className="max-w-prose" />;}

Code Block

conversation

Syntax-highlighted code with a filename header, copy, line numbers, highlighted lines, diffs, wrap, collapsible height and streaming-safe rendering.

How do I make a like button feel instant?
Render the new count optimistically and reconcile when the request finishes.

Message

conversation

Chat message (user/assistant) with avatar, hover actions, ‹ 2/3 › branches, error/streaming states and an autoscrolling MessageList thread.

Streaming Text

conversation

Token-by-token model output with an even reveal cadence, word-group fade/blur-in and a soft caret. Takes a growing string or an async iterable.

Agent

  1. Read the failing test (done)1.2s
  2. Patch the date parser (in progress)
  3. Re-run the test suite (queued)
Step 2 of 3

Vertical plan tracker for multi-step agents: queued/active/done/failed/skipped steps, nested sub-steps, live durations and a connector that fills.

Kura wants to run a command

Low risk
pnpm install
Needs approval

Human-in-the-loop permission card (“Kura wants to run `rm -rf build`”) with risk level, details, Approve/Deny/Always allow, ⌘↵ and Esc, and resolved states.

Token / context-window usage as a compact ring or bar with warning and danger thresholds, rolling numbers and a segmented breakdown card.

Thought for 14s
The user wants the like button to feel instant. The lag comes from waiting on the server round-trip before re-rendering. Options: optimistic local state with manual rollback, or useOptimistic inside a transition. useOptimistic handles the rollback automatically if the action throws, and keeps the UI consistent with concurrent updates. I should recommend useOptimistic and show the minimal pattern, then mention the error case.

Collapsible thinking trace: a shimmering “Thinking… 12s” label while active that settles into “Thought for 14s”, revealing muted reasoning text.

read_file Completed
Arguments
{ "path": "src/app/page.tsx"}
Result
export default function Page() {\n return <Chat />;\n}

One tool invocation: name and icon, queued/running/done/failed/awaiting-approval status, live elapsed time and collapsible JSON args and result.

Feedback

Thinking…

Shimmer Text

feedback

Animated gradient sweep across text — the canonical “Thinking…” / “Searching…” label for in-progress AI work.

Thinking

Compact AI “thinking” indicators — dots, pulse, orbit, wave, or cycling status text — inside a polite live region.

Effects

Aurora

effects

Soft northern-lights background: folding light curtains drawn in a shader with premultiplied alpha, so it glows on dark and washes on light.

Indexing workspace

The beam marks a container the agent is working in.

Animated light beam that travels around its parent's border — a quiet “an agent is working in here” signal for composers, cards and panels.

Agent online

Text reveal that scrambles glyphs and resolves them left to right, like an AI decoding — width-stable, with the final text read to screen readers at once.

Grain

effects

Film-grain overlay from a cached SVG-noise tile, with blend modes and an optional compositor-only flicker — texture for gradients and heroes.

Animated WebGL mesh gradient that blends up to six colours in OKLab, with distortion, swirl, grain and a pointer lens — for heroes and empty states.

Drifting particle constellation that parts around the pointer and can converge into a ring or point to signal “generating”.

Minimal WebGL2 fragment-shader runner with time/resolution/pointer uniforms, DPR capping, offscreen pausing, reduced-motion still frame and CSS fallback.