Unclassed HTML looks like frikwork out of the box. Headings carry a proportional
vertical rhythm; block content flows with sensible spacing. Every rule here is zero-specificity
(:where()), so any .fw-* component or inline style overrides it freely.
Heading scale
h1 — Heading one
h2 — Heading two
h3 — Heading three
h4 — Heading four
h5 — Heading five
h6 — heading six
Prose — wrap long-form copy in .fw-prose for a readable measure + article rhythm
A lead paragraph sets the scene with slightly larger, relaxed type.
Body copy uses inline links, strong emphasis, italics,
highlighted text, CSS abbreviations,
inline code, Ctrl+K keys, H2O subscripts, x2
superscripts, struck inserted edits, and small print.
Design is not just what it looks like and feels like. Design is how it works.
Steve Jobs
Ordered & unordered lists
Unordered item one
Item two, with a nested list
Nested A
Nested B
Item three
First step
Second step
Third step
function greet(name) {
return `Hello, ${name}`; // preformatted block
}
Cards are glass by default. Two variants: plain, and hover + status edge.
Add data-fw-motion="lively" to any ancestor and every card inside automatically
gains breathe + ring + drop — no extra classes.
Calm (default)
Glass card
Hover + status edge
Coloured hover highlight — hover each; the border + glow use the card's status colour
Brand (default)
Success
Warning
Danger
Lively data-fw-motion="lively"
Glass card — lively
Hover + status edge — lively
Stat cards
$0
Revenue
0
Uptime %
42
Servers
30s
Poll
Forms
Full control styling is opt-in via .fw-* classes; native controls keep the
brand accent-color. Every input type is covered below.
Enter a valid email
https://
Nav tabs
Overview pane
Activity pane
Settings pane
Segmented bar — .fw-tabs--segmented, optional .fw-tab__count; active glows when lively
Card-tabs — .fw-cardtabs / .fw-cardtab; a selector styled as cards, only the active one goes lively
89
Total
55
Online
0
Offline
0
Attention
Dropdown / settings panel
Widgets
Modal & toast
Confirm action
This is a frikwork modal. Press Escape, click the backdrop, or the × to close.
Wrap wide tables in .fw-table-wrap so they scroll
horizontally on narrow screens instead of overflowing the page.
Server
Status
Load
Region
Uptime
Last check
amorphis
Online
0.42
Sydney
99.98%
30s ago
sirenia
Warn
1.87
Sydney
99.20%
30s ago
Drag to reorder sortable
Add data-fw-sortable to any container to make its direct children
reorderable — mouse and touch. A drop that changes the order fires a fw:reorder event.
Works on grids and lists.
Sortable cards — drag anywhere on a card
Revenue
Drag me
Uptime
Drag me
Servers
Drag me
Latency
Drag me
Sortable list with handles — grab the ⠿ handle; the rest of the row stays interactive
⠿Overview widget
⠿Activity feed
⠿Server table
⠿Alerts panel
Cross-container — give lists the same data-fw-sortable="board"; drag cards between them
To do
Draft release notes
Review PR #42
Update changelog
Done
Ship v0.0.11
Fires fw:reorder with fromContainer / toContainer.
In React, add data-fw-sortable-controlled so the DOM reverts on drop and you apply the move from the event in state.
Lightbox images
Add data-fw-lightbox to an image to open it full-screen on click. Give several
images the same value to form a gallery with prev/next arrows and ← → keys. Esc or a backdrop click closes it.
Mobile menu drill-down
A right-slide drawer with drill-down panels for multi-level navigation
(top → sub → sub-sub → sub-sub-sub). On phones it's the hamburger in the header; the button below opens
the same menu at any width so you can try it here. Tap Components → Cards → By region
to drill four levels deep, then use ‹ Back or Esc.
Accordion
▸ Section one
Native <details> accordion body.
▸ Section two
Second body.
Progress, spinner, tooltip
Hover me
Lively motion live sample
This grid is wrapped in data-fw-motion="lively", so its plain
.fw-cards automatically drop in — last card first, first card
last — then settle into a slow breathing glow with a conic border
ring travelling the edge. Hit replay to watch the staggered entrance again. Everything disables
under prefers-reduced-motion.
Card 1
Drops in last.
Card 2
Third to land.
Card 3
Second to land.
Card 4
Drops in first.
Extras (opt-in)
Load frikwork-extras.js and call frikwork.hero(cardEl, {report:'Up $505'}) for the takeover effect.
Settings
A generic focus-trapped off-canvas panel for arbitrary content.