@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,167 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: The Verge
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# The Verge — the operator reading
|
|
9
|
-
|
|
10
|
-
The operator reading of The Verge's 2024 editorial system. The Verge is categorically dark — "there
|
|
11
|
-
is no light mode; the dark canvas is the product" — so this entry earns the doctrine's dark
|
|
12
|
-
exception: the near-black canvas fills the default-emitted theme, recorded plainly because the brand
|
|
13
|
-
demands it. What carries onto internal tools (a content queue, a moderation dashboard, an activity
|
|
14
|
-
log): the near-black canvas, the single acid-mint accent, the mono-uppercase label voice, the flat
|
|
15
|
-
color-as-elevation depth, and the rounded-never-square character. What stays behind: the marketing
|
|
16
|
-
shout — 60–107px Manuka hero display, the saturated rave-flyer story tiles, the FK Roman serif
|
|
17
|
-
pulls, the 40px pill CTAs, the thin-weight "fashion whisper" eyebrows. The result is unmistakably
|
|
18
|
-
The Verge — a developer-console feel with club-night color — but it reserves its one accent and
|
|
19
|
-
earns its density.
|
|
20
|
-
|
|
21
|
-
## 1 Visual Theme
|
|
22
|
-
|
|
23
|
-
Dark by default, deliberately — the categorically-dark exception, not the light-default norm. The canvas
|
|
24
|
-
is Canvas Black `#131313`, almost-but-not-pure black with just enough warmth to read as a printed-newsprint
|
|
25
|
-
negative rather than an OLED void. Flat: hierarchy comes from 1px hairline `border`, the near-black surface
|
|
26
|
-
ladder, and saturated color — never heavy shadow, color is elevation here. A single accent, Jelly Mint
|
|
27
|
-
`primary` (`#3cffd0`), is reserved for the one action that matters, treated like neon safety paint; ink is
|
|
28
|
-
Hazard White `foreground` (`#ffffff`). The type voice pairs a grotesque sans body with a mono-uppercase
|
|
29
|
-
label register — the second-most-identifiable Verge detail after the display face. Density is `standard`;
|
|
30
|
-
the anchor surface is the black canvas beside a fractionally darker `sidebar`.
|
|
31
|
-
|
|
32
|
-
## 2 Color Roles
|
|
33
|
-
|
|
34
|
-
One accent: `primary` (mint) is the only chromatic hue that carries brand meaning; ultraviolet,
|
|
35
|
-
yellow, pink, and electric blue live only in charts, and status hues speak status.
|
|
36
|
-
|
|
37
|
-
| Role | Value | Allowed where |
|
|
38
|
-
| --- | --- | --- |
|
|
39
|
-
| `background` | Canvas Black `#131313` | the page — the dominant near-black surface, no light mode |
|
|
40
|
-
| `foreground` | Hazard White `#ffffff` | primary text and headlines on the canvas |
|
|
41
|
-
| `card` / `popover` | `#1a1a1a` | panels and overlays — a faint step off canvas, border still carries |
|
|
42
|
-
| `muted` | `#242424` | subtle fills and hover rows |
|
|
43
|
-
| `muted-foreground` | Secondary Text `#949494` | bylines, timestamps, captions, column headers |
|
|
44
|
-
| `border` / `input` | Image Frame `#313131` | every quiet hairline, grid line, field edge; white/mint reserved for emphasis |
|
|
45
|
-
| `primary` | Jelly Mint `#3cffd0` | the one primary action, active nav underline — as fill with black text, never small text |
|
|
46
|
-
| `primary-foreground` | Absolute Black `#000000` | text/icon on the mint fill — the only place black appears |
|
|
47
|
-
| `accent` | Surface Slate `#2d2d2d` | selected/hovered rows and nav — a neutral step, never a mint wash |
|
|
48
|
-
| `ring` | Focus Cyan `#1eaedb` | the keyboard-focus outline — the brand's dedicated focus hue, shown nowhere else |
|
|
49
|
-
| `secondary` | Surface Slate `#2d2d2d` | secondary button fill |
|
|
50
|
-
| `destructive` | hazard red-pink `#ff3b5c` | destructive actions and error state only |
|
|
51
|
-
| `success` / `warning` | green `#22c55e` / hazard yellow `#ffd23c` | status signalling only, never chrome |
|
|
52
|
-
|
|
53
|
-
Verge Ultraviolet `#5200ff` is a brand hazard, not an operator accent — it survives here as a chart hue
|
|
54
|
-
(the corpus's error-purple role is handed to a readable red so destructive reads as danger). Deep Link
|
|
55
|
-
Blue `#3860be` is the text-link hover color; Console Mint Border `#309875` outlines mint elements where
|
|
56
|
-
pure mint over-saturates. White as a large fill is a "spotlight" moment, not the canvas.
|
|
57
|
-
|
|
58
|
-
## 3 Typography
|
|
59
|
-
|
|
60
|
-
Two families carry the voice. `font-sans` is PolySans (Space Grotesk the corpus-named substitute) — the
|
|
61
|
-
UI, body, table, and headline workhorse. `font-mono` is PolySans Mono (Space Mono substitute) — used
|
|
62
|
-
exclusively for ALL-CAPS labels: kickers, timestamps, category tags, IDs, log lines. Lowercase mono does
|
|
63
|
-
not exist in this system; every all-caps label carries positive letter-spacing, the Verge signature.
|
|
64
|
-
Numeric columns render `tabular-nums`. Line heights run tight for a telegraph-ticker rhythm.
|
|
65
|
-
|
|
66
|
-
| Step | Role | Family | Size · line | Weight · tracking |
|
|
67
|
-
| --- | --- | --- | --- | --- |
|
|
68
|
-
| h1 | page title | sans | 26px / 1.1 | `font-weight-strong` · `heading-tracking` |
|
|
69
|
-
| h2 | section head | sans | 20px / 1.2 | `font-weight-strong` · 0 |
|
|
70
|
-
| h3 | card / group head | sans | 16px / 1.3 | `font-weight-strong` · 0 |
|
|
71
|
-
| body | UI + prose | sans | 14px / 1.5 | `font-weight-normal` |
|
|
72
|
-
| small | labels, dense table | sans | 13px / 1.4 | `font-weight-normal` |
|
|
73
|
-
| label | all-caps kicker / tag / timestamp | mono | 12px / 1.2 | `font-weight-strong`, +0.12em, uppercase |
|
|
74
|
-
| code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
|
|
75
|
-
|
|
76
|
-
Emphasis is the jump from 400 to 700 — the brand is punchy, not calm. The Manuka display, the 300-weight
|
|
77
|
-
whisper eyebrows, and the FK Roman serif pulls stay behind; the mono-uppercase label register is the
|
|
78
|
-
irreducible type signature and carries.
|
|
79
|
-
|
|
80
|
-
## 4 Component Stylings
|
|
81
|
-
|
|
82
|
-
Every recurring operator component composes from the primitives — no literal values.
|
|
83
|
-
|
|
84
|
-
- **Button** — `primary`: filled mint on `primary-foreground` (black on mint), `radius`, no pill; hover
|
|
85
|
-
inverts to a translucent-white surface, active dims. Secondary: `secondary` slate fill, `foreground`.
|
|
86
|
-
Ghost: transparent, `accent` on hover.
|
|
87
|
-
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the Focus Cyan
|
|
88
|
-
`ring` at 2px, no glow.
|
|
89
|
-
- **Card** — `card` surface on a 1px `border`; a focused or active card firms its hairline to mint or
|
|
90
|
-
white (the depth ladder), never a shadow lift; inset by `density-inset`.
|
|
91
|
-
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
|
|
92
|
-
numeric columns; row selection tints `accent`; timestamps and IDs ride `font-mono` uppercase.
|
|
93
|
-
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
|
|
94
|
-
for content-heavy), beside the work, not over it.
|
|
95
|
-
- **Badge / tag** — pill radius, `muted` / status fill, `font-mono` uppercase caption with positive
|
|
96
|
-
tracking; status badges take `success` / `warning` / `destructive`, never `primary`.
|
|
97
|
-
|
|
98
|
-
## 5 Layout
|
|
99
|
-
|
|
100
|
-
Base spacing unit 4px (the corpus's editorial 8px base loosens for the operator grid); the on-scale ramp
|
|
101
|
-
is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64`. Shell dimensions map one-to-one to the layout primitives:
|
|
102
|
-
sidebar `sidebar-width-expanded` (248px) / `sidebar-width-collapsed` (56px), topbar `topbar-height`
|
|
103
|
-
(56px), side panel `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal cap
|
|
104
|
-
`modal-width-max`, forms `form-max-width`, tables full-width. The corpus caps content at ~1280px with
|
|
105
|
-
24/48px outer padding — operator forms cap tighter at `form-max-width`. Density is governed globally by
|
|
106
|
-
`density-tier` and stepped per archetype by the surface catalog — never by absolute overrides.
|
|
107
|
-
|
|
108
|
-
## 6 Depth
|
|
109
|
-
|
|
110
|
-
Flat, color-as-elevation. Hierarchy comes from the near-black surface ladder and hairlines, never a
|
|
111
|
-
traditional shadow:
|
|
112
|
-
|
|
113
|
-
- **0 — canvas** `background` (`#131313`), no border.
|
|
114
|
-
- **1 — panel / card** `card` on a 1px `border`; a focused card firms its hairline to mint `#3cffd0` or
|
|
115
|
-
white — the border escalates, the surface does not lift.
|
|
116
|
-
- **2 — overlay** `popover` / side panel / modal — on a dark canvas a drop shadow barely registers, so
|
|
117
|
-
`shadow-intensity` earns only the faintest `sm` ring; separation is carried by border and position.
|
|
118
|
-
|
|
119
|
-
Focus is a Focus Cyan `ring` outline (never a glow), visible on every interactive element. The active-nav
|
|
120
|
-
underline is a 1px inset mint rule — a signature Verge move that carries. Three z-levels: content, sticky
|
|
121
|
-
chrome, overlay. No gradients, no glows, no atmospheric blurs — the hazard-tape aesthetic breaks if
|
|
122
|
-
anything fades.
|
|
123
|
-
|
|
124
|
-
## 7 Do's & Don'ts
|
|
125
|
-
|
|
126
|
-
- **Do** anchor every view on the near-black `#131313` canvas — the dark canvas is the product, the
|
|
127
|
-
categorically-dark exception, not a theme toggle.
|
|
128
|
-
- **Do** reserve mint `primary` for the single most important action and the active-nav underline (black
|
|
129
|
-
text on the mint fill); everything else is neutral or status.
|
|
130
|
-
- **Do** carry every all-caps label, tag, timestamp, and ID in `font-mono` uppercase with positive
|
|
131
|
-
tracking — missing tracking is missing voice; apply `tabular-nums` to every numeric column.
|
|
132
|
-
- **Don't** use mint as small text (it vibrates under 16px) or as a background wash — mint is a fill and a
|
|
133
|
-
hairline, never a canvas tint.
|
|
134
|
-
- **Don't** promote a second chromatic accent — ultraviolet, yellow, and pink are chart/status hues.
|
|
135
|
-
- **Don't** pill the primary CTA (the 40px pill is a marketing shout) or square a corner — controls stay
|
|
136
|
-
softly rounded at `radius`.
|
|
137
|
-
- **Don't** signal elevation with a drop shadow; escalate the hairline (white, then mint) or step the
|
|
138
|
-
surface instead.
|
|
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; two-pane list+detail stacks; side panel → full sheet; mono labels stay pinned at 11–12px; density holds |
|
|
147
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
148
|
-
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
149
|
-
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width; margins breathe |
|
|
150
|
-
|
|
151
|
-
Saturated status and chart hues never lose saturation on any viewport — they reflow, they do not fade.
|
|
152
|
-
|
|
153
|
-
## 9 Agent Prompt Guide
|
|
154
|
-
|
|
155
|
-
Directives the emitting agent follows verbatim:
|
|
156
|
-
|
|
157
|
-
- Reach for the near-black `#131313` canvas first — there is no light mode; the dark canvas is the brand.
|
|
158
|
-
- Accent only the primary action in mint, as a fill with black text or the active-nav underline. If two
|
|
159
|
-
things want the accent, one of them is not primary.
|
|
160
|
-
- Carry the mono-uppercase label voice everywhere labels, tags, timestamps, and IDs appear — positive
|
|
161
|
-
tracking on every all-caps run; every numeric column is `tabular-nums`, every ID / log line `font-mono`.
|
|
162
|
-
- Every workflow completes from the keyboard; the Focus Cyan `ring` outline is always visible.
|
|
163
|
-
- Stay flat — hairline and the near-black surface ladder before any shadow; escalate a border to white or
|
|
164
|
-
mint before reaching for elevation.
|
|
165
|
-
- Leave the marketing shout behind: the 60–107px Manuka hero, the saturated story tiles, the FK Roman
|
|
166
|
-
serif pulls, the 40px pill CTAs, the 300-weight whisper eyebrows. What carries: the near-black palette,
|
|
167
|
-
the single mint accent, the mono-uppercase voice, the rounded-never-square character, and flat depth.
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: Together AI
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Together AI — the white-band operator reading
|
|
9
|
-
|
|
10
|
-
Together AI's surface alternates two registers: near-black hero bands carrying a single piece of
|
|
11
|
-
brand chrome — a three-color orange-magenta-periwinkle gradient ribbon — and bright white technical
|
|
12
|
-
bands where the real content lives (pricing tables, docs, model rows). This entry is the *operator*
|
|
13
|
-
reading: it lives in the **white technical band**, carried onto a CRM, a queue, or a dashboard. What
|
|
14
|
-
carries: the white canvas, stark black ink and black CTA, the uppercase mono-caps eyebrow/label
|
|
15
|
-
voice, hairline-led flatness, the tight 4px radius, and a near-black nav rail — the brand's dark nav
|
|
16
|
-
made permanent. What stays behind: near-black content bands, the gradient ribbon, hero-scale display
|
|
17
|
-
(64px), the giant `together.ai` wordmark banner, the mint/white hero pills, and the dual-surface
|
|
18
|
-
alternation. The gradient's colors survive only in data viz.
|
|
19
|
-
|
|
20
|
-
## 1 Visual Theme
|
|
21
|
-
|
|
22
|
-
Light by default; dark is opt-in. Flat — hierarchy is carried by hairline `border`, type weight, uppercase
|
|
23
|
-
mono labels, and surface contrast, never by shadow. The register is stark: ink is pure black `foreground`
|
|
24
|
-
(`#000000`) on a pure white canvas — recorded plainly, because the brand's own ink is `#000000` and that
|
|
25
|
-
starkness *is* the voice. The primary action wears black `primary` (`#000000`) — a monochrome CTA, not a
|
|
26
|
-
color; the brand's black pill carried intact. One chromatic accent — a periwinkle-indigo pulled from the
|
|
27
|
-
cool leg of the brand gradient — is reserved for links, selection, and focus; the full three-stop gradient
|
|
28
|
-
stays marketing-only. The persistent nav rail wears the brand's near-black nav color (`sidebar` `#010120`) —
|
|
29
|
-
the dark-nav-over-light-content signature made permanent. Density is `standard`, stepping denser per
|
|
30
|
-
archetype; the brand's pricing tables read like a sheet.
|
|
31
|
-
|
|
32
|
-
## 2 Color Roles
|
|
33
|
-
|
|
34
|
-
One chromatic accent — periwinkle-indigo carries interactive meaning; status hues (all derived — the
|
|
35
|
-
brand documents none) speak only status.
|
|
36
|
-
|
|
37
|
-
| Role | Value | Allowed where |
|
|
38
|
-
| --- | --- | --- |
|
|
39
|
-
| `background` / `card` / `popover` | canvas white `#ffffff` | page, cards, and overlays — the dominant surface, differentiated by border not brightness |
|
|
40
|
-
| `foreground` | ink black `#000000` | all primary text — stark, per the brand |
|
|
41
|
-
| `muted` | faint neutral `#f5f5f5` | hover rows, subtle fills |
|
|
42
|
-
| `muted-foreground` | body gray `#666666` | labels, captions, mono eyebrows, secondary text |
|
|
43
|
-
| `secondary` | canvas-soft `#ebebeb` | secondary buttons, table-header rails, toggle rails |
|
|
44
|
-
| `border` / `input` | hairline `#e6e6e6` | every separator, grid line, field edge, and card chrome |
|
|
45
|
-
| `primary` | black `#000000` | the one primary action; active nav — a neutral, not a color |
|
|
46
|
-
| `accent` | pale periwinkle `#eeedfd` | selected/hovered rows and nav, on-accent surfaces only |
|
|
47
|
-
| `accent-foreground` | periwinkle-indigo `#4b44dd` | links, selection detail — the single interactive hue |
|
|
48
|
-
| `ring` | periwinkle-indigo `#4b44dd` | the keyboard focus outline — the one accent, so focus never reads as the black CTA |
|
|
49
|
-
| `destructive` | red `#dc2626` | destructive actions and error state only |
|
|
50
|
-
| `success` / `warning` | green `#16a34a` / amber `#d97706` | status signalling only, never chrome |
|
|
51
|
-
|
|
52
|
-
The three-stop gradient (orange → magenta → periwinkle) and the mint pill are marketing graces — no chrome role here; they survive only as chart hues (see §6, §7).
|
|
53
|
-
|
|
54
|
-
## 3 Typography
|
|
55
|
-
|
|
56
|
-
Two faces carry the whole system, and their contrast *is* the brand. `font-sans` is Together's geometric
|
|
57
|
-
display sans (`The Future`, Inter substitute) — headings and body both ride it; tight negative tracking,
|
|
58
|
-
not weight, is the voice, and it never bolds past 500. `font-mono` is the uppercase mono-caps face
|
|
59
|
-
(`PP Neue Montreal Mono`, JetBrains Mono substitute) — the brand's irreducible signature: every eyebrow,
|
|
60
|
-
button label, table-header cell, and system tag is set in it, uppercase, at positive tracking. Headlines
|
|
61
|
-
stay sentence-case; every uppercase moment is the mono. Numeric columns render `tabular-nums`; the 64px
|
|
62
|
-
hero display stays behind.
|
|
63
|
-
|
|
64
|
-
| Step | Role | Family | Size · line | Weight · tracking |
|
|
65
|
-
| --- | --- | --- | --- | --- |
|
|
66
|
-
| h1 | page title | sans | 24px / 1.25 | `font-weight-strong` · `heading-tracking` |
|
|
67
|
-
| h2 | section head | sans | 20px / 1.3 | `font-weight-strong` · -0.015em |
|
|
68
|
-
| h3 | card / group head | sans | 16px / 1.35 | `font-weight-strong` · -0.01em |
|
|
69
|
-
| body | UI + prose | sans | 14px / 1.45 | `font-weight-normal` |
|
|
70
|
-
| small | labels, meta, dense table | sans | 13px / 1.4 | `font-weight-normal` |
|
|
71
|
-
| mono-label | uppercase eyebrow / header cell | mono | 11px / 1.4 | `font-weight-strong`, +0.05em, uppercase |
|
|
72
|
-
| mono-button | uppercase button label | mono | 13px / 1 | `font-weight-strong`, +0.02em, uppercase |
|
|
73
|
-
| code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
|
|
74
|
-
|
|
75
|
-
Never let the mono carry a paragraph; emphasis is weight-to-strong or a switch to the mono face.
|
|
76
|
-
|
|
77
|
-
## 4 Component Stylings
|
|
78
|
-
|
|
79
|
-
Every recurring operator component composes from the primitives — no literal values.
|
|
80
|
-
|
|
81
|
-
- **Button** — `primary`: filled black `primary` on `primary-foreground`, `radius` (4px), never a full pill, label in uppercase mono. Secondary: `secondary` fill, 1px `border`, `foreground`. Ghost: `accent` on hover.
|
|
82
|
-
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the periwinkle `ring` at 2px, no glow.
|
|
83
|
-
- **Card** — `card` on a 1px `border`; white-on-white, read by its hairline, never brightness; shadow only when a true overlay lifts (`shadow-intensity`); inset by `density-inset`.
|
|
84
|
-
- **Table row** — height `table-row-height`; `secondary` header fill with uppercase mono header cells; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; selection tints `accent`.
|
|
85
|
-
- **Side panel** — detail and edit open in the panel (`side-panel-width`, `side-panel-width-rich` for content-heavy), beside the work, not over it.
|
|
86
|
-
- **Badge** — pill `radius` (9999) allowed here as a brand grace; hairline `border` or status fill, uppercase mono caption; status badges take `success` / `warning` / `destructive`, never `primary`.
|
|
87
|
-
|
|
88
|
-
## 5 Layout
|
|
89
|
-
|
|
90
|
-
Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 80` (the 80 preserves the
|
|
91
|
-
brand's dramatic section rhythm). Shell dimensions map one-to-one to the layout primitives: the near-black
|
|
92
|
-
sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height` (the brand's nav
|
|
93
|
-
rhythm), side panel `side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms
|
|
94
|
-
`form-max-width`, tables full-width. Rows ride `table-row-height` (40px — the brand's sheet-tight pricing
|
|
95
|
-
row). Density is governed globally by `density-tier` and stepped per archetype by the surface catalog —
|
|
96
|
-
never by absolute overrides.
|
|
97
|
-
|
|
98
|
-
## 6 Depth
|
|
99
|
-
|
|
100
|
-
Flat. Hierarchy comes from hairlines, surface polarity, and the dark rail — not shadow:
|
|
101
|
-
|
|
102
|
-
- **0 — canvas** `background` white, no border.
|
|
103
|
-
- **1 — panel / card** `card` white on a 1px `border`; white-on-white read entirely by the hairline.
|
|
104
|
-
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md` shadow, navy-tinted (the brand's `rgba(1,1,32,0.1)` drop); modals lean on a tinted scrim, not a heavy shadow.
|
|
105
|
-
- **rail — nav** the persistent sidebar wears near-black `sidebar` (`#010120`) with white text — the brand's dark nav carried, the one dark surface in a light UI.
|
|
106
|
-
|
|
107
|
-
The gradient is not chrome here — it lives in charts (`chart-1..5` carry the accent indigo, brand magenta, brand orange, deepened mint). Focus is a 2px periwinkle `ring` outline, never a glow, on every interactive element. Three z-levels: content, sticky chrome, overlay.
|
|
108
|
-
|
|
109
|
-
## 7 Do's & Don'ts
|
|
110
|
-
|
|
111
|
-
- **Do** keep the canvas pure white and the ink pure black — the stark black-on-white is the brand's technical register.
|
|
112
|
-
- **Do** set every eyebrow, button label, and table-header cell in uppercase mono (`font-mono`) with positive tracking — the two-face contrast is the voice.
|
|
113
|
-
- **Do** reserve black `primary` for the single most important action and the periwinkle `accent-foreground` for links, selection, and focus — one accent, treated as scarce.
|
|
114
|
-
- **Do** dress the persistent nav rail in the near-black `sidebar` (`#010120`) — the brand's dark nav made permanent.
|
|
115
|
-
- **Don't** set headlines in the all-caps mono or let the mono carry a paragraph — every uppercase moment is the mono, every headline is the sans in sentence case.
|
|
116
|
-
- **Don't** promote a second chromatic accent, or reduce the three-stop gradient into UI chrome — it survives only at chart scale.
|
|
117
|
-
- **Don't** full-pill the primary CTA (buttons keep the 4px `radius`; pills stay on badges), or signal elevation with heavy drop shadows — hairlines and surface polarity carry rank.
|
|
118
|
-
|
|
119
|
-
## 8 Responsive
|
|
120
|
-
|
|
121
|
-
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
122
|
-
|
|
123
|
-
| Breakpoint | What changes |
|
|
124
|
-
| --- | --- |
|
|
125
|
-
| 375 | dark sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; table rows stack model above values; density holds |
|
|
126
|
-
| 768 | sidebar collapses to the near-black icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
127
|
-
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
128
|
-
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width; section rhythm widens |
|
|
129
|
-
|
|
130
|
-
## 9 Agent Prompt Guide
|
|
131
|
-
|
|
132
|
-
Directives the emitting agent follows verbatim:
|
|
133
|
-
|
|
134
|
-
- Reach for the white canvas and pure-black ink first; float hairline-bordered white `card` surfaces on it, read by border, never by brightness.
|
|
135
|
-
- Set every eyebrow, button label, and table-header cell in uppercase mono (`font-mono`); keep headlines in the sentence-case sans with tight negative tracking. Never bold the sans past 500.
|
|
136
|
-
- Accent only the primary action in black `primary`; let the periwinkle `accent-foreground` be the one chromatic hue, for links, selection, and focus. If two things want the accent, one is not primary.
|
|
137
|
-
- Dress the persistent nav rail in the near-black `sidebar` (`#010120`) — the one dark surface in a light UI.
|
|
138
|
-
- Every numeric column is `tabular-nums`; every ID, code, model slug, and timestamp is `font-mono`. Every workflow completes from the keyboard; the periwinkle `ring` focus outline is always visible.
|
|
139
|
-
- Stay flat — hairline and surface polarity before shadow; reach past a hairline only for a real overlay.
|
|
140
|
-
- Leave the marketing furniture behind: near-black content bands, the gradient ribbon, the 64px hero display, the wordmark banner, the mint/white hero pills. The gradient's colors return only in charts.
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: Uber
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Uber — the black-and-white super-app operator design
|
|
9
|
-
|
|
10
|
-
The operator reading of Uber's monochrome web brand. The marketing theatre stays behind: hero
|
|
11
|
-
display type (52 / 36px), the editorial 4:3 illustrations, the ride-request hero card, and the
|
|
12
|
-
alternating white-then-black band rhythm. What carries is the chassis underneath — a black-and-white
|
|
13
|
-
duet where pure black `primary` (`#000000`) does every conversion job, the pill on every interactive
|
|
14
|
-
control, a flat no-shadow-by-default discipline, the neutral-tracked geometric sans voice, and the
|
|
15
|
-
polarity-flip as the depth cue.
|
|
16
|
-
|
|
17
|
-
## 1 Visual Theme
|
|
18
|
-
|
|
19
|
-
Light by default; dark is opt-in. The system is a black-and-white duet: a pure white `background`
|
|
20
|
-
canvas, pure black `foreground` ink, and a single accent that is not a colour at all — black `primary`
|
|
21
|
-
(`#000000`) carries the one primary action, the active state, and the polarity-flipped bands. No second
|
|
22
|
-
chromatic accent exists; the identity is the monochrome contrast plus one signature shape — the pill.
|
|
23
|
-
Every interactive control rounds to the pill (`9999`), Uber's irreducible geometry, while cards take a
|
|
24
|
-
soft 16px. Pure black is intentional (the brand ink is true `#000000`, recorded plainly over the generic
|
|
25
|
-
no-pure-black bias). Flat: hierarchy is hairline `border`, type weight, and the polarity-flip, never
|
|
26
|
-
shadow. The anchor surface is a white canvas beside a black `sidebar` — the shell is the duet, at `standard` density.
|
|
27
|
-
|
|
28
|
-
## 2 Color Roles
|
|
29
|
-
|
|
30
|
-
Light values. One accent: black `primary` is the only value that carries meaning; the status hues
|
|
31
|
-
are derived and speak only status.
|
|
32
|
-
|
|
33
|
-
| Role | Value | Allowed where |
|
|
34
|
-
| --- | --- | --- |
|
|
35
|
-
| `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
|
|
36
|
-
| `foreground` | pure black `#000000` | all primary ink and headlines — the brand's true-black ink |
|
|
37
|
-
| `muted` / `secondary` | canvas-soft `#efefef` | hover rows, subtle fills, chip grounds, the gray subtle-pill button |
|
|
38
|
-
| `muted-foreground` | body gray `#5e5e5e` | labels, captions, secondary text |
|
|
39
|
-
| `border` / `input` | pressed gray `#e2e2e2` | every separator, grid line, and field edge |
|
|
40
|
-
| `primary` | black `#000000` | the one primary action; active nav mark; the polarity-flip bands |
|
|
41
|
-
| `accent` | pressed gray `#e2e2e2` | selected / hovered rows — a gray wash, never a hue |
|
|
42
|
-
| `ring` | black `#000000` | the focus outline — maximally visible, keyboard-first |
|
|
43
|
-
| `destructive` | derived red `#d93025` | destructive actions and error state only |
|
|
44
|
-
| `success` / `warning` | derived `#157347` / `#b25000` | status signalling only, never chrome |
|
|
45
|
-
|
|
46
|
-
Links are ink and underlined, never blue — the `#0000ee` browser-blue in Uber's fine print stays behind.
|
|
47
|
-
The black `sidebar` wears Uber's dark-band tones (`#000000` fill, `#282828` hover); `#afafaf` is placeholder only.
|
|
48
|
-
|
|
49
|
-
## 3 Typography
|
|
50
|
-
|
|
51
|
-
One sans, one mono. `font-sans` is Inter — the corpus's substitute for the proprietary UberMove /
|
|
52
|
-
UberMoveText, with `font-feature-settings: "ss01"` approximating UberMove's geometric alternates. One
|
|
53
|
-
family carries body, UI, and headings; weight, not a second face, carries the display voice (the
|
|
54
|
-
two-face split and the hero 52 / 36px sizes stay behind). Tracking is neutral (`0`) — Uber never
|
|
55
|
-
letter-spaces, a stated brand invariant. `font-mono` is Geist Mono for IDs, codes, and timestamps;
|
|
56
|
-
numeric columns render `tabular-nums`.
|
|
57
|
-
|
|
58
|
-
| Step | Role | Size · line | Weight · tracking |
|
|
59
|
-
| --- | --- | --- | --- |
|
|
60
|
-
| h1 | page title | 24px / 1.25 | `font-weight-strong` · `heading-tracking` (0) |
|
|
61
|
-
| h2 | section head | 20px / 1.3 | `font-weight-strong` · 0 |
|
|
62
|
-
| h3 | card / group head | 16px / 1.4 | `font-weight-strong` · 0 |
|
|
63
|
-
| body | UI + prose | 15px / 1.5 | `font-weight-normal` |
|
|
64
|
-
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
65
|
-
| caption | uppercase eyebrow (rare) | 12px / 1.4 | `font-weight-strong`, `+0.04em`, uppercase |
|
|
66
|
-
| mono | IDs, codes, timestamps | 13px / 1.5 | `font-weight-normal` |
|
|
67
|
-
|
|
68
|
-
Headlines are sentence-case (the uppercase eyebrow is the rare exception); emphasise by weight, never size or tracking.
|
|
69
|
-
|
|
70
|
-
## 4 Component Stylings
|
|
71
|
-
|
|
72
|
-
- **Button** — `primary`: filled black `primary` on `primary-foreground`, pill (`9999`) — the pill IS
|
|
73
|
-
the signature, kept where other readings would rect. Secondary: white `card` fill, 1px `border`, pill.
|
|
74
|
-
Subtle: `secondary` gray fill, pill. Ghost: transparent, `muted` hover.
|
|
75
|
-
- **Input** — `background` fill, 1px `border`, the soft `radius` rect (~8px) — inputs are the one
|
|
76
|
-
control that does **not** pill; focus draws the black `ring` at 2px, no glow.
|
|
77
|
-
- **Card** — `card` surface, 1px `border`, `radius` steps to 16px (Uber's canonical card); shadow only when lifted.
|
|
78
|
-
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; selection tints
|
|
79
|
-
`accent`; `tabular-nums` on numerics; the active-row indicator is a black `primary` left edge.
|
|
80
|
-
- **Side panel** — detail and edit open in the side panel (`side-panel-width` / `-rich`), beside the work, never over it.
|
|
81
|
-
- **Badge** — pill radius, `muted` / status fill, uppercase caption; status badges take
|
|
82
|
-
`success` / `warning` / `destructive`, never `primary`.
|
|
83
|
-
|
|
84
|
-
## 5 Layout
|
|
85
|
-
|
|
86
|
-
Base spacing unit 4px; the on-scale ramp is `4 · 6 · 8 · 12 · 16 · 20 · 24 · 32 · 48` (the brand's own
|
|
87
|
-
tokens, including the 6px sub-step). Shell dimensions map one-to-one to the layout primitives: sidebar
|
|
88
|
-
`sidebar-width-expanded` (248px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (56px), side
|
|
89
|
-
panel `side-panel-width` (440px) / `side-panel-width-rich` (640px), modal `modal-width-max`, forms
|
|
90
|
-
`form-max-width`, tables full-width. Density is `standard`, governed by `density-tier`, stepped per archetype.
|
|
91
|
-
|
|
92
|
-
## 6 Depth
|
|
93
|
-
|
|
94
|
-
Flat, polarity-first. Hierarchy comes from the black/white contrast and hairlines, not shadow:
|
|
95
|
-
|
|
96
|
-
- **0 — canvas** white `background`, no border.
|
|
97
|
-
- **1 — panel / card** `card` on a 1px `border`; shadow only when it must lift off the canvas.
|
|
98
|
-
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
|
|
99
|
-
drop (matching Uber's ~0.16-alpha card drop).
|
|
100
|
-
- **band — polarity-flip** inverting to the black `primary` / `sidebar` surface with white text is
|
|
101
|
-
Uber's signature depth cue: rank by flipping to black, never by stacking a heavier shadow.
|
|
102
|
-
|
|
103
|
-
Focus is a 2px black `ring` outline (never a glow). Three z-levels: content, sticky chrome, overlay.
|
|
104
|
-
|
|
105
|
-
## 7 Do's & Don'ts
|
|
106
|
-
|
|
107
|
-
- **Do** keep the system black-and-white — one black `primary` doing every conversion job; the
|
|
108
|
-
monochrome contrast is the brand.
|
|
109
|
-
- **Do** pill every interactive control (buttons, chips, badges) — Uber's irreducible geometric
|
|
110
|
-
signature; inputs are the one exception (the soft `radius` rect).
|
|
111
|
-
- **Do** keep headlines sentence-case with neutral (`0`) tracking — Uber never letter-spaces; apply
|
|
112
|
-
`tabular-nums` to numeric columns and `font-mono` to IDs, codes, and timestamps.
|
|
113
|
-
- **Don't** introduce a second chromatic accent — orange, blue, or green flattens the monochrome
|
|
114
|
-
system; the status hues are derived and reserved for status only.
|
|
115
|
-
- **Don't** render links in browser-blue (the `#0000ee` fine-print artifact stays behind), or put a
|
|
116
|
-
shadow on chrome — flat is the default; shadow lifts only true overlays.
|
|
117
|
-
- **Don't** reach past `radius-scale`, or open detail in a modal when the side panel fits.
|
|
118
|
-
|
|
119
|
-
## 8 Responsive
|
|
120
|
-
|
|
121
|
-
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
122
|
-
|
|
123
|
-
| Breakpoint | What changes |
|
|
124
|
-
| --- | --- |
|
|
125
|
-
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
126
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
127
|
-
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
128
|
-
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
129
|
-
|
|
130
|
-
## 9 Agent Prompt Guide
|
|
131
|
-
|
|
132
|
-
- **Carries:** the black-and-white duet; pure black `primary` as the single accent; the pill on every
|
|
133
|
-
interactive control; the black `sidebar` / band polarity-flip; Inter (`ss01`) at neutral tracking; flat hairline depth.
|
|
134
|
-
- **Stays behind:** the hero display (52 / 36px); the editorial 4:3 illustrations; the ride-request hero
|
|
135
|
-
card; the alternating-band rhythm at hero scale; the browser-blue link.
|
|
136
|
-
- Lead every list with its table, every entity with its primary read. Accent only the primary action in
|
|
137
|
-
black — if two things want black, one is not primary.
|
|
138
|
-
- Pill the interactive controls; inputs take the soft rect; keep the `sidebar` black with white actives.
|
|
139
|
-
Every numeric column is `tabular-nums`, every ID / code / timestamp `font-mono`, the black `ring` always visible.
|
|
140
|
-
- Stay flat — hairline and polarity-flip before shadow; past a hairline only for a real overlay.
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema: design-md/v1
|
|
3
|
-
product: Vercel
|
|
4
|
-
provenance: library
|
|
5
|
-
sourced: 2026-07-04
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Vercel — stark ink-on-near-white developer-platform operator design
|
|
9
|
-
|
|
10
|
-
The operator reading of Vercel's design language. Vercel's own surface is a marketing deck for
|
|
11
|
-
engineers — a near-white canvas broken at hero scale by a multi-stop mesh gradient (cyan / blue /
|
|
12
|
-
magenta / amber) that is the entire decoration system. This entry keeps what survives at operator
|
|
13
|
-
scale: the stark ink-on-near-white palette, the deliberate gray ramp, the two-tone canvas, the Geist
|
|
14
|
-
type voice (via Inter), negative heading tracking, the 6px radius, and the calm stacked-shadow-plus-
|
|
15
|
-
hairline elevation. The mesh gradient, the pill CTA, the hero display, and the dark bands stay behind.
|
|
16
|
-
|
|
17
|
-
## 1 Visual Theme
|
|
18
|
-
|
|
19
|
-
Light by default; dark is opt-in. The system is achromatic to its core — ink `foreground` `#171717`
|
|
20
|
-
on a two-tone near-white field: the page body is `#fafafa` (98% white) and cards sit on pure white
|
|
21
|
-
`#ffffff`, separated by a `#ebebeb` hairline, not by brightness. Flat: hierarchy is carried by the
|
|
22
|
-
gray ramp, hairline `border`, and type weight — never heavy shadow. The single accent is the ink
|
|
23
|
-
itself — Vercel's primary action is a **black button** (`primary` `#171717` on white); one chromatic
|
|
24
|
-
hue, link/focus blue `#0070f3`, is reserved for interaction. Density is `standard`; the anchor surface
|
|
25
|
-
is a white canvas beside a faintly-tinted `sidebar`.
|
|
26
|
-
|
|
27
|
-
## 2 Color Roles
|
|
28
|
-
|
|
29
|
-
Light values. The identity is monochrome — ink + a deliberate gray ramp; the one chromatic accent is
|
|
30
|
-
the interaction blue, and status speaks status.
|
|
31
|
-
|
|
32
|
-
| Role | Value | Allowed where |
|
|
33
|
-
| --- | --- | --- |
|
|
34
|
-
| `background` | near-white `#fafafa` | the page body — 98% white, the dominant field |
|
|
35
|
-
| `card` / `popover` | pure white `#ffffff` | cards, panels, and overlays — set off the body by a hairline, not brightness |
|
|
36
|
-
| `foreground` | ink `#171717` | all primary ink and headlines |
|
|
37
|
-
| `muted` / `secondary` | canvas-soft-2 `#f5f5f5` | hover rows, inset regions, secondary button fills |
|
|
38
|
-
| `muted-foreground` | gray `#666666` | labels, captions, secondary text |
|
|
39
|
-
| `border` / `input` | hairline `#ebebeb` | every separator, grid line, and field edge |
|
|
40
|
-
| `primary` | ink `#171717` | the one primary action — the black button; active nav indicator |
|
|
41
|
-
| `accent` | canvas-soft-2 `#f5f5f5` | selected / hovered rows and nav — a neutral gray wash, never coloured |
|
|
42
|
-
| `ring` | interaction blue `#0070f3` | the focus outline — the one chromatic hue, unmistakable and keyboard-first |
|
|
43
|
-
| `destructive` | red `#ee0000` | destructive actions and error state only |
|
|
44
|
-
| `success` / `warning` | green `#16a34a` / amber `#f5a623` | status signalling only, never chrome |
|
|
45
|
-
|
|
46
|
-
The mesh gradient (cyan `#50e3c2`, violet `#7928ca`, pink `#ff0080`, amber) is a hero-only marketing
|
|
47
|
-
object with no operator role (see §7); its hues survive only as chart series.
|
|
48
|
-
|
|
49
|
-
## 3 Typography
|
|
50
|
-
|
|
51
|
-
One sans, one mono, single continuous voice. `font-sans` is **Geist** — the brand's custom geometric
|
|
52
|
-
face — with **Inter** the corpus-named open substitute (`Geist, Inter, system-ui, sans-serif`); it
|
|
53
|
-
carries display, body, button, and label. `font-mono` is Geist Mono (JetBrains Mono the substitute)
|
|
54
|
-
for IDs, codes, timestamps, terminal mockups, and technical eyebrows. Numeric columns render `tabular-nums`.
|
|
55
|
-
|
|
56
|
-
| Step | Role | Size · line | Weight · tracking |
|
|
57
|
-
| --- | --- | --- | --- |
|
|
58
|
-
| h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
59
|
-
| h2 | section head | 20px / 1.4 | `font-weight-strong` · `heading-tracking` |
|
|
60
|
-
| h3 | card / group head | 16px / 1.5 | `font-weight-strong` · -0.01em |
|
|
61
|
-
| body | UI + prose | 14px / 1.45 | `font-weight-normal` · -0.28px |
|
|
62
|
-
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
63
|
-
| eyebrow | technical label, section eyebrow | 12px / 1.35 | `font-weight-normal`, mono |
|
|
64
|
-
| code | IDs, logs, command snippets | 13px / 1.5 | `font-weight-normal`, mono |
|
|
65
|
-
|
|
66
|
-
Weight 600 is the display ceiling — the sans never reaches 700, and the brand reads calm for it. Bump
|
|
67
|
-
weight to emphasise, never size. Negative tracking is the voice (hero -0.05em stays behind; headings hold -0.03em).
|
|
68
|
-
|
|
69
|
-
## 4 Component Stylings
|
|
70
|
-
|
|
71
|
-
Every recurring operator component composes from the primitives — no literal values.
|
|
72
|
-
|
|
73
|
-
- **Button** — `primary`: filled ink on `primary-foreground`, `radius` 6px, no pill — the black button
|
|
74
|
-
is the signature, kept square. Secondary: white `card` fill, 1px `border`. Ghost: `accent` on hover.
|
|
75
|
-
- **Input** — `background` fill, 1px `border`, `radius`; focus draws the blue `ring` at 2px, no glow (field 40px).
|
|
76
|
-
- **Card** — pure white `card` on a 1px `border`, `radius`; a faint stacked shadow plus inset-hairline ring only when lifted.
|
|
77
|
-
- **Table row** — height `table-row-height`; `border` grid; `muted` on hover; selection tints `accent`; `tabular-nums` on numerics.
|
|
78
|
-
- **Side panel** — detail and edit open in the panel (`side-panel-width`, `side-panel-width-rich`), beside the work, not over it.
|
|
79
|
-
- **Badge** — hairline `border`, `muted`/status fill; status uses `success` / `warning` / `destructive`, never `primary`.
|
|
80
|
-
|
|
81
|
-
## 5 Layout
|
|
82
|
-
|
|
83
|
-
Base spacing unit 4px (corpus `--geist-space`); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 ·
|
|
84
|
-
48 · 64` — the marketing 96 / 128 / 192px section rhythm stays behind. Shell dimensions map one-to-one
|
|
85
|
-
to the layout primitives: sidebar `sidebar-width-expanded` (256px) / `sidebar-width-collapsed` (56px),
|
|
86
|
-
topbar `topbar-height` (64px, the corpus nav height), side panel `side-panel-width` (440px) /
|
|
87
|
-
`side-panel-width-rich` (640px), modal `modal-width-max`, forms `form-max-width`, tables full-width.
|
|
88
|
-
The page reads engineered — large gaps between regions, tight interior stacks. Density is governed by
|
|
89
|
-
`density-tier`, stepped per archetype by the surface catalog, never by absolute overrides.
|
|
90
|
-
|
|
91
|
-
## 6 Depth
|
|
92
|
-
|
|
93
|
-
Flat, calm, achromatic. Rank comes from the gray ladder and hairlines, never a heavy drop:
|
|
94
|
-
|
|
95
|
-
- **0 — canvas** `background` (`#fafafa`), no border.
|
|
96
|
-
- **1 — card / panel** pure white `card` set off the body by a 1px `border` + inset hairline ring.
|
|
97
|
-
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft
|
|
98
|
-
stacked `md` shadow, kept subtle (corpus elevation rides 4–12% black, never a single 8px blur).
|
|
99
|
-
|
|
100
|
-
Focus is a 2px blue `ring` outline (never a glow) on every interactive element — the one place a
|
|
101
|
-
chromatic hue appears, because the achromatic ink would vanish on the black button. Three z-levels: content, sticky chrome, overlay.
|
|
102
|
-
|
|
103
|
-
## 7 Do's & Don'ts
|
|
104
|
-
|
|
105
|
-
- **Do** anchor on the two-tone near-white field — `#fafafa` page, `#ffffff` cards, set off by a hairline.
|
|
106
|
-
- **Do** make the primary action a square black button (`primary` ink, `radius` 6px); it is the brand.
|
|
107
|
-
- **Do** carry hierarchy with the gray ramp, hairlines, and type weight — the system is flat.
|
|
108
|
-
- **Do** set every ID, code, timestamp, and technical eyebrow in `font-mono`; mono is the platform's voice.
|
|
109
|
-
- **Don't** introduce a second chromatic accent — the interaction blue is focus and links only.
|
|
110
|
-
- **Don't** render the CTA as a 100px pill or mix pill with 6px radii — pick the 6px in-app scale and hold it.
|
|
111
|
-
- **Don't** bring the mesh gradient in at all — it is a hero-scale object, never an icon or a swatch.
|
|
112
|
-
- **Don't** promote the geometric sans past weight 600, set body in mono, or signal elevation with a heavy drop.
|
|
113
|
-
|
|
114
|
-
## 8 Responsive
|
|
115
|
-
|
|
116
|
-
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
117
|
-
|
|
118
|
-
| Breakpoint | What changes |
|
|
119
|
-
| --- | --- |
|
|
120
|
-
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
121
|
-
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow; nav → hamburger |
|
|
122
|
-
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
123
|
-
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
124
|
-
|
|
125
|
-
Code and terminal panels keep mono legibility at every breakpoint by scrolling horizontally, not wrapping.
|
|
126
|
-
|
|
127
|
-
## 9 Agent Prompt Guide
|
|
128
|
-
|
|
129
|
-
Directives the emitting agent follows verbatim:
|
|
130
|
-
|
|
131
|
-
- Anchor on the two-tone near-white field — `#fafafa` page, white cards set off by a hairline; never
|
|
132
|
-
pure-white everywhere, never a coloured page.
|
|
133
|
-
- Make the one primary action a square black button; accent nothing else. Reserve the interaction blue
|
|
134
|
-
`#0070f3` for the focus `ring` and inline links only — never a fill, never a second accent.
|
|
135
|
-
- Set page titles in the geometric sans with negative tracking (never past weight 600); set every ID,
|
|
136
|
-
code, timestamp, and technical eyebrow in `font-mono`; every numeric column is `tabular-nums`.
|
|
137
|
-
- Carry depth with the gray ladder, hairlines, and the inset-hairline card ring — past a hairline only
|
|
138
|
-
for a real overlay. Every workflow completes from the keyboard; the blue `ring` is always visible.
|
|
139
|
-
- Leave marketing behind entirely: the mesh gradient, the 100px pill CTA, the 48px hero display, the
|
|
140
|
-
dark bands, and the 96 / 128 / 192px section rhythm.
|