@nurix/etna 0.19.11 → 0.19.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/data/harness-index.json +1 -1
- package/data/harnesses/code/agents/maintenance.md +1 -1
- package/data/harnesses/code/harness.json +1 -1
- package/data/harnesses/code/rules/frontend.md +5 -5
- package/data/harnesses/code/skills/design/SKILL.md +70 -50
- package/data/harnesses/code/skills/design/components/charts.md +76 -0
- package/data/harnesses/code/skills/design/components/collections.md +132 -0
- package/data/harnesses/code/skills/design/components/feedback.md +47 -0
- package/data/harnesses/code/skills/design/components/hooks.md +35 -0
- package/data/harnesses/code/skills/design/components/index.md +143 -0
- package/data/harnesses/code/skills/design/components/inputs.md +327 -0
- package/data/harnesses/code/skills/design/components/layout.md +52 -0
- package/data/harnesses/code/skills/design/components/media.md +66 -0
- package/data/harnesses/code/skills/design/components/motion.md +82 -0
- package/data/harnesses/code/skills/design/components/navigation.md +29 -0
- package/data/harnesses/code/skills/design/components/overlays.md +72 -0
- package/data/harnesses/code/skills/design/components/setup.md +40 -0
- package/data/harnesses/code/skills/design/components/typography.md +46 -0
- package/data/harnesses/code/skills/design/components/utils.md +37 -0
- package/data/harnesses/code/skills/design/data/blueprints/browse.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/creation-flow.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/dashboard.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/grid.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/queue.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/record-detail.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/settings.md +38 -0
- package/data/harnesses/code/skills/design/data/chart-styling/Readme.md +33 -0
- package/data/harnesses/code/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/datadog-classic-six-aligned.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/econ-red-rule-horizontal.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/material-rounded-explicit-label.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/plot-currentcolor-inherit.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/saas-gradient-glow-area.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/shadcn-composable-css-vars.md +19 -0
- package/data/harnesses/code/skills/design/data/charts/census.csv +58 -0
- package/data/harnesses/code/skills/design/data/checklists/browse.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/creation-flow.md +20 -0
- package/data/harnesses/code/skills/design/data/checklists/dashboard.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/grid.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/queue.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/record-detail.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/settings.md +21 -0
- package/data/harnesses/code/skills/design/data/chrome/board-column.md +68 -0
- package/data/harnesses/code/skills/design/data/chrome/data-table.md +63 -0
- package/data/harnesses/code/skills/design/data/chrome/side-panel.md +60 -0
- package/data/harnesses/code/skills/design/data/chrome/sidebar.md +78 -0
- package/data/harnesses/code/skills/design/data/chrome/stat-cards.md +62 -0
- package/data/harnesses/code/skills/design/data/chrome/topbar.md +65 -0
- package/data/harnesses/code/skills/design/data/color/accent-presets.md +90 -0
- package/data/harnesses/code/skills/design/data/color/aesop-earth-mute.md +91 -0
- package/data/harnesses/code/skills/design/data/color/arc-peach-play.md +90 -0
- package/data/harnesses/code/skills/design/data/color/attio-hunter-teal.md +90 -0
- package/data/harnesses/code/skills/design/data/color/carbon-cyan-signal.md +90 -0
- package/data/harnesses/code/skills/design/data/color/clay-parchment.md +90 -0
- package/data/harnesses/code/skills/design/data/color/duolingo-feather.md +90 -0
- package/data/harnesses/code/skills/design/data/color/geist-mono-signal.md +90 -0
- package/data/harnesses/code/skills/design/data/color/linear-graphite-violet.md +90 -0
- package/data/harnesses/code/skills/design/data/color/mercury-onyx-cobalt.md +90 -0
- package/data/harnesses/code/skills/design/data/color/notion-paper-ink.md +90 -0
- package/data/harnesses/code/skills/design/data/color/radix-slate-iris.md +90 -0
- package/data/harnesses/code/skills/design/data/color/raycast-void-spectrum.md +90 -0
- package/data/harnesses/code/skills/design/data/color/spectrum-celery-fuchsia.md +90 -0
- package/data/harnesses/code/skills/design/data/color/stripe-blurple-ruby.md +90 -0
- package/data/harnesses/code/skills/design/data/color/superhuman-cod-picton.md +89 -0
- package/data/harnesses/code/skills/design/data/corpora/operations-review/companies.csv +15 -0
- package/data/harnesses/code/skills/design/data/corpora/operations-review/corpus.md +87 -0
- package/data/harnesses/code/skills/design/data/corpora/operations-review/people.csv +25 -0
- package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/companies.csv +15 -0
- package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/corpus.md +83 -0
- package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/people.csv +25 -0
- package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/companies.csv +15 -0
- package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/corpus.md +89 -0
- package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/people.csv +25 -0
- package/data/harnesses/code/skills/design/data/elevation/ant-design-directional-shadow.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/apple-liquid-glass-material.md +18 -0
- package/data/harnesses/code/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +20 -0
- package/data/harnesses/code/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +20 -0
- package/data/harnesses/code/skills/design/data/elevation/github-primer-sparing-shadow.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/ibm-carbon-layer-and-border.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/linear-dark-surface-ladder.md +17 -0
- package/data/harnesses/code/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/material-3-tonal-elevation.md +21 -0
- package/data/harnesses/code/skills/design/data/elevation/neobrutalist-hard-offset.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +18 -0
- package/data/harnesses/code/skills/design/data/elevation/notion-warm-minimal-hairline.md +17 -0
- package/data/harnesses/code/skills/design/data/elevation/polaris-elevation-inset-bevel.md +21 -0
- package/data/harnesses/code/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/shadcn-neutral-derived-radius.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +18 -0
- package/data/harnesses/code/skills/design/data/elevation/tailwind-default-utility-scale.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/vercel-geist-shadow-as-border.md +20 -0
- package/data/harnesses/code/skills/design/data/gradients/amber-attention-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/cloud-shadow-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/confident-lavender-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/ember-ship-flare.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/full-metal-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/indigo-ruby-cta-band.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/linear-graphite-wash.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/marble-quartz-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/midnight-aurora-panel.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/neutral-volume-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/revenue-uptrend-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/risk-decline-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/signal-blue-develop.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/slate-mist-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/stripe-atmosphere-mesh.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/teal-signal-accent.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/violet-magenta-promo.md +16 -0
- package/data/harnesses/code/skills/design/data/iconography.md +199 -0
- package/data/harnesses/code/skills/design/data/motion/accordion-expand.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/destructive-hold-confirm.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/drag-dismiss-momentum.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/empty-state-arrive.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/hover-lift.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/modal-center-arrive.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/number-ticker-roll.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/onboarding-bounce.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/panel-slide.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/press-feedback.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/progress-linear-loop.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/route-crossfade.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/rubber-band-overscroll.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/skeleton-shimmer.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/stagger-arrive.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/toast-enter-stack.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/tooltip-chain-instant.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/trigger-anchored-reveal.md +18 -0
- package/data/harnesses/code/skills/design/data/tells.csv +34 -0
- package/data/harnesses/code/skills/design/data/typography/anton-work-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/archivo-black-archivo.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/bitter-karla.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/dm-serif-dm-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/fraunces-inter.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/geist-geist-mono.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/hubot-sans-mona-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/instrument-serif-instrument-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/inter-operator-single-family.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/libre-baskerville-libre-franklin.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/newsreader-inter.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/playfair-display-source-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/public-sans-operator-single-family.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/sohne-inter-fintech.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/source-serif-source-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/spectral-manrope.md +17 -0
- package/data/harnesses/code/skills/design/data/voices/bright-collaborator.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/direct-operator.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/earnest-helper.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/editorial-composed.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/quiet-concierge.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/warm-guide.md +29 -0
- package/data/harnesses/code/skills/design/design-md/SCHEMA.md +179 -0
- package/data/harnesses/code/skills/design/design-md/index.csv +67 -0
- package/data/harnesses/code/skills/design/design-md/library/airbnb.md +207 -0
- package/data/harnesses/code/skills/design/design-md/library/airtable.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/anthropic-claude.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/apple.md +206 -0
- package/data/harnesses/code/skills/design/design-md/library/binance.md +210 -0
- package/data/harnesses/code/skills/design/design-md/library/bmw.md +210 -0
- package/data/harnesses/code/skills/design/design-md/library/cal.md +209 -0
- package/data/harnesses/code/skills/design/design-md/library/clay.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/clickhouse.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/cohere.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/coinbase.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/composio.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/cursor.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/elevenlabs.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/expo.md +200 -0
- package/data/harnesses/code/skills/design/design-md/library/figma.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/framer.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/hashicorp.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/ibm.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/intercom.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/kraken.md +200 -0
- package/data/harnesses/code/skills/design/design-md/library/linear-app.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/lovable.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/meta.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/minimax.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/mintlify.md +210 -0
- package/data/harnesses/code/skills/design/design-md/library/miro.md +209 -0
- package/data/harnesses/code/skills/design/design-md/library/mistral-ai.md +201 -0
- package/data/harnesses/code/skills/design/design-md/library/mongodb.md +201 -0
- package/data/harnesses/code/skills/design/design-md/library/notion.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/nvidia.md +215 -0
- package/data/harnesses/code/skills/design/design-md/library/ollama.md +213 -0
- package/data/harnesses/code/skills/design/design-md/library/opencode-ai.md +216 -0
- package/data/harnesses/code/skills/design/design-md/library/posthog.md +218 -0
- package/data/harnesses/code/skills/design/design-md/library/raycast.md +214 -0
- package/data/harnesses/code/skills/design/design-md/library/replicate.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/resend.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/revolut.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/runwayml.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/sanity.md +200 -0
- package/data/harnesses/code/skills/design/design-md/library/sentry.md +201 -0
- package/data/harnesses/code/skills/design/design-md/library/shopify.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/slack.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/spacex.md +206 -0
- package/data/harnesses/code/skills/design/design-md/library/spotify.md +206 -0
- package/data/harnesses/code/skills/design/design-md/library/stripe.md +196 -0
- package/data/harnesses/code/skills/design/design-md/library/supabase.md +196 -0
- package/data/harnesses/code/skills/design/design-md/library/superhuman.md +194 -0
- package/data/harnesses/code/skills/design/design-md/library/tesla.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/theverge.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/together-ai.md +193 -0
- package/data/harnesses/code/skills/design/design-md/library/uber.md +195 -0
- package/data/harnesses/code/skills/design/design-md/library/vercel.md +195 -0
- package/data/harnesses/code/skills/design/design-md/library/voltagent.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/warp.md +196 -0
- package/data/harnesses/code/skills/design/design-md/library/webflow.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/wired.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/wise.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/x-ai.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/zapier.md +198 -0
- package/data/harnesses/code/skills/design/design-md/nurix.md +214 -0
- package/data/harnesses/code/skills/design/design-md/variants/editorial-luxury.md +184 -0
- package/data/harnesses/code/skills/design/design-md/variants/expressive-saas.md +216 -0
- package/data/harnesses/code/skills/design/design-md/variants/quiet-premium.md +211 -0
- package/data/harnesses/code/skills/design/design-md/variants/terse-dense-operator.md +212 -0
- package/data/harnesses/code/skills/design/design-md/variants/warm-approachable.md +216 -0
- package/data/harnesses/code/skills/design/references/compose.md +23 -0
- package/data/harnesses/code/skills/design/references/content.md +28 -0
- package/data/harnesses/code/skills/design/references/emission.md +21 -0
- package/data/harnesses/code/skills/design/references/existing-apps.md +27 -0
- package/data/harnesses/code/skills/design/references/intake.md +36 -0
- package/data/harnesses/code/skills/design/references/object-pass.md +24 -0
- package/data/harnesses/code/skills/design/references/ship-gate.md +29 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/Readme.md +195 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/ai-layer.md +49 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/attributes-lifecycle.md +43 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/container-choice.md +44 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/creation-paths.md +46 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/dashboards.md +42 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/modes.md +42 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/object-model.md +46 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/page-archetype.md +48 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/promotion-demotion.md +37 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/settings.md +42 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/standard-pages.md +46 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/state-matrix.md +41 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/table-mechanics.md +48 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/verbs.md +45 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/viewer-context.md +40 -0
- package/data/harnesses/code/skills/design/scripts/README-validator.md +27 -0
- package/data/harnesses/code/skills/design/scripts/select-chart.mjs +596 -0
- package/data/harnesses/code/skills/design/scripts/validate-design-md.mjs +1198 -0
- package/data/harnesses/discussion/agents/discussion-baseline.md +1 -1
- package/data/harnesses/discussion/harness.json +1 -1
- package/data/harnesses/etna/agents/maintenance.md +1 -1
- package/data/harnesses/etna/harness.json +1 -1
- package/data/harnesses/hr/CLAUDE.md +1 -1
- package/data/harnesses/hr/harness.json +1 -1
- package/package.json +1 -1
- package/data/harnesses/code/skills/design/data/catalog/rules.csv +0 -137
- package/data/harnesses/code/skills/design/data/combinations/Readme.md +0 -33
- package/data/harnesses/code/skills/design/data/combinations/accent-presets.md +0 -113
- package/data/harnesses/code/skills/design/data/combinations/charts.csv +0 -33
- package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +0 -448
- package/data/harnesses/code/skills/design/data/combinations/icons.csv +0 -157
- package/data/harnesses/code/skills/design/data/combinations/landing.csv +0 -38
- package/data/harnesses/code/skills/design/data/combinations/lucide-names.json +0 -2001
- package/data/harnesses/code/skills/design/data/combinations/manifest.json +0 -330
- package/data/harnesses/code/skills/design/data/combinations/motion.csv +0 -10
- package/data/harnesses/code/skills/design/data/combinations/palettes.csv +0 -92
- package/data/harnesses/code/skills/design/data/combinations/product-router.csv +0 -80
- package/data/harnesses/code/skills/design/data/combinations/styles.csv +0 -67
- package/data/harnesses/code/skills/design/data/combinations/typography.csv +0 -64
- package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +0 -106
- package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +0 -154
- package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +0 -151
- package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/apple.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/binance.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/cal.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/clay.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +0 -147
- package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +0 -156
- package/data/harnesses/code/skills/design/data/design-md/library/composio.md +0 -138
- package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +0 -138
- package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/expo.md +0 -148
- package/data/harnesses/code/skills/design/data/design-md/library/figma.md +0 -141
- package/data/harnesses/code/skills/design/data/design-md/library/framer.md +0 -156
- package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +0 -153
- package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +0 -158
- package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +0 -156
- package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +0 -122
- package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/meta.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/miro.md +0 -153
- package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +0 -155
- package/data/harnesses/code/skills/design/data/design-md/library/notion.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +0 -141
- package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +0 -145
- package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +0 -142
- package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +0 -152
- package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/resend.md +0 -170
- package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +0 -145
- package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +0 -168
- package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +0 -163
- package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +0 -147
- package/data/harnesses/code/skills/design/data/design-md/library/slack.md +0 -158
- package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +0 -171
- package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +0 -166
- package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +0 -160
- package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +0 -173
- package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +0 -145
- package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +0 -153
- package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +0 -167
- package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/uber.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +0 -130
- package/data/harnesses/code/skills/design/data/design-md/library/warp.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/wired.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/wise.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +0 -138
- package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +0 -158
- package/data/harnesses/code/skills/design/data/design-md/nurix.md +0 -138
- package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +0 -695
- package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +0 -1272
- package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +0 -1273
- package/data/harnesses/code/skills/design/data/design-tokens/apple/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +0 -1262
- package/data/harnesses/code/skills/design/data/design-tokens/binance/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +0 -1257
- package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/cal/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/clay/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +0 -1261
- package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +0 -1281
- package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +0 -1262
- package/data/harnesses/code/skills/design/data/design-tokens/composio/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +0 -1271
- package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +0 -1293
- package/data/harnesses/code/skills/design/data/design-tokens/expo/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/figma/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/framer/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +0 -1267
- package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +0 -251
- package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +0 -1273
- package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +0 -1286
- package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +0 -1290
- package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +0 -23
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +0 -599
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +0 -1272
- package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +0 -1267
- package/data/harnesses/code/skills/design/data/design-tokens/meta/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +0 -1289
- package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +0 -1258
- package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +0 -1284
- package/data/harnesses/code/skills/design/data/design-tokens/miro/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +0 -1291
- package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +0 -1263
- package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/notion/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +0 -1261
- package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +0 -1209
- package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +0 -1265
- package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +0 -1253
- package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +0 -1261
- package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +0 -1263
- package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +0 -1266
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +0 -23
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +0 -623
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +0 -1264
- package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +0 -1288
- package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +0 -1272
- package/data/harnesses/code/skills/design/data/design-tokens/slack/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +0 -1265
- package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +0 -1287
- package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +0 -1286
- package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +0 -1285
- package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +0 -1287
- package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +0 -1278
- package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +0 -1269
- package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +0 -1285
- package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +0 -1303
- package/data/harnesses/code/skills/design/data/design-tokens/uber/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +0 -1274
- package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +0 -1296
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +0 -23
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +0 -612
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +0 -1282
- package/data/harnesses/code/skills/design/data/design-tokens/warp/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +0 -1287
- package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/wired/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/wise/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +0 -1273
- package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +0 -1296
- package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +0 -1286
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +0 -225
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +0 -224
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +0 -88
- package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +0 -132
- package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +0 -76
- package/data/harnesses/code/skills/design/references/create.md +0 -173
- package/data/harnesses/code/skills/design/references/diagnosis.md +0 -108
- package/data/harnesses/code/skills/design/references/hard-rules.md +0 -177
- package/data/harnesses/code/skills/design/references/improve.md +0 -116
- package/data/harnesses/code/skills/design/references/interaction.md +0 -77
- package/data/harnesses/code/skills/design/references/introspect.md +0 -100
- package/data/harnesses/code/skills/design/references/lifecycle.md +0 -73
- package/data/harnesses/code/skills/design/references/personality.md +0 -575
- package/data/harnesses/code/skills/design/references/structure.md +0 -159
- package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +0 -1312
- package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +0 -1498
- package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +0 -551
- package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +0 -1092
- package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +0 -26
- package/data/harnesses/code/skills/design/scripts/lib/vocabulary.mjs +0 -65
- package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +0 -538
- package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +0 -312
- package/data/harnesses/code/skills/design/scripts/render-rung.mjs +0 -890
- package/data/harnesses/code/skills/design/scripts/scaffold.mjs +0 -769
- package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +0 -675
- package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +0 -164
- package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +0 -439
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
id,pairing,tier,heading_family,body_family,mono_family,contrast,mood,best_for,heading_weights,body_weights,google_fonts_css,notes,css-import,tailwind-config,display-size-hint
|
|
2
|
-
1,Minimal Swiss,operator-active,Inter,Inter,JetBrains Mono,sans+sans,"minimal, neutral, functional, legible, systematic","dashboards, admin panels, data tables, design systems, internal tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap,"One neutral grotesque carries the whole hierarchy through weight alone, which is the safest default for a dense operator console.",@import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Inter', 'sans-serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
3
|
-
2,Friendly SaaS,operator-active,Plus Jakarta Sans,Plus Jakarta Sans,JetBrains Mono,sans+sans,"approachable, modern, warm, professional, versatile","SaaS consoles, B2B web apps, settings pages, productivity tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap,Plus Jakarta Sans keeps a single-family setup readable while adding a touch more warmth than Inter for softer product surfaces.,@import '@fontsource/plus-jakarta-sans/400.css'; @import '@fontsource/plus-jakarta-sans/500.css'; @import '@fontsource/plus-jakarta-sans/600.css'; @import '@fontsource/plus-jakarta-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Plus Jakarta Sans', 'sans-serif'], body: ['Plus Jakarta Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
4
|
-
3,Financial Trust,operator-active,IBM Plex Sans,IBM Plex Sans,IBM Plex Mono,sans+sans,"trustworthy, corporate, precise, serious, tabular","banking back-office, fintech admin, ledgers, reporting, enterprise apps",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,"IBM Plex Sans reads calmly at small sizes and pairs cleanly with its own mono for figure columns, so numbers and labels feel of one voice.",@import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['IBM Plex Sans', 'sans-serif'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
5
|
-
4,Modern Neutral,operator-active,Manrope,Manrope,JetBrains Mono,sans+sans,"clean, contemporary, premium, balanced, quiet","product dashboards, analytics UIs, marketing-adjacent consoles, portals",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap,"Manrope splits the difference between geometric and humanist, giving a crisp yet friendly single-family system for polished internal products.",@import '@fontsource/manrope/400.css'; @import '@fontsource/manrope/500.css'; @import '@fontsource/manrope/600.css'; @import '@fontsource/manrope/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Manrope', 'sans-serif'], body: ['Manrope', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
6
|
-
5,Premium Sans,operator-active,DM Sans,DM Sans,Space Mono,sans+sans,"premium, tidy, geometric, understated, modern","startup consoles, low-chrome apps, forms, focused single-column tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap,"DM Sans stays compact and even in color, so long forms and settings screens hold together without a second family.",@import '@fontsource/dm-sans/400.css'; @import '@fontsource/dm-sans/500.css'; @import '@fontsource/dm-sans/600.css'; @import '@fontsource/dm-sans/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['DM Sans', 'sans-serif'], body: ['DM Sans', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
7
|
-
6,Source Workhorse,operator-active,Source Sans 3,Source Sans 3,Source Code Pro,sans+sans,"utilitarian, readable, open-source, dependable, plain","documentation UIs, content admins, help centers, ticketing back-ends",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&display=swap,Source Sans 3 is an unfussy reading sans that scales from field labels to paragraph help text within one file.,@import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/source-code-pro/400.css'; @import '@fontsource/source-code-pro/500.css';,"fontFamily: { heading: ['Source Sans 3', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['Source Code Pro', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
8
|
-
7,Material Console,operator-active,Roboto,Roboto,Roboto Mono,sans+sans,"familiar, android, systematic, adaptive, plain","Android-adjacent tools, cross-platform admin, MD3 apps, embedded dashboards",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap,"Roboto is the Material default operators already recognize, and pairing it with Roboto Mono keeps data cells in the same family.",@import '@fontsource/roboto/400.css'; @import '@fontsource/roboto/500.css'; @import '@fontsource/roboto/600.css'; @import '@fontsource/roboto/700.css'; @import '@fontsource/roboto-mono/400.css'; @import '@fontsource/roboto-mono/500.css';,"fontFamily: { heading: ['Roboto', 'sans-serif'], body: ['Roboto', 'sans-serif'], mono: ['Roboto Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
9
|
-
8,Accessibility First,operator-active,Atkinson Hyperlegible,Atkinson Hyperlegible,IBM Plex Mono,sans+sans,"accessible, legible, inclusive, high-clarity, plain","accessibility-critical tools, healthcare, government back-office, inclusive design",700,400;700,https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&display=swap,"Atkinson Hyperlegible pulls apart easily confused letterforms, which matters when operators scan identifiers and codes all day.",@import '@fontsource/atkinson-hyperlegible/400.css'; @import '@fontsource/atkinson-hyperlegible/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Atkinson Hyperlegible', 'sans-serif'], body: ['Atkinson Hyperlegible', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
10
|
-
9,Modern Professional,operator-active,Poppins,Open Sans,JetBrains Mono,sans+sans,"professional, friendly, corporate, clean, approachable","corporate apps, business dashboards, professional services, portals",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&family=Open+Sans:wght@400;500;600;700&display=swap,Geometric Poppins headings sit above humanist Open Sans body so section titles get presence without hurting long-run readability.,@import '@fontsource/poppins/500.css'; @import '@fontsource/poppins/600.css'; @import '@fontsource/poppins/700.css'; @import '@fontsource/open-sans/400.css'; @import '@fontsource/open-sans/500.css'; @import '@fontsource/open-sans/600.css'; @import '@fontsource/open-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Poppins', 'sans-serif'], body: ['Open Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
11
|
-
10,Tech Startup,operator-active,Space Grotesk,DM Sans,JetBrains Mono,sans+sans,"technical, modern, distinctive, product, confident","developer products, technical dashboards, SaaS consoles, data tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap,Space Grotesk lends headings a little engineered character while DM Sans keeps the body plain and dense-friendly.,@import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/dm-sans/400.css'; @import '@fontsource/dm-sans/500.css'; @import '@fontsource/dm-sans/600.css'; @import '@fontsource/dm-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['DM Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
12
|
-
11,Geometric Modern,operator-active,Outfit,Work Sans,JetBrains Mono,sans+sans,"geometric, contemporary, balanced, versatile, clean","general admin, internal portals, catalog tools, landing-adjacent consoles",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700&family=Work+Sans:wght@400;500;600;700&display=swap,"Outfit gives crisp geometric headings and Work Sans supplies a slightly warmer, workmanlike body underneath.",@import '@fontsource/outfit/500.css'; @import '@fontsource/outfit/600.css'; @import '@fontsource/outfit/700.css'; @import '@fontsource/work-sans/400.css'; @import '@fontsource/work-sans/500.css'; @import '@fontsource/work-sans/600.css'; @import '@fontsource/work-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Outfit', 'sans-serif'], body: ['Work Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
13
|
-
12,Corporate Trust,operator-active,Lexend,Source Sans 3,IBM Plex Mono,sans+sans,"readable, accessible, corporate, calm, dependable","enterprise apps, finance, healthcare, accessibility-focused back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Lexend:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap,"Lexend was tuned to ease reading speed, so it earns the heading role over a plain Source Sans 3 body in text-heavy consoles.",@import '@fontsource/lexend/500.css'; @import '@fontsource/lexend/600.css'; @import '@fontsource/lexend/700.css'; @import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Lexend', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
14
|
-
13,Medical Clean,operator-active,Figtree,Noto Sans,IBM Plex Mono,sans+sans,"clean, clinical, accessible, calm, professional","healthcare admin, clinical tools, records systems, patient portals",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Figtree:wght@500;600;700&family=Noto+Sans:wght@400;500;600;700&display=swap,Figtree stays neutral and clear for headings while Noto Sans covers the wide glyph range clinical data tends to demand.,@import '@fontsource/figtree/500.css'; @import '@fontsource/figtree/600.css'; @import '@fontsource/figtree/700.css'; @import '@fontsource/noto-sans/400.css'; @import '@fontsource/noto-sans/500.css'; @import '@fontsource/noto-sans/600.css'; @import '@fontsource/noto-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Figtree', 'sans-serif'], body: ['Noto Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
15
|
-
14,Commerce Clean,operator-active,Rubik,Nunito Sans,JetBrains Mono,sans+sans,"friendly, retail, clean, approachable, orderly","back-office commerce, order management, catalog admin, fulfillment tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Rubik:wght@500;600;700&family=Nunito+Sans:wght@400;500;600;700&display=swap,Rubik's rounded corners give order screens a little friendliness while Nunito Sans keeps line items quietly legible.,@import '@fontsource/rubik/500.css'; @import '@fontsource/rubik/600.css'; @import '@fontsource/rubik/700.css'; @import '@fontsource/nunito-sans/400.css'; @import '@fontsource/nunito-sans/500.css'; @import '@fontsource/nunito-sans/600.css'; @import '@fontsource/nunito-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Rubik', 'sans-serif'], body: ['Nunito Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
16
|
-
15,Minimalist Portfolio,operator-active,Space Grotesk,Archivo,Space Mono,sans+sans,"minimal, editorial, crisp, design-forward, restrained","design tooling, asset managers, internal editors, review consoles",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Archivo:wght@400;500;600;700&display=swap,Space Grotesk headings stay distinctive against Archivo's tighter grotesque body for tools that want a designed feel.,@import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/archivo/400.css'; @import '@fontsource/archivo/500.css'; @import '@fontsource/archivo/600.css'; @import '@fontsource/archivo/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['Archivo', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
17
|
-
16,Government Public,operator-active,Public Sans,Source Sans 3,IBM Plex Mono,sans+sans,"civic, neutral, accessible, plain, official","government dashboards, public-sector admin, compliance tools, records",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Public+Sans:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap,"Public Sans carries a civic, standards-driven tone for headings that Source Sans 3 supports without drawing attention.",@import '@fontsource/public-sans/500.css'; @import '@fontsource/public-sans/600.css'; @import '@fontsource/public-sans/700.css'; @import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Public Sans', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
18
|
-
17,Technical Data,operator-active,Exo,IBM Plex Sans,Roboto Mono,sans+sans,"technical, engineered, precise, data, modern","engineering dashboards, monitoring, telemetry consoles, ops tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Exo:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,Exo adds a subtle engineered edge to headings while IBM Plex Sans keeps dense telemetry labels grounded and readable.,@import '@fontsource/exo/500.css'; @import '@fontsource/exo/600.css'; @import '@fontsource/exo/700.css'; @import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css'; @import '@fontsource/roboto-mono/400.css'; @import '@fontsource/roboto-mono/500.css';,"fontFamily: { heading: ['Exo', 'sans-serif'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['Roboto Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
19
|
-
18,Condensed Dense,operator-active,Barlow Condensed,Barlow,JetBrains Mono,sans+sans,"condensed, dense, efficient, compact, utilitarian","space-tight dashboards, dense tables, control panels, logistics tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Barlow:wght@400;500;600;700&display=swap,Barlow Condensed packs long headings into narrow columns and shares a family with Barlow body so the two never clash.,@import '@fontsource/barlow-condensed/500.css'; @import '@fontsource/barlow-condensed/600.css'; @import '@fontsource/barlow-condensed/700.css'; @import '@fontsource/barlow/400.css'; @import '@fontsource/barlow/500.css'; @import '@fontsource/barlow/600.css'; @import '@fontsource/barlow/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Barlow Condensed', 'sans-serif'], body: ['Barlow', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3-3.5rem/600-700/0/lh1.05; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
20
|
-
19,Developer Mono,operator-active,JetBrains Mono,IBM Plex Sans,JetBrains Mono,mono+sans,"developer, technical, precise, code, functional","developer tools, CI dashboards, config editors, log viewers",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,JetBrains Mono headings and labels signal a code context while IBM Plex Sans keeps surrounding prose comfortable to read.,@import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css'; @import '@fontsource/jetbrains-mono/700.css'; @import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css';,"fontFamily: { heading: ['JetBrains Mono', 'monospace'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2-2.5rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
21
|
-
20,Dashboard Data,operator-active,Fira Code,Fira Sans,Fira Code,mono+sans,"analytics, technical, data, precise, cohesive","analytics dashboards, metric consoles, query tools, observability",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Fira+Code:wght@500;600;700&family=Fira+Sans:wght@400;500;600;700&display=swap,"The Fira family shares proportions across mono and sans, so figures in Fira Code sit naturally beside Fira Sans labels.",@import '@fontsource/fira-code/400.css'; @import '@fontsource/fira-code/500.css'; @import '@fontsource/fira-code/600.css'; @import '@fontsource/fira-code/700.css'; @import '@fontsource/fira-sans/400.css'; @import '@fontsource/fira-sans/500.css'; @import '@fontsource/fira-sans/600.css'; @import '@fontsource/fira-sans/700.css';,"fontFamily: { heading: ['Fira Code', 'monospace'], body: ['Fira Sans', 'sans-serif'], mono: ['Fira Code', 'monospace'] }",display 2-2.5rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
22
|
-
21,Academic Research,operator-active,Crimson Pro,Atkinson Hyperlegible,IBM Plex Mono,serif+sans,"scholarly, readable, accessible, considered, literate","research admin, academic tools, knowledge bases, review systems",500;600;700,400;700,https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@500;600;700&family=Atkinson+Hyperlegible:wght@400;700&display=swap,Crimson Pro gives headings a scholarly serif voice while Atkinson Hyperlegible keeps the body maximally clear for long reading.,@import '@fontsource/crimson-pro/500.css'; @import '@fontsource/crimson-pro/600.css'; @import '@fontsource/crimson-pro/700.css'; @import '@fontsource/atkinson-hyperlegible/400.css'; @import '@fontsource/atkinson-hyperlegible/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Crimson Pro', 'serif'], body: ['Atkinson Hyperlegible', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
23
|
-
22,News Editorial,operator-active,Newsreader,Roboto,Roboto Mono,serif+sans,"editorial, journalistic, readable, trustworthy, content-rich","content moderation, CMS back-ends, editorial dashboards, review queues",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Newsreader:wght@500;600;700&family=Roboto:wght@400;500;600;700&display=swap,"Newsreader is a text serif rather than a display face, so it heads content-heavy screens without tiring the reader, over a Roboto body.",@import '@fontsource/newsreader/500.css'; @import '@fontsource/newsreader/600.css'; @import '@fontsource/newsreader/700.css'; @import '@fontsource/roboto/400.css'; @import '@fontsource/roboto/500.css'; @import '@fontsource/roboto/600.css'; @import '@fontsource/roboto/700.css'; @import '@fontsource/roboto-mono/400.css'; @import '@fontsource/roboto-mono/500.css';,"fontFamily: { heading: ['Newsreader', 'serif'], body: ['Roboto', 'sans-serif'], mono: ['Roboto Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
24
|
-
23,Legal Records,operator-active,EB Garamond,Lato,IBM Plex Mono,serif+sans,"formal, authoritative, records, considered, traditional","legal ops tools, contract admin, records systems, compliance consoles",500;600;700,400;700,https://fonts.googleapis.com/css2?family=EB+Garamond:wght@500;600;700&family=Lato:wght@400;700&display=swap,"EB Garamond lends record screens a formal, document-like authority in headings that Lato keeps plainly readable in the body.",@import '@fontsource/eb-garamond/500.css'; @import '@fontsource/eb-garamond/600.css'; @import '@fontsource/eb-garamond/700.css'; @import '@fontsource/lato/400.css'; @import '@fontsource/lato/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['EB Garamond', 'serif'], body: ['Lato', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
25
|
-
24,Vietnamese Locale,operator-active,Be Vietnam Pro,Noto Sans,JetBrains Mono,sans+sans,"multilingual, vietnamese, readable, clean, localized","Vietnamese-market tools, multilingual admin, localized back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@500;600;700&family=Noto+Sans:wght@400;500;600;700&display=swap,Be Vietnam Pro handles full Vietnamese diacritics cleanly with Noto Sans as a broad fallback for mixed-script data.,@import '@fontsource/be-vietnam-pro/500.css'; @import '@fontsource/be-vietnam-pro/600.css'; @import '@fontsource/be-vietnam-pro/700.css'; @import '@fontsource/noto-sans/400.css'; @import '@fontsource/noto-sans/500.css'; @import '@fontsource/noto-sans/600.css'; @import '@fontsource/noto-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Be Vietnam Pro', 'sans-serif'], body: ['Noto Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
26
|
-
25,Japanese Locale,operator-active,Noto Serif JP,Noto Sans JP,JetBrains Mono,serif+sans,"japanese, multilingual, legible, localized, considered","Japanese-market admin, localized consoles, bilingual tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap,Noto Serif JP heads Japanese screens with a settled tone while Noto Sans JP keeps dense kana and kanji body text even.,@import '@fontsource/noto-serif-jp/500.css'; @import '@fontsource/noto-serif-jp/600.css'; @import '@fontsource/noto-serif-jp/700.css'; @import '@fontsource/noto-sans-jp/400.css'; @import '@fontsource/noto-sans-jp/500.css'; @import '@fontsource/noto-sans-jp/600.css'; @import '@fontsource/noto-sans-jp/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Serif JP', 'serif'], body: ['Noto Sans JP', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
27
|
-
26,Korean Locale,operator-active,Noto Sans KR,Noto Sans KR,JetBrains Mono,sans+sans,"korean, multilingual, clean, localized, readable","Korean-market tools, localized admin, bilingual back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&display=swap,A single Noto Sans KR system keeps Hangul hierarchy consistent across headings and body without a second face to tune.,@import '@fontsource/noto-sans-kr/400.css'; @import '@fontsource/noto-sans-kr/500.css'; @import '@fontsource/noto-sans-kr/600.css'; @import '@fontsource/noto-sans-kr/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans KR', 'sans-serif'], body: ['Noto Sans KR', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
28
|
-
27,Chinese Simplified Locale,operator-active,Noto Sans SC,Noto Sans SC,JetBrains Mono,sans+sans,"chinese, simplified, multilingual, clean, localized","mainland-market admin, localized consoles, bilingual tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap,"Noto Sans SC gives simplified-Chinese operators a full, even glyph set from labels to paragraphs in one family.",@import '@fontsource/noto-sans-sc/400.css'; @import '@fontsource/noto-sans-sc/500.css'; @import '@fontsource/noto-sans-sc/600.css'; @import '@fontsource/noto-sans-sc/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans SC', 'sans-serif'], body: ['Noto Sans SC', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
29
|
-
28,Arabic Locale,operator-active,Noto Naskh Arabic,Noto Sans Arabic,JetBrains Mono,serif+sans,"arabic, rtl, multilingual, localized, readable","Arabic-market admin, RTL dashboards, bilingual back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@500;600;700&family=Noto+Sans+Arabic:wght@400;500;600;700&display=swap,Noto Naskh Arabic heads RTL screens with a traditional voice while Noto Sans Arabic keeps body and UI text modern and clear.,@import '@fontsource/noto-naskh-arabic/500.css'; @import '@fontsource/noto-naskh-arabic/600.css'; @import '@fontsource/noto-naskh-arabic/700.css'; @import '@fontsource/noto-sans-arabic/400.css'; @import '@fontsource/noto-sans-arabic/500.css'; @import '@fontsource/noto-sans-arabic/600.css'; @import '@fontsource/noto-sans-arabic/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Naskh Arabic', 'serif'], body: ['Noto Sans Arabic', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.3; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
30
|
-
29,Hebrew Locale,operator-active,Noto Sans Hebrew,Noto Sans Hebrew,JetBrains Mono,sans+sans,"hebrew, rtl, multilingual, localized, clean","Hebrew-market tools, RTL admin, bilingual back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+Hebrew:wght@400;500;600;700&display=swap,One Noto Sans Hebrew system keeps RTL hierarchy consistent and legible for Israeli-market internal tools.,@import '@fontsource/noto-sans-hebrew/400.css'; @import '@fontsource/noto-sans-hebrew/500.css'; @import '@fontsource/noto-sans-hebrew/600.css'; @import '@fontsource/noto-sans-hebrew/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans Hebrew', 'sans-serif'], body: ['Noto Sans Hebrew', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
31
|
-
30,Thai Locale,operator-active,Noto Sans Thai,Noto Sans Thai,JetBrains Mono,sans+sans,"thai, multilingual, readable, localized, clean","Thai-market admin, localized consoles, SEA back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&display=swap,"Noto Sans Thai renders looped Thai script clearly at UI sizes, carrying both heading and body in one dependable family.",@import '@fontsource/noto-sans-thai/400.css'; @import '@fontsource/noto-sans-thai/500.css'; @import '@fontsource/noto-sans-thai/600.css'; @import '@fontsource/noto-sans-thai/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans Thai', 'sans-serif'], body: ['Noto Sans Thai', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.3; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
32
|
-
31,Chinese Traditional Locale,operator-active,Noto Serif TC,Noto Sans TC,JetBrains Mono,serif+sans,"chinese, traditional, multilingual, localized, considered","Taiwan and Hong Kong market admin, localized consoles, bilingual tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap,Noto Serif TC gives traditional-Chinese headings a measured tone with Noto Sans TC handling denser body text.,@import '@fontsource/noto-serif-tc/500.css'; @import '@fontsource/noto-serif-tc/600.css'; @import '@fontsource/noto-serif-tc/700.css'; @import '@fontsource/noto-sans-tc/400.css'; @import '@fontsource/noto-sans-tc/500.css'; @import '@fontsource/noto-sans-tc/600.css'; @import '@fontsource/noto-sans-tc/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Serif TC', 'serif'], body: ['Noto Sans TC', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
33
|
-
32,Rounded Legible,operator-active,Nunito Sans,Nunito Sans,JetBrains Mono,sans+sans,"rounded, friendly, legible, calm, approachable","support consoles, CRM back-office, help desks, customer-facing admin",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700&display=swap,Nunito Sans softens a support console's tone with gently rounded terminals while staying legible enough for all-day use.,@import '@fontsource/nunito-sans/400.css'; @import '@fontsource/nunito-sans/500.css'; @import '@fontsource/nunito-sans/600.css'; @import '@fontsource/nunito-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Nunito Sans', 'sans-serif'], body: ['Nunito Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
34
|
-
33,Grotesque Utility,operator-active,Karla,Karla,Space Mono,sans+sans,"grotesque, utilitarian, compact, plain, efficient","utility dashboards, config panels, small-footprint tools, forms",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Karla:wght@400;500;600;700&display=swap,"Karla is a tidy grotesque whose narrow set width fits more label text per row, useful when screen real estate is tight.",@import '@fontsource/karla/400.css'; @import '@fontsource/karla/500.css'; @import '@fontsource/karla/600.css'; @import '@fontsource/karla/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Karla', 'sans-serif'], body: ['Karla', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
35
|
-
34,Classic Elegant,operator-active,Playfair Display,Inter,JetBrains Mono,serif+sans,"elegant, luxury, editorial, high-contrast, premium","wealth and private-banking consoles, luxury commerce admin, premium client portals, editorial CMS",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap,"Playfair Display appears only at H1 and H2 over a working Inter body, giving premium verticals a confident display serif without costing table legibility.",@import '@fontsource/playfair-display/500.css'; @import '@fontsource/playfair-display/600.css'; @import '@fontsource/playfair-display/700.css'; @import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Playfair Display', 'serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
36
|
-
35,Playful Creative,operator-active,Fredoka,Nunito,Space Mono,display+sans,"playful, friendly, fun, rounded, warm","education platform admin, classroom management tools, kids-product back-office, learning dashboards",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Nunito:wght@400;500;600;700&display=swap,Rounded Fredoka headings keep an education product's operator surfaces on brand while the Nunito body stays legible through long grading and roster screens.,@import '@fontsource/fredoka/500.css'; @import '@fontsource/fredoka/600.css'; @import '@fontsource/fredoka/700.css'; @import '@fontsource/nunito/400.css'; @import '@fontsource/nunito/500.css'; @import '@fontsource/nunito/600.css'; @import '@fontsource/nunito/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Fredoka', 'sans-serif'], body: ['Nunito', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
37
|
-
36,Wellness Calm,operator-active,Lora,Raleway,IBM Plex Mono,serif+sans,"calm, wellness, organic, gentle, natural","wellness platform admin, clinic and spa back-office, care coordination tools, patient program consoles",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Raleway:wght@400;500;600;700&display=swap,Lora is a sturdy text serif that keeps wellness operators' headings calm while Raleway carries labels and body copy cleanly at UI sizes.,@import '@fontsource/lora/500.css'; @import '@fontsource/lora/600.css'; @import '@fontsource/lora/700.css'; @import '@fontsource/raleway/400.css'; @import '@fontsource/raleway/500.css'; @import '@fontsource/raleway/600.css'; @import '@fontsource/raleway/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Lora', 'serif'], body: ['Raleway', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
38
|
-
37,Fashion Forward,operator-active,Syne,Manrope,JetBrains Mono,sans+sans,"avant-garde, artistic, edgy, creative, bold","design tool consoles, creative agency admin, brand asset managers, review and approval tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Syne:wght@500;600;700&family=Manrope:wght@400;500;600;700&display=swap,Syne's engineered quirk gives creative-tool headings an art-directed voice while Manrope keeps the working body plain and dense-friendly.,@import '@fontsource/syne/500.css'; @import '@fontsource/syne/600.css'; @import '@fontsource/syne/700.css'; @import '@fontsource/manrope/400.css'; @import '@fontsource/manrope/500.css'; @import '@fontsource/manrope/600.css'; @import '@fontsource/manrope/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Syne', 'sans-serif'], body: ['Manrope', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
39
|
-
38,SaaS Boutique,operator-active,Calistoga,Inter,JetBrains Mono,serif+sans,"boutique, warm, editorial, bold, characterful","boutique SaaS dashboards, analytics consoles, billing and usage surfaces, marketing ops tools",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Calistoga:wght@400&family=Inter:wght@400;500;600;700&display=swap,"Calistoga's warm single-weight display carries H1 and H2 personality while the full Inter system does the operator work underneath, a boutique-SaaS look that survives dense screens.",@import '@fontsource/calistoga/400.css'; @import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Calistoga', 'serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/400/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
40
|
-
39,Web3 Fintech,operator-active,Space Grotesk,Inter,JetBrains Mono,sans+sans,"crypto, fintech, technical, precise, confident","DeFi and wallet consoles, trading dashboards, token analytics, blockchain ops tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap,Space Grotesk headings give crypto consoles their engineered edge while Inter body and JetBrains Mono figures keep balances and hashes rigorously legible.,@import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
41
|
-
40,Editorial Classic,dormant-marketing,Cormorant Garamond,Libre Baskerville,IBM Plex Mono,serif+serif,"editorial, literary, traditional, refined, bookish","publishing, literary magazines, long-form editorial, book sites",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Libre+Baskerville:wght@400;500;600;700&display=swap,"An all-serif pairing leans fully literary, which suits editorial publishing but is too low-contrast for scanning operator data.",@import '@fontsource/cormorant-garamond/500.css'; @import '@fontsource/cormorant-garamond/600.css'; @import '@fontsource/cormorant-garamond/700.css'; @import '@fontsource/libre-baskerville/400.css'; @import '@fontsource/libre-baskerville/500.css'; @import '@fontsource/libre-baskerville/600.css'; @import '@fontsource/libre-baskerville/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cormorant Garamond', 'serif'], body: ['Libre Baskerville', 'serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
42
|
-
41,Bold Statement,dormant-marketing,Bebas Neue,Source Sans 3,JetBrains Mono,display+sans,"bold, impactful, headline, dramatic, loud","marketing heroes, event pages, agencies, campaign landing",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Bebas+Neue:wght@400&family=Source+Sans+3:wght@400;500;600;700&display=swap,"Bebas Neue is an all-caps display face for oversized headlines only, which is why it lives in the marketing pack, not the operator set.",@import '@fontsource/bebas-neue/400.css'; @import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Bebas Neue', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3.5-4rem/400/+0.02em/lh1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
43
|
-
42,Retro Vintage,dormant-marketing,Abril Fatface,Merriweather,Space Mono,serif+serif,"retro, vintage, dramatic, decorative, nostalgic","vintage brands, breweries, restaurants, poster-style marketing",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Abril+Fatface:wght@400&family=Merriweather:wght@400;500;600;700&display=swap,"Abril Fatface's heavy Didone hairlines make a striking vintage hero serif reserved for headlines, paired with Merriweather body.",@import '@fontsource/abril-fatface/400.css'; @import '@fontsource/merriweather/400.css'; @import '@fontsource/merriweather/500.css'; @import '@fontsource/merriweather/600.css'; @import '@fontsource/merriweather/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Abril Fatface', 'serif'], body: ['Merriweather', 'serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/400/0/lh1.05; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
44
|
-
43,Luxury Serif,dormant-marketing,Cormorant,Montserrat,IBM Plex Mono,serif+sans,"luxury, fashion, refined, premium, high-end","fashion houses, jewelry, luxury e-commerce, premium services",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Cormorant:wght@500;600;700&family=Montserrat:wght@400;500;600;700&display=swap,Cormorant's delicate high-contrast forms read as luxury marketing and would wash out in the small sizes operator tables use.,@import '@fontsource/cormorant/500.css'; @import '@fontsource/cormorant/600.css'; @import '@fontsource/cormorant/700.css'; @import '@fontsource/montserrat/400.css'; @import '@fontsource/montserrat/500.css'; @import '@fontsource/montserrat/600.css'; @import '@fontsource/montserrat/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cormorant', 'serif'], body: ['Montserrat', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
45
|
-
44,Handwritten Charm,dormant-marketing,Caveat,Quicksand,Space Mono,display+sans,"handwritten, personal, casual, warm, charming","personal brands, invitations, lifestyle marketing, creative portfolios",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Caveat:wght@500;600;700&family=Quicksand:wght@400;500;600;700&display=swap,"Caveat is a script accent for personality-driven marketing, unusable as working type but kept for the campaign pack.",@import '@fontsource/caveat/500.css'; @import '@fontsource/caveat/600.css'; @import '@fontsource/caveat/700.css'; @import '@fontsource/quicksand/400.css'; @import '@fontsource/quicksand/500.css'; @import '@fontsource/quicksand/600.css'; @import '@fontsource/quicksand/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Caveat', 'cursive'], body: ['Quicksand', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/0/lh1.15; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
46
|
-
45,Soft Rounded,dormant-marketing,Varela Round,Nunito Sans,JetBrains Mono,sans+sans,"soft, rounded, friendly, gentle, warm","kids and pet brands, wellness marketing, soft consumer UI",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Varela+Round:wght@400&family=Nunito+Sans:wght@400;500;600;700&display=swap,Fully rounded Varela Round headings set a soft consumer mood aimed at friendly marketing rather than dense operator work.,@import '@fontsource/varela-round/400.css'; @import '@fontsource/nunito-sans/400.css'; @import '@fontsource/nunito-sans/500.css'; @import '@fontsource/nunito-sans/600.css'; @import '@fontsource/nunito-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Varela Round', 'sans-serif'], body: ['Nunito Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/400/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
47
|
-
46,Magazine Style,dormant-marketing,Libre Bodoni,Public Sans,IBM Plex Mono,serif+sans,"magazine, editorial, print, refined, journalistic","online magazines, editorial features, publishing marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Libre+Bodoni:wght@500;600;700&family=Public+Sans:wght@400;500;600;700&display=swap,Libre Bodoni's print-magazine contrast makes expressive feature headings that suit publishing marketing over back-office reading.,@import '@fontsource/libre-bodoni/500.css'; @import '@fontsource/libre-bodoni/600.css'; @import '@fontsource/libre-bodoni/700.css'; @import '@fontsource/public-sans/400.css'; @import '@fontsource/public-sans/500.css'; @import '@fontsource/public-sans/600.css'; @import '@fontsource/public-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Libre Bodoni', 'serif'], body: ['Public Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
48
|
-
47,Cyberpunk Web3,dormant-marketing,Orbitron,Exo 2,JetBrains Mono,display+sans,"futuristic, crypto, neon, sci-fi, technical","crypto and web3 marketing, NFT sites, gaming, futuristic brands",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700&family=Exo+2:wght@400;500;600;700&display=swap,"Orbitron's wide sci-fi caps brand crypto and gaming marketing pages, a decorative look kept clear of real data screens.",@import '@fontsource/orbitron/500.css'; @import '@fontsource/orbitron/600.css'; @import '@fontsource/orbitron/700.css'; @import '@fontsource/exo-2/400.css'; @import '@fontsource/exo-2/500.css'; @import '@fontsource/exo-2/600.css'; @import '@fontsource/exo-2/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Orbitron', 'sans-serif'], body: ['Exo 2', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/+0.04em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
49
|
-
48,Gaming Bold,dormant-marketing,Russo One,Chakra Petch,Space Mono,display+sans,"gaming, bold, esports, energetic, competitive","gaming and esports marketing, tournaments, entertainment brands",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Russo+One:wght@400&family=Chakra+Petch:wght@400;500;600;700&display=swap,"Russo One's blocky impact suits esports headlines while Chakra Petch adds a techy body, a pairing tuned for hype not throughput.",@import '@fontsource/russo-one/400.css'; @import '@fontsource/chakra-petch/400.css'; @import '@fontsource/chakra-petch/500.css'; @import '@fontsource/chakra-petch/600.css'; @import '@fontsource/chakra-petch/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Russo One', 'sans-serif'], body: ['Chakra Petch', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/400/0/lh1.05; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
50
|
-
49,Real Estate Luxury,dormant-marketing,Cinzel,Josefin Sans,IBM Plex Mono,serif+sans,"luxury, architectural, refined, premium, elegant","luxury real estate, architecture, interiors, premium property marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Josefin+Sans:wght@400;500;600;700&display=swap,"Cinzel's engraved Roman capitals evoke premium property branding, a display serif meant for hero titles rather than dense listings.",@import '@fontsource/cinzel/500.css'; @import '@fontsource/cinzel/600.css'; @import '@fontsource/cinzel/700.css'; @import '@fontsource/josefin-sans/400.css'; @import '@fontsource/josefin-sans/500.css'; @import '@fontsource/josefin-sans/600.css'; @import '@fontsource/josefin-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cinzel', 'serif'], body: ['Josefin Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/+0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
51
|
-
50,Luxury Minimalist,dormant-marketing,Bodoni Moda,Jost,IBM Plex Mono,serif+sans,"luxury, minimalist, high-contrast, refined, premium","high-end fashion, premium minimal brands, luxury product marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Bodoni+Moda:wght@500;600;700&family=Jost:wght@400;500;600;700&display=swap,"Bodoni Moda's extreme contrast reads as minimalist luxury in headlines, paired with geometric Jost, and stays in the marketing pack.",@import '@fontsource/bodoni-moda/500.css'; @import '@fontsource/bodoni-moda/600.css'; @import '@fontsource/bodoni-moda/700.css'; @import '@fontsource/jost/400.css'; @import '@fontsource/jost/500.css'; @import '@fontsource/jost/600.css'; @import '@fontsource/jost/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Bodoni Moda', 'serif'], body: ['Jost', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
52
|
-
51,Neubrutalist Bold,dormant-marketing,Lexend Mega,Public Sans,JetBrains Mono,display+sans,"neubrutalist, loud, geometric, bold, quirky","neubrutalist marketing, Gen Z brands, bold campaign pages",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Lexend+Mega:wght@500;600;700&family=Public+Sans:wght@400;500;600;700&display=swap,"Lexend Mega's ultra-wide tracking is a deliberately loud neubrutalist statement for campaigns, not a workaday heading face.",@import '@fontsource/lexend-mega/500.css'; @import '@fontsource/lexend-mega/600.css'; @import '@fontsource/lexend-mega/700.css'; @import '@fontsource/public-sans/400.css'; @import '@fontsource/public-sans/500.css'; @import '@fontsource/public-sans/600.css'; @import '@fontsource/public-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Lexend Mega', 'sans-serif'], body: ['Public Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
53
|
-
52,Gen Z Brutal,dormant-marketing,Anton,Epilogue,JetBrains Mono,display+sans,"brutal, loud, streetwear, meme, bold","streetwear, viral campaigns, Gen Z marketing, sticker packs",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Anton:wght@400&family=Epilogue:wght@400;500;600;700&display=swap,"Anton's condensed black weight shouts for streetwear and meme campaigns, an intentionally aggressive display voice kept dormant.",@import '@fontsource/anton/400.css'; @import '@fontsource/epilogue/400.css'; @import '@fontsource/epilogue/500.css'; @import '@fontsource/epilogue/600.css'; @import '@fontsource/epilogue/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Anton', 'sans-serif'], body: ['Epilogue', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3.5-4rem/400/+0.01em/lh1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
54
|
-
53,Bauhaus Geometric,dormant-marketing,Outfit,Outfit,JetBrains Mono,sans+sans,"bauhaus, geometric, constructivist, poster, architectural","design-forward brand marketing, art and culture, poster-style sites",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap,"A single Outfit set at heavy uppercase weights makes a Bauhaus poster system that is expressive branding, not operator hierarchy.",@import '@fontsource/outfit/400.css'; @import '@fontsource/outfit/500.css'; @import '@fontsource/outfit/600.css'; @import '@fontsource/outfit/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Outfit', 'sans-serif'], body: ['Outfit', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3-3.5rem/600-700/-0.02em/lh1.05; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
55
|
-
54,Monochrome Editorial,dormant-marketing,Playfair Display,Source Serif 4,JetBrains Mono,serif+serif,"monochrome, editorial, austere, high-contrast, typographic","luxury fashion editorial, digital exhibitions, portfolio marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Source+Serif+4:wght@400;500;600;700&display=swap,"Playfair Display over Source Serif 4 makes an austere all-serif editorial statement built for display, not for scanning records.",@import '@fontsource/playfair-display/500.css'; @import '@fontsource/playfair-display/600.css'; @import '@fontsource/playfair-display/700.css'; @import '@fontsource/source-serif-4/400.css'; @import '@fontsource/source-serif-4/500.css'; @import '@fontsource/source-serif-4/600.css'; @import '@fontsource/source-serif-4/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Playfair Display', 'serif'], body: ['Source Serif 4', 'serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.05; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
56
|
-
55,Kinetic Brutalism,dormant-marketing,Space Grotesk,Space Grotesk,Space Mono,sans+sans,"kinetic, brutalist, oversized, street, high-energy","music and culture marketing, sports brands, flagship campaign pages",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap,"Pushed to oversized uppercase weights, a single Space Grotesk becomes a high-energy brutalist system tuned for motion-heavy marketing.",@import '@fontsource/space-grotesk/400.css'; @import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['Space Grotesk', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/600-700/-0.02em/lh1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
57
|
-
56,Terminal CLI,dormant-marketing,JetBrains Mono,IBM Plex Sans,JetBrains Mono,mono+sans,"terminal, hacker, retro-future, technical, aesthetic","hacker-aesthetic marketing, web3 landing, security-brand campaigns",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,An all-mono terminal aesthetic reads as a stylistic hacker brand for marketing; the sans body keeps it from becoming unreadable at length.,@import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css'; @import '@fontsource/jetbrains-mono/700.css'; @import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css';,"fontFamily: { heading: ['JetBrains Mono', 'monospace'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2-2.5rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
58
|
-
57,Art Deco,dormant-marketing,Poiret One,Didact Gothic,JetBrains Mono,display+sans,"art-deco, vintage, 1920s, decorative, elegant","art-deco event marketing, luxury hotels, period-themed brands",400,400,https://fonts.googleapis.com/css2?family=Poiret+One:wght@400&family=Didact+Gothic:wght@400&display=swap,"Poiret One's thin geometric Deco lines evoke the 1920s for themed marketing, a decorative heading unfit for functional density.",@import '@fontsource/poiret-one/400.css'; @import '@fontsource/didact-gothic/400.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Poiret One', 'sans-serif'], body: ['Didact Gothic', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3-3.5rem/400/+0.04em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
59
|
-
58,Restaurant Menu,dormant-marketing,Playfair Display SC,Karla,IBM Plex Mono,serif+sans,"culinary, hospitality, elegant, menu, refined","restaurant and cafe marketing, food brands, hospitality sites",700,400;500;600;700,https://fonts.googleapis.com/css2?family=Playfair+Display+SC:wght@700&family=Karla:wght@400;500;600;700&display=swap,"Small-caps Playfair sets refined menu headers over a plain Karla body, a hospitality-marketing look rather than an operator surface.",@import '@fontsource/playfair-display-sc/700.css'; @import '@fontsource/karla/400.css'; @import '@fontsource/karla/500.css'; @import '@fontsource/karla/600.css'; @import '@fontsource/karla/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Playfair Display SC', 'serif'], body: ['Karla', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/700/+0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
60
|
-
59,Kids Education,dormant-marketing,Baloo 2,Nunito,Space Mono,display+sans,"playful, education, colorful, friendly, learning","children's education marketing, kids apps, learning brands",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700&family=Nunito:wght@400;500;600;700&display=swap,"Chunky rounded Baloo 2 headings signal a kid-friendly product for education marketing, with Nunito supplying a legible playful body.",@import '@fontsource/baloo-2/500.css'; @import '@fontsource/baloo-2/600.css'; @import '@fontsource/baloo-2/700.css'; @import '@fontsource/nunito/400.css'; @import '@fontsource/nunito/500.css'; @import '@fontsource/nunito/600.css'; @import '@fontsource/nunito/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Baloo 2', 'sans-serif'], body: ['Nunito', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/0/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
61
|
-
60,Indie Craft,dormant-marketing,Amatic SC,Cabin,JetBrains Mono,display+sans,"indie, craft, handmade, artisan, organic","craft and artisan marketing, handmade goods, indie brands",700,400;500;600;700,https://fonts.googleapis.com/css2?family=Amatic+SC:wght@700&family=Cabin:wght@400;500;600;700&display=swap,"Amatic SC's thin hand-drawn caps give artisan marketing a handmade feel, a decorative accent paired with a steady Cabin body.",@import '@fontsource/amatic-sc/700.css'; @import '@fontsource/cabin/400.css'; @import '@fontsource/cabin/500.css'; @import '@fontsource/cabin/600.css'; @import '@fontsource/cabin/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Amatic SC', 'sans-serif'], body: ['Cabin', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3.5-4rem/700/+0.02em/lh1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
|
|
62
|
-
61,Music Entertainment,dormant-marketing,Righteous,Poppins,Space Mono,display+sans,"music, entertainment, energetic, bold, festive","music and event marketing, festivals, entertainment brands",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Righteous:wght@400&family=Poppins:wght@400;500;600;700&display=swap,"Righteous's rounded retro display suits music and festival headlines, an energetic marketing voice over a Poppins body.",@import '@fontsource/righteous/400.css'; @import '@fontsource/poppins/400.css'; @import '@fontsource/poppins/500.css'; @import '@fontsource/poppins/600.css'; @import '@fontsource/poppins/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Righteous', 'sans-serif'], body: ['Poppins', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/400/0/lh1.05; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
63
|
-
62,Scholarly Archive,dormant-marketing,Cormorant Garamond,Crimson Pro,IBM Plex Mono,serif+serif,"scholarly, antique, prestige, literary, traditional","heritage and library brands, scholarly reading apps, cultural platforms, archive-themed marketing",500;600;700,500;600;700,https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Crimson+Pro:wght@500;600;700&display=swap,"Cormorant Garamond over a Crimson Pro book serif reads like a private library for heritage marketing, an all-serif stack too delicate for scanning operator data.",@import '@fontsource/cormorant-garamond/500.css'; @import '@fontsource/cormorant-garamond/600.css'; @import '@fontsource/cormorant-garamond/700.css'; @import '@fontsource/crimson-pro/500.css'; @import '@fontsource/crimson-pro/600.css'; @import '@fontsource/crimson-pro/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cormorant Garamond', 'serif'], body: ['Crimson Pro', 'serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
|
|
64
|
-
63,Clay Playful,dormant-marketing,Nunito,DM Sans,Space Mono,sans+sans,"clay, bubbly, tactile, playful, soft","children's education marketing, teen social apps, mascot-led brands, gamified consumer products",700,400;500;600;700,https://fonts.googleapis.com/css2?family=Nunito:wght@700&family=DM+Sans:wght@400;500;600;700&display=swap,"Heavy rounded Nunito headings over a plain DM Sans body give claymorphic consumer surfaces their bubbly voice, a look built for playful marketing rather than dense operator work.",@import '@fontsource/nunito/700.css'; @import '@fontsource/dm-sans/400.css'; @import '@fontsource/dm-sans/500.css'; @import '@fontsource/dm-sans/600.css'; @import '@fontsource/dm-sans/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Nunito', 'sans-serif'], body: ['DM Sans', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/700/-0.01em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
# design.md — the library's documentation format (`design-md/v1`)
|
|
2
|
-
|
|
3
|
-
A `design.md` is one operator UI's brand document: nine prose sections that describe the look for a
|
|
4
|
-
human reader and the emitting agent. It is **documentation, not transport** — the machine contract
|
|
5
|
-
lives in the design-tokens artifact ([`../design-tokens/SCHEMA.md`](../design-tokens/SCHEMA.md)):
|
|
6
|
-
every library entry's derivable values sit in its token twin at `data/design-tokens/<slug>/`
|
|
7
|
-
(slug = the entry's filename without `.md`), and look resolution, precedence, provenance, hints,
|
|
8
|
-
and validation are all defined there. No script parses a `design.md`.
|
|
9
|
-
|
|
10
|
-
The prose earns its place by carrying what tokens cannot: the identity a stranger could repeat,
|
|
11
|
-
usage rules ("indigo only on the primary action"), the scarce judgments the Agent Prompt Guide
|
|
12
|
-
hands the emitting agent verbatim. A good entry is concrete and checkable, not adjectival.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Frontmatter
|
|
17
|
-
|
|
18
|
-
```yaml
|
|
19
|
-
---
|
|
20
|
-
schema: design-md/v1
|
|
21
|
-
product: Meridian
|
|
22
|
-
provenance: library # retained for lineage; the machine path reads only the token artifact's payload
|
|
23
|
-
sourced: 2026-07-04
|
|
24
|
-
---
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
| Field | Required | Value |
|
|
28
|
-
| --- | --- | --- |
|
|
29
|
-
| `schema` | yes | Literal `design-md/v1`. |
|
|
30
|
-
| `product` | yes | The product name; matches the token twin's payload `product`. |
|
|
31
|
-
| `provenance` | yes | Lineage note. Authoritative provenance is the token artifact's payload field. |
|
|
32
|
-
| `sourced` | yes | ISO date the document was authored or last re-sourced. |
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## The nine prose sections
|
|
37
|
-
|
|
38
|
-
Fixed order. Each is human-facing narration; cite roles and token names, never bare literals in the
|
|
39
|
-
component/layout prose (the values live in the token twin).
|
|
40
|
-
|
|
41
|
-
| # | Section | What belongs · what a good entry looks like |
|
|
42
|
-
| --- | --- | --- |
|
|
43
|
-
| 1 | **Visual Theme** | The one-paragraph identity a stranger could repeat: surface polarity (light default; dark opt-in), material feel (flat vs lifted), accent discipline, density posture. Names its anchor surface and its single accent — not a mood board. |
|
|
44
|
-
| 2 | **Color Roles** | Every color by role — background, ink/foreground, the one accent, the status hues — with its value and where it is *allowed*. Reads `role → value → usage rule`; light values first; states the one-accent default. |
|
|
45
|
-
| 3 | **Typography** | The sans/mono families, the size·weight·tracking ramp, and where tabular figures apply. Names each ramp step with its numbers; states that numeric columns render `tabular-nums`. |
|
|
46
|
-
| 4 | **Component Stylings** | How the shared primitives render on the recurring operator components — button, input, card, table row, side panel, badge: fill, radius, border, padding. Each line cites token roles, no literal hex. |
|
|
47
|
-
| 5 | **Layout** | Spacing base unit and scale, the shell dimensions (sidebar expanded/collapsed, topbar, side panel, form/table), grid and container widths, density posture. The dimensions map one-to-one to the layout primitives. |
|
|
48
|
-
| 6 | **Depth** | The elevation strategy: surface ladder vs shadow, hairline discipline, the focus-ring treatment, the z-index scale. Names levels `0..n` with treatment and use; states whether shadow or surface carries hierarchy. |
|
|
49
|
-
| 7 | **Do's & Don'ts** | The enforceable taste rules unique to this brand — reserve the accent, never pill the CTA, never a second chromatic accent. Imperative bullets, each checkable; every don't names the specific off-brand move. |
|
|
50
|
-
| 8 | **Responsive** | Breakpoints and the collapse strategy across the operator sweep (375 / 768 / 1024 / 1440): nav collapse, grid re-flow, side-panel → sheet, density steps. Reads `breakpoint → what changes`. |
|
|
51
|
-
| 9 | **Agent Prompt Guide** | Directives the emitting agent follows verbatim: what to reach for first, the invariants, the scarce elements the token artifact can't carry (e.g. "lead every queue with the table; accent only on the primary action"). |
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## The token twin
|
|
56
|
-
|
|
57
|
-
Every library entry pairs with a design-tokens artifact at `data/design-tokens/<slug>/` — the
|
|
58
|
-
derivable half: primitives, the 34 color roles, the typography ramp, dials, traits, and the lever
|
|
59
|
-
manifest, with per-value rationale carried in each token's `$description`.
|
|
60
|
-
[`convert-design-md.mjs`](../../scripts/convert-design-md.mjs) generated the twins from the corpus;
|
|
61
|
-
a **new** library entry authors both halves — the token artifact against the token schema (validated
|
|
62
|
-
by `derive-personality.mjs <dir> --check`), and this document for the reader. When the two could
|
|
63
|
-
disagree, the token artifact is canonical.
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Worked example — Meridian (fictional fraud-review console)
|
|
68
|
-
|
|
69
|
-
Prose sketched to one line per section for brevity; Meridian's derivable values would live in its
|
|
70
|
-
token twin.
|
|
71
|
-
|
|
72
|
-
```markdown
|
|
73
|
-
---
|
|
74
|
-
schema: design-md/v1
|
|
75
|
-
product: Meridian
|
|
76
|
-
provenance: project
|
|
77
|
-
sourced: 2026-07-04
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## 1 Visual Theme
|
|
81
|
-
Light, flat, cool-slate operator console; a single indigo accent; dense on purpose.
|
|
82
|
-
|
|
83
|
-
## 2 Color Roles
|
|
84
|
-
Ink #0f172a on #ffffff; indigo #4f46e5 is the only accent; red/green/amber for status only.
|
|
85
|
-
|
|
86
|
-
## 3 Typography
|
|
87
|
-
Inter for text, JetBrains Mono for IDs and amounts; body 14px/400, headings 600, tabular-nums on every numeric column.
|
|
88
|
-
|
|
89
|
-
## 4 Component Stylings
|
|
90
|
-
Buttons `radius`/`primary`, no pill; inputs 1px `border`; table rows `table-row-height`; case detail opens in the side panel.
|
|
91
|
-
|
|
92
|
-
## 5 Layout
|
|
93
|
-
4px base; sidebar 248/56px, topbar 52px, side panel 420/640px, tables full-width.
|
|
94
|
-
|
|
95
|
-
## 6 Depth
|
|
96
|
-
Surface ladder over shadow; hairline `border`; 2px `ring` focus outline; three z-levels.
|
|
97
|
-
|
|
98
|
-
## 7 Do's & Don'ts
|
|
99
|
-
Do reserve indigo for the primary action. Don't pill the CTA; don't add a second chromatic accent.
|
|
100
|
-
|
|
101
|
-
## 8 Responsive
|
|
102
|
-
375 stacks to a sheet; 768 collapses the sidebar; 1024/1440 hold the two-pane queue+detail.
|
|
103
|
-
|
|
104
|
-
## 9 Agent Prompt Guide
|
|
105
|
-
Lead with the queue table; accent only the primary action; keep the case panel beside the work, never a modal.
|
|
106
|
-
```
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: Airbnb
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Airbnb — the operator reading
|
|
9
|
-
|
|
10
|
-
The warm marketplace brand rendered for internal tools. Airbnb's public surfaces are photography-led
|
|
11
|
-
and generous; an operator surface wearing this brand keeps the palette, the single warm voltage, the
|
|
12
|
-
soft corners, and the modest type voice, but leaves the marketing chrome behind — the pill search
|
|
13
|
-
bar, the 64px rating hero, the 80px nav, and the hand-illustrated product glyphs do not follow the
|
|
14
|
-
brand into a queue or a console. What carries is the feel: pure-white canvas, near-black ink (never
|
|
15
|
-
pure black), one Rausch accent used scarcely, flat depth with a single soft shadow tier, and rounded
|
|
16
|
-
everything.
|
|
17
|
-
|
|
18
|
-
## 1 Visual Theme
|
|
19
|
-
|
|
20
|
-
Light only — Airbnb ships no dark mode on the public web, so light is the default and dark is a
|
|
21
|
-
foreign opt-in, not a native mode. Flat: depth comes from white-on-white surface separation, hairline
|
|
22
|
-
`border`, and rounded-corner clipping, not from layered shadows (there is exactly one soft shadow
|
|
23
|
-
tier). A single accent, Rausch (`primary`, brand `#ff385c`), carries the one action that matters on a
|
|
24
|
-
surface and nothing else. Ink is a deep near-black slate (`foreground`, brand `#222222`), never pure
|
|
25
|
-
`#000000`. The anchor surface is a pure-white content canvas beside a faintly warm-gray `sidebar`.
|
|
26
|
-
Corners are soft throughout — `radius` on buttons and inputs, a larger step on cards, pill on badges —
|
|
27
|
-
there is no hard corner except the body grid. Density is `standard` with a generous per-dimension lean:
|
|
28
|
-
the brand breathes, but marketplace pages already run tighter than SaaS marketing, so the operator
|
|
29
|
-
reading holds standard rather than airy.
|
|
30
|
-
|
|
31
|
-
## 2 Color Roles
|
|
32
|
-
|
|
33
|
-
Light values. One accent: Rausch is the only chromatic hue that carries meaning; status hues speak
|
|
34
|
-
only status.
|
|
35
|
-
|
|
36
|
-
| Role | Value | Allowed where |
|
|
37
|
-
| --- | --- | --- |
|
|
38
|
-
| `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
|
|
39
|
-
| `foreground` | ink `#222222` | all primary ink; never pure black |
|
|
40
|
-
| `muted` | soft gray `#f7f7f7` | hover rows, disabled fields, subtle fills |
|
|
41
|
-
| `muted-foreground` | mid gray `#6a6a6a` | labels, captions, secondary text, inactive tabs |
|
|
42
|
-
| `secondary` | stronger gray `#f2f2f2` | secondary buttons, circular icon-button surfaces |
|
|
43
|
-
| `border` / `input` | hairline `#dddddd` | every separator, grid line, and field edge |
|
|
44
|
-
| `primary` | Rausch `#ff385c` | the one primary action; active nav; the single warm voltage |
|
|
45
|
-
| `accent` | pale Rausch `#ffe8ec` | selected/hovered rows and nav — a whisper of brand warmth |
|
|
46
|
-
| `ring` | ink `#222222` | the focus outline — Airbnb focuses with ink, not a colored glow |
|
|
47
|
-
| `destructive` | error red `#c13515` | destructive actions and error text only — distinct from Rausch |
|
|
48
|
-
| `success` / `warning` | green / amber | status signalling only, never chrome |
|
|
49
|
-
|
|
50
|
-
Luxe purple (`#460479`), Plus magenta (`#92174d`), and the legal-link blue (`#428bff`) are sub-brand
|
|
51
|
-
graces — they carry no operator role and never become a second accent (see §7). Star ratings render in
|
|
52
|
-
ink, not gold, and that carries over: numbers are ink, not a yellow accent.
|
|
53
|
-
|
|
54
|
-
## 3 Typography
|
|
55
|
-
|
|
56
|
-
One sans, one mono. `font-sans` is Airbnb Cereal VF (with Circular and Inter as the licensed/open
|
|
57
|
-
fallbacks — Inter is the closest open substitute); the whole ramp rides it, display voice carried by
|
|
58
|
-
size and modest weight, not a second family. Airbnb runs deliberately modest weights — `font-weight-strong`
|
|
59
|
-
stops at 600, never the 700+ that fintech and enterprise systems lean on. `font-mono` is derived: Airbnb
|
|
60
|
-
ships no monospace, but operator IDs, codes, and timestamps need one. Numeric columns render
|
|
61
|
-
`tabular-nums` so figures align down a column.
|
|
62
|
-
|
|
63
|
-
| Step | Role | Size · line | Weight · tracking |
|
|
64
|
-
| --- | --- | --- | --- |
|
|
65
|
-
| h1 | page title | 22px / 1.2 | `font-weight-strong` · `heading-tracking` |
|
|
66
|
-
| h2 | section head | 18px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
67
|
-
| h3 | card / group head | 16px / 1.35 | `font-weight-strong` |
|
|
68
|
-
| body | UI + prose | 14px / 1.45 | `font-weight-normal` |
|
|
69
|
-
| small | labels, meta, dense table | 13px / 1.3 | `font-weight-normal` |
|
|
70
|
-
| caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.02em`, uppercase |
|
|
71
|
-
|
|
72
|
-
The 64px rating display and the 28px marketing hero stay behind — that peak-scale typographic moment is
|
|
73
|
-
a marketing trust signal, not operator chrome. Bump weight one step for emphasis; never reach past 600.
|
|
74
|
-
|
|
75
|
-
## 4 Component Stylings
|
|
76
|
-
|
|
77
|
-
Every recurring operator component composes from the primitives — no literal values.
|
|
78
|
-
|
|
79
|
-
- **Button** — `primary`: filled `primary` on `primary-foreground`, `radius`, no pill (the pill CTA is a
|
|
80
|
-
marketing form and stays behind). Secondary: `card` fill, 1px `border`, `foreground`. Ghost:
|
|
81
|
-
transparent, `accent` on hover.
|
|
82
|
-
- **Input** — `card` fill, 1px `border` (`border-weight`), `radius`; on focus the border thickens toward
|
|
83
|
-
2px and flips to `ring` (ink) — no glow, no colored ring, the signature Airbnb focus.
|
|
84
|
-
- **Card** — `card` surface, 1px `border`, a larger corner step from the radius scale, one soft shadow
|
|
85
|
-
only when floated (`shadow-intensity`); inset by `density-inset`.
|
|
86
|
-
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
|
|
87
|
-
numeric columns; row selection tints `accent`.
|
|
88
|
-
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
|
|
89
|
-
for content-heavy), beside the work, not over it.
|
|
90
|
-
- **Badge** — pill (the largest radius step), hairline `border`, `muted`/status fill, uppercase caption;
|
|
91
|
-
status badges take `success` / `warning` / `destructive`, never `primary`.
|
|
92
|
-
|
|
93
|
-
## 5 Layout
|
|
94
|
-
|
|
95
|
-
Base spacing unit 4px (with a 2px micro-step); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48
|
|
96
|
-
· 64`. Shell dimensions map one-to-one to the layout primitives: sidebar `sidebar-width-expanded` /
|
|
97
|
-
`sidebar-width-collapsed`, topbar `topbar-height`, side panel `side-panel-width` /
|
|
98
|
-
`side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`, tables full-width. Card
|
|
99
|
-
internal padding runs generous (24px on rich cards, 16px on meta blocks). Density is governed globally
|
|
100
|
-
by `density-tier` and stepped per archetype by the surface catalog — never by absolute overrides.
|
|
101
|
-
|
|
102
|
-
## 6 Depth
|
|
103
|
-
|
|
104
|
-
Flat. Hierarchy comes from the surface ladder, hairlines, and rounded-corner clipping — not shadow:
|
|
105
|
-
|
|
106
|
-
- **0 — canvas** `background`, no border.
|
|
107
|
-
- **1 — panel / card** `card` on a 1px `border`; the one soft shadow tier only when a card must float off
|
|
108
|
-
the canvas.
|
|
109
|
-
- **2 — overlay** `popover` / side panel / modal — the same single soft shadow, over a black scrim at 50%
|
|
110
|
-
opacity for modals. No level stacks a heavier shadow to signal rank; rank is border and position.
|
|
111
|
-
|
|
112
|
-
Focus is a 2px `ring` outline in ink (never a glow, never a colored ring), visible on every interactive
|
|
113
|
-
element. Three z-levels: content, sticky chrome, overlay.
|
|
114
|
-
|
|
115
|
-
## 7 Do's & Don'ts
|
|
116
|
-
|
|
117
|
-
- **Do** reserve `primary` (Rausch) for the single most important action on a surface; everything else is
|
|
118
|
-
neutral or status. Most surfaces are 90% white + ink with one Rausch moment.
|
|
119
|
-
- **Do** keep corners soft — `radius` on interactive elements, the larger step on cards, pill on badges.
|
|
120
|
-
- **Do** render numbers and ratings in ink, and apply `tabular-nums` to every numeric column; use
|
|
121
|
-
`font-mono` for IDs, codes, and timestamps.
|
|
122
|
-
- **Don't** promote a second chromatic accent. Luxe purple, Plus magenta, and the legal-link blue stay
|
|
123
|
-
sub-brand-decorative; status uses `success` / `warning` / `destructive`.
|
|
124
|
-
- **Don't** focus with a colored ring or a glow — Airbnb focuses by thickening the border to ink.
|
|
125
|
-
- **Don't** use pure black `#000000` for ink; ink is `#222222`.
|
|
126
|
-
- **Don't** pull the pill search bar, the 64px rating hero, or the 80px marketing nav into operator chrome.
|
|
127
|
-
|
|
128
|
-
## 8 Responsive
|
|
129
|
-
|
|
130
|
-
The operator sweep is 375 / 768 / 1024 / 1440. Grids reduce column counts cleanly at each step — never
|
|
131
|
-
reflow rows.
|
|
132
|
-
|
|
133
|
-
| Breakpoint | What changes |
|
|
134
|
-
| --- | --- |
|
|
135
|
-
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; sticky detail collapses to a bottom bar carrying the primary action |
|
|
136
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow; card grids drop to 2-up |
|
|
137
|
-
| 1024 | sidebar expands; two-pane queue+detail holds side by side; card grids 3-up |
|
|
138
|
-
| 1440 | content caps for forms at `form-max-width`; tables and dashboards use the full width; card grids 4-up |
|
|
139
|
-
|
|
140
|
-
## 9 Agent Prompt Guide
|
|
141
|
-
|
|
142
|
-
Directives the emitting agent follows verbatim. This brand is warm and generous; keep it restrained for
|
|
143
|
-
operator work.
|
|
144
|
-
|
|
145
|
-
- Lead every list surface with its table; lead every entity with its primary read, not its chrome.
|
|
146
|
-
- Accent only the primary action with Rausch (`primary`). If two things want the accent, one is not primary.
|
|
147
|
-
- Stay flat — surface separation, hairlines, and rounded clipping before shadow. Reach for the one soft
|
|
148
|
-
shadow tier only for a real float or overlay.
|
|
149
|
-
- Focus with ink (`ring`), not a colored glow. Render numbers and ratings in ink, never gold.
|
|
150
|
-
- Keep corners soft: `radius` on buttons and inputs, the larger step on cards, pill on badges. No hard corners.
|
|
151
|
-
- Type stays modest — Cereal/Inter, `font-weight-strong` at 600, never 700+. Mono for IDs, codes, timestamps.
|
|
152
|
-
- One accent. Luxe, Plus, and legal-blue are not operator colors here.
|
|
153
|
-
- Leave marketing behind: the pill search bar, the 64px rating hero, the 80px nav, hand-illustrated
|
|
154
|
-
glyphs, and gradients do not follow the brand into a console. Light only — dark is a foreign opt-in.
|