{"system":{"name":"Krown Design Manager","subtitle":"Design System","version":"2.7.0","host":"design.krownmanager.com","consumers":[{"host":"dealer.krownmanager.com","status":"planned"},{"host":"marketing.krownmanager.com","status":"active"}]},"consumers":["dealer.krownmanager.com","marketing.krownmanager.com"],"changes":[],"changelog":[{"version":"2.7.0","date":"2026-06-12","notes":["Motion Lab evaluation COMPLETE. Final promotions: shared surface morph and snap-into-place reorder. 26 core behaviours, 0 pending; magnetic buttons and blanket press coverage stand retired (now a documented ledger — RETIRED_BEHAVIORS in the registry and feed).","Every behaviour integrated into a real home: Overview gained the system-pulse hero (tilt + glow + rolling registry counters); Elements demos icon micro-motions on buttons; Objects/Pages workload metrics roll in and fill with sheen; Pages review cards lift; Components gained five sections — shared surface morph, reorderable widgets, loading states, AI generation, completion celebration — plus the ambient empty state; Dialogs gained the parallax drawer and spatial depth.","New reusable primitives: growFrom/shrinkTo/fadeIn ($lib/motion/morph) and createSnapDrag ($lib/motion/snap) — the morph and drag choreographies as library code for consumer apps.","Motion Lab reset to all-clear: forwarding addresses for every behaviour, the retired ledger, and the process for staging the next batch."]},{"version":"2.6.0","date":"2026-06-12","notes":["Card lift: phantom-hover guard. When a collapsing surface leaves the cursor resting over an unrelated card, that card no longer lifts — hover is muted (.km-hover-muted) until the pointer actually moves, and the just-viewed card carries the lift (.km-lift--active) so attention returns to where the viewer’s mind already is. (Browsers cannot move the cursor; this delivers the intent the honest way.)"]},{"version":"2.5.0","date":"2026-06-12","notes":["Motion Lab review round 4 (Mark): PROMOTED to core — icon micro-motions (hover previews, event plays in full; every glyph owns one move).","Shared-layout morph collapse re-choreographed: the PANEL itself shrinks back into the card’s slot (content fading out over the first third); the small card’s display only appears once the surface has arrived at small size. The returning type never balloons.","Snap-into-place drag made foolproof: drag listeners moved to the window — reordering moves the row’s DOM node, which silently released pointer capture and could strand the row mid-air. Release now always lands; window blur is a safety net."]},{"version":"2.4.0","date":"2026-06-12","notes":["Motion Lab review round 3 (Mark): the settled rule — PRESS DIPS, SELECTION SLIDES. Buttons and interactive cards keep the original V1 buttery press, unchanged. Choosing between options is never a press: the sliding marker carries the change.","RETIRED the press-coverage extension (facet/tab/nav active scaling, whole-frame toggle dip, tonal option presses) and the harder-edged .km-toggle itself.","NEW: .km-seg--ink — the view-toggle voice. The black portion is now the thumb, gliding from Table to Cards and back on the same recipe as the tab underline; the selected label turns white as the thumb arrives. All view toggles ride it."]},{"version":"2.3.0","date":"2026-06-12","notes":["Motion Lab review round 2 (Mark): PROMOTED to core — 3D tilt (pairs with cursor glow on hero surfaces), spatial modal (2% recede), ambient empty state.","Press physics: contained controls (view toggle, segmented control) now press as ONE OBJECT — the whole frame dips like a card while the chosen option shades. As noticeable as any press, and a fill can never break its boundary.","Icon micro-motions: one grammar everywhere — HOVER previews every glyph’s move (bell swings, refresh half-turns, trash leans, upload rises, accordion caret nudges toward where it will go); the glyph’s own event plays it in full.","Shared-layout morph rebuilt as a TRUE FLIP: one continuous element grows from the card’s exact footprint to the detail panel on the new --dur-grow token (1100ms smooth / 420 fast / 1700 calm) — the boundary is visible the whole way; content fades in after the surface lands.","Snap-into-place drag: direct index targeting (fast multi-slot drags land in one splice, no chained swaps), quicker neighbour give-way. No more mid-drag sticking."]},{"version":"2.2.0","date":"2026-06-12","notes":["Motion Lab review round 1 (Mark): PROMOTED to core — card lift, cursor-follow glow (now glass-harmonised: glass-hi core blending to brand tone), drawer parallax, status celebration, AI generation motion, command palette (now global — ⌘K anywhere, navigation + pace commands).","RETIRED — magnetic buttons (effect, action, classes and registry entry removed).","TUNED, still in lab — 3D tilt strengthened to ±4.5° + hover shadow; spatial modal recede deepened to 2%; shared-layout morph slowed to --dur-curve so the edges visibly travel; snap-into-place drag smoothed (dragged item exempt from FLIP); ambient empty state amplified (visible drift + ok-green ping dot); icon micro-motions unified — one grammar, custom accent per glyph (bell swing, refresh spin, trash lean, upload hop).","Press physics rule amended: options contained in a shared frame (view toggle, segmented control) press tonally instead of scaling, so a fill never breaks its boundary. Value roll now lands the moment the remainder falls under half a digit — no stopped-then-flips-once tail."]},{"version":"2.1.0","date":"2026-06-12","notes":["Motion Lab: sixteen staged behaviours from the game-like-but-quiet brainstorm — card lift, magnetic buttons, route transitions, shared-layout morph, 3D tilt, meter inertia + sheen, depth skeletons, command-palette spawn, drawer parallax, status celebrations, cursor-follow glow, icon micro-motions, spatial modals, ambient empty states, AI generation motion, snap-into-place reordering. Each carries a stage (core/lab) and a usage contract; evaluate at /motion-lab.","New primitives: magnetic/tilt/glow actions, Drawer, CommandPalette, Meter, CountUp, Skeleton, CheckDraw components; press physics extended to facets, toggles, tabs and nav items.","Route transitions ride the View Transitions API with system tokens; the no-blurred-scrim and brand-tones-only laws hold across all new effects."]},{"version":"2.0.0","date":"2026-06-12","notes":["Re-architected as a SvelteKit application — the system is now data first: tokens, icons, components and motion are a typed registry from which the CSS, the docs, the audit and the distribution endpoints are generated.","Doc shell (nav, labels, hover and selection states) rebuilt from the system’s own tokens — removed all hardcoded chrome colours.","New tokens: border widths (--border-w, --border-w-hairline, --border-w-focus), z-index scale (--z-shell, --z-pop, --z-overlay, --z-toast), micro spacing (--space-05, --space-15), on-dark additions (--ondark-ink-mute, --ondark-active), glass input/inset tokens promoted from dialog one-offs.","Retired the V1 highlight-options token fork — V2 is the single design language.","Archived shipped explorations (black action, orange & mic, live tile fill, status outline, typography options)."]},{"version":"1.0.0","date":"2026-06-11","notes":["V1 draft built in Claude Design AI (Claude Opus 4.8). Reviews module promoted to core with all ten edge cases resolved."]}],"tokens":{"groups":[{"id":"brand","title":"Brand","blurb":"Approved internal brand orange (locked). Krown’s public mark is yellow/gold; internal tools use this orange + black. Orange is brand and wayfinding only — never a button fill."},{"id":"ink","title":"Ink","blurb":"Near-black warm text ramp. Body and labels never drop below regular weight."},{"id":"surface","title":"Surfaces & borders","blurb":"Warm neutral canvas, card and inset surfaces with hairline and emphasized borders."},{"id":"ondark","title":"On-dark","blurb":"Controls and hairlines on the ink-900 header and nav — the one place the UI sits on near-black, so the usual neutrals invert."},{"id":"status","title":"Status","blurb":"Text colour + tint background pairs. Status is never colour-only — every status carries a word."},{"id":"module","title":"Module accents","blurb":"Quiet accents for module headers and labels only. Shared lightness/chroma, varied hue. Never fill large areas."},{"id":"font","title":"Font families","blurb":"Native system stack for everything readable; matching system monospace for IDs, labels and timestamps. No web fonts load — the UI feels instant and native."},{"id":"type-scale","title":"Type scale","blurb":"Size + line-height pairs. Headings run heavy with a real size jump to body."},{"id":"weight","title":"Weights","blurb":"Body floor is regular — never go thinner."},{"id":"tracking","title":"Letter spacing","blurb":"Tracking by role, eased for SF metrics."},{"id":"spacing","title":"Spacing","blurb":"4px base scale, with two micro steps for fine rhythm."},{"id":"radius","title":"Radius","blurb":"V2 softened scale — rounder, more tactile."},{"id":"border","title":"Border widths","blurb":"Stroke weights are a decision, not a magic number."},{"id":"size","title":"Control sizes","blurb":"The few fixed heights everything aligns to — header, controls, tiles."},{"id":"elevation","title":"Elevation","blurb":"Use sparingly — borders first. Shadows are reserved for things that float."},{"id":"glass","title":"Material / glass","blurb":"The premium translucent surface for things that FLOAT over the page: dialogs, menus, popovers. The page behind stays sharp; only a floating surface frosts what is directly beneath it."},{"id":"z-index","title":"Z-index","blurb":"Stacking order is a named scale, not an arms race."},{"id":"focus","title":"Focus","blurb":"One focus ring everywhere — surface gap + brand line."},{"id":"ease","title":"Easing","blurb":"Pick easing by what the element is DOING. All curves decelerate for the buttery glide; they never change with pace."},{"id":"duration","title":"Duration","blurb":"Pick duration by how BIG the move is. Anchored on the approved 280ms card-hover decelerate. Fast and Calm paces rescale every duration; easing stays constant."},{"id":"alias","title":"Legacy aliases","blurb":"Kept for back-compat; new code uses the explicit token."}],"tokens":[{"name":"--brand","value":"#EC6A1E","description":"Primary brand orange — brand mark, wayfinding","group":"brand"},{"name":"--brand-press","value":"#C9540F","description":"Pressed / hover-dark brand","group":"brand"},{"name":"--brand-tint","value":"#FCEBDD","description":"Faint wash behind brand things","group":"brand"},{"name":"--brand-ink","value":"#2A1606","description":"Near-black text used ON orange","group":"brand"},{"name":"--ink-900","value":"#1B1A18","description":"Primary text","group":"ink"},{"name":"--ink-700","value":"#3B3833","description":"Strong body / headings on surface","group":"ink"},{"name":"--ink-500","value":"#6B6862","description":"Secondary text","group":"ink"},{"name":"--ink-400","value":"#8C887F","description":"Muted / placeholder","group":"ink"},{"name":"--ink-800","value":"#322E29","description":"Hover lift on ink-900 fills (primary button hover)","group":"ink"},{"name":"--ink-inverse","value":"#FFFFFF","description":"Text on ink-900 fills","group":"ink"},{"name":"--bg","value":"#F6F5F1","description":"App canvas","group":"surface"},{"name":"--surface","value":"#FFFFFF","description":"Cards, panels","group":"surface"},{"name":"--surface-2","value":"#FBFAF7","description":"Alt rows, inset wells","group":"surface"},{"name":"--surface-3","value":"#F1EFEA","description":"Deeper inset / hover","group":"surface"},{"name":"--border","value":"#E6E3DD","description":"Hairline","group":"surface"},{"name":"--border-strong","value":"#D4D0C8","description":"Emphasized divider / input edge","group":"surface"},{"name":"--ondark-line","value":"#3A3833","description":"Outlined control border / hairline on dark","group":"ondark"},{"name":"--ondark-edge","value":"#000000","description":"Hard edge under the ink-900 header","group":"ondark"},{"name":"--ondark-ink","value":"#FFFFFF","description":"Primary text & icons on dark","group":"ondark"},{"name":"--ondark-ink-2","value":"#CFCCC4","description":"Secondary text on dark — nav links, header actions","group":"ondark"},{"name":"--ondark-ink-dim","value":"#B6B2A9","description":"Tertiary / inactive text on dark (resting tabs)","group":"ondark"},{"name":"--ondark-ink-mute","value":"#7D7A72","description":"Muted meta / group labels on dark","group":"ondark"},{"name":"--ondark-hover","value":"rgba(255,255,255,0.07)","description":"Subtle fill on hover","group":"ondark"},{"name":"--ondark-active","value":"rgba(255,255,255,0.11)","description":"Selected / active fill on dark","group":"ondark"},{"name":"--ok","value":"#1E7A48","description":"Published / live / done","group":"status"},{"name":"--ok-tint","value":"#E3F2E9","description":"Tint behind ok status","group":"status"},{"name":"--ok-tint-hover","value":"#D6EBDD","description":"Hover on ok-tint fills (live platform tile)","group":"status"},{"name":"--manual","value":"#9A6608","description":"Manual desk task / pending","group":"status"},{"name":"--manual-tint","value":"#FAEFD3","description":"Tint behind manual status","group":"status"},{"name":"--manual-ink","value":"#6B480A","description":"Readable manual text on manual-tint (banners)","group":"status"},{"name":"--manual-line","value":"#EAD49B","description":"Manual banner border","group":"status"},{"name":"--block","value":"#B42318","description":"Blocked / error","group":"status"},{"name":"--block-tint","value":"#FBE7E4","description":"Tint behind blocked status","group":"status"},{"name":"--block-ink","value":"#7D1A12","description":"Readable blocked text on block-tint (banners)","group":"status"},{"name":"--block-line","value":"#E3B6B1","description":"Blocked banner / danger button border","group":"status"},{"name":"--skip","value":"#6B6862","description":"Neutral / skipped / draft","group":"status"},{"name":"--skip-tint","value":"#ECEAE4","description":"Tint behind neutral status","group":"status"},{"name":"--m-reviews","value":"#2C7A6E","description":"Reviews module accent","group":"module"},{"name":"--m-reviews-tint","value":"#E2F0ED","description":"Reviews tint","group":"module"},{"name":"--m-photos","value":"#6A53AE","description":"Photos module accent","group":"module"},{"name":"--m-photos-tint","value":"#ECE8F6","description":"Photos tint","group":"module"},{"name":"--m-translation","value":"#A23E63","description":"Translation module accent","group":"module"},{"name":"--m-translation-tint","value":"#F6E6ED","description":"Translation tint","group":"module"},{"name":"--m-locations","value":"#E0A100","description":"Locations accent — Krown brand yellow","group":"module"},{"name":"--m-locations-tint","value":"#FBF0CE","description":"Locations tint","group":"module"},{"name":"--m-updates","value":"#9A5B2A","description":"Updates module accent","group":"module"},{"name":"--m-updates-tint","value":"#F3E9DF","description":"Updates tint","group":"module"},{"name":"--m-intake","value":"var(--brand)","description":"Intake = brand orange (the front door reuses the brand mark)","group":"module"},{"name":"--m-intake-tint","value":"var(--brand-tint)","description":"Intake tint = brand tint","group":"module"},{"name":"--font-ui","value":"ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif","description":"Native system stack — cleaner at dense sizes, zero web-font load","group":"font"},{"name":"--font-mono","value":"ui-monospace, \"SF Mono\", \"SFMono-Regular\", Menlo, Consolas, \"Liberation Mono\", monospace","description":"Matching system monospace — IDs, labels, timestamps","group":"font"},{"name":"--text-display","value":"48px","description":"Cover / hero title","group":"type-scale"},{"name":"--lh-display","value":"50px","description":"Display line-height","group":"type-scale"},{"name":"--text-page","value":"30px","description":"Route / page title","group":"type-scale"},{"name":"--lh-page","value":"36px","description":"Page line-height","group":"type-scale"},{"name":"--text-section","value":"19px","description":"Section title","group":"type-scale"},{"name":"--lh-section","value":"25px","description":"Section line-height","group":"type-scale"},{"name":"--text-card","value":"14px","description":"Card title (heavy, small)","group":"type-scale"},{"name":"--lh-card","value":"20px","description":"Card title line-height","group":"type-scale"},{"name":"--text-body","value":"14px","description":"Body text","group":"type-scale"},{"name":"--lh-body","value":"21px","description":"Body line-height","group":"type-scale"},{"name":"--text-sm","value":"13px","description":"Small body / control text","group":"type-scale"},{"name":"--lh-sm","value":"19px","description":"Small line-height","group":"type-scale"},{"name":"--text-meta","value":"12px","description":"Meta / timestamps","group":"type-scale"},{"name":"--lh-meta","value":"16px","description":"Meta line-height","group":"type-scale"},{"name":"--text-micro","value":"11px","description":"Micro labels, uppercase rows","group":"type-scale"},{"name":"--lh-micro","value":"15px","description":"Micro line-height","group":"type-scale"},{"name":"--text-ui-lg","value":"15px","description":"Header brand name / large control glyphs","group":"type-scale"},{"name":"--w-regular","value":"400","description":"Body floor — never go thinner","group":"weight"},{"name":"--w-medium","value":"500","description":"Medium","group":"weight"},{"name":"--w-semi","value":"600","description":"Semibold — control labels","group":"weight"},{"name":"--w-bold","value":"700","description":"Bold — card titles","group":"weight"},{"name":"--w-heavy","value":"800","description":"Fat headings","group":"weight"},{"name":"--track-label","value":"0.06em","description":"Uppercase row labels","group":"tracking"},{"name":"--track-tight","value":"-0.015em","description":"Page / section titles","group":"tracking"},{"name":"--track-heavy","value":"-0.02em","description":"Big fat display headings (eased for SF’s wider metrics)","group":"tracking"},{"name":"--space-05","value":"2px","description":"Micro nudge — tightest vertical rhythm","group":"spacing"},{"name":"--space-1","value":"4px","description":"Base unit","group":"spacing"},{"name":"--space-15","value":"6px","description":"Micro step — chip gaps, label margins","group":"spacing"},{"name":"--space-2","value":"8px","description":"2× base","group":"spacing"},{"name":"--space-3","value":"12px","description":"3× base","group":"spacing"},{"name":"--space-4","value":"16px","description":"4× base","group":"spacing"},{"name":"--space-5","value":"20px","description":"5× base","group":"spacing"},{"name":"--space-6","value":"24px","description":"6× base","group":"spacing"},{"name":"--space-8","value":"32px","description":"8× base","group":"spacing"},{"name":"--space-10","value":"40px","description":"10× base","group":"spacing"},{"name":"--space-12","value":"48px","description":"12× base","group":"spacing"},{"name":"--space-16","value":"64px","description":"16× base","group":"spacing"},{"name":"--radius-xs","value":"4px","description":"Chips, dots, status tiles","group":"radius"},{"name":"--radius-sm","value":"9px","description":"Inputs, buttons","group":"radius"},{"name":"--radius-md","value":"13px","description":"Cards, panels","group":"radius"},{"name":"--radius-lg","value":"18px","description":"Large containers, dialogs","group":"radius"},{"name":"--radius-pill","value":"999px","description":"Pills, fully round","group":"radius"},{"name":"--border-w","value":"1px","description":"Standard stroke — borders, dividers, outlines","group":"border"},{"name":"--border-w-hairline","value":"0.5px","description":"Hairline on glass surfaces","group":"border"},{"name":"--border-w-focus","value":"2px","description":"Focus ring line weight","group":"border"},{"name":"--size-header","value":"56px","description":"App header height","group":"size"},{"name":"--size-ctl","value":"34px","description":"Standard control height — buttons, inputs, facets","group":"size"},{"name":"--size-ctl-sm","value":"28px","description":"Small control height","group":"size"},{"name":"--size-tile","value":"26px","description":"Platform tile / brand mark","group":"size"},{"name":"--size-sidenav","value":"232px","description":"Left rail width — the .km-sidenav column","group":"size"},{"name":"--shadow-sm","value":"0 1px 2px rgba(27,26,24,0.05)","description":"Resting card","group":"elevation"},{"name":"--shadow-md","value":"0 4px 12px rgba(27,26,24,0.10), 0 1px 3px rgba(27,26,24,0.06)","description":"Hover lift","group":"elevation"},{"name":"--shadow-pop","value":"0 8px 28px rgba(27,26,24,0.16)","description":"Floating overlays","group":"elevation"},{"name":"--glass-bg","value":"rgba(252,251,249,0.78)","description":"Balanced — glassy yet soft over busy content","group":"glass"},{"name":"--glass-bg-solid","value":"rgba(252,251,249,0.92)","description":"Denser, for tall / legible bodies","group":"glass"},{"name":"--glass-blur","value":"50px","description":"Backdrop blur radius","group":"glass"},{"name":"--glass-saturate","value":"135%","description":"Backdrop saturation boost","group":"glass"},{"name":"--glass-border","value":"rgba(255,255,255,0.6)","description":"Bright glass edge","group":"glass"},{"name":"--glass-hi","value":"rgba(255,255,255,0.6)","description":"Inset top highlight","group":"glass"},{"name":"--glass-shadow","value":"0 1px 0 var(--glass-hi) inset, 0 16px 44px rgba(27,26,24,0.16), 0 2px 8px rgba(27,26,24,0.06)","description":"Composite glass shadow — highlight + deep soft drop","group":"glass"},{"name":"--glass-input-bg","value":"rgba(255,255,255,0.62)","description":"Frosted input resting on glass","group":"glass"},{"name":"--glass-input-bg-focus","value":"rgba(255,255,255,0.92)","description":"Frosted input focused — denser","group":"glass"},{"name":"--glass-input-line","value":"rgba(27,26,24,0.12)","description":"Hairline input edge on glass","group":"glass"},{"name":"--glass-inset-line","value":"rgba(27,26,24,0.07)","description":"Hairline divider inside glass (receipt rows)","group":"glass"},{"name":"--glass-inset-bg","value":"rgba(255,255,255,0.16)","description":"Inset well on glass (receipt card)","group":"glass"},{"name":"--z-shell","value":"100","description":"App shell chrome — header, nav","group":"z-index"},{"name":"--z-pop","value":"600","description":"Popovers, dropdown menus","group":"z-index"},{"name":"--z-overlay","value":"1000","description":"Dialog scrim + dialog","group":"z-index"},{"name":"--z-toast","value":"1400","description":"Toasts / audit badges above everything","group":"z-index"},{"name":"--focus-ring","value":"0 0 0 2px var(--surface), 0 0 0 4px var(--brand)","description":"One focus ring everywhere — surface gap + brand line","group":"focus"},{"name":"--ease-standard","value":"cubic-bezier(0.32, 0.72, 0, 1)","description":"Workhorse — smooth, soft landing","group":"ease"},{"name":"--ease-out","value":"cubic-bezier(0.22, 1, 0.36, 1)","description":"ENTERING — buttery quint decelerate","group":"ease"},{"name":"--ease-in","value":"cubic-bezier(0.64, 0, 0.78, 0)","description":"LEAVING — eases up, accelerates away","group":"ease"},{"name":"--ease-in-out","value":"cubic-bezier(0.76, 0, 0.24, 1)","description":"MOVING between two on-screen states","group":"ease"},{"name":"--ease-settle","value":"cubic-bezier(0.34, 1.40, 0.64, 1)","description":"RARE tiny overshoot — confirm / commit only","group":"ease"},{"name":"--ease-glide","value":"cubic-bezier(0.16, 1, 0.30, 1)","description":"SIGNATURE long expo decelerate — press & state-morph commits","group":"ease"},{"name":"--ease-smooth","value":"cubic-bezier(0.45, 0, 0.55, 1)","description":"EVEN symmetric — colour crossfades that reveal gradually","group":"ease"},{"name":"--dur-instant","value":"150ms","fast":"70ms","calm":"240ms","description":"Toggle, single dot flip","group":"duration"},{"name":"--dur-fast","value":"210ms","fast":"90ms","calm":"340ms","description":"Hover colour, focus, small state change","group":"duration"},{"name":"--dur-base","value":"280ms","fast":"120ms","calm":"460ms","description":"Chip morph, content swap, card hover","group":"duration"},{"name":"--dur-slow","value":"400ms","fast":"170ms","calm":"660ms","description":"List settle (FLIP), larger surfaces","group":"duration"},{"name":"--dur-morph","value":"520ms","fast":"210ms","calm":"840ms","description":"State-morph commit (publish) — deliberate","group":"duration"},{"name":"--dur-tag","value":"700ms","fast":"260ms","calm":"1120ms","description":"Status-tag colour crossfade — slow, even reveal","group":"duration"},{"name":"--dur-page","value":"560ms","fast":"200ms","calm":"900ms","description":"Route / tab transitions, smooth scroll","group":"duration"},{"name":"--dur-curve","value":"760ms","fast":"300ms","calm":"1180ms","description":"Easing-player dot — long enough to FEEL the curve","group":"duration"},{"name":"--dur-grow","value":"1100ms","fast":"420ms","calm":"1700ms","description":"Shared-surface growth — slow enough to track the edges from card to detail","group":"duration"},{"name":"--dur-roll","value":"1800ms","fast":"720ms","calm":"2900ms","description":"Value count roll — long dramatic settle","group":"duration"},{"name":"--dur-scroll-min","value":"520ms","fast":"220ms","calm":"800ms","description":"In-page scroll, short hops","group":"duration"},{"name":"--dur-scroll-max","value":"1100ms","fast":"420ms","calm":"1700ms","description":"In-page scroll, long hauls","group":"duration"},{"name":"--stagger","value":"55ms","fast":"20ms","calm":"95ms","description":"Stagger step for lists/grids (cap the count)","group":"duration"},{"name":"--ease","value":"var(--ease-standard)","description":"Legacy alias of --ease-standard","group":"alias","alias":true},{"name":"--dur","value":"var(--dur-fast)","description":"Legacy alias of --dur-fast","group":"alias","alias":true}]},"components":{"product":[{"selector":".km","title":"Product base","description":"Reset-ish base for product surfaces — UI font, ink, body size, antialiasing.","layer":"element","file":"components/base.css"},{"selector":".km-subtext","title":"Subtext","description":"The system’s one treatment for secondary descriptive text — small, regular, ink-500.","layer":"element","file":"components/base.css"},{"selector":".km-header","title":"App header","description":"The ink-900 bar — brand, tabs and actions on the on-dark token family.","layer":"component","file":"components/header.css","variants":[".km-brand",".km-brand-mark",".km-brand-name",".km-brand-sub",".km-header-spacer",".km-header-action"]},{"selector":".km-tab","title":"Top tab","description":"Header navigation tab — brand underline marks the current page.","layer":"component","file":"components/header.css","variants":[".km-tabs",".km-tab[aria-current=\"page\"]"]},{"selector":".km-sidenav","title":"Side nav","description":"The product left rail — ink-900 with the on-dark family, brand spine on the active item. Persistent on desktop; slides in as a drawer (--dur-page/--ease-in-out) with a scrim below 900px.","layer":"component","file":"components/sidenav.css","variants":[".km-sidenav__brand",".km-sidenav__mark",".km-sidenav__name",".km-sidenav__nav",".km-sidenav__group",".km-sidenav__link",".km-sidenav__link[aria-current=\"page\"]",".km-sidenav__footer",".km-sidenav-scrim",".km-topbar",".km-topbar__menu"]},{"selector":".km-btn","title":"Button","description":"The action primitive. Primary is black + white (orange is wayfinding, never a fill).","layer":"element","file":"components/button.css","variants":[".km-btn--primary",".km-btn--secondary",".km-btn--quiet",".km-btn--danger",".km-btn--ondark",".km-btn--sm",".km-btn--icon"]},{"selector":".km-link","title":"Link","description":"Inline link — burnt orange, underline on hover.","layer":"element","file":"components/button.css","variants":[".km-link--quiet",".km-link--external"]},{"selector":".km-card","title":"Card / panel","description":"The container base — surface, hairline, radius-md.","layer":"component","file":"components/card.css","variants":[".km-card__head",".km-card__title",".km-card__body",".km-card--accent"]},{"selector":".km-loc","title":"Location card","description":"Shop card — name, address, ID, platform tiles, footer. Lifts on hover.","layer":"component","file":"components/card.css","variants":[".km-loc__top",".km-loc__name",".km-loc__addr",".km-loc__id",".km-loc__platforms",".km-loc__foot"]},{"selector":".km-field","title":"Detail field row","description":"Label/value grid row — mono uppercase key, hairline divider.","layer":"object","file":"components/card.css","variants":[".km-field__label",".km-field__value"]},{"selector":".km-chip","title":"Status chip","description":"Status word + tint pair. Status is never colour-only.","layer":"element","file":"components/chip.css","variants":[".km-chip__dot",".km-chip--ok",".km-chip--manual",".km-chip--block",".km-chip--skip",".km-chip--plain"]},{"selector":".km-plat","title":"Platform tile","description":"Square platform mark. Live = ok-tint fill (the fill IS the signal); not-live carries a corner dot naming the work left.","layer":"element","file":"components/chip.css","variants":[".km-plat--live",".km-plat--off",".km-plat__g",".km-plat__status",".km-plat__status--ok",".km-plat__status--manual",".km-plat__status--block",".km-plat__status--none",".km-plat__status--none-match"]},{"selector":".km-assignee","title":"Assignee pill","description":"Avatar + name for multi-user attribution.","layer":"object","file":"components/chip.css","variants":[".km-avatar"]},{"selector":".km-label","title":"Field label","description":"Form label — meta size, semibold.","layer":"element","file":"components/form.css"},{"selector":".km-input","title":"Text input","description":"Single-line input — brand focus wash.","layer":"element","file":"components/form.css"},{"selector":".km-textarea","title":"Textarea","description":"Multi-line input.","layer":"element","file":"components/form.css"},{"selector":".km-select","title":"Select","description":"Native select restyled with the system caret glyph.","layer":"element","file":"components/form.css"},{"selector":".km-hint","title":"Field hint","description":"Quiet helper line under a field.","layer":"element","file":"components/form.css"},{"selector":".km-seg","title":"Segmented control","description":"The sliding pill — one thumb glides between options on the same recipe as the tab marker. The ink variant (black thumb) is the view-toggle voice: Table | Cards. Selection SLIDES, press DIPS — choosing is never a press. Retired the harder-edged .km-toggle.","layer":"element","file":"components/form.css","variants":[".km-seg__thumb",".km-seg__opt",".km-seg--ink"]},{"selector":".km-composer","title":"Voice composer","description":"Textarea + mic. The mic owns the bottom-right corner.","layer":"component","file":"components/form.css","variants":[".km-mic",".km-mic--live",".km-voice-note"]},{"selector":".km-bubble","title":"Intake bubble","description":"Chat bubble — user = ink, system = brand tint.","layer":"component","file":"components/conversation.css","variants":[".km-bubbles",".km-bubble--user",".km-bubble--system",".km-bubble__who"]},{"selector":".km-confirm","title":"Confirmation card","description":"Receipt card with a brand spine — what the system just did.","layer":"component","file":"components/conversation.css","variants":[".km-confirm__head",".km-confirm__row",".km-confirm__k"]},{"selector":".km-check","title":"Processing checklist","description":"Stepped progress — the live step breathes quietly.","layer":"component","file":"components/conversation.css","variants":[".km-check__row",".km-check__mark",".km-check__mark--done",".km-check__mark--active",".km-check__mark--manual",".km-check__mark--wait",".km-check__label",".km-check__meta"]},{"selector":".km-feed","title":"Activity feed","description":"Icon + event + mono time rows.","layer":"component","file":"components/conversation.css","variants":[".km-feed__row",".km-feed__icon",".km-feed__main",".km-feed__sub",".km-feed__time"]},{"selector":".km-empty","title":"Empty state","description":"Dashed well with a quiet explanation and one action.","layer":"component","file":"components/feedback.css","variants":[".km-empty__title",".km-empty__body"]},{"selector":".km-banner","title":"Banner","description":"Inline warning / blocked / info strip.","layer":"component","file":"components/feedback.css","variants":[".km-banner__icon",".km-banner--manual",".km-banner--block",".km-banner--info"]},{"selector":".km-table","title":"Dense table","description":"Locations at scale — sticky mono headers, compacted platform tiles.","layer":"component","file":"components/table.css","variants":[".td-name",".td-id",".td-time",".td-plat"]},{"selector":".km-metric-hero","title":"Hero workload metric","description":"ONE hero figure per view — prominence from scale, not colour. Meter fills green with work done.","layer":"object","file":"components/reviews.css","variants":[".km-metric-hero__line",".km-metric-hero__lbl",".km-metric-hero__fig",".km-metric-hero__meter",".km-metric-hero__cap"]},{"selector":".km-facet","title":"Filter facet","description":"Selectable count + label chip; active = ink fill (the toggle’s selection language).","layer":"object","file":"components/reviews.css","variants":[".km-facets",".km-facet__n",".km-facet__l"]},{"selector":".km-stars","title":"Star rating","description":"Monochrome stars — the score reads from the COUNT of filled stars, never gold.","layer":"element","file":"components/reviews.css"},{"selector":".km-quote","title":"Quote block","description":"Someone else’s words — opens with the filled quote glyph as a quiet ornament.","layer":"element","file":"components/reviews.css","variants":[".km-quote__mark"]},{"selector":".km-dotline","title":"Dot-separated meta line","description":"ONE rule for every “token · token · token” list — divider spacing can never drift.","layer":"object","file":"components/reviews.css","variants":[".km-dot"]},{"selector":".km-review","title":"Review card","description":"Assembled from card + quote + stars + dotline; the spine is the reserved --m-reviews accent.","layer":"component","file":"components/reviews.css","variants":[".km-review__top",".km-review__by",".km-review__author",".km-review__when",".km-review__foot",".km-review__plat",".km-review__ext"]},{"selector":".km-dropdown","title":"Dropdown menu","description":"Custom listbox that opens BELOW the trigger. Hover = neutral, selection = brand — they never read alike.","layer":"overlay","file":"components/dropdown.css","variants":[".km-dropdown__trigger",".km-dropdown__caret",".km-dropdown__menu",".km-dropdown__item",".km-dropdown__check"]},{"selector":".km-glass","title":"Glass material","description":"The translucent floating-chrome surface — only for things that genuinely float.","layer":"overlay","file":"components/glass.css"},{"selector":".km-lift","title":"Card lift","description":"Hover lift for any interactive card — rise, hair of scale, deeper shadow. Includes the phantom-hover guard: .km-hover-muted suppresses lift under a resting cursor (e.g. after a surface collapses) until the pointer actually moves; .km-lift--active carries the lift programmatically on the just-viewed card.","layer":"effect","file":"components/motion-effects.css","variants":[".km-lift--active",".km-hover-muted"]},{"selector":".km-tilt","title":"3D tilt","description":"±2° toward the cursor with a hair of scale. Hero surfaces only.","layer":"effect","file":"components/motion-effects.css"},{"selector":".km-glow","title":"Cursor-follow glow","description":"Barely-there radial brand wash tracking the pointer. AI/hero surfaces only.","layer":"effect","file":"components/motion-effects.css"},{"selector":".km-meter","title":"Meter","description":"Generic progress bar — fill animates with inertia; optional whisper of sheen.","layer":"effect","file":"components/motion-effects.css","variants":[".km-meter__fill",".km-meter__fill--brand",".km-meter--sheen"]},{"selector":".km-skeleton","title":"Skeleton","description":"Layered loading surface with a soft sweep that stops when content lands.","layer":"effect","file":"components/motion-effects.css","variants":[".km-skeleton__bar",".km-skeleton__bar--lg",".km-cascade"]},{"selector":".km-palette","title":"Command palette","description":"Glass layer spawning in — scale 0.96→1, rise 8px. The scrim stays sharp.","layer":"effect","file":"components/motion-effects.css","variants":[".km-palette__input",".km-palette__list",".km-palette__item",".km-palette__hint"]},{"selector":".km-drawer","title":"Parallax drawer","description":"The drawer slides in while the page concedes the space — scale, shift, dim.","layer":"effect","file":"components/motion-effects.css","variants":[".km-drawer-stage",".km-drawer-stage__page",".km-drawer-stage__scrim",".km-drawer__head",".km-drawer__title",".km-drawer__body"]},{"selector":".km-checkdraw","title":"Status celebration","description":"Check draws itself, badge settles in, soft halo breathes out once. Never confetti.","layer":"effect","file":"components/motion-effects.css","variants":[".km-checkdraw--go"]},{"selector":".km-ic-spin","title":"Icon micro-motions","description":"Refresh spins, bell wiggles once, trash leans, upload rises, accordion caret turns.","layer":"effect","file":"components/motion-effects.css","variants":[".km-ic-wiggle",".km-ic-swing",".km-ic-turn",".km-ic-tilt",".km-ic-rise",".km-ic-lean-once",".km-ic-hop-once",".km-acc"]},{"selector":".km-empty--ambient","title":"Ambient empty state","description":"The empty-state glyph drifts on a slow loop; a soft dot pulses.","layer":"effect","file":"components/motion-effects.css","variants":[".km-empty__glyph",".km-pulse-dot"]},{"selector":".km-ai","title":"AI generation motion","description":"Brand-tone border sweep while thinking, streaming text shimmer, pulsing caret.","layer":"effect","file":"components/motion-effects.css","variants":[".km-ai--thinking",".km-ai-shimmer",".km-ai-caret"]},{"selector":".km-overlay","title":"Overlay","description":"Full-viewport positioning layer with a light ink wash — the page reads through it.","layer":"overlay","file":"components/dialog.css","variants":[".km-overlay__scrim"]},{"selector":".km-dialog","title":"Dialog","description":"The modal — a single sheet of glass; hairlines, never opaque seams.","layer":"overlay","file":"components/dialog.css","variants":[".km-dialog--sm",".km-dialog--md",".km-dialog--lg",".km-dialog--accent",".km-dialog__head",".km-dialog__icon",".km-dialog__titles",".km-dialog__title",".km-dialog__sub",".km-dialog__close",".km-dialog__body",".km-dialog__receipt",".km-dialog__rrow",".km-dialog__rk",".km-dialog__rv",".km-dialog__field",".km-dialog__foot",".km-dialog__foot--spread",".km-dialog__foot-note"]}],"shell":[{"selector":".ds-doc","title":"Doc frame","description":"Two-column document grid — nav rail + content.","layer":"shell","file":"shell.css","variants":[".ds-main"]},{"selector":".ds-nav","title":"Doc nav","description":"The left rail — ink-900 with the on-dark token family. Hover = ondark-hover, selection = ondark-active + brand spine.","layer":"shell","file":"shell.css","variants":[".ds-nav__brand",".ds-nav__mark",".ds-nav__name",".ds-nav__ver",".ds-nav__group"]},{"selector":".ds-sec","title":"Doc section","description":"Numbered section — mono eyebrow, heavy title, quiet lede.","layer":"shell","file":"shell.css","variants":[".ds-sec__num",".ds-sec__title",".ds-sec__lede",".ds-sub"]},{"selector":".ds-prose","title":"Doc prose","description":"Measure-capped body copy with inline code chips.","layer":"shell","file":"shell.css","variants":[".ds-mono"]},{"selector":".ds-cover","title":"Doc cover","description":"Page hero — eyebrow, display title, sub.","layer":"shell","file":"shell.css","variants":[".ds-cover__eyebrow",".ds-cover__sub"]},{"selector":".ds-exec","title":"Executive callout","description":"Ink-900 panel speaking the on-dark family, brand tick.","layer":"shell","file":"shell.css"},{"selector":".ds-demo","title":"Demo stage","description":"Inset well where live components render.","layer":"shell","file":"shell.css","variants":[".ds-demo--surface",".ds-demo__row",".ds-spec"]},{"selector":".ds-principle","title":"Principle card","description":"Numbered design-principle card.","layer":"shell","file":"shell.css","variants":[".ds-principles",".ds-principle__n"]},{"selector":".ds-sw","title":"Token swatch","description":"Colour swatch — chip + name + value + usage.","layer":"shell","file":"shell.css","variants":[".ds-swatches",".ds-sw__chip",".ds-sw__body",".ds-sw__name",".ds-sw__hex",".ds-sw__use",".ds-sw--border"]},{"selector":".ds-ramp","title":"Type ramp row","description":"Specimen + mono spec, hairline separated.","layer":"shell","file":"shell.css","variants":[".ds-ramp__row",".ds-ramp__spec"]},{"selector":".ds-scale","title":"Spacing scale","description":"Brand bars at each spacing step.","layer":"shell","file":"shell.css","variants":[".ds-scale__row",".ds-scale__bar",".ds-scale__lbl"]},{"selector":".ds-radius-box","title":"Radius box","description":"Brand-tint box at each radius step.","layer":"shell","file":"shell.css","variants":[".ds-radii"]},{"selector":".ds-split","title":"Split layout","description":"Responsive two-up grid for side-by-side demos.","layer":"shell","file":"shell.css"},{"selector":".ds-tbl","title":"Doc table","description":"Spec table — uppercase mono headers, hairline rows.","layer":"shell","file":"shell.css"},{"selector":".ds-tag","title":"Doc tag","description":"Now / soon / ok status tags for roadmaps and ledgers.","layer":"shell","file":"shell.css","variants":[".ds-tag--now",".ds-tag--soon",".ds-tag--ok",".ds-tag--later"]},{"selector":".ds-lab-sandbox","title":"Labs sandbox wrapper","description":"Hosts a forked preview of a registry component with the experiment’s token, component CSS, and motion overrides applied; isolates stacking + filters from the surrounding doc shell.","layer":"shell","file":"shell.css"}]},"motion":{"behaviors":[{"id":"tactile-press","title":"Tactile press","description":"Buttons & interactive cards dip on press — committing an ACTION. Asymmetric: a quick dip DOWN so it lands within the brief click, then a slow buttery glide BACK on release — never the mid-click reversal that reads as jitter. The press is for actions only: choosing between options is never a press — selection slides (see the sliding tab indicator).","duration":["--dur-fast"],"easing":["--ease-glide","--ease-standard"]},{"id":"state-morph","title":"State morph","description":"A status flip (Draft → Published) animates the change, never hard-swaps: width morph, tint crossfade, label crossfade and dot pulse choreographed across three beats.","duration":["--dur-morph"],"easing":["--ease-glide"]},{"id":"tag-crossfade","title":"Status-tag crossfade","description":"The chip is a COLOUR crossfade, so it rides the even symmetric curve over a long duration — a gradual reveal that never front-loads (which would read as an instant snap).","duration":["--dur-tag"],"easing":["--ease-smooth"]},{"id":"flip-list","title":"FLIP list settle","description":"Filter transitions move surviving rows to their new homes (FLIP), with entering rows rising in and leaving rows accelerating away. Container height settles smoothly.","duration":["--dur-slow"],"easing":["--ease-in-out","--ease-out","--ease-in"]},{"id":"stagger","title":"Stagger + skeleton","description":"Loading skeleton crossfades into content arriving as a quick cascade. Cap the stagger at 6 items — beyond that the tail feels broken, not choreographed.","duration":["--dur-base","--stagger"],"easing":["--ease-out"]},{"id":"tab-slide","title":"Sliding tab indicator","description":"The active-tab underline travels to the clicked tab — one marker moving between two resting states. The segmented control thumb rides the identical recipe, including the ink view-toggle (Table | Cards) where the BLACK portion glides between options. Selection SLIDES, press DIPS.","duration":["--dur-page"],"easing":["--ease-in-out"]},{"id":"value-roll","title":"Value roll","description":"A figure that changes counts to its new value — gentle launch, long settle. The roll lands the moment the remainder falls under half a digit, so the figure never looks stopped and then flips once more.","duration":["--dur-roll"],"easing":["--ease-out"]},{"id":"smooth-scroll","title":"Smooth scroll","description":"In-page travel is distance-scaled between the min and max scroll durations, easing in-out so the viewport glides rather than jumps.","duration":["--dur-scroll-min","--dur-scroll-max"],"easing":["--ease-in-out"]},{"id":"dialog-entrance","title":"Dialog entrance","description":"The scrim fades to its wash while the dialog rises (or zooms, or settles with the rare overshoot) — entering, so it decelerates in.","duration":["--dur-base"],"easing":["--ease-out","--ease-settle"]},{"id":"bubble-rise","title":"Bubble entrance","description":"Chat replies rise a few px and fade in (km-rise).","duration":["--dur-base"],"easing":["--ease-out"]},{"id":"now-breathe","title":"Live step breathing","description":"The live \"now\" step in a checklist breathes quietly so the eye finds it without it shouting.","duration":[],"easing":["--ease-standard"]},{"id":"card-lift","title":"Card lift","description":"On hover an interactive card lifts off the surface — scale 1→1.015, rise −3px, shadow deepens, border brightens. A physical object becoming active, never a bounce. PHANTOM-HOVER GUARD: a card resting under a stationary cursor (after a surface collapses) never lifts — hover is muted until the pointer actually moves, and the just-viewed card carries the lift instead.","duration":["--dur-base"],"easing":["--ease-out"],"stage":"core","usage":"Any interactive card: metric, dealer/location, review, task, photo, translation."},{"id":"route-transition","title":"Route transition","description":"Views hand over like panels: the old page eases out (fade + 8px drop), the new one rises in. Rides the View Transitions API where available; cuts cleanly where not.","duration":["--dur-base"],"easing":["--ease-out","--ease-in"],"stage":"core","usage":"Every route change. This app dogfoods it on its own navigation."},{"id":"shared-layout","title":"Shared layout morph","description":"A card LITERALLY grows into its detail surface: one continuous element, FLIP-morphed from the small card’s exact footprint to the panel’s — the boundary is visible the whole way. Rides --dur-grow, the slowest UI move in the system; content fades in only after the surface is most of the way there.","duration":["--dur-grow"],"easing":["--ease-in-out"],"stage":"core","usage":"Card → drawer, list row → detail, photo → preview. The premium “Linear-like” move."},{"id":"tilt","title":"3D tilt card","description":"The card tilts ±4.5° toward the cursor with a touch of scale and a hover lift in the shadow — depth on demand, now clearly perceptible. Strictly rationed: one hero per view, never in dense lists.","duration":["--dur-fast"],"easing":["--ease-standard"],"stage":"core","usage":"Hero dashboard cards, featured performance cards, AI insight cards only. Pairs beautifully with the cursor-follow glow on the same surface."},{"id":"meter-fill","title":"Meter fill with inertia","description":"Progress fills from zero with a long ease-out instead of snapping, plus an optional whisper of sheen across the filled portion. The hero metric meter rides this on load.","duration":["--dur-tag"],"easing":["--ease-out"],"stage":"core","usage":"Translation completion, profile completeness, approval progress, onboarding."},{"id":"skeleton","title":"Skeleton with depth","description":"Loading reads calm and confident: layered skeleton surfaces with a very soft shimmer, cards arriving on the stagger cascade, real content crossfading in, numbers rolling after.","duration":["--dur-base","--stagger"],"easing":["--ease-out","--ease-smooth"],"stage":"core","usage":"Any async surface. Never an endless pulse; shimmer stops with content."},{"id":"palette-spawn","title":"Command palette spawn","description":"The palette spawns as a layer: glass panel scales 0.96→1 and rises 8px while the ink wash fades in. The scrim stays SHARP — the system’s no-blurred-spotlight law holds; only the floating glass itself frosts.","duration":["--dur-base"],"easing":["--ease-out"],"stage":"core","usage":"Global search, quick actions, AI assistant."},{"id":"drawer-parallax","title":"Drawer with parallax","description":"The drawer slides in over the page while the page itself concedes the space — scaling to 0.985, shifting −12px, dimming a touch. Two real layers, honest depth, no blur.","duration":["--dur-page"],"easing":["--ease-in-out"],"stage":"core","usage":"Dealer profile, review detail, photo approval, notification panel."},{"id":"celebration","title":"Status celebration","description":"A tiny, contained reward on completion: the check draws itself, the badge settles in from 0.8 scale on the rare-overshoot curve, a soft tint halo fades. Never confetti.","duration":["--dur-morph"],"easing":["--ease-settle"],"stage":"core","usage":"Approved, published, completed — moments worth a half-second of delight."},{"id":"cursor-glow","title":"Cursor-follow glow","description":"A barely-there radial wash tracks the pointer inside a premium surface — a glass-highlight core (derived from --glass-hi) blended into a faint brand tone, so the glow and the glass material read as one family. If you notice the glow before the content, it is too strong.","duration":["--dur-fast"],"easing":["--ease-standard"],"stage":"core","usage":"AI insight cards, the dashboard hero, important setup cards. Never tables."},{"id":"icon-micro","title":"Icon micro-motions","description":"Every glyph owns one signature move with one grammar: HOVER previews it (bell swings, refresh half-turns, trash leans, upload rises, the accordion caret nudges where it will go), the glyph’s own EVENT plays it in full (wiggle on arrival, spin while syncing, hop on send, caret turn on open). Custom accent per glyph, identical behaviour everywhere.","duration":["--dur-fast","--dur-base"],"easing":["--ease-standard","--ease-settle"],"stage":"core","usage":"One glyph at a time, triggered by its own event — never ambient."},{"id":"spatial-modal","title":"Spatial modal","description":"Opt-in depth for the dialog: as the glass arrives, the page behind concedes a breath of scale (0.98). The dialog reads as a layer above a physical surface, not a sticker on it.","duration":["--dur-base"],"easing":["--ease-out"],"stage":"core","usage":"High-stakes confirms where the layering metaphor earns its keep."},{"id":"ambient-empty","title":"Ambient empty state","description":"An empty state breathes instead of staring: the glyph drifts on a slow visible loop and the watch-dot pulses with an expanding ring — alive at a glance, quiet enough to live on screen all day.","duration":["--dur-roll"],"easing":["--ease-in-out"],"stage":"core","usage":"No reviews found, no issues, nothing pending. The one allowed loop besides the live step."},{"id":"ai-thinking","title":"AI generation motion","description":"Generating never shows a plain spinner: a soft brand-tone border sweep, a streaming text shimmer, a pulsing caret, and the button label morphing Generate → Thinking → Ready. Brand tones only — no rainbow gradients.","duration":["--dur-tag","--dur-roll"],"easing":["--ease-smooth"],"stage":"core","usage":"Any AI-assisted surface: response drafting, insight cards, translation suggestions."},{"id":"snap-reorder","title":"Snap into place","description":"Dragged or displaced items settle into their slot on the rare-overshoot spring — released cards snap home, displaced neighbours glide aside via FLIP. Physical, decisive, brief.","duration":["--dur-slow"],"easing":["--ease-settle","--ease-in-out"],"stage":"core","usage":"Dashboard widgets, kanban columns, priority lists, photo sorting."}],"retired":[{"id":"magnetic","title":"Magnetic button","rationale":"The shell drifting toward the pointer read as pursuit, not polish. The press already answers the hand; the pull added motion without information.","retired":"2026-06-12"},{"id":"press-coverage-extension","title":"Blanket press coverage","rationale":"Scaling facets, tabs, nav items and option fills on press muddied the grammar and broke fills out of their frames. Settled rule: PRESS DIPS (actions — buttons, cards), SELECTION SLIDES (choosing — the marker moves). Choosing is never a press.","retired":"2026-06-12"}],"paces":[{"id":"fast","label":"Fast","blurb":"Almost no motion — lightning-fast, motion just confirms & leaves."},{"id":"smooth","label":"Smooth","blurb":"The anchor. Buttery, generous but never sluggish. The locked default."},{"id":"calm","label":"Calm","blurb":"Unhurried — generous glides, a quieter and more deliberate pace."}],"press":{"fast":{"down":60,"up":150,"scale":0.94},"smooth":{"down":200,"up":800,"scale":0.94},"calm":{"down":260,"up":1200,"scale":0.94}}},"icons":{"groups":["Direction","Arrows in circles","Arrows","Find","Status","Marks","Actions","Wayfinding","Content","Rating"],"platform":["krown","google","apple","microsoft"],"filled":{"krown":{"label":"Krown K","vb":"0 0 24 24","svg":"<path d=\"M2.316 1.704L9.6555 1.704L9.6555 5.3745L4.3545 11.694L9.6555 18.423L9.6555 22.5L2.316 22.5Z\"/><path d=\"M14.7525 1.5L21.684 1.5L13.122 11.898L21.684 22.5L14.5485 22.5L6.393 11.898L6.393 11.49Z\"/>"},"google":{"label":"Google","vb":"-1.66 -1.5 19 19","svg":"<path d=\"M15.545 6.558a9.4 9.4 0 0 1 .139 1.626c0 2.434-.87 4.492-2.384 5.885h.002C11.978 15.292 10.158 16 8 16A8 8 0 1 1 8 0a7.7 7.7 0 0 1 5.352 2.082l-2.284 2.284A4.35 4.35 0 0 0 8 3.166c-2.087 0-3.86 1.408-4.492 3.304a4.8 4.8 0 0 0 0 3.063h.003c.635 1.893 2.405 3.301 4.492 3.301 1.078 0 2.004-.276 2.722-.764h-.003a3.7 3.7 0 0 0 1.599-2.431H8v-3.08z\"/>"},"apple":{"label":"Apple","vb":"0 0 16 16","svg":"<path d=\"M11.182.008C11.148-.03 9.923.023 8.857 1.18c-1.066 1.156-.902 2.482-.878 2.516s1.52.087 2.475-1.258.762-2.391.728-2.43m3.314 11.733c-.048-.096-2.325-1.234-2.113-3.422s1.675-2.789 1.698-2.854-.597-.79-1.254-1.157a3.7 3.7 0 0 0-1.563-.434c-.108-.003-.483-.095-1.254.116-.508.139-1.653.589-1.968.607-.316.018-1.256-.522-2.267-.665-.647-.125-1.333.131-1.824.328-.49.196-1.422.754-2.074 2.237-.652 1.482-.311 3.83-.067 4.56s.625 1.924 1.273 2.796c.576.984 1.34 1.667 1.659 1.899s1.219.386 1.843.067c.502-.308 1.408-.485 1.766-.472.357.013 1.061.154 1.782.539.571.197 1.111.115 1.652-.105.541-.221 1.324-1.059 2.238-2.758q.52-1.185.473-1.282\"/>"},"microsoft":{"label":"Microsoft (closest mark for Bing)","vb":"-1.5 -1.5 19 19","svg":"<path d=\"M7.462 0H0v7.19h7.462zM16 0H8.538v7.19H16zM7.462 8.211H0V16h7.462zm8.538 0H8.538V16H16z\"/>"},"chevron-right":{"label":"Caret right","group":"Direction","svg":"<path d=\"m12.14 8.753-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\"/>"},"chevron-left":{"label":"Caret left","group":"Direction","svg":"<path d=\"m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z\"/>"},"chevron-up":{"label":"Caret up","group":"Direction","svg":"<path d=\"m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659l-4.796-5.48a1 1 0 0 0-1.506 0z\"/>"},"chevron-down":{"label":"Caret down","group":"Direction","svg":"<path d=\"M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\"/>"},"arrow-right-circle":{"label":"Arrow right circle","group":"Arrows in circles","svg":"<path d=\"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zM4.5 7.5a.5.5 0 0 0 0 1h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 1 0-.708.708L10.293 7.5H4.5z\"/>"},"arrow-left-circle":{"label":"Arrow left circle","group":"Arrows in circles","svg":"<path d=\"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm3.5 7.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5z\"/>"},"arrow-up-circle":{"label":"Arrow up circle","group":"Arrows in circles","svg":"<path d=\"M16 8A8 8 0 1 0 0 8a8 8 0 0 0 16 0zm-7.5 3.5a.5.5 0 0 1-1 0V5.707L5.354 7.854a.5.5 0 1 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 5.707V11.5z\"/>"},"arrow-down-circle":{"label":"Arrow down circle","group":"Arrows in circles","svg":"<path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v5.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V4.5z\"/>"},"arrow-right":{"label":"Arrow right (bold mark, drawn)","group":"Arrows","svg":"<path d=\"M2.8 9.2L13.2 9.2A1.2 1.2 0 0 0 13.2 6.8L2.8 6.8A1.2 1.2 0 0 0 2.8 9.2ZM8.751 5.249L12.351 8.849A1.2 1.2 0 0 0 14.049 7.151L10.449 3.551A1.2 1.2 0 0 0 8.751 5.249ZM12.351 7.151L8.751 10.751A1.2 1.2 0 0 0 10.449 12.449L14.049 8.849A1.2 1.2 0 0 0 12.351 7.151Z\"/>"},"arrow-left":{"label":"Arrow left (bold mark, drawn)","group":"Arrows","svg":"<path d=\"M13.2 6.8L2.8 6.8A1.2 1.2 0 0 0 2.8 9.2L13.2 9.2A1.2 1.2 0 0 0 13.2 6.8ZM5.551 3.551L1.951 7.151A1.2 1.2 0 0 0 3.649 8.849L7.249 5.249A1.2 1.2 0 0 0 5.551 3.551ZM1.951 8.849L5.551 12.449A1.2 1.2 0 0 0 7.249 10.751L3.649 7.151A1.2 1.2 0 0 0 1.951 8.849Z\"/>"},"arrow-up":{"label":"Arrow up (bold mark, drawn)","group":"Arrows","svg":"<path d=\"M9.2 13.2L9.2 2.8A1.2 1.2 0 0 0 6.8 2.8L6.8 13.2A1.2 1.2 0 0 0 9.2 13.2ZM5.249 7.249L8.849 3.649A1.2 1.2 0 0 0 7.151 1.951L3.551 5.551A1.2 1.2 0 0 0 5.249 7.249ZM7.151 3.649L10.751 7.249A1.2 1.2 0 0 0 12.449 5.551L8.849 1.951A1.2 1.2 0 0 0 7.151 3.649Z\"/>"},"arrow-down":{"label":"Arrow down (bold mark, drawn)","group":"Arrows","svg":"<path d=\"M6.8 2.8L6.8 13.2A1.2 1.2 0 0 0 9.2 13.2L9.2 2.8A1.2 1.2 0 0 0 6.8 2.8ZM3.551 10.449L7.151 14.049A1.2 1.2 0 0 0 8.849 12.351L5.249 8.751A1.2 1.2 0 0 0 3.551 10.449ZM8.849 14.049L12.449 10.449A1.2 1.2 0 0 0 10.751 8.751L7.151 12.351A1.2 1.2 0 0 0 8.849 14.049Z\"/>"},"external":{"label":"External / open (arrow-up-right, bold mark)","group":"Arrows","svg":"<path d=\"M4.449 13.249L13.249 4.449A1.2 1.2 0 0 0 11.551 2.751L2.751 11.551A1.2 1.2 0 0 0 4.449 13.249ZM7.4 4.8L12.4 4.8A1.2 1.2 0 0 0 12.4 2.4L7.4 2.4A1.2 1.2 0 0 0 7.4 4.8ZM11.2 3.6L11.2 8.6A1.2 1.2 0 0 0 13.6 8.6L13.6 3.6A1.2 1.2 0 0 0 11.2 3.6Z\"/>"},"search":{"label":"Search (bold mark, drawn)","group":"Find","svg":"<path fill-rule=\"evenodd\" d=\"M1.8 7A5.199999999999999 5.199999999999999 0 1 0 12.2 7A5.199999999999999 5.199999999999999 0 1 0 1.8 7ZM4 7A2.9999999999999996 2.9999999999999996 0 1 0 10 7A2.9999999999999996 2.9999999999999996 0 1 0 4 7Z\"/><path d=\"M9.422 10.978L12.822 14.378A1.1 1.1 0 0 0 14.378 12.822L10.978 9.422A1.1 1.1 0 0 0 9.422 10.978Z\"/>"},"filter":{"label":"Filter (funnel-fill)","group":"Find","svg":"<path d=\"M1.5 1.5A.5.5 0 0 1 2 1h12a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.128.334L10 8.692V13.5a.5.5 0 0 1-.342.474l-3 1A.5.5 0 0 1 6 14.5V8.692L1.628 3.834A.5.5 0 0 1 1.5 3.5z\"/>"},"sort":{"label":"Sort (bold mark, drawn)","group":"Find","svg":"<path d=\"M2.9 3.4L2.9 12.3A1.1 1.1 0 0 0 5.1 12.3L5.1 3.4A1.1 1.1 0 0 0 2.9 3.4ZM1.104 10.96L3.204 13.16A1.1 1.1 0 0 0 4.796 11.64L2.696 9.44A1.1 1.1 0 0 0 1.104 10.96ZM4.796 13.16L6.896 10.96A1.1 1.1 0 0 0 5.304 9.44L3.204 11.64A1.1 1.1 0 0 0 4.796 13.16ZM8.8 5.5L13.6 5.5A1.1 1.1 0 0 0 13.6 3.3L8.8 3.3A1.1 1.1 0 0 0 8.8 5.5ZM8.8 9.1L12.1 9.1A1.1 1.1 0 0 0 12.1 6.9L8.8 6.9A1.1 1.1 0 0 0 8.8 9.1ZM8.8 12.7L10.6 12.7A1.1 1.1 0 0 0 10.6 10.5L8.8 10.5A1.1 1.1 0 0 0 8.8 12.7Z\"/>"},"check-circle":{"label":"Check circle fill","group":"Status","svg":"<path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z\"/>"},"x-circle":{"label":"X circle fill","group":"Status","svg":"<path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293z\"/>"},"alert-triangle":{"label":"Exclamation triangle fill","group":"Status","svg":"<path d=\"M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5m.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2\"/>"},"info-circle":{"label":"Info circle fill","group":"Status","svg":"<path d=\"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2\"/>"},"clock":{"label":"Clock fill","group":"Status","svg":"<path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71z\"/>"},"check":{"label":"Check (bold mark)","group":"Marks","svg":"<path d=\"M2.551 9.349L5.551 12.349A1.2 1.2 0 0 0 7.249 10.651L4.249 7.651A1.2 1.2 0 0 0 2.551 9.349ZM7.287 12.309L13.487 5.509A1.2 1.2 0 0 0 11.713 3.891L5.513 10.691A1.2 1.2 0 0 0 7.287 12.309Z\"/>"},"x":{"label":"Close (bold mark)","group":"Marks","svg":"<path d=\"M3.751 5.449L10.551 12.249A1.2 1.2 0 0 0 12.249 10.551L5.449 3.751A1.2 1.2 0 0 0 3.751 5.449ZM10.551 3.751L3.751 10.551A1.2 1.2 0 0 0 5.449 12.249L12.249 5.449A1.2 1.2 0 0 0 10.551 3.751Z\"/>"},"plus":{"label":"Add (bold mark)","group":"Marks","svg":"<path d=\"M6.8 3.6L6.8 12.4A1.2 1.2 0 0 0 9.2 12.4L9.2 3.6A1.2 1.2 0 0 0 6.8 3.6ZM3.6 9.2L12.4 9.2A1.2 1.2 0 0 0 12.4 6.8L3.6 6.8A1.2 1.2 0 0 0 3.6 9.2Z\"/>"},"minus":{"label":"Remove (bold mark)","group":"Marks","svg":"<path d=\"M3.6 9.2L12.4 9.2A1.2 1.2 0 0 0 12.4 6.8L3.6 6.8A1.2 1.2 0 0 0 3.6 9.2Z\"/>"},"menu":{"label":"Menu (bold mark)","group":"Marks","svg":"<path d=\"M3 3.4L13 3.4A1.1 1.1 0 0 1 13 5.6L3 5.6A1.1 1.1 0 0 1 3 3.4ZM3 6.9L13 6.9A1.1 1.1 0 0 1 13 9.1L3 9.1A1.1 1.1 0 0 1 3 6.9ZM3 10.4L13 10.4A1.1 1.1 0 0 1 13 12.6L3 12.6A1.1 1.1 0 0 1 3 10.4Z\"/>"},"edit":{"label":"Edit (pencil-fill)","group":"Actions","svg":"<path d=\"M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708zm.646 6.061L9.793 2.5 3.293 9h-.001l-.002.002-.002.002-.002.002a.5.5 0 0 0-.131.223l-1.06 3.667a.5.5 0 0 0 .618.62l3.667-1.06a.5.5 0 0 0 .223-.132l.002-.002.002-.002.001-.001 6.5-6.5z\"/>"},"trash":{"label":"Delete (trash-fill)","group":"Actions","svg":"<path d=\"M2.5 1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1H3v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V4h.5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1zm3 4a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5M8 5a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7A.5.5 0 0 1 8 5m3 .5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 1 0\"/>"},"copy":{"label":"Copy (two sheets, filled outline)","group":"Actions","svg":"<path fill-rule=\"evenodd\" d=\"M7.5 4.4L12.5 4.4A3.1 3.1 0 0 1 15.6 7.5L15.6 12.5A3.1 3.1 0 0 1 12.5 15.6L7.5 15.6A3.1 3.1 0 0 1 4.4 12.5L4.4 7.5A3.1 3.1 0 0 1 7.5 4.4ZM7.5 6.6L12.5 6.6A0.9 0.9 0 0 1 13.4 7.5L13.4 12.5A0.9 0.9 0 0 1 12.5 13.4L7.5 13.4A0.9 0.9 0 0 1 6.6 12.5L6.6 7.5A0.9 0.9 0 0 1 7.5 6.6Z\"/><path d=\"M5 9.4L3.1 9.4A0.5 0.5 0 0 1 2.6 8.9L2.6 3.1A0.5 0.5 0 0 1 3.1 2.6L8.9 2.6A0.5 0.5 0 0 1 9.4 3.1L9.4 5A1.1 1.1 0 0 0 11.6 5L11.6 3.1A2.7 2.7 0 0 0 8.9 0.4L3.1 0.4A2.7 2.7 0 0 0 0.4 3.1L0.4 8.9A2.7 2.7 0 0 0 3.1 11.6L5 11.6A1.1 1.1 0 0 0 5 9.4Z\"/>"},"settings":{"label":"Settings (gear-fill)","group":"Actions","svg":"<path d=\"M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.86\"/>"},"refresh":{"label":"Refresh (filled outline)","group":"Actions","svg":"<path d=\"M8 1.9A6.1 6.1 0 1 0 13.544 5.456A1.1 1.1 0 0 0 11.545 6.373A3.9 3.9 0 1 1 8 4.1A1.1 1.1 0 0 0 8 1.9ZM7.397 2.02L10.297 3.92A1.1 1.1 0 0 0 11.503 2.08L8.603 0.18A1.1 1.1 0 0 0 7.397 2.02ZM10.297 2.08L7.397 3.98A1.1 1.1 0 0 0 8.603 5.82L11.503 3.92A1.1 1.1 0 0 0 10.297 2.08Z\"/>"},"mic":{"label":"Microphone (mic-fill)","group":"Actions","svg":"<path d=\"M5 3a3 3 0 0 1 6 0v5a3 3 0 0 1-6 0z\"/><path d=\"M3.5 6.5A.5.5 0 0 1 4 7v1a4 4 0 0 0 8 0V7a.5.5 0 0 1 1 0v1a5 5 0 0 1-4.5 4.975V15h3a.5.5 0 0 1 0 1h-7a.5.5 0 0 1 0-1h3v-2.025A5 5 0 0 1 3 8V7a.5.5 0 0 1 .5-.5\"/>"},"pin":{"label":"Location (geo-alt-fill)","group":"Wayfinding","svg":"<path d=\"M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10m0-7a3 3 0 1 1 0-6 3 3 0 0 1 0 6\"/>"},"calendar":{"label":"Calendar (calendar-fill)","group":"Wayfinding","svg":"<path d=\"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2H0a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M0 4v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4z\"/>"},"bell":{"label":"Notifications (bell-fill)","group":"Wayfinding","svg":"<path d=\"M8 16a2 2 0 0 0 2-2H6a2 2 0 0 0 2 2m.995-14.901a1 1 0 1 0-1.99 0A5 5 0 0 0 3 6c0 1.098-.5 6-2 7h14c-1.5-1-2-5.902-2-7 0-2.42-1.72-4.44-4.005-4.901\"/>"},"user":{"label":"User (person-fill)","group":"Wayfinding","svg":"<path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\"/>"},"building":{"label":"Business (building-fill)","group":"Wayfinding","svg":"<path d=\"M3 0a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h3v-3.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V16h3a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1zm1 2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zM10 2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5z\"/>"},"link":{"label":"Link (solid interlocked rings, drawn)","group":"Wayfinding","svg":"<path fill-rule=\"evenodd\" d=\"M6 6a4 4 0 1 0 0 8 4 4 0 0 0 0-8m0 1.85a2.15 2.15 0 1 1 0 4.3 2.15 2.15 0 0 1 0-4.3\"/><path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8m0 1.85a2.15 2.15 0 1 1 0 4.3 2.15 2.15 0 0 1 0-4.3\"/>"},"more":{"label":"More (three-dots)","group":"Wayfinding","svg":"<path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/>"},"quote":{"label":"Quotation mark (double, quote)","group":"Content","svg":"<path d=\"M12 12a1 1 0 0 0 1-1V8.558a1 1 0 0 0-1-1h-1.388q0-.527.062-1.054.093-.558.31-.992.217-.434.559-.683.34-.279.868-.279V3q-.868 0-1.52.372a3.3 3.3 0 0 0-1.085.992 4.9 4.9 0 0 0-.62 1.458A7.7 7.7 0 0 0 9 7.558V11a1 1 0 0 0 1 1zm-6 0a1 1 0 0 0 1-1V8.558a1 1 0 0 0-1-1H4.612q0-.527.062-1.054.094-.558.31-.992.217-.434.559-.683.34-.279.868-.279V3q-.868 0-1.52.372a3.3 3.3 0 0 0-1.085.992 4.9 4.9 0 0 0-.62 1.458A7.7 7.7 0 0 0 3 7.558V11a1 1 0 0 0 1 1z\"/>"},"star-fill":{"label":"Star (filled — score)","group":"Rating","svg":"<path d=\"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.283.95l-3.523 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\"/>"},"star":{"label":"Star (hollow — remainder)","group":"Rating","svg":"<path d=\"M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.523 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.56.56 0 0 0-.163-.505L1.71 6.745l4.052-.576a.53.53 0 0 0 .393-.288L8 2.223l1.847 3.658a.53.53 0 0 0 .393.288l4.052.575-2.906 2.77a.56.56 0 0 0-.163.506l.694 3.957-3.686-1.894a.5.5 0 0 0-.461 0z\"/>"}},"thin":{"krown":"<path d=\"M2.316 1.704L9.6555 1.704L9.6555 5.3745L4.3545 11.694L9.6555 18.423L9.6555 22.5L2.316 22.5Z\"/><path d=\"M14.7525 1.5L21.684 1.5L13.122 11.898L21.684 22.5L14.5485 22.5L6.393 11.898L6.393 11.49Z\"/>","chevron-right":"<path d=\"M9 6 15 12 9 18\"/>","chevron-left":"<path d=\"M15 6 9 12 15 18\"/>","chevron-up":"<path d=\"M6 15 12 9 18 15\"/>","chevron-down":"<path d=\"M6 9 12 15 18 9\"/>","arrow-right-circle":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M8 12h7.4\"/><path d=\"M12.4 9 15.4 12 12.4 15\"/>","arrow-left-circle":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M16 12H8.6\"/><path d=\"M11.6 9 8.6 12 11.6 15\"/>","arrow-up-circle":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 16V8.6\"/><path d=\"M9 11.6 12 8.6 15 11.6\"/>","arrow-down-circle":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 8v7.4\"/><path d=\"M9 12.4 12 15.4 15 12.4\"/>","arrow-right":"<path d=\"M4 12h16\"/><path d=\"M14 6 20 12 14 18\"/>","arrow-left":"<path d=\"M20 12H4\"/><path d=\"M10 6 4 12 10 18\"/>","arrow-up":"<path d=\"M12 20V4\"/><path d=\"M6 10 12 4 18 10\"/>","arrow-down":"<path d=\"M12 4v16\"/><path d=\"M6 14 12 20 18 14\"/>","external":"<path d=\"M14 4h6v6\"/><path d=\"M20 4 11 13\"/><path d=\"M18.5 14v4.5A1.5 1.5 0 0 1 17 20H5.5A1.5 1.5 0 0 1 4 18.5V7A1.5 1.5 0 0 1 5.5 5.5H10\"/>","search":"<circle cx=\"11\" cy=\"11\" r=\"6\"/><path d=\"M15.5 15.5 20.5 20.5\"/>","filter":"<path d=\"M21 4H3l7.2 8.6V19l3.6 2v-8.4Z\"/>","sort":"<path d=\"M6 4.5v15\"/><path d=\"M3 16.5 6 19.5 9 16.5\"/><path d=\"M13 6h7\"/><path d=\"M13 12h5\"/><path d=\"M13 18h3\"/>","check-circle":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M8 12.3 10.8 15.2 16 9.4\"/>","x-circle":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M9 9 15 15\"/><path d=\"M15 9 9 15\"/>","alert-triangle":"<path d=\"M13.6 4.6 21.5 18.4A1.6 1.6 0 0 1 20.1 20.9H3.9A1.6 1.6 0 0 1 2.5 18.4L10.4 4.6A1.6 1.6 0 0 1 13.6 4.6Z\"/><path d=\"M12 9.6v4.2\"/><path d=\"M12 17.4h.01\"/>","info-circle":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 11v5.2\"/><path d=\"M12 7.8h.01\"/>","clock":"<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7v5.2l3.4 2\"/>","check":"<path d=\"M4.5 12.5 9.5 17.5 19.5 6.5\"/>","x":"<path d=\"M6 6 18 18\"/><path d=\"M18 6 6 18\"/>","plus":"<path d=\"M12 5v14\"/><path d=\"M5 12h14\"/>","minus":"<path d=\"M5 12h14\"/>","edit":"<path d=\"M17 3a2.83 2.83 0 0 1 4 4L7.5 20.5 2 22l1.5-5.5Z\"/><path d=\"M14.5 5.5 18.5 9.5\"/>","trash":"<path d=\"M3.5 6h17\"/><path d=\"M19 6v13.5A1.5 1.5 0 0 1 17.5 21h-11A1.5 1.5 0 0 1 5 19.5V6m3 0V4.2A1.7 1.7 0 0 1 9.7 2.5h4.6A1.7 1.7 0 0 1 16 4.2V6\"/><path d=\"M10 10.5v6\"/><path d=\"M14 10.5v6\"/>","copy":"<path d=\"M11 9h7a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2Z\"/><path d=\"M5 15H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5\"/>","settings":"<circle cx=\"12\" cy=\"12\" r=\"3\"/><path d=\"M19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-1.8-.3 1.6 1.6 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1A1.6 1.6 0 0 0 9 19.4a1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0 .3-1.8 1.6 1.6 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1A1.6 1.6 0 0 0 4.6 9a1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.6 1.6 0 0 0 1.8.3H9a1.6 1.6 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.6 1.6 0 0 0 1 1.5 1.6 1.6 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V9a1.6 1.6 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1Z\"/>","refresh":"<path d=\"M20.5 15A9 9 0 1 1 18.4 5.6L23 10\"/><path d=\"M23 4v6h-6\"/>","mic":"<rect x=\"9\" y=\"3.5\" width=\"6\" height=\"11\" rx=\"3\"/><path d=\"M6 11.5a6 6 0 0 0 12 0\"/><path d=\"M12 17.5v3\"/><path d=\"M8.5 20.5h7\"/>","pin":"<path d=\"M19 10c0 6-7 11.5-7 11.5S5 16 5 10a7 7 0 0 1 14 0Z\"/><circle cx=\"12\" cy=\"10\" r=\"2.7\"/>","calendar":"<rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\"/><path d=\"M16 2.5v4\"/><path d=\"M8 2.5v4\"/><path d=\"M3 9.5h18\"/>","bell":"<path d=\"M18 8.5a6 6 0 0 0-12 0c0 6.5-2.7 8.5-2.7 8.5h17.4S18 15 18 8.5Z\"/><path d=\"M13.7 20.5a2 2 0 0 1-3.4 0\"/>","user":"<circle cx=\"12\" cy=\"8\" r=\"4\"/><path d=\"M5 20.5V19a4.5 4.5 0 0 1 4.5-4.5h5A4.5 4.5 0 0 1 19 19v1.5\"/>","building":"<rect x=\"5\" y=\"3\" width=\"14\" height=\"18\" rx=\"1.5\"/><path d=\"M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2\"/><path d=\"M10 21v-3.5h4V21\"/>","link":"<path d=\"M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7\"/><path d=\"M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7\"/>","more":"<circle cx=\"5.5\" cy=\"12\" r=\"1.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"1.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"18.5\" cy=\"12\" r=\"1.4\" fill=\"currentColor\" stroke=\"none\"/>"}}}