Forms

Button

square, mono, uppercase. five tones, three sizes, plus shapes, hover motion and buttons that keep state.

print.meowda.xyz

Examples

Default

Primary

Ok

the positive decision.

Danger

Ghost

Sizes

Disabled

Block

fills its container, the way the phone screens use it.

Decision pair

deny takes a third of the row, approve takes two thirds.

Icon button

Tonal

soft fill for a secondary action.

Notched

cut corners that grow, with a shine sweep.

Bracket

open corners that grow and stretch past the edge.

Underline

link weight. the amber line draws across.

Arrow cap

the icon slot fills and keeps nudging.

Tag

pointed end, the marker spins.

Icon only

Fill sweep

Glow

Scanline

Text swap

repeat the label in two spans.

Live LED

a pulsing square says the thing is connected.

Progress

loading, then done.

Hold to confirm

press and hold for 1.2 seconds.

Stepper

digits roll up or down like a counter.

2

Segmented

a thumb springs to the chosen option.

Classes

ClassWhat it does
.btnbase button, 48px tall, 1px border
.btn.primaryaccent fill
.btn.okgreen fill
.btn.dangerred text and border
.btn.ghostno border, muted text
.btn.sm / .lg40px and 56px tall
.btn.blockfull width
.btn-rowwrapping row of buttons
.decidedeny and approve pair
.icon-btnbare 40px square icon button
.btn.tonalaccent text on a soft accent fill
.btn.fx-notchclip-path corners, animated by --fx-c
.btn.fx-brackettwo bracket pseudo elements
.btn.fx-underborderless with a drawn underline
.btn.fx-arrowput an i with the arrow inside
.btn.fx-tagpointed left edge
.btn.sq48px square, for an svg
.btn.fx-sweepamber fill slides in
.btn.fx-glowamber halo
.btn.fx-scana line sweeps while hovered
.btn.fx-swaplabel rolls up, needs two spans
.btn.fx-ledpulsing green square
.btn.fx-loadneeds .fx-fill and .t inside
.btn.fx-holdneeds .fx-fill and .t inside
.fx-steppertwo buttons with data-step and an output
.fx-segneeds .thumb and .tick, buttons use aria-pressed