Components
Every building block in the kit, working. Class names are listed with each one; see README for the full reference.
Colors
Semantic color variables from base.css. Each one has a light and a dark value.
--brand--brand-soft--accent--ink--bg--surface-2--success--warning--danger--info--series-1--series-2Typography
Schibsted Grotesk for everything, JetBrains Mono for code.
Display
Heading one .h1
Heading two .h2
Heading three .h3
Lead paragraph for introductions. .lead
Body text at 15px with a 1.6 line height, set for comfortable reading in dense app screens.
Small muted text for hints and metadata. .text-sm .muted
Buttons
.btn plus a variant: .btn-primary, .btn-secondary, .btn-ghost, .btn-soft, .btn-ink, .btn-danger. Sizes .btn-sm and .btn-lg.
Inputs
.field wraps .label, .input / .select / .textarea, .hint and .field-error.
Checkboxes, radios and toggles
.check, .switch (with role="switch") and .segmented.
Toggles
Segmented control
Badges and avatars
.badge with -brand, -success, -warning, -danger, -info, -accent, -outline, .badge-dot. Initials avatars use .avatar .av-1….av-6.
Alerts
.alert with .alert-info, -success, -warning, -danger. Dismiss one, then bring them back.
Toasts
Call Stackly.toast({ title, message, type }) or add data-toast to any button. Announced politely to screen readers.
Modal
.modal with role="dialog". Focus is trapped inside, Esc closes it and focus returns to the button that opened it.
Tabs
[data-tabs] with role="tablist". Use the arrow keys, Home and End. Add .tabs-pills for the pill style.
The project overview: goal, owner and key dates.
41 tasks, 34 done. Seven left before launch.
12 files attached, 180 MB in total.
183 tasks completed this week.
712 tasks completed this month.
2,046 tasks completed this quarter.
Dropdown menu
[data-dropdown] with a trigger and .menu[role="menu"]. Arrow keys move, Esc closes and returns focus.
Tooltip
.has-tooltip + .tooltip[role="tooltip"], linked with aria-describedby. Shows on hover and focus; Esc hides it.
Progress
.progress with --value, variants -warning, -danger, -indeterminate, and .progress-ring.
Skeleton loaders
.skeleton with -text, -title, -circle. Mark the container aria-busy="true" while loading.
Moved “Write the launch announcement” to Done and left a comment for the team.
Empty states
.empty with an illustration, a title that says what's missing and one action.
No projects yet
Projects hold your boards, docs and timelines. Start from a template or a blank board.
Accordion
[data-accordion] with buttons that control regions. Use data-accordion="single" to keep one open.
What shipped last week, what is late and what is due this week, for each person.
Yes, under Settings, Notifications.
Delete “Q4 planning”?
26 tasks and 3 docs will be moved to the trash for 30 days, then deleted.