@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,147 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: Shopify
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Shopify — operator reading
|
|
9
|
-
|
|
10
|
-
Shopify's brand runs two canvases that never blend: a cinematic near-black marketing track (full-bleed
|
|
11
|
-
merchant photography, 96px thin display type, one white-stroked black pill) and a warm-cream
|
|
12
|
-
transactional track (pricing, signup, dashboards) in pastel greens with pill buttons and Inter body. An
|
|
13
|
-
operator surface wears the **transactional** track: the cinematic black canvas, the photography, and the
|
|
14
|
-
hero-scale thin display type stay behind; the cream/white layering, pure-black ink, the single
|
|
15
|
-
mint-green accent, the soft paper-halo shadow, and the pill button character carry across — a
|
|
16
|
-
comfortable, editorial, high-contrast translation, not a marketing transcription.
|
|
17
|
-
|
|
18
|
-
## 1 Visual Theme
|
|
19
|
-
|
|
20
|
-
Light by default; dark is opt-in. The anchor surface is a faintly warm cream `background` carrying
|
|
21
|
-
crisp white `card` panels — that cream-page / white-card layering is the brand's editorial warmth. Ink
|
|
22
|
-
is pure black; a single chromatic accent, mint-green `accent`, marks growth and selection. Depth is not
|
|
23
|
-
flat — white cards lift on a soft layered "paper halo" (`shadow`), the light track's signature.
|
|
24
|
-
Comfortable `standard` density; the pill button shape carries in from the brand.
|
|
25
|
-
|
|
26
|
-
## 2 Color Roles
|
|
27
|
-
|
|
28
|
-
Light values first. One chromatic accent — the mint-green family; black is ink/primary, a neutral,
|
|
29
|
-
not a second color.
|
|
30
|
-
|
|
31
|
-
| Role | Value | Allowed where |
|
|
32
|
-
| --- | --- | --- |
|
|
33
|
-
| `background` | warm cream `#fbfbf5` | the page canvas — editorial warmth under white cards |
|
|
34
|
-
| `card` / `popover` | white `#ffffff` | cards, panels, overlays — the crisp surface on the cream page |
|
|
35
|
-
| `foreground` | pure black `#000000` | all primary ink on light (the brand's `ink`) |
|
|
36
|
-
| `muted` / `secondary` | light zinc `#f4f4f5` | hover rows, subtle fills, secondary chips |
|
|
37
|
-
| `muted-foreground` | mid zinc `#71717a` | labels, captions, secondary text |
|
|
38
|
-
| `border` / `input` | hairline zinc `#e4e4e7` | every separator, grid line, and field edge |
|
|
39
|
-
| `primary` | black `#000000` | the one primary action (a black pill); active nav |
|
|
40
|
-
| `primary-foreground` | white `#ffffff` | labels on the black pill |
|
|
41
|
-
| `accent` | aloe mint `#c1fbd4` | selected/hovered rows, growth highlight, featured tint — a fill, never behind type |
|
|
42
|
-
| `accent-foreground` | black `#000000` | ink on the mint fill |
|
|
43
|
-
| `ring` | black `#000000` | the focus outline — matches `primary`, unmistakable |
|
|
44
|
-
| `destructive` | commerce red `#d82c0d` | destructive actions and error state only |
|
|
45
|
-
| `success` | commerce green `#008060` | positive status text and badges |
|
|
46
|
-
| `warning` | amber `#b45309` | caution status only |
|
|
47
|
-
|
|
48
|
-
The pale aloe/pistachio greens are surface fills, never text colors — a status "success" reads on the
|
|
49
|
-
saturated `#008060`. The cool zinc text ladder against the warm cream canvas is the temperature signature.
|
|
50
|
-
|
|
51
|
-
## 3 Typography
|
|
52
|
-
|
|
53
|
-
The brand's display face, **Neue Haas Grotesk Display** at a thin cut (weight 330), is a marketing
|
|
54
|
-
signature and its hero scale stays behind. The operator workhorse is **Inter** (`font-sans`): body, UI,
|
|
55
|
-
tables, labels, and headings all ride it, so one sans serves dense chrome. `font-mono` is the system
|
|
56
|
-
monospace for IDs, codes, timestamps, and log lines. Numeric columns render `tabular-nums`.
|
|
57
|
-
|
|
58
|
-
| Step | Role | Size · line | Weight · tracking |
|
|
59
|
-
| --- | --- | --- | --- |
|
|
60
|
-
| h1 | page title | 24px / 1.2 | `font-weight-strong` · `heading-tracking` |
|
|
61
|
-
| h2 | section head | 20px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
62
|
-
| h3 | card / group head | 16px / 1.35 | `font-weight-strong` · `heading-tracking` |
|
|
63
|
-
| body | UI + prose | 14px / 1.5 | `font-weight-normal` |
|
|
64
|
-
| small | labels, meta, dense rows | 13px / 1.4 | `font-weight-normal` |
|
|
65
|
-
| caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.06em`, uppercase |
|
|
66
|
-
|
|
67
|
-
Headings track slightly **open** (`heading-tracking` positive) — the editorial voice runs opposite to
|
|
68
|
-
the tight tracking most operator UIs use; keep it. The OpenType `ss03` stylistic set is the brand's
|
|
69
|
-
character-level signature: apply `font-feature-settings: "ss03"` on the root so it tracks across every
|
|
70
|
-
role. Bump weight for emphasis; never change size.
|
|
71
|
-
|
|
72
|
-
## 4 Component Stylings
|
|
73
|
-
|
|
74
|
-
- **Button** — `primary`: filled black `primary` on `primary-foreground`, **pill** (the brand
|
|
75
|
-
signature, not `radius`). Secondary: white `card` fill, 1px `border`, `foreground` ink — outlined,
|
|
76
|
-
also pill. Featured/positive: `accent` mint fill, `foreground`, pill.
|
|
77
|
-
- **Input** — `card` fill, 1px `border` (`border-weight`), `radius`; focus draws the black `ring` at 2px.
|
|
78
|
-
- **Card** — white `card` on the cream `background`, 1px `border`, `radius` (larger step for content
|
|
79
|
-
cards); lifts on the soft layered `shadow` — the paper halo, not a hard drop.
|
|
80
|
-
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
|
|
81
|
-
numeric columns; selection tints `accent`.
|
|
82
|
-
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`),
|
|
83
|
-
beside the work, not over it.
|
|
84
|
-
- **Badge** — hairline `border`, `muted`/status fill, uppercase caption; status badges take `success` /
|
|
85
|
-
`warning` / `destructive`, never `primary`; the mint `accent` marks featured, not status.
|
|
86
|
-
|
|
87
|
-
## 5 Layout
|
|
88
|
-
|
|
89
|
-
Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the brand's own
|
|
90
|
-
8px-family scale, extended down for fine operator work). Shell dimensions map one-to-one to the layout
|
|
91
|
-
primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side
|
|
92
|
-
panel `side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`,
|
|
93
|
-
tables full-width. Card and section insets run generous (the brand pads comfortably) but the global
|
|
94
|
-
tier stays `standard` — governed by `density-tier`, stepped per archetype, never by absolute overrides.
|
|
95
|
-
|
|
96
|
-
## 6 Depth
|
|
97
|
-
|
|
98
|
-
Not flat — the light track carries hierarchy partly with a soft shadow:
|
|
99
|
-
|
|
100
|
-
- **0 — canvas** cream `background`, no shadow.
|
|
101
|
-
- **1 — card / panel** white `card` on a 1px `border`, lifted by the soft layered "paper halo"
|
|
102
|
-
(`shadow` at `sm`/`md`) — many tiny low-opacity shadows, never one hard drop.
|
|
103
|
-
- **2 — overlay** `popover` / side panel / modal — the `md`/`lg` shadow, the strongest lift.
|
|
104
|
-
|
|
105
|
-
Focus is a 2px black `ring` outline (never a glow), on every interactive element. Three z-levels:
|
|
106
|
-
content, sticky chrome, overlay. Rank is border, position, and the soft halo — never a harsh shadow.
|
|
107
|
-
|
|
108
|
-
## 7 Do's & Don'ts
|
|
109
|
-
|
|
110
|
-
- **Do** reserve black `primary` for the single most important action; buttons take the **pill** — the
|
|
111
|
-
one place the brand overrides the operator no-pill default; honor it.
|
|
112
|
-
- **Do** keep the single chromatic accent the mint-green family — a fill for selection, growth, and the
|
|
113
|
-
featured tier, never behind type.
|
|
114
|
-
- **Do** lift white cards on the cream canvas with the soft layered paper halo, and apply
|
|
115
|
-
`font-feature-settings: "ss03"` at the root with `tabular-nums` on every numeric column.
|
|
116
|
-
- **Don't** promote a second chromatic accent, or use the pale aloe/pistachio as a status color —
|
|
117
|
-
status uses `success` / `warning` / `destructive`.
|
|
118
|
-
- **Don't** reach for a rounded-rectangle button — the pill is the brand's non-negotiable button shape.
|
|
119
|
-
- **Don't** bring the cinematic black canvas, full-bleed photography, or 96px thin display type into
|
|
120
|
-
operator chrome — they stay on the marketing track.
|
|
121
|
-
|
|
122
|
-
## 8 Responsive
|
|
123
|
-
|
|
124
|
-
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
125
|
-
|
|
126
|
-
| Breakpoint | What changes |
|
|
127
|
-
| --- | --- |
|
|
128
|
-
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
129
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
130
|
-
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
131
|
-
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
132
|
-
|
|
133
|
-
## 9 Agent Prompt Guide
|
|
134
|
-
|
|
135
|
-
Directives the emitting agent follows verbatim:
|
|
136
|
-
|
|
137
|
-
- Layer white `card` panels on the cream `background`; lift them with the soft layered paper halo
|
|
138
|
-
(`shadow`), not a hard drop; overlays one step up.
|
|
139
|
-
- `primary` is black ink; the primary action is a black pill, and buttons keep the pill everywhere —
|
|
140
|
-
this brand overrides the no-pill default.
|
|
141
|
-
- One chromatic accent: mint-green `accent`, a fill for selection, growth, and featured — never behind
|
|
142
|
-
type, never as status.
|
|
143
|
-
- Apply `font-feature-settings: "ss03"` at the root and keep headings tracked slightly open; body and
|
|
144
|
-
tables ride Inter, the thin display face stays behind.
|
|
145
|
-
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`; the black `ring`
|
|
146
|
-
focus outline is always visible and every workflow completes from the keyboard.
|
|
147
|
-
- Leave the cinematic black track and its photography on marketing surfaces — never the operator UI.
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: Slack
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Slack — operator reading
|
|
9
|
-
|
|
10
|
-
An operator translation of Slack's design language: the signature deep-aubergine `sidebar`, a white
|
|
11
|
-
content canvas, one aubergine accent, and blue reserved strictly for links. The marketing surface —
|
|
12
|
-
cream-lavender pastel-mesh gradients, 64px hero display, floating product mockups — stays behind.
|
|
13
|
-
What carries is the palette temperature (warm aubergine, cool lavender tints), the humanist type
|
|
14
|
-
voice, Slack's rounded character, and the one thing every stranger recognizes as Slack: the dark
|
|
15
|
-
aubergine workspace rail.
|
|
16
|
-
|
|
17
|
-
## 1 Visual Theme
|
|
18
|
-
|
|
19
|
-
Light by default; dark is opt-in. The content canvas is white with hairline `border`
|
|
20
|
-
hierarchy — flat, with a friendlier radius than a terminal. The one exception to the light
|
|
21
|
-
polarity is the brand's most enduring asset: the **aubergine `sidebar`**, a categorically
|
|
22
|
-
dark plane carrying light text (a legitimate brand override of the light-default floor —
|
|
23
|
-
recorded plainly in §6). A single accent, aubergine `primary` (`#4a154b`), is reserved for
|
|
24
|
-
the one action that matters; blue `#1264a3` is a functional link color, not a chrome
|
|
25
|
-
accent. Density is `standard`, nudged a hair toward comfort for Slack's relaxed rhythm.
|
|
26
|
-
|
|
27
|
-
## 2 Color Roles
|
|
28
|
-
|
|
29
|
-
Light values first. One accent — aubergine `primary` is the only chromatic hue that
|
|
30
|
-
carries interactive meaning; link blue is scoped to inline links; status hues speak only
|
|
31
|
-
status.
|
|
32
|
-
|
|
33
|
-
| Role | Value | Allowed where |
|
|
34
|
-
| --- | --- | --- |
|
|
35
|
-
| `background` / `card` / `popover` | white `#ffffff` | page, cards, overlays — the dominant light surface |
|
|
36
|
-
| `foreground` | near-black ink `#1d1d1d` | all primary text on light |
|
|
37
|
-
| `muted` / `secondary` | faint lavender-gray `#f5f3f7` / lavender `#f9f0ff` | hover rows, subtle fills, secondary buttons |
|
|
38
|
-
| `muted-foreground` | mid gray `#696969` | labels, captions, secondary text |
|
|
39
|
-
| `border` / `input` | hairline `#e6e6e6` | every separator, grid line, and field edge |
|
|
40
|
-
| `primary` | deep aubergine `#4a154b` | the one primary action; the sidebar surface; brand-mark moments |
|
|
41
|
-
| `accent` | lavender tint `#f9f0ff` | selected / hovered rows and nav on light |
|
|
42
|
-
| `ring` | aubergine `#611f69` | the focus outline on light surfaces — unmistakable, keyboard-first |
|
|
43
|
-
| `sidebar` | aubergine `#4a154b` | the workspace rail — the one categorically dark surface |
|
|
44
|
-
| link (functional) | blue `#1264a3` | inline links only — never a chrome or CTA color |
|
|
45
|
-
| `destructive` | rust `#cc4117` | destructive actions and error state only |
|
|
46
|
-
| `success` / `warning` | green `#007a5a` / amber `#d97706` | status signalling only, never chrome |
|
|
47
|
-
|
|
48
|
-
Cream `#f4ede4` and the pastel-mesh hero gradients are marketing graces: they carry no
|
|
49
|
-
operator role (see §7).
|
|
50
|
-
|
|
51
|
-
## 3 Typography
|
|
52
|
-
|
|
53
|
-
One sans, one mono. `font-sans` is Lato — the humanist face that carries Slack's warmth
|
|
54
|
-
at UI sizes (the brand's own display and UI faces are proprietary; a neutral grotesque
|
|
55
|
-
flattens the voice). UI, body, and headings all ride it; heading weight and tracking, not
|
|
56
|
-
a second family, carry emphasis. `font-mono` is JetBrains Mono for IDs, codes,
|
|
57
|
-
timestamps, and log lines. Numeric columns render `tabular-nums` so figures align down a
|
|
58
|
-
column (floor f04).
|
|
59
|
-
|
|
60
|
-
| Step | Role | Size · line | Weight · tracking |
|
|
61
|
-
| --- | --- | --- | --- |
|
|
62
|
-
| h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
63
|
-
| h2 | section head | 18px / 1.4 | `font-weight-strong` · `heading-tracking` |
|
|
64
|
-
| h3 | card / group head | 15px / 1.45 | `font-weight-strong` · `heading-tracking` |
|
|
65
|
-
| body | UI + prose | 14px / 1.5 | `font-weight-normal` |
|
|
66
|
-
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
67
|
-
| caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.08em`, uppercase |
|
|
68
|
-
|
|
69
|
-
Body leans on a relaxed 1.5 line-height (a restrained echo of the brand's 1.55) — legible
|
|
70
|
-
without going airy. Bump weight one step for emphasis; never change size to emphasize.
|
|
71
|
-
Hero-scale display (32–64px, tight negative tracking) stays on the marketing surface.
|
|
72
|
-
|
|
73
|
-
## 4 Component Stylings
|
|
74
|
-
|
|
75
|
-
Every recurring operator component composes from the primitives — no literal values.
|
|
76
|
-
|
|
77
|
-
- **Button** — `primary`: filled aubergine `primary` on `primary-foreground`, pill radius
|
|
78
|
-
(`9999`, the one brand flourish), bold label. Secondary: lavender `secondary` fill,
|
|
79
|
-
`foreground`, workhorse `radius`. Ghost: transparent, `accent` on hover.
|
|
80
|
-
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the
|
|
81
|
-
`ring` at full 2px, no glow.
|
|
82
|
-
- **Card** — `card` surface, 1px `border`, `radius`; a soft `md` shadow only when it must
|
|
83
|
-
lift (`shadow-intensity`); inset by `density-inset`.
|
|
84
|
-
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover;
|
|
85
|
-
selection tints `accent` (lavender); `tabular-nums` on numeric columns.
|
|
86
|
-
- **Sidebar** — aubergine `sidebar` surface, `sidebar-foreground` light text; active item
|
|
87
|
-
a `sidebar-primary` band, hover a subtler `sidebar-accent` — the signature dark rail (§6).
|
|
88
|
-
- **Side panel** — detail and edit open in the side panel (`side-panel-width`,
|
|
89
|
-
`side-panel-width-rich` for content-heavy), beside the work, not over it (floor f03).
|
|
90
|
-
- **Badge** — hairline `border`, `muted`/status fill, uppercase caption; status badges take
|
|
91
|
-
`success` / `warning` / `destructive`, never aubergine `primary`.
|
|
92
|
-
|
|
93
|
-
## 5 Layout
|
|
94
|
-
|
|
95
|
-
Base spacing unit 4px (Tailwind `--spacing` 0.25rem), with 8px as the dominant step
|
|
96
|
-
honoring Slack's rhythm; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64`.
|
|
97
|
-
Shell dimensions map one-to-one to the layout primitives: sidebar
|
|
98
|
-
`sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side panel
|
|
99
|
-
`side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms
|
|
100
|
-
`form-max-width`, tables full-width. Density is governed globally by `density-tier`
|
|
101
|
-
(rewriting the spacing scale through `density-gap`) and stepped per archetype by the
|
|
102
|
-
surface catalog — never by absolute overrides.
|
|
103
|
-
|
|
104
|
-
## 6 Depth
|
|
105
|
-
|
|
106
|
-
Flat on the light canvas; the aubergine rail is the one deliberate exception. Hierarchy
|
|
107
|
-
comes from the surface split and hairlines, not stacked shadow:
|
|
108
|
-
|
|
109
|
-
- **0 — canvas** `background`, no border.
|
|
110
|
-
- **1 — panel / card** `card` on a 1px `border`; a soft `md` shadow only when it must lift.
|
|
111
|
-
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md` shadow.
|
|
112
|
-
|
|
113
|
-
The aubergine `sidebar` is a **fixed dark plane, not an elevation** — its prominence comes
|
|
114
|
-
from the surface-polarity split, never a heavier shadow. Focus is a 2px aubergine `ring` on
|
|
115
|
-
light and a light mauve `sidebar-ring` on the rail, visible on every interactive element
|
|
116
|
-
(floor f06). Three z-levels: content, sticky chrome, overlay.
|
|
117
|
-
|
|
118
|
-
## 7 Do's & Don'ts
|
|
119
|
-
|
|
120
|
-
- **Do** reserve aubergine `primary` for the single most important action; everything else
|
|
121
|
-
is neutral, status, or a link.
|
|
122
|
-
- **Do** keep the aubergine `sidebar` — the dark rail is the brand's most recognizable
|
|
123
|
-
signal; light-on-aubergine is by design.
|
|
124
|
-
- **Do** give the primary CTA the pill radius as the one brand flourish; keep every other
|
|
125
|
-
control on the `radius` workhorse.
|
|
126
|
-
- **Do** use blue for inline links only; apply `tabular-nums` to numeric columns and
|
|
127
|
-
`font-mono` to IDs, codes, and timestamps.
|
|
128
|
-
- **Don't** promote a third accent — aubergine + link-blue is exhaustive; status uses
|
|
129
|
-
`success` / `warning` / `destructive`.
|
|
130
|
-
- **Don't** use aubergine for body text — it is a surface and CTA color, not a type color.
|
|
131
|
-
- **Don't** bring the pastel-mesh gradients, floating mockups, or 64px hero display onto an
|
|
132
|
-
operator surface, and don't pill anything but the primary CTA.
|
|
133
|
-
|
|
134
|
-
## 8 Responsive
|
|
135
|
-
|
|
136
|
-
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
137
|
-
|
|
138
|
-
| Breakpoint | What changes |
|
|
139
|
-
| --- | --- |
|
|
140
|
-
| 375 | aubergine sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
141
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
142
|
-
| 1024 | sidebar expands to the aubergine rail; two-pane queue+detail holds side by side |
|
|
143
|
-
| 1440 | content caps at `form-max-width` for forms; tables and dashboards use the full width |
|
|
144
|
-
|
|
145
|
-
## 9 Agent Prompt Guide
|
|
146
|
-
|
|
147
|
-
Directives the emitting agent follows verbatim:
|
|
148
|
-
|
|
149
|
-
- Carry the palette: aubergine `primary`, the dark aubergine `sidebar`, lavender `accent`
|
|
150
|
-
tints, blue links, near-black ink on white. The `sidebar` is the one categorically dark
|
|
151
|
-
plane; keep the rest of the app light.
|
|
152
|
-
- Leave behind the marketing surface — pastel-mesh gradients, floating UI mockups,
|
|
153
|
-
hero-scale display, the full-bleed aubergine footer band do not exist here.
|
|
154
|
-
- Accent only the primary action; if two things want the aubergine, one is not primary.
|
|
155
|
-
Blue is for links, not buttons. Give the primary CTA the pill; everything else on `radius`.
|
|
156
|
-
- Detail and edit go in the side panel; a modal is a confirmation, not a workspace (f03).
|
|
157
|
-
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (f04).
|
|
158
|
-
- Every workflow completes from the keyboard; the `ring` focus outline is always visible (f06).
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: SpaceX
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# SpaceX — the mission-console operator reading
|
|
9
|
-
|
|
10
|
-
An operator translation of SpaceX's design language into a mission console. The marketing theatre
|
|
11
|
-
stays behind: full-bleed rocket and Mars photography, autoplaying launch video, hero-scale display
|
|
12
|
-
type, the museum negative space. What carries is the austere chassis underneath — a pure-black
|
|
13
|
-
canvas, an achromatic white accent doing every "click me" job, the condensed industrial D-DIN voice
|
|
14
|
-
set UPPERCASE with the brand's signature *positive* tracking, tight 4px chrome, and a zero-shadow
|
|
15
|
-
flat depth. This is the one library entry where the light-default floor legitimately yields: SpaceX
|
|
16
|
-
is **categorically dark** — pure `#000000` is the load-bearing brand fact — so the default theme
|
|
17
|
-
wears near-black, and the brief blesses the override plainly (brand tokens win; a pure `#000000`
|
|
18
|
-
surface is exactly the case the catalog lets a design.md demand).
|
|
19
|
-
|
|
20
|
-
## 1 Visual Theme
|
|
21
|
-
|
|
22
|
-
Dark by default, and pure black on purpose. The canvas is `background` `#000000` (canvas-night) — the
|
|
23
|
-
brand's single most recognizable fact — with cards lifting to `#0a0a0a` (canvas-night-soft), a
|
|
24
|
-
barely-lifted near-black that reads as elevation with no shadow at all. Flat throughout: hierarchy comes
|
|
25
|
-
from the near-black surface ladder, `#3a3a3f` hairlines, and type weight — never a drop shadow (the
|
|
26
|
-
corpus uses none). There is **no chromatic brand accent**; the one accent is achromatic **white**
|
|
27
|
-
(`#ffffff`), reserved for the single primary action, which inverts to white-on-black. The type voice is
|
|
28
|
-
condensed and engineered — D-DIN, set UPPERCASE on titles and eyebrows with a distinctly *positive*
|
|
29
|
-
letter-spacing, the one operator brand that tracks out rather than in. Density is `dense`: the operator
|
|
30
|
-
reading is a mission console — telemetry-dense — not the spacious full-bleed of the marketing site.
|
|
31
|
-
|
|
32
|
-
## 2 Color Roles
|
|
33
|
-
|
|
34
|
-
Dark values are the default. The brand has no accent colors; black, white, and a derived telemetry
|
|
35
|
-
set of status hues do all the chromatic work. The corpus's light shop surface (white `#ffffff`, ink
|
|
36
|
-
`#000000`, hairline `#e0e0e8`) is the inverse a light form context can opt into, but the console
|
|
37
|
-
wears black.
|
|
38
|
-
|
|
39
|
-
| Role | Value | Allowed where |
|
|
40
|
-
| --- | --- | --- |
|
|
41
|
-
| `background` | canvas-night `#000000` | the page canvas — pure black, the signature; no tint |
|
|
42
|
-
| `card` / `popover` | canvas-night-soft `#0a0a0a` | cards and overlays lift off pure black by the surface step alone |
|
|
43
|
-
| `foreground` | on-primary `#ffffff` | all primary ink — the dominant text color |
|
|
44
|
-
| `muted` | near-black `#141417` | hover rows, subtle fills (a hair above card) |
|
|
45
|
-
| `muted-foreground` | cool gray `#8a8a92` | labels, captions, secondary text — corpus ink-mute `#5a5a5f` is a light-surface tone; on black it lightens to read |
|
|
46
|
-
| `border` / `input` | hairline-on-dark `#3a3a3f` | every separator, grid line, and field edge — the highest-frequency token |
|
|
47
|
-
| `primary` | white `#ffffff` | the one primary action; active nav; the wordmark — the accent is achromatic, not a hue |
|
|
48
|
-
| `primary-foreground` | ink `#000000` | text/icon on the white fill — black on white, never gray |
|
|
49
|
-
| `accent` | cool near-black `#1e1e26` | selected / hovered rows and nav — selection lifts the near-black, it does not colour it |
|
|
50
|
-
| `ring` | white `#ffffff` | the focus outline — maximally visible on black, because keyboard-first (corpus link-on-dark is white) |
|
|
51
|
-
| `destructive` | telemetry-red `#ff453a` | destructive / abort actions and error state only |
|
|
52
|
-
| `success` / `warning` | nominal-green `#32d74b` / caution-amber `#ff9f0a` | status signalling only, never chrome |
|
|
53
|
-
|
|
54
|
-
On-primary-mute `#f0f0fa` (a cooled-white barely distinct from white) is the corpus's subtle-hierarchy
|
|
55
|
-
secondary text on dark; reach for it only where a whisper of text hierarchy is wanted without a gray.
|
|
56
|
-
|
|
57
|
-
## 3 Typography
|
|
58
|
-
|
|
59
|
-
One condensed sans, plus a mono the operator console adds. `font-sans` is **D-DIN** — the condensed
|
|
60
|
-
industrial cut inspired by the DIN 1451 engineering standard; Inter at 700+ with positive tracking is the
|
|
61
|
-
corpus-named substitute, and Arial Narrow the corpus fallback that keeps the width compression. The
|
|
62
|
-
display face is D-DIN-Bold (700); the body is D-DIN (400) — there is **no mid weight**, the brand jumps
|
|
63
|
-
400 → 700. `font-mono` is a **derived** addition (`Space Mono`, JetBrains Mono fallback): the corpus omits
|
|
64
|
-
mono outright, but a mission console needs a telemetry / ID / timestamp voice, and Space Mono's engineered
|
|
65
|
-
character suits the DIN aesthetic. Numeric and telemetry columns render `tabular-nums`.
|
|
66
|
-
|
|
67
|
-
| Step | Role | Size · line | Weight · tracking |
|
|
68
|
-
| --- | --- | --- | --- |
|
|
69
|
-
| h1 | page title (UPPERCASE) | 24px / 1.1 | `font-weight-strong` · `heading-tracking` |
|
|
70
|
-
| h2 | section head (UPPERCASE) | 18px / 1.2 | `font-weight-strong` · `heading-tracking` |
|
|
71
|
-
| h3 | card / group head (UPPERCASE) | 15px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
72
|
-
| body | UI + prose | 14px / 1.5 | `font-weight-normal` · `+0.01em` |
|
|
73
|
-
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
74
|
-
| caption | uppercase eyebrow / nav | 12px / 1.4 | `font-weight-normal`, `+0.08em`, uppercase |
|
|
75
|
-
| number | table figures, telemetry | 13px / 1.4 | `font-mono` · `tabular-nums` |
|
|
76
|
-
|
|
77
|
-
The positive tracking and the UPPERCASE display are the brand's irreducible signature; body carries a
|
|
78
|
-
faint `+0.01em` — the whole system reads engineered rather than designed. Emphasise by weight, never size.
|
|
79
|
-
|
|
80
|
-
## 4 Component Stylings
|
|
81
|
-
|
|
82
|
-
Every recurring operator component composes from the primitives — no literal values.
|
|
83
|
-
|
|
84
|
-
- **Button** — `primary`: filled white (`primary`) on black (`primary-foreground`), tight `radius`, no
|
|
85
|
-
pill, UPPERCASE label positively tracked. The **ghost pill** is the brand's signature CTA — transparent,
|
|
86
|
-
1px `border`, white text, `pill` radius (32px), UPPERCASE — reserved for a lone hero action (a launch /
|
|
87
|
-
commit / deploy confirm), never two side by side. Secondary: `secondary` fill, 1px `border`.
|
|
88
|
-
- **Input** — `card` fill, 1px `border` (`border-weight`), `radius`; focus draws the white `ring` at full
|
|
89
|
-
2px, no glow.
|
|
90
|
-
- **Card** — `card` (`#0a0a0a`) on a 1px `border`, `radius`; elevation is the surface step + hairline off
|
|
91
|
-
pure black, never a shadow; inset by `density-inset`.
|
|
92
|
-
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `accent` on selection;
|
|
93
|
-
`tabular-nums` + `font-mono` on numeric / telemetry columns.
|
|
94
|
-
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich` for
|
|
95
|
-
content-heavy), beside the work, not over it.
|
|
96
|
-
- **Badge** — hairline `border`, `muted` / status fill, UPPERCASE caption; status badges take `success` /
|
|
97
|
-
`warning` / `destructive`, never `primary`.
|
|
98
|
-
|
|
99
|
-
## 5 Layout
|
|
100
|
-
|
|
101
|
-
Base spacing unit 4px; the on-scale ramp is `4 · 8 · 12 · 16 · 18 · 24 · 32 · 48` — note the corpus's
|
|
102
|
-
signature 18px step (its button vertical padding). Shell dimensions map one-to-one to the layout
|
|
103
|
-
primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side
|
|
104
|
-
panel `side-panel-width` / `side-panel-width-rich`, modal `modal-width-max`, forms `form-max-width`,
|
|
105
|
-
tables full-width. Density is `dense`, governed globally by `density-tier` (rewriting the spacing scale
|
|
106
|
-
through `density-gap`) and stepped per archetype by the surface catalog — never by absolute overrides. The
|
|
107
|
-
marketing full-bleed bands and their edge-to-edge photography stay behind.
|
|
108
|
-
|
|
109
|
-
## 6 Depth
|
|
110
|
-
|
|
111
|
-
Flat, and darker-flat. The corpus's depth is *photographic* — full-bleed imagery does all the lifting —
|
|
112
|
-
and it uses zero drop shadows, blurs, glows, or gradients. The operator reading has no photography, so
|
|
113
|
-
depth becomes the near-black surface ladder plus hairlines:
|
|
114
|
-
|
|
115
|
-
- **0 — canvas** `background` (`#000000`), no border.
|
|
116
|
-
- **1 — panel / card** `card` (`#0a0a0a`) on a 1px `border`; elevation is the surface step + hairline, no
|
|
117
|
-
shadow.
|
|
118
|
-
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns the faintest `sm`
|
|
119
|
-
lift to separate a floating overlay from the console; even then, prefer the hairline.
|
|
120
|
-
|
|
121
|
-
Focus is a 2px white `ring` outline (never a glow), visible on every interactive element. Three z-levels:
|
|
122
|
-
content, sticky chrome, overlay.
|
|
123
|
-
|
|
124
|
-
## 7 Do's & Don'ts
|
|
125
|
-
|
|
126
|
-
- **Do** keep the canvas pure black (`#000000`) — it is the load-bearing brand fact; cards lift by the
|
|
127
|
-
`#0a0a0a` step + hairline, never a shadow.
|
|
128
|
-
- **Do** render titles and eyebrows UPPERCASE in the condensed D-DIN with *positive* tracking — the brand
|
|
129
|
-
tracks out, not in.
|
|
130
|
-
- **Do** reserve the one achromatic accent (white) for the single primary action; everything else is
|
|
131
|
-
neutral or status.
|
|
132
|
-
- **Do** carry telemetry, IDs, codes, and timestamps in `font-mono` with `tabular-nums`.
|
|
133
|
-
- **Don't** introduce a chromatic brand accent — black, white, and the derived telemetry status hues are
|
|
134
|
-
the entire palette; a colored "brand" accent breaks the system.
|
|
135
|
-
- **Don't** render titles in sentence-case or title-case — UPPERCASE is the brand.
|
|
136
|
-
- **Don't** signal rank with a drop shadow — the near-black surface step + hairline carries elevation.
|
|
137
|
-
- **Don't** pill every control — the 32px pill is a lone hero-CTA signal; operator controls take the tight
|
|
138
|
-
4px rect.
|
|
139
|
-
- **Don't** reach for a serif or humanist-sans heading — the condensed industrial DIN cut is non-negotiable.
|
|
140
|
-
|
|
141
|
-
## 8 Responsive
|
|
142
|
-
|
|
143
|
-
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
144
|
-
|
|
145
|
-
| Breakpoint | What changes |
|
|
146
|
-
| --- | --- |
|
|
147
|
-
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; h1 steps 24 → 20; density holds |
|
|
148
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
149
|
-
| 1024 | sidebar expands; two-pane console + detail holds side by side |
|
|
150
|
-
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
151
|
-
|
|
152
|
-
The corpus's display tier stair-steps 80 → 60 → 48 → 40px; at operator scale the h1 steps down more
|
|
153
|
-
modestly, but the principle holds — the display shrinks first.
|
|
154
|
-
|
|
155
|
-
## 9 Agent Prompt Guide
|
|
156
|
-
|
|
157
|
-
- **Carries:** the pure-black `background` + `#0a0a0a` surface ladder; the achromatic white accent; the
|
|
158
|
-
condensed D-DIN voice set UPPERCASE with positive tracking on titles and eyebrows; the tight 4px chrome
|
|
159
|
-
radius; zero-shadow flat depth; the telemetry-dense layout.
|
|
160
|
-
- **Stays behind:** full-bleed rocket / Mars photography and autoplaying launch video; hero-scale display
|
|
161
|
-
(80 / 60 / 48px); the museum negative space; the marketing full-bleed bands; the ghost-pill-everywhere
|
|
162
|
-
marketing CTA grammar.
|
|
163
|
-
- Keep the canvas pure black; cards lift by the `#0a0a0a` step + hairline, never a shadow.
|
|
164
|
-
- One accent, and it is white — the primary action inverts to white-on-black; if two things want it, one
|
|
165
|
-
of them is not primary.
|
|
166
|
-
- Titles and eyebrows are UPPERCASE, condensed, positively tracked — the irreducible signature; body and
|
|
167
|
-
tables stay sentence-case D-DIN.
|
|
168
|
-
- Every numeric / telemetry column is `tabular-nums`; every ID / code / timestamp is `font-mono` (the brand
|
|
169
|
-
omits mono — the console adds it for telemetry).
|
|
170
|
-
- Every workflow completes from the keyboard; the white 2px `ring` focus outline is always visible.
|
|
171
|
-
- The 32px ghost pill is a lone hero CTA (a launch / commit confirm), never two side by side.
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: Spotify
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Spotify — the near-black operator reading
|
|
9
|
-
|
|
10
|
-
A content-first cocoon reduced to one idea: the UI recedes into near-black shadow so the work glows,
|
|
11
|
-
with a single functional green accent doing all the color. This entry is a deliberate operator
|
|
12
|
-
reading of Spotify — the dark immersion and the one-green discipline carried onto internal tools (a
|
|
13
|
-
media library, a catalog console, a content-ops dashboard), with the album-art color source and the
|
|
14
|
-
hero pill geometry left behind.
|
|
15
|
-
|
|
16
|
-
## 1 Visual Theme
|
|
17
|
-
|
|
18
|
-
Dark by conviction, not by option. `background` is near-black `#121212` (never pure black — Spotify is
|
|
19
|
-
deliberately near-black), and surfaces step up by lightness rather than by line: `card` #181818,
|
|
20
|
-
interactive `secondary` #1f1f1f, elevated cards #252525/#272727. A single accent — Spotify Green
|
|
21
|
-
`primary` (#1ed760) — carries the one action that matters and nothing decorative. Because an operator
|
|
22
|
-
surface has no album art to color it, that green plus the status hues carry **all** the color on an
|
|
23
|
-
otherwise achromatic field; keep them scarce. Depth is shadow-carried, not flat — on near-black a
|
|
24
|
-
hairline all but vanishes, so elevation reads through heavy shadow and surface-lightening. Density is
|
|
25
|
-
`dense`: dark compression, built for scanning. This is Spotify's one true theme, so
|
|
26
|
-
`color-tokens.light` (the always-present default slot) carries the near-black set — dark is not opt-in
|
|
27
|
-
here, it is the identity.
|
|
28
|
-
|
|
29
|
-
## 2 Color Roles
|
|
30
|
-
|
|
31
|
-
One accent — `primary` green is the only chromatic hue that carries brand meaning; red / orange / blue
|
|
32
|
-
speak status only. On the achromatic near-black field the accent and status hues are the sole color, so
|
|
33
|
-
scarcity is doubly load-bearing.
|
|
34
|
-
|
|
35
|
-
| Role | Value | Allowed where |
|
|
36
|
-
| --- | --- | --- |
|
|
37
|
-
| `primary` | Spotify Green #1ed760 | the one primary action, active nav, play/CTA — never decorative, never on a background |
|
|
38
|
-
| `primary-foreground` | black #000000 | icon/text on the green fill — the signature; never white on green |
|
|
39
|
-
| `background` / `sidebar` | near-black #121212 | page and nav canvas — the deepest layer, the dark cocoon |
|
|
40
|
-
| `card` | dark surface #181818 | cards, containers — one lightness step off the canvas |
|
|
41
|
-
| `secondary` / `muted` | mid-dark #1f1f1f | interactive/secondary surfaces, subtle fills, hover rows |
|
|
42
|
-
| `foreground` | white #ffffff | primary text (max-emphasis #fdfdfd, bright secondary #cbcbcb available) |
|
|
43
|
-
| `muted-foreground` | silver #b3b3b3 | secondary text, inactive nav, captions, dividers |
|
|
44
|
-
| `border` / `input` | subtle #2a2a2a | grid lines and field edges (control borders take the heavier #4d4d4d) |
|
|
45
|
-
| `accent` | lift #282828 | selected/hovered rows and nav — a neutral surface-lift, never a green wash |
|
|
46
|
-
| `ring` | green #1ed760 | the focus outline — unmistakable, because keyboard-first |
|
|
47
|
-
| `destructive` | negative red #f3727f | destructive actions and error state |
|
|
48
|
-
| `success` | deep green #1db954 | up/success status — the deeper green variant, distinct from the bright accent |
|
|
49
|
-
| `warning` | orange #ffa42b | caution and warning status only |
|
|
50
|
-
|
|
51
|
-
Announcement blue #539df5 is an info/status hue and a chart color, never a second brand accent.
|
|
52
|
-
|
|
53
|
-
## 3 Typography
|
|
54
|
-
|
|
55
|
-
One family, split by cut. `font-sans` is SpotifyMixUI (Circular by Lineto; Inter is the corpus-adjacent
|
|
56
|
-
substitute) — the Title cut serves headings, the UI cut serves body, tables, and labels, same family.
|
|
57
|
-
The voice is a **bold/regular binary**: most text is 700 (`font-weight-strong`) or 400
|
|
58
|
-
(`font-weight-normal`), 600 used sparingly — hierarchy comes from weight contrast, not size. Type is
|
|
59
|
-
compact (10–24px), tuned for scanning, not reading. `font-mono` is derived — the corpus names none (a
|
|
60
|
-
music player has no IDs or logs), but operator tables need a numeric voice; numeric columns render
|
|
61
|
-
`tabular-nums`.
|
|
62
|
-
|
|
63
|
-
| Step | Role | Size · line | Weight · tracking |
|
|
64
|
-
| --- | --- | --- | --- |
|
|
65
|
-
| h1 | page / section title | 24px / 1.25 | `font-weight-strong` · 0 |
|
|
66
|
-
| h2 | feature heading | 18px / 1.3 | `font-weight-strong` · 0 |
|
|
67
|
-
| h3 | card / group head | 16px / 1.4 | `font-weight-strong` · 0 |
|
|
68
|
-
| body | UI + prose | 14px / 1.45 | `font-weight-normal` |
|
|
69
|
-
| small | labels, dense table | 12px / 1.5 | `font-weight-normal` |
|
|
70
|
-
| caption | uppercase eyebrow | 12px / 1.33 | `font-weight-strong`, +0.1em, uppercase |
|
|
71
|
-
| code | IDs, timestamps, amounts | 13px / 1.5 | `font-mono` |
|
|
72
|
-
|
|
73
|
-
The uppercase + wide-tracking (1.4–2px) systematic label voice survives on eyebrows and section labels;
|
|
74
|
-
it does not ride every button — operator buttons stay sentence-case for scannability.
|
|
75
|
-
|
|
76
|
-
## 4 Component Stylings
|
|
77
|
-
|
|
78
|
-
Every recurring operator component composes from the primitives — no literal values.
|
|
79
|
-
|
|
80
|
-
- **Button** — `primary`: filled green on black `primary-foreground`, `radius` (8px), no pill. The full
|
|
81
|
-
500px pill is a hero flourish left behind; the rounded-tactile character carries at 8px. Secondary:
|
|
82
|
-
`secondary` #1f1f1f fill, `foreground`. Ghost: transparent, `accent` lift on hover. Icon-only
|
|
83
|
-
controls stay **circular** — the one piece of pill-and-circle geometry that carries.
|
|
84
|
-
- **Input** — `secondary` fill, `radius`; focus draws the green `ring` at 2px. On dark, the edge reads
|
|
85
|
-
as an inset/surface step, not an exposed gray line.
|
|
86
|
-
- **Card** — `card` #181818 surface, `radius`; hover lightens the surface a step rather than drawing a
|
|
87
|
-
border; shadow (`shadow-intensity`) only when it must lift off the canvas.
|
|
88
|
-
- **Table row** — `table-row-height`; row separation by surface-lightening or a subtle `border`;
|
|
89
|
-
`accent` on selection; `muted` on hover; `tabular-nums` + `font-mono` on numeric columns.
|
|
90
|
-
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`),
|
|
91
|
-
beside the work, not over it.
|
|
92
|
-
- **Badge** — pill radius (9999), `muted` / status fill, uppercase caption; status badges take
|
|
93
|
-
`success` / `warning` / `destructive`, never `primary`.
|
|
94
|
-
|
|
95
|
-
## 5 Layout
|
|
96
|
-
|
|
97
|
-
Base unit 8px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 20 · 24 · 32 · 48` (Spotify's fine dense low
|
|
98
|
-
end 2–20 carries; 24–48 are operator section spacing). Shell dimensions map one-to-one to the layout
|
|
99
|
-
primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height` (the
|
|
100
|
-
generous search-pill chrome), side panel `side-panel-width` / `side-panel-width-rich`, modal
|
|
101
|
-
`modal-width-max`, forms `form-max-width`, tables full-width. Spotify's full-width now-playing bottom
|
|
102
|
-
bar carries as an optional persistent transport/status bar in a media tool, not as literal music
|
|
103
|
-
chrome. Density is governed globally by `density-tier` (dark compression) and stepped per archetype —
|
|
104
|
-
never by absolute overrides.
|
|
105
|
-
|
|
106
|
-
## 6 Depth
|
|
107
|
-
|
|
108
|
-
Shadow-carried, inverting the flat default — on near-black a hairline vanishes, so elevation is heavy
|
|
109
|
-
shadow plus surface-lightening (the corpus: never expose raw gray borders):
|
|
110
|
-
|
|
111
|
-
- **0 — canvas** `background` #121212, no border.
|
|
112
|
-
- **1 — surface** `card` #181818 / `secondary` #1f1f1f — one lightness step; hover lightens further.
|
|
113
|
-
- **2 — elevated** dropdowns and hover cards ride a `md` shadow (`rgba(0,0,0,0.3) 0 8px 8px`).
|
|
114
|
-
- **3 — dialog** modals, menus, side panels ride an `lg` shadow (`rgba(0,0,0,0.5) 0 8px 24px`) — the
|
|
115
|
-
dramatic "floating in darkness" lift.
|
|
116
|
-
- **inset — inputs** the recessed inset-border combo (`rgb(124,124,124) 0 0 0 1px inset`) reads as a
|
|
117
|
-
tactile field edge, not an exposed line.
|
|
118
|
-
|
|
119
|
-
Focus is a green `ring` outline (never a glow), visible on every interactive element. Three z-levels:
|
|
120
|
-
content, sticky chrome, overlay.
|
|
121
|
-
|
|
122
|
-
## 7 Do's & Don'ts
|
|
123
|
-
|
|
124
|
-
- **Do** anchor on near-black `#121212`–`#1f1f1f`; carry depth through shade variation and heavy shadow,
|
|
125
|
-
because on dark a subtle shadow is invisible.
|
|
126
|
-
- **Do** reserve green `primary` for the single most important action, active state, and play/CTA —
|
|
127
|
-
never decoratively, never on a background. On green, keep black `primary-foreground`.
|
|
128
|
-
- **Do** let the achromatic gray field rest the eye; supply color only through the one accent and the
|
|
129
|
-
status hues (there is no album art here to do it for you).
|
|
130
|
-
- **Do** carry the bold/regular (700/400) weight binary and keep type compact; apply `tabular-nums` and
|
|
131
|
-
`font-mono` to every numeric column.
|
|
132
|
-
- **Don't** add a second brand color — announcement blue, orange, and red are status/chart roles, and
|
|
133
|
-
the deep green `success` is status, not a second accent.
|
|
134
|
-
- **Don't** use light backgrounds for primary surfaces — the dark immersion is the identity.
|
|
135
|
-
- **Don't** full-pill operator buttons or drop uppercase wide-tracking onto every label — those are
|
|
136
|
-
hero-scale flourishes; the rounded character lives at 8px and circular icon buttons.
|
|
137
|
-
- **Don't** expose raw gray borders where a surface-lift or inset edge will do; don't relax the compact
|
|
138
|
-
line-heights.
|
|
139
|
-
|
|
140
|
-
## 8 Responsive
|
|
141
|
-
|
|
142
|
-
The operator sweep is 375 / 768 / 1024 / 1440:
|
|
143
|
-
|
|
144
|
-
| Breakpoint | What changes |
|
|
145
|
-
| --- | --- |
|
|
146
|
-
| 375 | sidebar → off-canvas drawer (Spotify's nav → bottom bar echoes here); two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
147
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); card grid re-flows 3→2; tables scroll their overflow |
|
|
148
|
-
| 1024 | sidebar expands; two-pane queue+detail holds side by side; grid 5→3 |
|
|
149
|
-
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width; grid opens up |
|
|
150
|
-
|
|
151
|
-
## 9 Agent Prompt Guide
|
|
152
|
-
|
|
153
|
-
- Start in near-black darkness — everything lives on `#121212`; surfaces step by lightness (#181818,
|
|
154
|
-
#1f1f1f), never by exposed borders. This is the one theme; do not offer a light mockup of it.
|
|
155
|
-
- One accent, always: green `primary` marks THE action and active nav, black on green. On the
|
|
156
|
-
achromatic field the green and the status hues are the only color — keep them scarce and functional.
|
|
157
|
-
- Carry depth with heavy shadow (`md`/`lg`) and surface-lightening, not flat hairlines — the operator's
|
|
158
|
-
usual flat default is inverted here because shadow is what reads on dark.
|
|
159
|
-
- Bold/regular weight binary (700/400); compact type; `tabular-nums` + `font-mono` on every numeric
|
|
160
|
-
column; the uppercase wide-tracked label voice on eyebrows only.
|
|
161
|
-
- Keep the rounded-tactile character at 8px `radius`, pill for badges/chips, circular for icon-only
|
|
162
|
-
controls.
|
|
163
|
-
- Leave behind: album-art-as-color-source (there is none — the UI supplies its own restrained color),
|
|
164
|
-
the 500px hero pills, uppercase wide-tracking on every button, the light-mode marketing pills, and the
|
|
165
|
-
literal music transport bar. What carries: the near-black palette, the one functional green, the
|
|
166
|
-
achromatic discipline, the compact dense type, the rounded/circular geometry, and shadow-carried depth.
|