Skip to content
Barua UI v0.2
Foundations

Icons

The system glyph set. Every icon is an inline SVG on a 20×20 grid — 1.5px strokes, round caps and joins, currentColor so it inherits text color, filled shapes only for playback glyphs. Click any icon to copy its markup.

Usage

Size icons with .b-icon (1.25rem), .b-icon--sm (1rem) or .b-icon--lg (1.75rem) instead of width/height attributes. Icons inherit currentColor, so they recolor with the component state — a tinted button tints its glyph for free. Decorative icons take aria-hidden="true"; icon-only buttons carry the label via aria-label.

Symbol effects

A glyph that answers an action is the cheapest feedback an interface has. Add one class to the icon rather than to the control, so a button keeps its own states. The division that matters is whether an effect plays once or repeats: one acknowledges something that just happened, the other describes something still happening. A repeating effect used as an acknowledgement is just noise.

the one-shot effects have already run — press to see them
--bounce --scale --wiggle --replace --pulse --rotate --breathe
ClassRunsUse it for
.b-icon--bounceonceAn action landed — sent, saved, added.
.b-icon--scaleonceA press was received, before the result is known.
.b-icon--wiggleonceA refusal — wrong password, locked row.
.b-icon--replaceonceThe glyph itself changed: play became pause.
.b-icon--pulserepeatsWaiting on something outside your control.
.b-icon--rotaterepeatsWork in progress with no known end.
.b-icon--breatherepeatsLive and listening — recording, connected.
On the icon, not the button
<button class="b-btn b-btn--primary">
  <svg class="b-icon b-icon--sm b-icon--bounce">…</svg>
  Send again
</button>
Accessibility. All of these stop under prefers-reduced-motion, handled once for the whole system. A repeating effect must never be the only way a state is announced — pair it with text, as the demo above pairs each glyph with its name.

Library

Fifty-nine core glyphs. Click to copy the SVG — paste it inline and add .b-icon. New icons must keep the grid, stroke and naming conventions; propose them here before using them in product.