mizzle
/
ui
Files
Code
Info
Accordion
accordion
Rows that open to show more. One thing moves: the panel’s height, on one short clock both ways, so rows trading places leave everything below them still and nothing creeps into place at the end. The plus turns into a minus on the same clock. Built on Base UI, animated in CSS.
Authentication
auth-diagram
Three ways to sign in on the left, one check in the middle, your app on the right. Each turn a different method sends a signal, the lock becomes a tick that draws itself, and the app opens.
Button
button
A button that feels like an object: light on its surface, a shadow that deepens under the pointer and closes up when pressed, a quick press and a slow release. Busy and done states swap in softly without the button changing width. Built on Base UI, animated in CSS.
Card
card
A soft tray around a raised surface, with concentric corners. As a link its surface lifts on hover and sinks on press, and its media breathes; it does not jump at the pointer.
Chat Divider
chat-divider
The quiet structure of a conversation: a line for each day, a line where the unread messages start, and a small note when someone joins or leaves.
Checkbox
checkbox
A box that ticks. The check draws itself in, and a parent checkbox shows a dash when only some of its children are on.
Composer
composer
Where a message is written. It grows with what you type, Enter sends, and the microphone turns into a send button as soon as there is something to send.
Confirmation
confirmation
The agent asking for a yes before it does something: run a command, start a plan, touch a file. One line says what and why, two buttons answer, and once answered it settles into a quiet record of the decision.
Data Grid
data-grid
A spreadsheet-style table on TanStack Table, assembled from the data pieces: toolbar with search and column picker, typed filters, the grid, a selection bar and a pager. Sort, pin, resize, reorder and hide columns from each header; select rows or drag out a range of cells and copy it; edit in place and save or discard the batch. Only the rows on screen are in the page, so three hundred rows cost the same as thirty.
Data Grid Column Menu
data-grid-column-menu
The menu behind each Data Grid header: sort either way or as a second key, pin to the start or the end, reset the width and hide the column. The header's own label is the trigger.
Data Grid Filter
data-grid-filter
The Data Grid's filter bar. A popover picks a column and its value, and each filter becomes a chip whose operator and value can be changed on their own. Text, number, date, option and multi-option columns each get their own editor.
Data Grid Footer
data-grid-footer
The strip under the Data Grid: which rows are showing, how many are selected, the count, sum, average, minimum and maximum of the selected cells, and paging with a rows-per-page select.
Data Grid Icons
data-grid-icons
The stroke icons the Data Grid's parts share, drawn on a 16px grid in the current text colour.
Data Grid Row Controls
data-grid-row-controls
The controls that go in a Data Grid's own columns: a select-all and a per-row checkbox with shift-click ranges, a disclosure arrow for rows with sub-rows, and a row menu with your actions, copy and pinning.
Data Grid Selection Bar
data-grid-selection-bar
A toolbar that rises over the foot of the Data Grid while rows are selected, with export, pin, an optional delete and a way to clear the selection.
Data Grid Toolbar
data-grid-toolbar
The strip above the Data Grid: a title and row count, a search field that opens from an icon, the column visibility menu, and a menu for CSV export, print and resetting the layout.
Delete Button
delete-button
A delete button you press and hold. A fill sweeps across it while the bin’s lid lifts; let go early and it drains back, hold to the end and it deletes. Holding is the confirmation, so there is no dialog.
Diagram
diagram
The parts the illustrations are made from: tiles, routes with ports, and a signal that travels them, all on one clock. Lay out your own in a few lines, with the glyph set or any icons you already use.
Diagram Glyphs
diagram-glyphs
Sixteen marks drawn by hand for Diagram tiles on a 24 unit grid, in a line style and a solid style: app, database, mail, card, chart, key, phone, shield, bank, receipt, coin, check, cloud, user and bolt.
Dialog
dialog
A dialog built like the card: what you read sits on a raised surface, what you press sits under it on the tray. It comes towards you in 250ms and is gone in 150. Built on Base UI, animated in CSS.
Dissolve
dissolve
Make an element crumble into ash and drift off as smoke. A ragged edge crosses it, and everything the edge passes turns into fine grey dust, made from the element’s own text and icons, that lifts away on a slow swirl and thins out to nothing.
Dither
dither
Light drawn in two colours. A slow field of light, or a photograph, rendered the way a one-bit screen would: every dot is ink or nothing, and the shades are made by how thickly the ink is scattered. The pointer is a lamp.
Dot Matrix
dot-matrix
Text on a dot matrix, five dots wide and seven tall, like a departure board. Unlit dots stay faintly visible, and when the text changes the dots that differ flip in a wave from the left. No JavaScript animation.
Dynamic Island
dynamic-island
A black pill that changes shape to fit what it is showing. Give it a view key and some content: it springs to the new size, overshooting a touch when it grows, and cross-fades what is inside. No animation library.
Expandable Tabs
expandable-tabs
An icon bar whose active tab says its name, and whose page grows out of the bar. The label, the highlight and the shell move as one, on one clock. No animation library.
Field
field
A label, a control, a hint and an error, wired together. The label names the control, the hint describes it, and the error appears under it with a short settle when something is wrong.
Form
form
The form that holds the fields. It validates with the browser’s own rules, shows errors where they belong, takes errors back from your server, and hands you the values as an object.
Glow
glow
Soft coloured light that drifts around the inside edge of an element. It follows any rounded shape, brightens and quickens with a level you give it, such as a voice or typing, and spins up and coasts to a stop instead of switching.
Highlight
highlight
A mark made over a word or a phrase: a highlighter that wraps with the text, or a pen stroke under, around or round a word. Each is drawn when it comes into view. No JavaScript animation.
Image Generation
image-generation
A placeholder that becomes the picture. A grid of soft tiles moves in a pattern of your choosing while the image is made, takes on its colours the moment it arrives, and swells from the middle until the tiles close into the photograph.
Input
input
A text input and a textarea that grows as you write. Quiet at rest, lifted on focus, red when wrong.
Integrations
integrations-diagram
Your app in the middle and four services around it, joined by routes with small ports. An event comes in along one route, the app lights up, and the answer goes out along the others. Put your own marks on the tiles.
Letter Swap
letter-swap
On hover each letter slides out and a copy slides in, one after another, optionally into a different word. Pure CSS: the stagger plays forward on enter and back on leave, and can be interrupted anywhere.
Link
link
A text link whose underline is drawn on the text: it draws in from the left, leaves to the right, and follows the words when they wrap. Four treatments, hover and keyboard alike, no JavaScript.
Loader
loader
Sixteen dots in a square that swell and light up in a pattern: a scan, a wave, a twinkle, an orbit, a pulse, a spiral, rain or rising bars. Round, soft-cornered or square, in the text colour or a palette of your own, and small enough to sit beside a line of text.
Marker
marker
A line in a conversation that is not a message: what the agent is doing, what it did, or a labelled break.
Menu
menu
A menu of actions that grows out of the button that opened it and is gone the moment you choose. Items, ticks, choices, groups and key hints. Built on Base UI, animated in CSS.
Message
message
One message in a conversation: who sent it, the bubble, and what is said underneath. Messages from the same person run together, replies quote what they answer, and reactions sit on the bubble’s edge.
Message Scroller
message-scroller
A transcript that only moves when the reader asks it to. A new prompt rises to the top with the end of the last answer still in view, the reply streams into the space below it, and scrolling away is respected until you jump back.
Message Status
message-status
Where a sent message has got to: sending, sent, delivered, read, or not delivered. The clock fades into a tick, a second tick joins it, and read takes on colour.
Number Field
number-field
A number you can type, step with the buttons, or nudge with the arrow keys, kept inside its limits.
Number Roll
number-roll
A number whose digits roll to their new value. Each digit is a reel behind a soft-edged window: it rolls the way the number moved, streaks while it is fast, and digits fold in and out when the number changes length.
Orb
orb
An orb of fine dots that shows what an agent is doing. The same dots rearrange for each step it goes through: listening, thinking, searching, connecting, composing, imagining, shaping and speaking, each with a movement that means something. It works at 20 pixels beside a line of text and at any size on its own.
Outline
outline
The questions asked so far, as a rail of marks at the edge of the transcript. The mark for the turn you are reading is longer; rest on the rail and the questions fan out beside their marks; pick one and the transcript glides back to it.
Panel Menu
panel-menu
A menu built from stacked glass panels. Closed, it is a single bar. Open, the label flips, a tall body wipes down beneath it, and the link and language rows settle in after. Built on Base UI, animated in CSS.
Payments
payments-diagram
A card is charged, the payment clears, and three things follow: the money goes to the bank, a receipt goes out and your app is told. The coin turns into a tick while it all happens.
Pixel Field
pixel-field
A field of pixels that blooms under the pointer. Inside a card or a button, small squares spread out from where the pointer came in, keep twinkling, and draw back to where it left. Costs nothing when nobody is touching it.
Pixel Reveal
pixel-reveal
An image that resolves out of big pixels. It arrives as a handful of coloured blocks and sharpens in steps, each one halving the blocks, until it is the picture. A real image sits underneath the whole time.
Pixel Transition
pixel-transition
Swap what is shown through a wall of pixels. Blocks cover the old content in dither order, the way old computers dissolved between screens, the content changes behind them, and they clear the same way. No JavaScript animation.
Plan
plan
A plan the agent proposes before it acts: a title, a line on what it changes, the scope in a few words, and numbered steps that arrive one by one with the files each one touches. Start it and the steps tick off as the work runs; ask for changes and say what should change without leaving the card.
Poll
poll
A question with a few answers, sent as a message. Tap one and the bars fill to each answer’s share, the percentages roll into place and the people who chose it appear beside it. Let people pick several, close it when the time is up, and it settles into the final count.
Prediction Market
prediction-market
An order ticket for a yes or no market. Pick an outcome and a side, type an amount, and the shares, the payout and the return roll to their new values. Built from the card, the tabs, the button and the rolling numbers.
Progressive Blur
progressive-blur
A blur that gets stronger towards an edge, and a scroll area that wears one at each end: the ends blur and dissolve only while there is more to scroll that way. CSS only, on any background.
Prompt Input
prompt-input
Where a prompt is written. It takes files from a picker, a drop or a paste, records voice notes with a glow that swells with your voice, opens a menu for / commands and @ mentions as you type them, picks a model, and turns its send button into a stop button while the answer streams.
Questionnaire
questionnaire
An agent asking before it acts, one question at a time, in the same tinted bubble as the rest of the conversation. Pick with a click or the number key shown at the end of each row, and a single answer moves on by itself; a strip of steps shows how far along you are, the card glides to the height of each question as one dissolves into the next, and once sent it keeps a record of what was said.
Radio Group
radio-group
Pick one of a few. The chosen ring fills and a dot grows from its centre.
Reaction Picker
reaction-picker
A row of emoji to react with. Each one lifts and grows a little under the pointer, and the ones you have already used are marked.
Reasoning
reasoning
The model thinking out loud, kept to a small window. While it thinks the latest lines scroll up in steps under a shimmering label; when it is done it folds away into how long it took, and opens again to read in full.
Response
response
An answer as it streams. Each word comes out of a slight blur as it arrives, numbered citations become source chips you can hover, and the actions underneath copy, rate and retry.
Reveal
reveal
Anything that arrives as it scrolls into view: a card, a paragraph, a section. It fades, rises a little and sharpens into focus; groups go one after another from a single trigger, and nothing inside is touched. No JavaScript animation.
Scramble Text
scramble-text
Text that resolves out of noise. A sweep crosses the string at a steady rate; characters behind it are final, characters ahead of it churn. Decoding, not glitching.
Select
select
Choose one option from a list. The trigger looks like an input; when there is room the list opens over it with the chosen option sitting where the trigger was, like a native menu on a Mac, and otherwise just below it.
Shimmer
shimmer
A band of light that passes over text while something is working. It is made from the text’s own colour, so it suits any text and anything inside it, icons included.
Signature
signature
Draws a signature, or any hand-drawn SVG, stroke by stroke at a steady pen speed, lifting between strokes. Pen centrelines are stroked; filled outlines are revealed as ink along their own path.
Sources
sources
Where an answer came from. A row of site icons, a count and the first domains, opening into the full list: numbered to match the citations in the text, each with its site, title and a line of what it said.
Split Text
split-text
Splits a string into words and characters you can style one by one. Words still wrap, spaces stay real, screen readers hear the sentence, and every piece knows its index, word and measured line.
Suggestions
suggestions
Prompts to try next, as pills or as a list of follow-ups. They arrive one after another so the eye reads them in order.
Switch
switch
An on and off that takes effect at once. The thumb slides across and stretches a little while you hold it.
Tabs
tabs
Tabs whose selected chip tightens under a press, stretches towards the tab you pick, then gathers itself, with panels that drift in from the same side. A raised chip in a tray, or a sliding underline. Built on Base UI, animated in CSS.
Tasks
tasks
The to-do list an agent is working through. A ring fills as tasks finish, the one in progress shimmers over the file it is touching, a finished one keeps what it changed at its side, and folded it is a single line naming what is happening now. It sits best in a tray rising out of the prompt input.
Text Reveal
text-reveal
Text that arrives piece by piece: characters, words or lines. Each one fades, lifts a little and sharpens from a slight blur, so it reads as settling into focus. Pure CSS, no animation library.
Text Swap
text-swap
Change a word without it blinking. The old word lifts away and blurs out as the new one rises in, and the space between them stretches to fit, so nothing beside it jumps.
Tick Slider
tick-slider
A scroll progress indicator you can scrub. A slim red needle runs along a tray of hairline ticks as the page scrolls, and dragging the needle scrolls the page. Built on Base UI, animated in CSS.
Toast
toast
A short message that rises in from just below where it rests, out of a slight blur, and leaves the same small way. Newer toasts stack in front and older ones tuck in behind, a little smaller and dimmer; hover the stack to spread it out. When a toast changes, its words and icon morph in place. A pill variant puts the whole message on one dark line, and a single manager makes each new message take the place of the last. Built on Base UI, animated in CSS.
Tool Call
tool-call
What an agent did, one row per step. A step shimmers while it runs and draws a tick when it finishes; rows with output open to show it, and a group folds the whole run into one line.
Toolbar
toolbar
A row of controls that act on one thing: buttons, toggles, a choice of one, a link or an input. Arrow keys move between them, and where you pick one of a few the highlight glides between them.
Tooltip
tooltip
A small label for a control. Give a row of controls one tooltip between them and it stays open as you move along: the label glides to the next control, changes width to fit, and the words dissolve from one to the next. Built on Base UI, animated in CSS.
Turn
turn
One exchange: what you asked, then what the agent did and said. The prompt is a bubble on the right with its attachments above it and copy and edit on hover; the reply is a column the other pieces stack into, in the order they happened.
Typewriter
typewriter
Types a list of phrases one after another, without the harshness: letters fade in and sharpen instead of popping, the rhythm is a little uneven like a person’s, and a finished phrase fades out as one instead of being backspaced.
Typing Indicator
typing-indicator
Someone is writing. Three dots that rise and settle in turn inside a bubble, or a small pill that names who is typing.
Video Hero
video-hero
A banner for a show or a launch: the episode plays behind the words, blurred to a glow that fades to black at the sides. On top sit a title, a line about it, one clear button that opens the player, and the ways to follow along.
Video Player
video-player
A silent, looping preview that opens into a near full screen player. The player has the title and a link along the top, one row of controls along the bottom, a line you can scrub, and every key you would expect. It all gets out of the way while you watch.
Voice Note
voice-note
A recorded message in a chat bubble. The waveform fills as it plays, and the play button turns into pause in one movement. Pair it with Voice Recorder and it shows the shape of what was actually said.
Voice Recorder
voice-recorder
A record button that grows into a voice note as you speak. A warm glow drifts round its edge and swells with your voice, the bars build up beside it, and stopping hands back the audio with its real waveform.
Select a component to view its code
Click on any item in the sidebar to get started
Select a component to view its information
Accordion
accordion
Rows that open to show more. One thing moves: the panel’s height, on one short clock both ways, so rows trading places leave everything below them still and nothing creeps into place at the end. The plus turns into a minus on the same clock. Built on Base UI, animated in CSS.
Authentication
auth-diagram
Three ways to sign in on the left, one check in the middle, your app on the right. Each turn a different method sends a signal, the lock becomes a tick that draws itself, and the app opens.
Button
button
A button that feels like an object: light on its surface, a shadow that deepens under the pointer and closes up when pressed, a quick press and a slow release. Busy and done states swap in softly without the button changing width. Built on Base UI, animated in CSS.
Card
card
A soft tray around a raised surface, with concentric corners. As a link its surface lifts on hover and sinks on press, and its media breathes; it does not jump at the pointer.
Chat Divider
chat-divider
The quiet structure of a conversation: a line for each day, a line where the unread messages start, and a small note when someone joins or leaves.
Checkbox
checkbox
A box that ticks. The check draws itself in, and a parent checkbox shows a dash when only some of its children are on.
Composer
composer
Where a message is written. It grows with what you type, Enter sends, and the microphone turns into a send button as soon as there is something to send.
Confirmation
confirmation
The agent asking for a yes before it does something: run a command, start a plan, touch a file. One line says what and why, two buttons answer, and once answered it settles into a quiet record of the decision.
Data Grid
data-grid
A spreadsheet-style table on TanStack Table, assembled from the data pieces: toolbar with search and column picker, typed filters, the grid, a selection bar and a pager. Sort, pin, resize, reorder and hide columns from each header; select rows or drag out a range of cells and copy it; edit in place and save or discard the batch. Only the rows on screen are in the page, so three hundred rows cost the same as thirty.
Data Grid Column Menu
data-grid-column-menu
The menu behind each Data Grid header: sort either way or as a second key, pin to the start or the end, reset the width and hide the column. The header's own label is the trigger.
Data Grid Filter
data-grid-filter
The Data Grid's filter bar. A popover picks a column and its value, and each filter becomes a chip whose operator and value can be changed on their own. Text, number, date, option and multi-option columns each get their own editor.
Data Grid Footer
data-grid-footer
The strip under the Data Grid: which rows are showing, how many are selected, the count, sum, average, minimum and maximum of the selected cells, and paging with a rows-per-page select.
Data Grid Icons
data-grid-icons
The stroke icons the Data Grid's parts share, drawn on a 16px grid in the current text colour.
Data Grid Row Controls
data-grid-row-controls
The controls that go in a Data Grid's own columns: a select-all and a per-row checkbox with shift-click ranges, a disclosure arrow for rows with sub-rows, and a row menu with your actions, copy and pinning.
Data Grid Selection Bar
data-grid-selection-bar
A toolbar that rises over the foot of the Data Grid while rows are selected, with export, pin, an optional delete and a way to clear the selection.
Data Grid Toolbar
data-grid-toolbar
The strip above the Data Grid: a title and row count, a search field that opens from an icon, the column visibility menu, and a menu for CSV export, print and resetting the layout.
Delete Button
delete-button
A delete button you press and hold. A fill sweeps across it while the bin’s lid lifts; let go early and it drains back, hold to the end and it deletes. Holding is the confirmation, so there is no dialog.
Diagram
diagram
The parts the illustrations are made from: tiles, routes with ports, and a signal that travels them, all on one clock. Lay out your own in a few lines, with the glyph set or any icons you already use.
Diagram Glyphs
diagram-glyphs
Sixteen marks drawn by hand for Diagram tiles on a 24 unit grid, in a line style and a solid style: app, database, mail, card, chart, key, phone, shield, bank, receipt, coin, check, cloud, user and bolt.
Dialog
dialog
A dialog built like the card: what you read sits on a raised surface, what you press sits under it on the tray. It comes towards you in 250ms and is gone in 150. Built on Base UI, animated in CSS.
Dissolve
dissolve
Make an element crumble into ash and drift off as smoke. A ragged edge crosses it, and everything the edge passes turns into fine grey dust, made from the element’s own text and icons, that lifts away on a slow swirl and thins out to nothing.
Dither
dither
Light drawn in two colours. A slow field of light, or a photograph, rendered the way a one-bit screen would: every dot is ink or nothing, and the shades are made by how thickly the ink is scattered. The pointer is a lamp.
Dot Matrix
dot-matrix
Text on a dot matrix, five dots wide and seven tall, like a departure board. Unlit dots stay faintly visible, and when the text changes the dots that differ flip in a wave from the left. No JavaScript animation.
Dynamic Island
dynamic-island
A black pill that changes shape to fit what it is showing. Give it a view key and some content: it springs to the new size, overshooting a touch when it grows, and cross-fades what is inside. No animation library.
Expandable Tabs
expandable-tabs
An icon bar whose active tab says its name, and whose page grows out of the bar. The label, the highlight and the shell move as one, on one clock. No animation library.
Field
field
A label, a control, a hint and an error, wired together. The label names the control, the hint describes it, and the error appears under it with a short settle when something is wrong.
Form
form
The form that holds the fields. It validates with the browser’s own rules, shows errors where they belong, takes errors back from your server, and hands you the values as an object.
Glow
glow
Soft coloured light that drifts around the inside edge of an element. It follows any rounded shape, brightens and quickens with a level you give it, such as a voice or typing, and spins up and coasts to a stop instead of switching.
Highlight
highlight
A mark made over a word or a phrase: a highlighter that wraps with the text, or a pen stroke under, around or round a word. Each is drawn when it comes into view. No JavaScript animation.
Image Generation
image-generation
A placeholder that becomes the picture. A grid of soft tiles moves in a pattern of your choosing while the image is made, takes on its colours the moment it arrives, and swells from the middle until the tiles close into the photograph.
Input
input
A text input and a textarea that grows as you write. Quiet at rest, lifted on focus, red when wrong.
Integrations
integrations-diagram
Your app in the middle and four services around it, joined by routes with small ports. An event comes in along one route, the app lights up, and the answer goes out along the others. Put your own marks on the tiles.
Letter Swap
letter-swap
On hover each letter slides out and a copy slides in, one after another, optionally into a different word. Pure CSS: the stagger plays forward on enter and back on leave, and can be interrupted anywhere.
Link
link
A text link whose underline is drawn on the text: it draws in from the left, leaves to the right, and follows the words when they wrap. Four treatments, hover and keyboard alike, no JavaScript.
Loader
loader
Sixteen dots in a square that swell and light up in a pattern: a scan, a wave, a twinkle, an orbit, a pulse, a spiral, rain or rising bars. Round, soft-cornered or square, in the text colour or a palette of your own, and small enough to sit beside a line of text.
Marker
marker
A line in a conversation that is not a message: what the agent is doing, what it did, or a labelled break.
Menu
menu
A menu of actions that grows out of the button that opened it and is gone the moment you choose. Items, ticks, choices, groups and key hints. Built on Base UI, animated in CSS.
Message
message
One message in a conversation: who sent it, the bubble, and what is said underneath. Messages from the same person run together, replies quote what they answer, and reactions sit on the bubble’s edge.
Message Scroller
message-scroller
A transcript that only moves when the reader asks it to. A new prompt rises to the top with the end of the last answer still in view, the reply streams into the space below it, and scrolling away is respected until you jump back.
Message Status
message-status
Where a sent message has got to: sending, sent, delivered, read, or not delivered. The clock fades into a tick, a second tick joins it, and read takes on colour.
Number Field
number-field
A number you can type, step with the buttons, or nudge with the arrow keys, kept inside its limits.
Number Roll
number-roll
A number whose digits roll to their new value. Each digit is a reel behind a soft-edged window: it rolls the way the number moved, streaks while it is fast, and digits fold in and out when the number changes length.
Orb
orb
An orb of fine dots that shows what an agent is doing. The same dots rearrange for each step it goes through: listening, thinking, searching, connecting, composing, imagining, shaping and speaking, each with a movement that means something. It works at 20 pixels beside a line of text and at any size on its own.
Outline
outline
The questions asked so far, as a rail of marks at the edge of the transcript. The mark for the turn you are reading is longer; rest on the rail and the questions fan out beside their marks; pick one and the transcript glides back to it.
Panel Menu
panel-menu
A menu built from stacked glass panels. Closed, it is a single bar. Open, the label flips, a tall body wipes down beneath it, and the link and language rows settle in after. Built on Base UI, animated in CSS.
Payments
payments-diagram
A card is charged, the payment clears, and three things follow: the money goes to the bank, a receipt goes out and your app is told. The coin turns into a tick while it all happens.
Pixel Field
pixel-field
A field of pixels that blooms under the pointer. Inside a card or a button, small squares spread out from where the pointer came in, keep twinkling, and draw back to where it left. Costs nothing when nobody is touching it.
Pixel Reveal
pixel-reveal
An image that resolves out of big pixels. It arrives as a handful of coloured blocks and sharpens in steps, each one halving the blocks, until it is the picture. A real image sits underneath the whole time.
Pixel Transition
pixel-transition
Swap what is shown through a wall of pixels. Blocks cover the old content in dither order, the way old computers dissolved between screens, the content changes behind them, and they clear the same way. No JavaScript animation.
Plan
plan
A plan the agent proposes before it acts: a title, a line on what it changes, the scope in a few words, and numbered steps that arrive one by one with the files each one touches. Start it and the steps tick off as the work runs; ask for changes and say what should change without leaving the card.
Poll
poll
A question with a few answers, sent as a message. Tap one and the bars fill to each answer’s share, the percentages roll into place and the people who chose it appear beside it. Let people pick several, close it when the time is up, and it settles into the final count.
Prediction Market
prediction-market
An order ticket for a yes or no market. Pick an outcome and a side, type an amount, and the shares, the payout and the return roll to their new values. Built from the card, the tabs, the button and the rolling numbers.
Progressive Blur
progressive-blur
A blur that gets stronger towards an edge, and a scroll area that wears one at each end: the ends blur and dissolve only while there is more to scroll that way. CSS only, on any background.
Prompt Input
prompt-input
Where a prompt is written. It takes files from a picker, a drop or a paste, records voice notes with a glow that swells with your voice, opens a menu for / commands and @ mentions as you type them, picks a model, and turns its send button into a stop button while the answer streams.
Questionnaire
questionnaire
An agent asking before it acts, one question at a time, in the same tinted bubble as the rest of the conversation. Pick with a click or the number key shown at the end of each row, and a single answer moves on by itself; a strip of steps shows how far along you are, the card glides to the height of each question as one dissolves into the next, and once sent it keeps a record of what was said.
Radio Group
radio-group
Pick one of a few. The chosen ring fills and a dot grows from its centre.
Reaction Picker
reaction-picker
A row of emoji to react with. Each one lifts and grows a little under the pointer, and the ones you have already used are marked.
Reasoning
reasoning
The model thinking out loud, kept to a small window. While it thinks the latest lines scroll up in steps under a shimmering label; when it is done it folds away into how long it took, and opens again to read in full.
Response
response
An answer as it streams. Each word comes out of a slight blur as it arrives, numbered citations become source chips you can hover, and the actions underneath copy, rate and retry.
Reveal
reveal
Anything that arrives as it scrolls into view: a card, a paragraph, a section. It fades, rises a little and sharpens into focus; groups go one after another from a single trigger, and nothing inside is touched. No JavaScript animation.
Scramble Text
scramble-text
Text that resolves out of noise. A sweep crosses the string at a steady rate; characters behind it are final, characters ahead of it churn. Decoding, not glitching.
Select
select
Choose one option from a list. The trigger looks like an input; when there is room the list opens over it with the chosen option sitting where the trigger was, like a native menu on a Mac, and otherwise just below it.
Shimmer
shimmer
A band of light that passes over text while something is working. It is made from the text’s own colour, so it suits any text and anything inside it, icons included.
Signature
signature
Draws a signature, or any hand-drawn SVG, stroke by stroke at a steady pen speed, lifting between strokes. Pen centrelines are stroked; filled outlines are revealed as ink along their own path.
Sources
sources
Where an answer came from. A row of site icons, a count and the first domains, opening into the full list: numbered to match the citations in the text, each with its site, title and a line of what it said.
Split Text
split-text
Splits a string into words and characters you can style one by one. Words still wrap, spaces stay real, screen readers hear the sentence, and every piece knows its index, word and measured line.
Suggestions
suggestions
Prompts to try next, as pills or as a list of follow-ups. They arrive one after another so the eye reads them in order.
Switch
switch
An on and off that takes effect at once. The thumb slides across and stretches a little while you hold it.
Tabs
tabs
Tabs whose selected chip tightens under a press, stretches towards the tab you pick, then gathers itself, with panels that drift in from the same side. A raised chip in a tray, or a sliding underline. Built on Base UI, animated in CSS.
Tasks
tasks
The to-do list an agent is working through. A ring fills as tasks finish, the one in progress shimmers over the file it is touching, a finished one keeps what it changed at its side, and folded it is a single line naming what is happening now. It sits best in a tray rising out of the prompt input.
Text Reveal
text-reveal
Text that arrives piece by piece: characters, words or lines. Each one fades, lifts a little and sharpens from a slight blur, so it reads as settling into focus. Pure CSS, no animation library.
Text Swap
text-swap
Change a word without it blinking. The old word lifts away and blurs out as the new one rises in, and the space between them stretches to fit, so nothing beside it jumps.
Tick Slider
tick-slider
A scroll progress indicator you can scrub. A slim red needle runs along a tray of hairline ticks as the page scrolls, and dragging the needle scrolls the page. Built on Base UI, animated in CSS.
Toast
toast
A short message that rises in from just below where it rests, out of a slight blur, and leaves the same small way. Newer toasts stack in front and older ones tuck in behind, a little smaller and dimmer; hover the stack to spread it out. When a toast changes, its words and icon morph in place. A pill variant puts the whole message on one dark line, and a single manager makes each new message take the place of the last. Built on Base UI, animated in CSS.
Tool Call
tool-call
What an agent did, one row per step. A step shimmers while it runs and draws a tick when it finishes; rows with output open to show it, and a group folds the whole run into one line.
Toolbar
toolbar
A row of controls that act on one thing: buttons, toggles, a choice of one, a link or an input. Arrow keys move between them, and where you pick one of a few the highlight glides between them.
Tooltip
tooltip
A small label for a control. Give a row of controls one tooltip between them and it stays open as you move along: the label glides to the next control, changes width to fit, and the words dissolve from one to the next. Built on Base UI, animated in CSS.
Turn
turn
One exchange: what you asked, then what the agent did and said. The prompt is a bubble on the right with its attachments above it and copy and edit on hover; the reply is a column the other pieces stack into, in the order they happened.
Typewriter
typewriter
Types a list of phrases one after another, without the harshness: letters fade in and sharpen instead of popping, the rhythm is a little uneven like a person’s, and a finished phrase fades out as one instead of being backspaced.
Typing Indicator
typing-indicator
Someone is writing. Three dots that rise and settle in turn inside a bubble, or a small pill that names who is typing.
Video Hero
video-hero
A banner for a show or a launch: the episode plays behind the words, blurred to a glow that fades to black at the sides. On top sit a title, a line about it, one clear button that opens the player, and the ways to follow along.
Video Player
video-player
A silent, looping preview that opens into a near full screen player. The player has the title and a link along the top, one row of controls along the bottom, a line you can scrub, and every key you would expect. It all gets out of the way while you watch.
Voice Note
voice-note
A recorded message in a chat bubble. The waveform fills as it plays, and the play button turns into pause in one movement. Pair it with Voice Recorder and it shows the shape of what was actually said.
Voice Recorder
voice-recorder
A record button that grows into a voice note as you speak. A warm glow drifts round its edge and swells with your voice, the bars build up beside it, and stopping hands back the audio with its real waveform.
Select a component to view its code
Click on any item in the sidebar to get started
Select a component to view its information