Chips, tags, badges. Small surfaces, big chains.
One .lsd-chip component with independent size, tone,
and shape modifier classes. 8 style variants · animation chains
via .lsd-fx--* — chips are buttons' quieter cousins: stack
what you need, drop what you don't.
.lsd-chip
Layout + tokens. --chip-bg, --chip-fg, --chip-border,
--chip-radius, --chip-pad-x, --chip-pad-y,
--chip-font, --chip-icon-size are CSS variables — tones
and sizes override them.
sm / md (default) / lg
Size mods shift padding + font-size only. Tone stays whatever you pair it with.
<span class="lsd-chip lsd-chip--sm">Small</span> <span class="lsd-chip lsd-chip--lg">Large</span>
solid / outlined / soft / ghost
Tone modifiers swap --chip-bg, --chip-fg, and --chip-border. The shape doesn't change.
<span class="lsd-chip lsd-chip--outlined">Outlined</span> <span class="lsd-chip lsd-chip--soft">Soft</span>
default / pill
Shape mod alters radius. Pill goes fully rounded; default uses an 8px radius.
<span class="lsd-chip lsd-chip--pill">Pill</span>
Eight chip styles
Each is one class. Chainable with .lsd-fx--* animations and any tone/size/shape.
Closable
Has a × button on the right. Clicking it removes the chip with a pop-out animation.
<span class="lsd-chip lsd-chip--closable"> Design <button class="lsd-chip__close">✕</button> </span>
Selectable
Toggleable. Selected state fills the chip and reveals a check.
<button class="lsd-chip lsd-chip--outlined
lsd-chip--selectable"
aria-pressed="false">
<span class="lsd-chip__check">✓</span>
<span>Tokens</span>
</button>
Avatar leading
Leading 22px circular avatar slot (16px sm / 26px lg). Great for user/team filters.
<span class="lsd-chip lsd-chip--avatar
lsd-chip--pill">
<span class="lsd-chip__avatar">AB</span>
Alice B.
</span>
Status dot
Leading pulsing dot — online / away / offline. Pairs with .lsd-fx--glow-pulse.
<span class="lsd-chip lsd-chip--status-dot
lsd-fx--glow-pulse"
data-status="online">
<span class="lsd-chip__dot"></span> Online
</span>
Number badge
Monospace, tabular, tight. For unread counts, version numbers, runtime markers.
<span class="lsd-chip lsd-chip--count
lsd-chip--pill">12</span>
Icon prefix
Decorative leading icon. Sized by --chip-icon-size so it scales with the chip.
<span class="lsd-chip lsd-chip--icon-leading"> <span class="lsd-chip__icon">★</span> Favourite </span>
Gradient rim
Animated conic-gradient border. The fill stays calm; the edge does the talking.
<span class="lsd-chip lsd-chip--gradient-rim
lsd-chip--pill">Featured</span>
Frosted glass
Backdrop-blur with a hairline inset. Reads on busy surfaces.
<span class="lsd-chip lsd-chip--glass
lsd-chip--pill">Glass</span>
Tone × style
Tone is orthogonal to style. Each style chip rendered at each tone (~16 chips) — drop one into a tone, it adopts; drop a tone into a style, the style holds.
Chain .lsd-fx--*
Animations are universal — the same classes that drive buttons drive chips. The file
/framework-dist/lsd-buttons.css hoists them out of the button namespace.
Lift on hover
Translates up with a coloured drop shadow. Returns instantly on click.
<span class="lsd-chip lsd-chip--solid
lsd-fx--lift">Lift me</span>
Pop scale
Overshoots on hover, settles back on press. Spring easing.
<span class="lsd-chip lsd-chip--soft
lsd-fx--pop">Pop</span>
Wobble shake
Elastic rotate + translate shake on hover. Brief, plays once.
<span class="lsd-chip lsd-fx--wobble"> Wobble </span>
Shimmer sweep
A specular highlight sweeps across the chip on hover.
<span class="lsd-chip lsd-chip--solid
lsd-fx--shimmer">Shimmer</span>
Breathing glow
Continuous accent halo. Great on live-status chips.
<span class="lsd-chip lsd-chip--solid
lsd-fx--glow-pulse">Live</span>
Slide fill
Accent floods up from the bottom on hover, label flips to dark.
<span class="lsd-chip lsd-fx--slide-fill
lsd-chip--pill">Slide fill</span>
.lsd-chip--draw-in
Brand-new chip-only entrance. The chip starts at width 0 and animates open to its natural width; the label fades in mid-way. Perfect for chips that appear dynamically — applied filters, new tags, just-added members.
Click "add filter" to draw a chip in
Each click appends a chip with the draw-in animation. Each chip has a × that pops it back out.
<span class="lsd-chip lsd-chip--closable
lsd-chip--draw-in">
Motion
<button class="lsd-chip__close">✕</button>
</span>