@nurix/etna 0.19.42 → 0.19.43
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/bin/etna.js +14 -0
- package/data/harness-index.json +5 -1
- package/data/harnesses/apollo/.prettierignore +29 -0
- package/data/harnesses/apollo/.prettierrc.json +3 -0
- package/data/harnesses/apollo/.vscode/settings.json +19 -0
- package/data/harnesses/apollo/CLAUDE.md +162 -0
- package/data/harnesses/apollo/agents/brainstorm.md +144 -0
- package/data/harnesses/apollo/agents/change-review.md +251 -0
- package/data/harnesses/apollo/agents/lld-mode.md +56 -0
- package/data/harnesses/apollo/agents/maintenance.md +229 -0
- package/data/harnesses/apollo/agents/performance-review.md +223 -0
- package/data/harnesses/apollo/agents/retro.md +46 -0
- package/data/harnesses/apollo/codex/agents/brainstorm.toml +142 -0
- package/data/harnesses/apollo/codex/agents/change-review.toml +249 -0
- package/data/harnesses/apollo/codex/agents/lld-mode.toml +52 -0
- package/data/harnesses/apollo/codex/agents/maintenance.toml +228 -0
- package/data/harnesses/apollo/codex/agents/performance-review.toml +222 -0
- package/data/harnesses/apollo/codex/agents/retro.toml +45 -0
- package/data/harnesses/apollo/docs/README.md +28 -0
- package/data/harnesses/apollo/docs/history/CHANGELOG.md +26 -0
- package/data/harnesses/apollo/docs/history/backlog.md +19 -0
- package/data/harnesses/apollo/docs/memory/main.md +15 -0
- package/data/harnesses/apollo/docs/structure.md +54 -0
- package/data/harnesses/apollo/harness.json +18 -0
- package/data/harnesses/apollo/hooks/generate-ownership-index.mjs +148 -0
- package/data/harnesses/apollo/hooks/hooks.json +16 -0
- package/data/harnesses/apollo/rules/changelog.md +19 -0
- package/data/harnesses/apollo/rules/database.md +123 -0
- package/data/harnesses/apollo/rules/express.md +33 -0
- package/data/harnesses/apollo/rules/frontend.md +32 -0
- package/data/harnesses/apollo/rules/general.md +62 -0
- package/data/harnesses/apollo/rules/nomenclature.md +34 -0
- package/data/harnesses/apollo/rules/pnpm.md +57 -0
- package/data/harnesses/apollo/rules/testing.md +23 -0
- package/data/harnesses/apollo/rules/verification.md +67 -0
- package/data/harnesses/apollo/skills/boundary/SKILL.md +69 -0
- package/data/harnesses/apollo/skills/boundary/references/index.md +16 -0
- package/data/harnesses/apollo/skills/boundary/references/mechanisms.md +99 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/async-messaging.md +81 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/auth.md +93 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/build-config-runtime.md +93 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/cloudflare.md +93 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/frontend.md +93 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/generic-tail.md +55 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/persistence.md +93 -0
- package/data/harnesses/apollo/skills/boundary/references/packs/wire-api.md +87 -0
- package/data/harnesses/apollo/skills/brainstorm/README.md +56 -0
- package/data/harnesses/apollo/skills/brainstorm/SKILL.md +173 -0
- package/data/harnesses/apollo/skills/brainstorm/references/doctrine.md +98 -0
- package/data/harnesses/apollo/skills/brainstorm/references/harvest.md +86 -0
- package/data/harnesses/apollo/skills/brainstorm/references/session-schema.md +186 -0
- package/data/harnesses/apollo/skills/brainstorm/scripts/detector.mjs +460 -0
- package/data/harnesses/apollo/skills/design/SKILL.md +100 -0
- package/data/harnesses/apollo/skills/design/components/charts.md +76 -0
- package/data/harnesses/apollo/skills/design/components/collections.md +132 -0
- package/data/harnesses/apollo/skills/design/components/feedback.md +47 -0
- package/data/harnesses/apollo/skills/design/components/hooks.md +35 -0
- package/data/harnesses/apollo/skills/design/components/index.md +143 -0
- package/data/harnesses/apollo/skills/design/components/inputs.md +327 -0
- package/data/harnesses/apollo/skills/design/components/layout.md +52 -0
- package/data/harnesses/apollo/skills/design/components/media.md +66 -0
- package/data/harnesses/apollo/skills/design/components/motion.md +82 -0
- package/data/harnesses/apollo/skills/design/components/navigation.md +29 -0
- package/data/harnesses/apollo/skills/design/components/overlays.md +72 -0
- package/data/harnesses/apollo/skills/design/components/setup.md +40 -0
- package/data/harnesses/apollo/skills/design/components/typography.md +46 -0
- package/data/harnesses/apollo/skills/design/components/utils.md +37 -0
- package/data/harnesses/apollo/skills/design/data/blueprints/browse.md +38 -0
- package/data/harnesses/apollo/skills/design/data/blueprints/creation-flow.md +38 -0
- package/data/harnesses/apollo/skills/design/data/blueprints/dashboard.md +38 -0
- package/data/harnesses/apollo/skills/design/data/blueprints/grid.md +38 -0
- package/data/harnesses/apollo/skills/design/data/blueprints/queue.md +38 -0
- package/data/harnesses/apollo/skills/design/data/blueprints/record-detail.md +38 -0
- package/data/harnesses/apollo/skills/design/data/blueprints/settings.md +38 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/Readme.md +33 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/datadog-classic-six-aligned.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/econ-red-rule-horizontal.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/material-rounded-explicit-label.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/plot-currentcolor-inherit.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/saas-gradient-glow-area.md +19 -0
- package/data/harnesses/apollo/skills/design/data/chart-styling/shadcn-composable-css-vars.md +19 -0
- package/data/harnesses/apollo/skills/design/data/charts/census.csv +58 -0
- package/data/harnesses/apollo/skills/design/data/checklists/browse.md +21 -0
- package/data/harnesses/apollo/skills/design/data/checklists/creation-flow.md +20 -0
- package/data/harnesses/apollo/skills/design/data/checklists/dashboard.md +21 -0
- package/data/harnesses/apollo/skills/design/data/checklists/grid.md +21 -0
- package/data/harnesses/apollo/skills/design/data/checklists/queue.md +21 -0
- package/data/harnesses/apollo/skills/design/data/checklists/record-detail.md +21 -0
- package/data/harnesses/apollo/skills/design/data/checklists/settings.md +21 -0
- package/data/harnesses/apollo/skills/design/data/chrome/board-column.md +68 -0
- package/data/harnesses/apollo/skills/design/data/chrome/data-table.md +63 -0
- package/data/harnesses/apollo/skills/design/data/chrome/side-panel.md +60 -0
- package/data/harnesses/apollo/skills/design/data/chrome/sidebar.md +78 -0
- package/data/harnesses/apollo/skills/design/data/chrome/stat-cards.md +62 -0
- package/data/harnesses/apollo/skills/design/data/chrome/topbar.md +65 -0
- package/data/harnesses/apollo/skills/design/data/color/accent-presets.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/aesop-earth-mute.md +91 -0
- package/data/harnesses/apollo/skills/design/data/color/arc-peach-play.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/attio-hunter-teal.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/carbon-cyan-signal.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/clay-parchment.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/duolingo-feather.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/geist-mono-signal.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/linear-graphite-violet.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/mercury-onyx-cobalt.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/notion-paper-ink.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/radix-slate-iris.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/raycast-void-spectrum.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/spectrum-celery-fuchsia.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/stripe-blurple-ruby.md +90 -0
- package/data/harnesses/apollo/skills/design/data/color/superhuman-cod-picton.md +89 -0
- package/data/harnesses/apollo/skills/design/data/corpora/operations-review/companies.csv +15 -0
- package/data/harnesses/apollo/skills/design/data/corpora/operations-review/corpus.md +87 -0
- package/data/harnesses/apollo/skills/design/data/corpora/operations-review/people.csv +25 -0
- package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/companies.csv +15 -0
- package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/corpus.md +83 -0
- package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/people.csv +25 -0
- package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/companies.csv +15 -0
- package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/corpus.md +89 -0
- package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/people.csv +25 -0
- package/data/harnesses/apollo/skills/design/data/elevation/ant-design-directional-shadow.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/apple-liquid-glass-material.md +18 -0
- package/data/harnesses/apollo/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +20 -0
- package/data/harnesses/apollo/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +20 -0
- package/data/harnesses/apollo/skills/design/data/elevation/github-primer-sparing-shadow.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/ibm-carbon-layer-and-border.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/linear-dark-surface-ladder.md +17 -0
- package/data/harnesses/apollo/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/material-3-tonal-elevation.md +21 -0
- package/data/harnesses/apollo/skills/design/data/elevation/neobrutalist-hard-offset.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +18 -0
- package/data/harnesses/apollo/skills/design/data/elevation/notion-warm-minimal-hairline.md +17 -0
- package/data/harnesses/apollo/skills/design/data/elevation/polaris-elevation-inset-bevel.md +21 -0
- package/data/harnesses/apollo/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/shadcn-neutral-derived-radius.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +18 -0
- package/data/harnesses/apollo/skills/design/data/elevation/tailwind-default-utility-scale.md +19 -0
- package/data/harnesses/apollo/skills/design/data/elevation/vercel-geist-shadow-as-border.md +20 -0
- package/data/harnesses/apollo/skills/design/data/gradients/amber-attention-fill.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/cloud-shadow-wash.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/confident-lavender-wash.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/ember-ship-flare.md +18 -0
- package/data/harnesses/apollo/skills/design/data/gradients/full-metal-wash.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/indigo-ruby-cta-band.md +18 -0
- package/data/harnesses/apollo/skills/design/data/gradients/linear-graphite-wash.md +18 -0
- package/data/harnesses/apollo/skills/design/data/gradients/marble-quartz-wash.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/midnight-aurora-panel.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/neutral-volume-fill.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/revenue-uptrend-fill.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/risk-decline-fill.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/signal-blue-develop.md +18 -0
- package/data/harnesses/apollo/skills/design/data/gradients/slate-mist-wash.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/stripe-atmosphere-mesh.md +18 -0
- package/data/harnesses/apollo/skills/design/data/gradients/teal-signal-accent.md +16 -0
- package/data/harnesses/apollo/skills/design/data/gradients/violet-magenta-promo.md +16 -0
- package/data/harnesses/apollo/skills/design/data/iconography.md +199 -0
- package/data/harnesses/apollo/skills/design/data/motion/accordion-expand.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/destructive-hold-confirm.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/drag-dismiss-momentum.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/empty-state-arrive.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/hover-lift.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/modal-center-arrive.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/number-ticker-roll.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/onboarding-bounce.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/panel-slide.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/press-feedback.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/progress-linear-loop.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/route-crossfade.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/rubber-band-overscroll.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/skeleton-shimmer.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/stagger-arrive.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/toast-enter-stack.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/tooltip-chain-instant.md +18 -0
- package/data/harnesses/apollo/skills/design/data/motion/trigger-anchored-reveal.md +18 -0
- package/data/harnesses/apollo/skills/design/data/tells.csv +34 -0
- package/data/harnesses/apollo/skills/design/data/typography/anton-work-sans.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/archivo-black-archivo.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/bitter-karla.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/dm-serif-dm-sans.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/fraunces-inter.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/geist-geist-mono.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/hubot-sans-mona-sans.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/instrument-serif-instrument-sans.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/inter-operator-single-family.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/libre-baskerville-libre-franklin.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/newsreader-inter.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/playfair-display-source-sans.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/public-sans-operator-single-family.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/sohne-inter-fintech.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/source-serif-source-sans.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +17 -0
- package/data/harnesses/apollo/skills/design/data/typography/spectral-manrope.md +17 -0
- package/data/harnesses/apollo/skills/design/data/voices/bright-collaborator.md +29 -0
- package/data/harnesses/apollo/skills/design/data/voices/direct-operator.md +29 -0
- package/data/harnesses/apollo/skills/design/data/voices/earnest-helper.md +29 -0
- package/data/harnesses/apollo/skills/design/data/voices/editorial-composed.md +29 -0
- package/data/harnesses/apollo/skills/design/data/voices/quiet-concierge.md +29 -0
- package/data/harnesses/apollo/skills/design/data/voices/warm-guide.md +29 -0
- package/data/harnesses/apollo/skills/design/design-md/SCHEMA.md +179 -0
- package/data/harnesses/apollo/skills/design/design-md/index.csv +67 -0
- package/data/harnesses/apollo/skills/design/design-md/library/airbnb.md +207 -0
- package/data/harnesses/apollo/skills/design/design-md/library/airtable.md +205 -0
- package/data/harnesses/apollo/skills/design/design-md/library/anthropic-claude.md +203 -0
- package/data/harnesses/apollo/skills/design/design-md/library/apple.md +206 -0
- package/data/harnesses/apollo/skills/design/design-md/library/binance.md +210 -0
- package/data/harnesses/apollo/skills/design/design-md/library/bmw.md +210 -0
- package/data/harnesses/apollo/skills/design/design-md/library/cal.md +209 -0
- package/data/harnesses/apollo/skills/design/design-md/library/clay.md +204 -0
- package/data/harnesses/apollo/skills/design/design-md/library/clickhouse.md +205 -0
- package/data/harnesses/apollo/skills/design/design-md/library/cohere.md +205 -0
- package/data/harnesses/apollo/skills/design/design-md/library/coinbase.md +198 -0
- package/data/harnesses/apollo/skills/design/design-md/library/composio.md +198 -0
- package/data/harnesses/apollo/skills/design/design-md/library/cursor.md +197 -0
- package/data/harnesses/apollo/skills/design/design-md/library/elevenlabs.md +199 -0
- package/data/harnesses/apollo/skills/design/design-md/library/expo.md +200 -0
- package/data/harnesses/apollo/skills/design/design-md/library/figma.md +199 -0
- package/data/harnesses/apollo/skills/design/design-md/library/framer.md +202 -0
- package/data/harnesses/apollo/skills/design/design-md/library/hashicorp.md +205 -0
- package/data/harnesses/apollo/skills/design/design-md/library/ibm.md +205 -0
- package/data/harnesses/apollo/skills/design/design-md/library/intercom.md +204 -0
- package/data/harnesses/apollo/skills/design/design-md/library/kraken.md +200 -0
- package/data/harnesses/apollo/skills/design/design-md/library/linear-app.md +198 -0
- package/data/harnesses/apollo/skills/design/design-md/library/lovable.md +199 -0
- package/data/harnesses/apollo/skills/design/design-md/library/meta.md +204 -0
- package/data/harnesses/apollo/skills/design/design-md/library/minimax.md +204 -0
- package/data/harnesses/apollo/skills/design/design-md/library/mintlify.md +210 -0
- package/data/harnesses/apollo/skills/design/design-md/library/miro.md +209 -0
- package/data/harnesses/apollo/skills/design/design-md/library/mistral-ai.md +201 -0
- package/data/harnesses/apollo/skills/design/design-md/library/mongodb.md +201 -0
- package/data/harnesses/apollo/skills/design/design-md/library/notion.md +204 -0
- package/data/harnesses/apollo/skills/design/design-md/library/nvidia.md +215 -0
- package/data/harnesses/apollo/skills/design/design-md/library/ollama.md +213 -0
- package/data/harnesses/apollo/skills/design/design-md/library/opencode-ai.md +216 -0
- package/data/harnesses/apollo/skills/design/design-md/library/posthog.md +218 -0
- package/data/harnesses/apollo/skills/design/design-md/library/raycast.md +214 -0
- package/data/harnesses/apollo/skills/design/design-md/library/replicate.md +202 -0
- package/data/harnesses/apollo/skills/design/design-md/library/resend.md +203 -0
- package/data/harnesses/apollo/skills/design/design-md/library/revolut.md +203 -0
- package/data/harnesses/apollo/skills/design/design-md/library/runwayml.md +203 -0
- package/data/harnesses/apollo/skills/design/design-md/library/sanity.md +200 -0
- package/data/harnesses/apollo/skills/design/design-md/library/sentry.md +201 -0
- package/data/harnesses/apollo/skills/design/design-md/library/shopify.md +202 -0
- package/data/harnesses/apollo/skills/design/design-md/library/slack.md +202 -0
- package/data/harnesses/apollo/skills/design/design-md/library/spacex.md +206 -0
- package/data/harnesses/apollo/skills/design/design-md/library/spotify.md +206 -0
- package/data/harnesses/apollo/skills/design/design-md/library/stripe.md +196 -0
- package/data/harnesses/apollo/skills/design/design-md/library/supabase.md +196 -0
- package/data/harnesses/apollo/skills/design/design-md/library/superhuman.md +194 -0
- package/data/harnesses/apollo/skills/design/design-md/library/tesla.md +198 -0
- package/data/harnesses/apollo/skills/design/design-md/library/theverge.md +199 -0
- package/data/harnesses/apollo/skills/design/design-md/library/together-ai.md +193 -0
- package/data/harnesses/apollo/skills/design/design-md/library/uber.md +195 -0
- package/data/harnesses/apollo/skills/design/design-md/library/vercel.md +195 -0
- package/data/harnesses/apollo/skills/design/design-md/library/voltagent.md +197 -0
- package/data/harnesses/apollo/skills/design/design-md/library/warp.md +196 -0
- package/data/harnesses/apollo/skills/design/design-md/library/webflow.md +197 -0
- package/data/harnesses/apollo/skills/design/design-md/library/wired.md +197 -0
- package/data/harnesses/apollo/skills/design/design-md/library/wise.md +198 -0
- package/data/harnesses/apollo/skills/design/design-md/library/x-ai.md +199 -0
- package/data/harnesses/apollo/skills/design/design-md/library/zapier.md +198 -0
- package/data/harnesses/apollo/skills/design/design-md/nurix.md +214 -0
- package/data/harnesses/apollo/skills/design/design-md/variants/editorial-luxury.md +184 -0
- package/data/harnesses/apollo/skills/design/design-md/variants/expressive-saas.md +216 -0
- package/data/harnesses/apollo/skills/design/design-md/variants/quiet-premium.md +211 -0
- package/data/harnesses/apollo/skills/design/design-md/variants/terse-dense-operator.md +212 -0
- package/data/harnesses/apollo/skills/design/design-md/variants/warm-approachable.md +216 -0
- package/data/harnesses/apollo/skills/design/references/compose.md +23 -0
- package/data/harnesses/apollo/skills/design/references/content.md +28 -0
- package/data/harnesses/apollo/skills/design/references/emission.md +21 -0
- package/data/harnesses/apollo/skills/design/references/existing-apps.md +27 -0
- package/data/harnesses/apollo/skills/design/references/intake.md +36 -0
- package/data/harnesses/apollo/skills/design/references/object-pass.md +24 -0
- package/data/harnesses/apollo/skills/design/references/ship-gate.md +29 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/Readme.md +195 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/ai-layer.md +49 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/attributes-lifecycle.md +43 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/container-choice.md +44 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/creation-paths.md +46 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/dashboards.md +42 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/modes.md +42 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/object-model.md +46 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/page-archetype.md +48 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/promotion-demotion.md +37 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/settings.md +42 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/standard-pages.md +46 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/state-matrix.md +41 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/table-mechanics.md +48 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/verbs.md +45 -0
- package/data/harnesses/apollo/skills/design/references/ux-patterns/viewer-context.md +40 -0
- package/data/harnesses/apollo/skills/design/scripts/README-validator.md +27 -0
- package/data/harnesses/apollo/skills/design/scripts/select-chart.mjs +596 -0
- package/data/harnesses/apollo/skills/design/scripts/validate-design-md.mjs +1198 -0
- package/data/harnesses/apollo/skills/documentation/SKILL.md +132 -0
- package/data/harnesses/apollo/skills/documentation/references/examples.md +279 -0
- package/data/harnesses/apollo/skills/documentation/references/frontmatter.md +44 -0
- package/data/harnesses/apollo/skills/documentation/references/instruction-style.md +49 -0
- package/data/harnesses/apollo/skills/documentation/references/style-guide.md +351 -0
- package/data/harnesses/apollo/skills/documentation/references/untemplated.md +38 -0
- package/data/harnesses/apollo/skills/documentation/scripts/doc-lint.mjs +140 -0
- package/data/harnesses/apollo/skills/documentation/templates/Readme.md +32 -0
- package/data/harnesses/apollo/skills/documentation/templates/api-reference.md +20 -0
- package/data/harnesses/apollo/skills/documentation/templates/architecture-decision.md +121 -0
- package/data/harnesses/apollo/skills/documentation/templates/backlog.md +33 -0
- package/data/harnesses/apollo/skills/documentation/templates/behavioral-checklist.md +79 -0
- package/data/harnesses/apollo/skills/documentation/templates/changelog-entry.md +57 -0
- package/data/harnesses/apollo/skills/documentation/templates/changelog-index.md +41 -0
- package/data/harnesses/apollo/skills/documentation/templates/docs-readme.md +72 -0
- package/data/harnesses/apollo/skills/documentation/templates/domain-model.md +30 -0
- package/data/harnesses/apollo/skills/documentation/templates/environment-registry.md +15 -0
- package/data/harnesses/apollo/skills/documentation/templates/feature.md +149 -0
- package/data/harnesses/apollo/skills/documentation/templates/glossary.md +11 -0
- package/data/harnesses/apollo/skills/documentation/templates/memory-main.md +25 -0
- package/data/harnesses/apollo/skills/documentation/templates/migration-runbook.md +34 -0
- package/data/harnesses/apollo/skills/documentation/templates/non-goals.md +11 -0
- package/data/harnesses/apollo/skills/documentation/templates/operations-procedure.md +36 -0
- package/data/harnesses/apollo/skills/documentation/templates/plan.md +71 -0
- package/data/harnesses/apollo/skills/documentation/templates/protected-files.md +37 -0
- package/data/harnesses/apollo/skills/documentation/templates/root-readme.md +104 -0
- package/data/harnesses/apollo/skills/documentation/templates/security-overview.md +27 -0
- package/data/harnesses/apollo/skills/documentation/templates/structure.md +65 -0
- package/data/harnesses/apollo/skills/documentation/templates/system-overview.md +32 -0
- package/data/harnesses/apollo/skills/documentation/templates/testing-strategy.md +29 -0
- package/data/harnesses/apollo/skills/test-plan/SKILL.md +83 -0
- package/data/harnesses/apollo/skills/workflow-mapper/SKILL.md +451 -0
- package/data/harnesses/apollo/skills/workflow-mapper/references/patterns.md +214 -0
- package/data/harnesses/code/agents/maintenance.md +2 -2
- package/data/harnesses/code/codex/agents/maintenance.toml +2 -2
- package/data/harnesses/code/harness.json +3 -2
- package/data/harnesses/delivery/agents/maintenance.md +2 -2
- package/data/harnesses/delivery/codex/agents/maintenance.toml +2 -2
- package/data/harnesses/delivery/harness.json +3 -2
- package/data/harnesses/discover/harness.json +2 -1
- package/data/harnesses/discussion/harness.json +1 -0
- package/data/harnesses/etna/agents/maintenance.md +2 -2
- package/data/harnesses/etna/codex/agents/maintenance.toml +2 -2
- package/data/harnesses/etna/harness.json +3 -2
- package/data/harnesses/hr/harness.json +1 -0
- package/data/harnesses/kb-agi/harness.json +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v2
|
|
3
|
+
id: binance
|
|
4
|
+
tier: brand
|
|
5
|
+
segments: [crypto, fintech, trading]
|
|
6
|
+
keywords: [dense, terminal, yellow, black-on-yellow, markets, dual-theme]
|
|
7
|
+
sourced: 2026-07-12
|
|
8
|
+
sources: "v1 library entry (design-md/v1, sourced 2026-07-04) + 2026-07-12 re-audit; proprietary BinanceNova substituted with Inter Variable (open) and BinancePlex with JetBrains Mono (open), the v1 entry's own named substitutes; light-theme destructive/success deepened for AA fills"
|
|
9
|
+
license: open
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# binance — a trading floor at 3 a.m.
|
|
13
|
+
|
|
14
|
+
## 1 Visual Theme
|
|
15
|
+
A trading floor at 3 a.m.: banks of near-black screens, green and red ticks streaming
|
|
16
|
+
down cool-slate grids, and under the desk lamp one yellow order button — black type on
|
|
17
|
+
yellow, the only warm thing in the room. Two native themes chosen by surface intent:
|
|
18
|
+
**dark is the iconic read** — the markets console — and **light is the transactional
|
|
19
|
+
surface** for forms, deposits, and CRM; the black-on-yellow button is identical in
|
|
20
|
+
both. Flat throughout: color-block contrast and 1px hairlines, never heavy shadow.
|
|
21
|
+
Density is dense — a markets terminal, not a consumer app.
|
|
22
|
+
|
|
23
|
+
## 2 Color Roles
|
|
24
|
+
One accent: yellow `primary` carries every primary action, active nav, and the
|
|
25
|
+
wordmark — nowhere else; its scarcity is the brand. `primary-foreground` is always
|
|
26
|
+
near-black — never white on yellow. Neutrals hold Binance's cool gray-blue temper
|
|
27
|
+
(slate-tinted, never pure gray, never warmed toward the yellow). Trading green
|
|
28
|
+
`success` and trading red `destructive` speak direction and status as **text color,
|
|
29
|
+
never a card fill**; in light they deepen one step so their labels hold AA. `ring` is
|
|
30
|
+
info blue. `warning` is amber, deliberately not brand-yellow. Turquoise was a
|
|
31
|
+
single-product experiment and survives only as a chart hue.
|
|
32
|
+
|
|
33
|
+
## 3 Typography
|
|
34
|
+
Two families split by function. Inter Variable stands in for BinanceNova on UI, body,
|
|
35
|
+
and headings; strong weight runs 600 so figures read at a glance. JetBrains Mono
|
|
36
|
+
stands in for BinancePlex — the "trustworthy number" voice: prices, volumes, IDs,
|
|
37
|
+
timestamps, and every numeric column ride it with `tabular-nums`; a sans price ticker
|
|
38
|
+
loses the trading-platform character. The 64/48px hero display and its 700 weight
|
|
39
|
+
stay behind.
|
|
40
|
+
|
|
41
|
+
## 4 Component Stylings
|
|
42
|
+
Buttons: yellow `primary` fill with near-black label, `radius-md`, no pill; press
|
|
43
|
+
darkens toward the active yellow. Secondary: `secondary` fill, hairline, `foreground`.
|
|
44
|
+
Inputs: `background` fill, hairline, blue `ring` at 2px on focus, no glow. Table rows:
|
|
45
|
+
40px dense, `border` grid lines, `muted` hover, `accent` neutral selection — never a
|
|
46
|
+
yellow wash; price/amount cells are mono, direction cells take `success` /
|
|
47
|
+
`destructive` as text color. Badges: hairline, `muted`/status fill, uppercase caption,
|
|
48
|
+
never `primary`. Detail opens in the side panel.
|
|
49
|
+
|
|
50
|
+
## 5 Layout
|
|
51
|
+
4px base; topbar 64px (the brand's native nav height); sidebar 248/56px; side panel
|
|
52
|
+
420/640px; tables full-width under a 1440px cap. Density is dense and stays dense —
|
|
53
|
+
the 80px marketing band never enters. Row height 40px.
|
|
54
|
+
|
|
55
|
+
## 6 Depth
|
|
56
|
+
Flat, by conviction. On dark, the `card` step off the near-black canvas is a clear
|
|
57
|
+
lightness jump that reads as elevation with no shadow at all; on light, hairlines
|
|
58
|
+
carry the grid. One soft slate-tinted shadow exists for true overlays. Dark is the
|
|
59
|
+
authored native ladder: `background` 0.162 L (never pure black), `surface-raised`
|
|
60
|
+
+0.05, `surface-overlay` +0.13, hue held near 250. Focus is a 2px blue `ring`, never
|
|
61
|
+
a glow. Three z-levels: content, sticky chrome, overlay.
|
|
62
|
+
|
|
63
|
+
## 7 Motion
|
|
64
|
+
Terminal-fast. Named moments: `tick-update` (price cell flash via text color, 100ms),
|
|
65
|
+
`panel-slide` (side panel, 250ms, interruptible), `order-press` (primary-action press,
|
|
66
|
+
100ms). Physicality is granted to auth only. Streaming tables never animate rows —
|
|
67
|
+
numbers change, chrome holds still.
|
|
68
|
+
|
|
69
|
+
## 8 Iconography & Charts
|
|
70
|
+
Lucide, 1.75px stroke, 16/20px grid, `muted-foreground` default. Charts: hairline
|
|
71
|
+
axes, no gridline fills; categorical ramp of deep yellow, turquoise, trading green,
|
|
72
|
+
trading red, info blue. Up-moves take `success`, down-moves `destructive` — direction
|
|
73
|
+
is never re-colored. Tooltips on `surface-overlay` with mono numerals.
|
|
74
|
+
|
|
75
|
+
## 9 Voice
|
|
76
|
+
Terse desk-operator: numbers first, verbs second, zero decoration. "Place order" ·
|
|
77
|
+
"No open positions — 214 fills settled today" · "Withdrawal exceeds the daily limit;
|
|
78
|
+
2FA re-verification required above 5 BTC."
|
|
79
|
+
|
|
80
|
+
## 10 Do's & Don'ts
|
|
81
|
+
Do reserve yellow for the one action, active nav, and the wordmark; keep the black
|
|
82
|
+
label on the fill. Do pick the theme by surface intent: dark for markets and
|
|
83
|
+
dashboards, light for forms and CRM. Do carry every figure in mono `tabular-nums`.
|
|
84
|
+
Don't use yellow for body text, large fills, or selection washes. Don't fill a card
|
|
85
|
+
with `success`/`destructive` — direction is text color. Don't promote turquoise or
|
|
86
|
+
info-blue to a brand accent. Don't pill the CTA outside a hero moment or signal rank
|
|
87
|
+
with heavy shadow.
|
|
88
|
+
|
|
89
|
+
## 11 Responsive
|
|
90
|
+
375: sidebar → off-canvas drawer; list+detail stacks; side panel → full sheet; markets
|
|
91
|
+
table → horizontally-scrollable rows; density holds. 768: sidebar → icon rail; tables
|
|
92
|
+
scroll overflow. 1024: two-pane queue+detail holds. 1440: forms cap at 640px; tables
|
|
93
|
+
and dashboards use the full width.
|
|
94
|
+
|
|
95
|
+
## 12 Agent Prompt Guide
|
|
96
|
+
One accent, always: yellow marks THE action, black on yellow, never white. Choose the
|
|
97
|
+
theme by surface — dark console for markets, light for transactional work — with the
|
|
98
|
+
primary button identical in both. Numbers are mono; direction rides text color, never
|
|
99
|
+
a fill. Stay flat: surface ladder and hairlines before any shadow; radii tight; no
|
|
100
|
+
pill outside a hero. Leave the marketing skin — gradients, coin stacks, hero display —
|
|
101
|
+
behind.
|
|
102
|
+
|
|
103
|
+
```yaml design-values
|
|
104
|
+
color:
|
|
105
|
+
light:
|
|
106
|
+
background: oklch(0.99 0.005 250)
|
|
107
|
+
foreground: oklch(0.22 0.012 271)
|
|
108
|
+
card: oklch(0.995 0.005 250)
|
|
109
|
+
card-foreground: oklch(0.22 0.012 271)
|
|
110
|
+
popover: oklch(0.995 0.005 250)
|
|
111
|
+
popover-foreground: oklch(0.22 0.012 271)
|
|
112
|
+
primary: oklch(0.881 0.168 94)
|
|
113
|
+
primary-foreground: oklch(0.22 0.012 271)
|
|
114
|
+
secondary: oklch(0.965 0.005 250)
|
|
115
|
+
secondary-foreground: oklch(0.22 0.012 271)
|
|
116
|
+
muted: oklch(0.98 0.005 250)
|
|
117
|
+
muted-foreground: oklch(0.50 0.025 260)
|
|
118
|
+
accent: oklch(0.965 0.005 250)
|
|
119
|
+
accent-foreground: oklch(0.22 0.012 271)
|
|
120
|
+
destructive: oklch(0.56 0.20 20)
|
|
121
|
+
destructive-foreground: oklch(0.99 0.005 20)
|
|
122
|
+
success: oklch(0.52 0.15 158)
|
|
123
|
+
warning: oklch(0.60 0.15 58)
|
|
124
|
+
border: oklch(0.94 0.005 258)
|
|
125
|
+
input: oklch(0.94 0.005 258)
|
|
126
|
+
ring: oklch(0.623 0.188 260)
|
|
127
|
+
surface-raised: oklch(0.995 0.005 250)
|
|
128
|
+
surface-overlay: oklch(0.995 0.005 250)
|
|
129
|
+
chart-1: oklch(0.813 0.165 87)
|
|
130
|
+
chart-2: oklch(0.725 0.116 190)
|
|
131
|
+
chart-3: oklch(0.60 0.15 158)
|
|
132
|
+
chart-4: oklch(0.60 0.19 18)
|
|
133
|
+
chart-5: oklch(0.623 0.188 260)
|
|
134
|
+
sidebar: oklch(0.975 0.005 250)
|
|
135
|
+
sidebar-foreground: oklch(0.22 0.012 271)
|
|
136
|
+
sidebar-primary: oklch(0.881 0.168 94)
|
|
137
|
+
sidebar-primary-foreground: oklch(0.22 0.012 271)
|
|
138
|
+
sidebar-accent: oklch(0.955 0.006 250)
|
|
139
|
+
sidebar-accent-foreground: oklch(0.22 0.012 271)
|
|
140
|
+
sidebar-border: oklch(0.94 0.005 258)
|
|
141
|
+
sidebar-ring: oklch(0.623 0.188 260)
|
|
142
|
+
dark:
|
|
143
|
+
background: oklch(0.162 0.008 248)
|
|
144
|
+
foreground: oklch(0.94 0.005 258)
|
|
145
|
+
card: oklch(0.254 0.014 253)
|
|
146
|
+
card-foreground: oklch(0.94 0.005 258)
|
|
147
|
+
popover: oklch(0.29 0.015 253)
|
|
148
|
+
popover-foreground: oklch(0.94 0.005 258)
|
|
149
|
+
primary: oklch(0.881 0.168 94)
|
|
150
|
+
primary-foreground: oklch(0.22 0.012 271)
|
|
151
|
+
secondary: oklch(0.254 0.014 253)
|
|
152
|
+
secondary-foreground: oklch(0.92 0.006 258)
|
|
153
|
+
muted: oklch(0.22 0.012 253)
|
|
154
|
+
muted-foreground: oklch(0.683 0.019 256)
|
|
155
|
+
accent: oklch(0.311 0.017 256)
|
|
156
|
+
accent-foreground: oklch(0.92 0.006 258)
|
|
157
|
+
destructive: oklch(0.654 0.211 18)
|
|
158
|
+
destructive-foreground: oklch(0.13 0.02 18)
|
|
159
|
+
success: oklch(0.743 0.171 158)
|
|
160
|
+
warning: oklch(0.72 0.15 60)
|
|
161
|
+
border: oklch(0.311 0.017 256)
|
|
162
|
+
input: oklch(0.311 0.017 256)
|
|
163
|
+
ring: oklch(0.623 0.188 260)
|
|
164
|
+
surface-raised: oklch(0.21 0.012 250)
|
|
165
|
+
surface-overlay: oklch(0.29 0.015 253)
|
|
166
|
+
chart-1: oklch(0.881 0.168 94)
|
|
167
|
+
chart-2: oklch(0.725 0.116 190)
|
|
168
|
+
chart-3: oklch(0.743 0.171 158)
|
|
169
|
+
chart-4: oklch(0.654 0.211 18)
|
|
170
|
+
chart-5: oklch(0.623 0.188 260)
|
|
171
|
+
sidebar: oklch(0.14 0.008 248)
|
|
172
|
+
sidebar-foreground: oklch(0.92 0.006 258)
|
|
173
|
+
sidebar-primary: oklch(0.881 0.168 94)
|
|
174
|
+
sidebar-primary-foreground: oklch(0.22 0.012 271)
|
|
175
|
+
sidebar-accent: oklch(0.22 0.012 253)
|
|
176
|
+
sidebar-accent-foreground: oklch(0.92 0.006 258)
|
|
177
|
+
sidebar-border: oklch(0.24 0.013 253)
|
|
178
|
+
sidebar-ring: oklch(0.623 0.188 260)
|
|
179
|
+
typography:
|
|
180
|
+
display: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [600] }
|
|
181
|
+
sans: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [400, 600] }
|
|
182
|
+
mono: { family: "JetBrains Mono Variable", fallback: "ui-monospace, monospace", weights: [400, 500] }
|
|
183
|
+
ramp:
|
|
184
|
+
display: { size: 28px, line: 36px, weight: 600, family: display }
|
|
185
|
+
h1: { size: 24px, line: 31px, weight: 600, family: sans }
|
|
186
|
+
h2: { size: 20px, line: 27px, weight: 600, family: sans }
|
|
187
|
+
body: { size: 14px, line: 21px, weight: 400, family: sans }
|
|
188
|
+
small: { size: 13px, line: 19px, weight: 400, family: sans }
|
|
189
|
+
caption: { size: 12px, line: 17px, weight: 600, family: sans, transform: uppercase }
|
|
190
|
+
data: { size: 14px, line: 20px, weight: 500, family: mono, features: [tnum] }
|
|
191
|
+
register-scope: { display: [page-title, empty-state], sans: [chrome, controls, body], mono: [data, prices, ids, timestamps] }
|
|
192
|
+
elevation:
|
|
193
|
+
radius: { sm: 4px, md: 6px, lg: 8px }
|
|
194
|
+
hairline: border
|
|
195
|
+
shadow:
|
|
196
|
+
overlay: "0 8px 24px oklch(0.20 0.02 250 / 0.14)"
|
|
197
|
+
popover: "0 4px 12px oklch(0.20 0.02 250 / 0.10)"
|
|
198
|
+
dark-ladder: { background: 0.162, raised: 0.21, overlay: 0.29, hue-held: 250 }
|
|
199
|
+
motion:
|
|
200
|
+
duration: { press: 100ms, fade: 150ms, panel: 250ms }
|
|
201
|
+
easing: { standard: "cubic-bezier(0.4, 0, 0.2, 1)", exit: "cubic-bezier(0.4, 0, 1, 1)" }
|
|
202
|
+
entrance-never: ease-in
|
|
203
|
+
identity-moments: [auth]
|
|
204
|
+
iconography: { set: lucide, stroke: 1.75px, grid: [16px, 20px] }
|
|
205
|
+
charts:
|
|
206
|
+
categorical: [chart-1, chart-2, chart-3, chart-4, chart-5]
|
|
207
|
+
sequential: { from: background, to: chart-1 }
|
|
208
|
+
diverging: { negative: destructive, mid: muted, positive: success }
|
|
209
|
+
layout: { base: 4px, sidebar: [248px, 56px], topbar: 64px, side-panel: [420px, 640px], content-max: 1440px }
|
|
210
|
+
```
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v2
|
|
3
|
+
id: bmw
|
|
4
|
+
tier: brand
|
|
5
|
+
segments: [automotive, enterprise, dealership-ops]
|
|
6
|
+
keywords: [rectangular, engineered, corporate-blue, shadowless, machined, uppercase]
|
|
7
|
+
sourced: 2026-07-12
|
|
8
|
+
sources: "v1 library entry (design-md/v1, sourced 2026-07-04) + 2026-07-12 re-audit; licensed BMW Type Next substituted with Inter Variable (open), the v1 entry's documented stand-in; Roboto Mono kept from the brand's own fallback stack"
|
|
9
|
+
license: open
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# bmw — a machine shop's inspection bench
|
|
13
|
+
|
|
14
|
+
## 1 Visual Theme
|
|
15
|
+
A machine shop's inspection bench: brushed steel under even white light, rectangular
|
|
16
|
+
gauges seated in milled recesses, tolerances printed in heavy type, one blue indicator
|
|
17
|
+
lamp that means "go". Light by default; the dark theme is the night shift — the same
|
|
18
|
+
bench under work lamps, an authored cool ladder, never inverted. Categorically
|
|
19
|
+
shadowless and categorically rectangular: **0px corners everywhere** is the signature,
|
|
20
|
+
and hierarchy rides a greyscale surface ladder, hairlines, and the heavy-700/normal-
|
|
21
|
+
400 type contrast. One corporate blue reserved for the action that matters.
|
|
22
|
+
|
|
23
|
+
## 2 Color Roles
|
|
24
|
+
White `background` with the soft-grey `card` plate lifting by color-block contrast —
|
|
25
|
+
cool-tinted toward the corporate blue, never pure gray. `foreground` is ink, not pure
|
|
26
|
+
black. `primary` is BMW corporate blue — the one primary action, active nav, and the
|
|
27
|
+
selected-tile border; `accent` is its faint blue wash for selection and hover. `ring`
|
|
28
|
+
is the blue, keyboard-first. Status hues speak only status; in light they deepen one
|
|
29
|
+
step so their labels hold AA. The dark-navy hero and the M tricolor are marketing
|
|
30
|
+
graces — the M hues resurface only as chart categoricals, the brand's only spare
|
|
31
|
+
palette.
|
|
32
|
+
|
|
33
|
+
## 3 Typography
|
|
34
|
+
One sans, one mono. Inter Variable is the documented open stand-in for the licensed
|
|
35
|
+
BMW Type Next — wide-bodied, zero tracking on heads. The editorial signature is the
|
|
36
|
+
heavy/normal contrast: 700 heads against 400 body, **never 500**. The uppercase
|
|
37
|
+
letter-spaced label — the "LEARN MORE" machined-precision voice — is the distinctive
|
|
38
|
+
small-type carry-over. Roboto Mono (from the brand's own fallback stack) carries IDs,
|
|
39
|
+
codes, timestamps, and logs; numeric columns render `tabular-nums`.
|
|
40
|
+
|
|
41
|
+
## 4 Component Stylings
|
|
42
|
+
Buttons: blue `primary` fill, rectangular, no pill, no rounding — ever. Secondary:
|
|
43
|
+
`background` fill, hairline, `foreground`. Inputs: `background` fill, hairline; focus
|
|
44
|
+
draws the full 2px blue `ring`, no glow. Cards: the `card` grey plate distinguished by
|
|
45
|
+
contrast, optional hairline, zero shadow at rest. Table rows: hairline grid, `muted`
|
|
46
|
+
hover, `accent` selection, mono figures. Filter chips: rectangular; an active chip
|
|
47
|
+
fills with ink and white text — the brand's chip idiom. Badges: rectangular, uppercase
|
|
48
|
+
caption, status hues only. Detail opens in the side panel.
|
|
49
|
+
|
|
50
|
+
## 5 Layout
|
|
51
|
+
4px base with the brand's native 8px rhythm dominant; sidebar 256/64px; topbar 64px
|
|
52
|
+
(the brand nav); side panel 440/640px; content capped at 1440px. Density standard,
|
|
53
|
+
stepping denser per archetype — dealership-functional, not cramped. The 80px marketing
|
|
54
|
+
rhythm stays behind.
|
|
55
|
+
|
|
56
|
+
## 6 Depth
|
|
57
|
+
Flat, and more so than most — BMW never draws a drop shadow. The greyscale ladder and
|
|
58
|
+
hairlines carry all rank; a whisper of blue-grey-tinted shadow exists only for a true
|
|
59
|
+
overlay, and a hairline still carries its edge. Dark is an authored ladder:
|
|
60
|
+
`background` 0.18 L, `surface-raised` +0.045, `surface-overlay` +0.09, hue held at
|
|
61
|
+
258. Focus is the 2px blue `ring`, visible everywhere. Three z-levels: content,
|
|
62
|
+
chrome, overlay.
|
|
63
|
+
|
|
64
|
+
## 7 Motion
|
|
65
|
+
Mechanical and exact. Named moments: `gauge-settle` (value updates, 150ms),
|
|
66
|
+
`panel-slide` (side panel, 250ms, interruptible), `indicator-press` (primary-action
|
|
67
|
+
press, 100ms). Physicality is granted to auth only. Nothing bounces, nothing
|
|
68
|
+
overshoots — a machine does not wobble.
|
|
69
|
+
|
|
70
|
+
## 8 Iconography & Charts
|
|
71
|
+
Lucide, 2px stroke — the heaviest in the library, matching the 700 heads — on a
|
|
72
|
+
16/20px grid, `muted-foreground` default. Charts: hairline axes, no gridline fills;
|
|
73
|
+
the categorical ramp is the M palette's only operator home: corporate blue, M dark
|
|
74
|
+
blue, M red, engineered grey, amber. Tooltips on `surface-overlay` with mono numerals.
|
|
75
|
+
|
|
76
|
+
## 9 Voice
|
|
77
|
+
Specification prose: exact, unhurried, uppercase where the machine speaks. "START
|
|
78
|
+
INSPECTION" · "No faults recorded — 47 units passed since 06:00" · "Torque value
|
|
79
|
+
outside tolerance; recalibrate station 3 before resuming."
|
|
80
|
+
|
|
81
|
+
## 10 Do's & Don'ts
|
|
82
|
+
Do keep every corner rectangular — 0px on buttons, inputs, cards, and chips is the
|
|
83
|
+
signature (round only a circular icon button). Do set 700 heads against 400 body and
|
|
84
|
+
the +0.11em uppercase label voice. Do reserve blue for the one action. Don't draw a
|
|
85
|
+
drop shadow at rest — anywhere. Don't promote the M tricolor or dark-navy hero into
|
|
86
|
+
chrome. Don't use weight 500 or thin body to the marketing Light 300. Don't pill or
|
|
87
|
+
round a control.
|
|
88
|
+
|
|
89
|
+
## 11 Responsive
|
|
90
|
+
375: sidebar → off-canvas drawer; list+detail stacks; side panel → full sheet; density
|
|
91
|
+
holds. 768: sidebar → icon rail; tables scroll overflow. 1024: two-pane queue+detail
|
|
92
|
+
holds. 1440: content caps; forms hold 640px; tables and dashboards use the full
|
|
93
|
+
width.
|
|
94
|
+
|
|
95
|
+
## 12 Agent Prompt Guide
|
|
96
|
+
Everything is rectangular. Accent only the primary action with blue — if two things
|
|
97
|
+
want it, one is not primary. Stay shadowless: reach for the `card` grey plate and
|
|
98
|
+
hairlines before any elevation. Heads are 700, body 400, labels uppercase and
|
|
99
|
+
letter-spaced. Numeric columns are mono `tabular-nums`. Every workflow completes from
|
|
100
|
+
the keyboard with the blue `ring` always visible. Dark is authored — consult the
|
|
101
|
+
block, never derive.
|
|
102
|
+
|
|
103
|
+
```yaml design-values
|
|
104
|
+
color:
|
|
105
|
+
light:
|
|
106
|
+
background: oklch(0.99 0.005 258)
|
|
107
|
+
foreground: oklch(0.27 0.006 258)
|
|
108
|
+
card: oklch(0.985 0.005 258)
|
|
109
|
+
card-foreground: oklch(0.27 0.006 258)
|
|
110
|
+
popover: oklch(0.995 0.005 258)
|
|
111
|
+
popover-foreground: oklch(0.27 0.006 258)
|
|
112
|
+
primary: oklch(0.538 0.18 258)
|
|
113
|
+
primary-foreground: oklch(0.99 0.005 258)
|
|
114
|
+
secondary: oklch(0.975 0.005 258)
|
|
115
|
+
secondary-foreground: oklch(0.27 0.006 258)
|
|
116
|
+
muted: oklch(0.975 0.005 258)
|
|
117
|
+
muted-foreground: oklch(0.50 0.008 258)
|
|
118
|
+
accent: oklch(0.955 0.017 256)
|
|
119
|
+
accent-foreground: oklch(0.45 0.15 258)
|
|
120
|
+
destructive: oklch(0.55 0.20 28)
|
|
121
|
+
destructive-foreground: oklch(0.99 0.005 28)
|
|
122
|
+
success: oklch(0.55 0.15 150)
|
|
123
|
+
warning: oklch(0.62 0.15 66)
|
|
124
|
+
border: oklch(0.925 0.005 258)
|
|
125
|
+
input: oklch(0.925 0.005 258)
|
|
126
|
+
ring: oklch(0.538 0.18 258)
|
|
127
|
+
surface-raised: oklch(0.995 0.005 258)
|
|
128
|
+
surface-overlay: oklch(0.995 0.005 258)
|
|
129
|
+
chart-1: oklch(0.538 0.18 258)
|
|
130
|
+
chart-2: oklch(0.503 0.142 250)
|
|
131
|
+
chart-3: oklch(0.588 0.221 30)
|
|
132
|
+
chart-4: oklch(0.50 0.010 258)
|
|
133
|
+
chart-5: oklch(0.62 0.15 66)
|
|
134
|
+
sidebar: oklch(0.975 0.005 258)
|
|
135
|
+
sidebar-foreground: oklch(0.27 0.006 258)
|
|
136
|
+
sidebar-primary: oklch(0.538 0.18 258)
|
|
137
|
+
sidebar-primary-foreground: oklch(0.99 0.005 258)
|
|
138
|
+
sidebar-accent: oklch(0.955 0.017 256)
|
|
139
|
+
sidebar-accent-foreground: oklch(0.45 0.15 258)
|
|
140
|
+
sidebar-border: oklch(0.925 0.005 258)
|
|
141
|
+
sidebar-ring: oklch(0.538 0.18 258)
|
|
142
|
+
dark:
|
|
143
|
+
background: oklch(0.18 0.010 258)
|
|
144
|
+
foreground: oklch(0.93 0.006 258)
|
|
145
|
+
card: oklch(0.22 0.012 258)
|
|
146
|
+
card-foreground: oklch(0.93 0.006 258)
|
|
147
|
+
popover: oklch(0.27 0.013 258)
|
|
148
|
+
popover-foreground: oklch(0.93 0.006 258)
|
|
149
|
+
primary: oklch(0.58 0.16 258)
|
|
150
|
+
primary-foreground: oklch(0.99 0.005 258)
|
|
151
|
+
secondary: oklch(0.26 0.012 258)
|
|
152
|
+
secondary-foreground: oklch(0.91 0.006 258)
|
|
153
|
+
muted: oklch(0.24 0.012 258)
|
|
154
|
+
muted-foreground: oklch(0.70 0.012 258)
|
|
155
|
+
accent: oklch(0.30 0.030 256)
|
|
156
|
+
accent-foreground: oklch(0.92 0.008 256)
|
|
157
|
+
destructive: oklch(0.62 0.19 28)
|
|
158
|
+
destructive-foreground: oklch(0.13 0.02 28)
|
|
159
|
+
success: oklch(0.66 0.14 150)
|
|
160
|
+
warning: oklch(0.72 0.14 66)
|
|
161
|
+
border: oklch(0.28 0.012 258)
|
|
162
|
+
input: oklch(0.28 0.012 258)
|
|
163
|
+
ring: oklch(0.65 0.15 258)
|
|
164
|
+
surface-raised: oklch(0.225 0.012 258)
|
|
165
|
+
surface-overlay: oklch(0.27 0.013 258)
|
|
166
|
+
chart-1: oklch(0.62 0.16 258)
|
|
167
|
+
chart-2: oklch(0.55 0.13 250)
|
|
168
|
+
chart-3: oklch(0.64 0.19 30)
|
|
169
|
+
chart-4: oklch(0.65 0.010 258)
|
|
170
|
+
chart-5: oklch(0.72 0.14 66)
|
|
171
|
+
sidebar: oklch(0.16 0.010 258)
|
|
172
|
+
sidebar-foreground: oklch(0.91 0.006 258)
|
|
173
|
+
sidebar-primary: oklch(0.58 0.16 258)
|
|
174
|
+
sidebar-primary-foreground: oklch(0.99 0.005 258)
|
|
175
|
+
sidebar-accent: oklch(0.22 0.012 258)
|
|
176
|
+
sidebar-accent-foreground: oklch(0.90 0.006 258)
|
|
177
|
+
sidebar-border: oklch(0.23 0.012 258)
|
|
178
|
+
sidebar-ring: oklch(0.65 0.15 258)
|
|
179
|
+
typography:
|
|
180
|
+
display: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [700] }
|
|
181
|
+
sans: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [400, 700] }
|
|
182
|
+
mono: { family: "Roboto Mono Variable", fallback: "ui-monospace, monospace", weights: [400] }
|
|
183
|
+
ramp:
|
|
184
|
+
display: { size: 28px, line: 34px, weight: 700, family: display }
|
|
185
|
+
h1: { size: 24px, line: 30px, weight: 700, family: sans }
|
|
186
|
+
h2: { size: 20px, line: 26px, weight: 700, family: sans }
|
|
187
|
+
body: { size: 14px, line: 21px, weight: 400, family: sans }
|
|
188
|
+
small: { size: 13px, line: 18px, weight: 400, family: sans }
|
|
189
|
+
caption: { size: 13px, line: 17px, weight: 700, family: sans, tracking: 0.11em, transform: uppercase }
|
|
190
|
+
data: { size: 13px, line: 20px, weight: 400, family: mono, features: [tnum] }
|
|
191
|
+
register-scope: { display: [page-title, empty-state], sans: [chrome, controls, body], mono: [data, ids, timestamps] }
|
|
192
|
+
elevation:
|
|
193
|
+
radius: { sm: 0px, md: 0px, lg: 0px }
|
|
194
|
+
hairline: border
|
|
195
|
+
shadow:
|
|
196
|
+
overlay: "0 4px 16px oklch(0.25 0.03 258 / 0.10)"
|
|
197
|
+
popover: "0 2px 8px oklch(0.25 0.03 258 / 0.08)"
|
|
198
|
+
dark-ladder: { background: 0.18, raised: 0.225, overlay: 0.27, hue-held: 258 }
|
|
199
|
+
motion:
|
|
200
|
+
duration: { press: 100ms, fade: 150ms, panel: 250ms }
|
|
201
|
+
easing: { standard: "cubic-bezier(0.4, 0, 0.2, 1)", exit: "cubic-bezier(0.4, 0, 1, 1)" }
|
|
202
|
+
entrance-never: ease-in
|
|
203
|
+
identity-moments: [auth]
|
|
204
|
+
iconography: { set: lucide, stroke: 2px, grid: [16px, 20px] }
|
|
205
|
+
charts:
|
|
206
|
+
categorical: [chart-1, chart-2, chart-3, chart-4, chart-5]
|
|
207
|
+
sequential: { from: background, to: chart-1 }
|
|
208
|
+
diverging: { negative: chart-3, mid: muted, positive: chart-1 }
|
|
209
|
+
layout: { base: 4px, sidebar: [256px, 64px], topbar: 64px, side-panel: [440px, 640px], content-max: 1440px }
|
|
210
|
+
```
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v2
|
|
3
|
+
id: cal
|
|
4
|
+
tier: brand
|
|
5
|
+
segments: [scheduling, b2b-saas, dev-tools]
|
|
6
|
+
keywords: [monochrome, near-black, spacious, soft-rounded, minimal, ink-focus]
|
|
7
|
+
sourced: 2026-07-12
|
|
8
|
+
sources: "v1 library entry (design-md/v1, sourced 2026-07-04) + 2026-07-12 re-audit; Cal Sans — licensed at v1 sourcing — has since been released openly on Google Fonts and is restored as the display face (weight 600); Inter Variable body, JetBrains Mono data"
|
|
9
|
+
license: open
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# cal — a concierge desk in a minimalist hotel lobby
|
|
13
|
+
|
|
14
|
+
## 1 Visual Theme
|
|
15
|
+
A concierge desk in a minimalist hotel lobby: a white counter with soft-rounded edges,
|
|
16
|
+
a near-black leather ledger, a brass bell with no engraving — no color anywhere, and
|
|
17
|
+
the generosity is in the space between things. Light by default; dark is the lobby at
|
|
18
|
+
night, an authored cool ladder, not inverted marble. Near-monochrome: the one action
|
|
19
|
+
that matters wears near-black, not a chromatic accent — the system reads confidently
|
|
20
|
+
engineered without spending color on chrome. Flat but soft: hairlines, weight, and a
|
|
21
|
+
light-gray ladder, with soft shadows lifting only elevated cards. Density is spacious
|
|
22
|
+
— the whitespace is the signature.
|
|
23
|
+
|
|
24
|
+
## 2 Color Roles
|
|
25
|
+
`primary` is near-black — the action layer is monochrome, and `ring` is ink too: the
|
|
26
|
+
border shifts to ink on focus, never a colored glow. Neutrals are cool-slate-tinted
|
|
27
|
+
whites and grays, never pure gray. `accent` is the achromatic soft-gray selection
|
|
28
|
+
tint. The one chromatic brand color, the link blue, rides inline links only and never
|
|
29
|
+
a CTA — it appears here solely as `chart-1`. One scarce near-black surface frames or
|
|
30
|
+
closes a view — the operator descendant of Cal's dark footer — at most one per view.
|
|
31
|
+
Status hues speak only status; in light they deepen one step so labels hold AA. The
|
|
32
|
+
badge pastels are the chart palette — the one place this monochrome brand spends
|
|
33
|
+
color.
|
|
34
|
+
|
|
35
|
+
## 3 Typography
|
|
36
|
+
Cal Sans — licensed at v1 sourcing, since released openly on Google Fonts — is
|
|
37
|
+
restored as the display voice: geometric, weight 600, tight negative tracking, worn by
|
|
38
|
+
page titles and empty states only. Inter Variable carries body, tables, buttons, nav,
|
|
39
|
+
and captions; heading emphasis is 600 with negative tracking, never bolder. JetBrains
|
|
40
|
+
Mono carries IDs, codes, and timestamps; numeric columns render `tabular-nums`. Hero
|
|
41
|
+
display (48–64px) stays behind; operator headings top out at 24px.
|
|
42
|
+
|
|
43
|
+
## 4 Component Stylings
|
|
44
|
+
Buttons: near-black `primary` fill, `radius-sm` (8px), no pill; press deepens one
|
|
45
|
+
step. Secondary: `background` fill, hairline, `foreground`. Inputs: `background` fill,
|
|
46
|
+
hairline; focus shifts the edge to the ink `ring` at 2px, no glow. Cards: `card` with
|
|
47
|
+
hairline, `radius-md` (12px) on content cards, soft shadow only when lifted. Table
|
|
48
|
+
rows: hairline grid, `muted` hover, `accent` selection, mono figures. Badges: pill
|
|
49
|
+
radius, `muted` or status fill, uppercase caption, never `primary`. Detail opens in
|
|
50
|
+
the side panel.
|
|
51
|
+
|
|
52
|
+
## 5 Layout
|
|
53
|
+
4px base; sidebar 248/56px; topbar 64px — Cal's airier nav band; side panel 420/640px;
|
|
54
|
+
content max 1280px. Density is spacious — generous whitespace is the brand — stepping
|
|
55
|
+
denser per archetype without cramming. The 96px marketing rhythm stays behind.
|
|
56
|
+
|
|
57
|
+
## 6 Depth
|
|
58
|
+
Soft and modern: the surface ladder and hairlines first, soft slate-tinted shadow
|
|
59
|
+
reserved for true lift — no heavy drops, no neumorphism, no glass. The scarce
|
|
60
|
+
near-black surface elevates by color contrast, not a heavier shadow. Dark is an
|
|
61
|
+
authored ladder: `background` 0.16 L, `surface-raised` +0.055, `surface-overlay`
|
|
62
|
+
+0.10, hue held at 264. Focus is the ink `ring`, visible on every interactive
|
|
63
|
+
element. Three z-levels: content, sticky chrome, overlay.
|
|
64
|
+
|
|
65
|
+
## 7 Motion
|
|
66
|
+
Unhurried and precise. Named moments: `slot-settle` (availability grid updates,
|
|
67
|
+
150ms), `panel-slide` (side panel, 250ms, interruptible), `ledger-press`
|
|
68
|
+
(primary-action press, 100ms). Physicality is granted to auth and first-run empty
|
|
69
|
+
states only. Calendars and keyboard-initiated actions never animate.
|
|
70
|
+
|
|
71
|
+
## 8 Iconography & Charts
|
|
72
|
+
Lucide, 1.75px stroke, 16/20px grid, `muted-foreground` default. Charts: hairline
|
|
73
|
+
axes, no gridline fills; the categorical ramp is where the badge pastels live — link
|
|
74
|
+
blue, orange, pink, violet, emerald. Tooltips on `surface-overlay` with mono numerals.
|
|
75
|
+
|
|
76
|
+
## 9 Voice
|
|
77
|
+
Front-desk brevity: polite, exact, no exclamation. "Create booking" · "Nothing
|
|
78
|
+
scheduled — your next opening is Tuesday 09:00" · "This event type is linked to 4
|
|
79
|
+
routing forms; reassign them before archiving."
|
|
80
|
+
|
|
81
|
+
## 10 Do's & Don'ts
|
|
82
|
+
Do keep the action layer monochrome — near-black `primary`, ink `ring`. Do hold
|
|
83
|
+
display at Cal Sans 600 with tight tracking; body stays Inter. Do keep geometry soft:
|
|
84
|
+
8px controls, 12px cards. Don't promote the link blue to a CTA — it is inline-link and
|
|
85
|
+
chart-only. Don't exceed 16px radius on a card — larger reads consumer-toy. Don't
|
|
86
|
+
scatter the near-black surface — one framing element per view. Don't add heavy drop
|
|
87
|
+
shadows or any gradient.
|
|
88
|
+
|
|
89
|
+
## 11 Responsive
|
|
90
|
+
375: sidebar → off-canvas drawer; list+detail stacks; side panel → full sheet; density
|
|
91
|
+
holds. 768: sidebar → icon rail; tables scroll overflow. 1024: two-pane queue+detail
|
|
92
|
+
holds. 1440: forms cap at 640px; tables and dashboards use the full width under the
|
|
93
|
+
1280px cap.
|
|
94
|
+
|
|
95
|
+
## 12 Agent Prompt Guide
|
|
96
|
+
Reach first for white canvas, hairline, and the light-gray ladder — a grayscale
|
|
97
|
+
system. Accent only the primary action, in near-black; if two things want it, one is
|
|
98
|
+
not primary. Page titles wear Cal Sans 600 tight; never scale to hero sizes. Charts
|
|
99
|
+
are the only place color spends. The near-black framing surface appears at most once
|
|
100
|
+
per view. Dark is authored — consult the block, never derive.
|
|
101
|
+
|
|
102
|
+
```yaml design-values
|
|
103
|
+
color:
|
|
104
|
+
light:
|
|
105
|
+
background: oklch(0.99 0.005 264)
|
|
106
|
+
foreground: oklch(0.19 0.005 264)
|
|
107
|
+
card: oklch(0.995 0.005 264)
|
|
108
|
+
card-foreground: oklch(0.19 0.005 264)
|
|
109
|
+
popover: oklch(0.995 0.005 264)
|
|
110
|
+
popover-foreground: oklch(0.19 0.005 264)
|
|
111
|
+
primary: oklch(0.19 0.005 264)
|
|
112
|
+
primary-foreground: oklch(0.99 0.005 264)
|
|
113
|
+
secondary: oklch(0.97 0.005 264)
|
|
114
|
+
secondary-foreground: oklch(0.19 0.005 264)
|
|
115
|
+
muted: oklch(0.97 0.005 264)
|
|
116
|
+
muted-foreground: oklch(0.51 0.023 264)
|
|
117
|
+
accent: oklch(0.96 0.007 264)
|
|
118
|
+
accent-foreground: oklch(0.19 0.005 264)
|
|
119
|
+
destructive: oklch(0.55 0.19 27)
|
|
120
|
+
destructive-foreground: oklch(0.99 0.005 27)
|
|
121
|
+
success: oklch(0.55 0.13 162)
|
|
122
|
+
warning: oklch(0.62 0.15 66)
|
|
123
|
+
border: oklch(0.928 0.006 264)
|
|
124
|
+
input: oklch(0.928 0.006 264)
|
|
125
|
+
ring: oklch(0.19 0.005 264)
|
|
126
|
+
surface-raised: oklch(0.995 0.005 264)
|
|
127
|
+
surface-overlay: oklch(0.995 0.005 264)
|
|
128
|
+
chart-1: oklch(0.623 0.188 260)
|
|
129
|
+
chart-2: oklch(0.65 0.15 45)
|
|
130
|
+
chart-3: oklch(0.62 0.16 350)
|
|
131
|
+
chart-4: oklch(0.55 0.16 295)
|
|
132
|
+
chart-5: oklch(0.60 0.13 162)
|
|
133
|
+
sidebar: oklch(0.975 0.005 264)
|
|
134
|
+
sidebar-foreground: oklch(0.19 0.005 264)
|
|
135
|
+
sidebar-primary: oklch(0.19 0.005 264)
|
|
136
|
+
sidebar-primary-foreground: oklch(0.99 0.005 264)
|
|
137
|
+
sidebar-accent: oklch(0.955 0.006 264)
|
|
138
|
+
sidebar-accent-foreground: oklch(0.19 0.005 264)
|
|
139
|
+
sidebar-border: oklch(0.928 0.006 264)
|
|
140
|
+
sidebar-ring: oklch(0.19 0.005 264)
|
|
141
|
+
dark:
|
|
142
|
+
background: oklch(0.16 0.006 264)
|
|
143
|
+
foreground: oklch(0.95 0.005 264)
|
|
144
|
+
card: oklch(0.20 0.007 264)
|
|
145
|
+
card-foreground: oklch(0.95 0.005 264)
|
|
146
|
+
popover: oklch(0.26 0.008 264)
|
|
147
|
+
popover-foreground: oklch(0.95 0.005 264)
|
|
148
|
+
primary: oklch(0.95 0.005 264)
|
|
149
|
+
primary-foreground: oklch(0.18 0.006 264)
|
|
150
|
+
secondary: oklch(0.24 0.008 264)
|
|
151
|
+
secondary-foreground: oklch(0.92 0.005 264)
|
|
152
|
+
muted: oklch(0.23 0.007 264)
|
|
153
|
+
muted-foreground: oklch(0.70 0.015 264)
|
|
154
|
+
accent: oklch(0.27 0.008 264)
|
|
155
|
+
accent-foreground: oklch(0.93 0.005 264)
|
|
156
|
+
destructive: oklch(0.62 0.19 27)
|
|
157
|
+
destructive-foreground: oklch(0.13 0.02 27)
|
|
158
|
+
success: oklch(0.68 0.13 162)
|
|
159
|
+
warning: oklch(0.72 0.14 66)
|
|
160
|
+
border: oklch(0.27 0.008 264)
|
|
161
|
+
input: oklch(0.27 0.008 264)
|
|
162
|
+
ring: oklch(0.95 0.005 264)
|
|
163
|
+
surface-raised: oklch(0.215 0.007 264)
|
|
164
|
+
surface-overlay: oklch(0.26 0.008 264)
|
|
165
|
+
chart-1: oklch(0.65 0.17 260)
|
|
166
|
+
chart-2: oklch(0.72 0.14 45)
|
|
167
|
+
chart-3: oklch(0.70 0.15 350)
|
|
168
|
+
chart-4: oklch(0.65 0.14 295)
|
|
169
|
+
chart-5: oklch(0.70 0.12 162)
|
|
170
|
+
sidebar: oklch(0.14 0.006 264)
|
|
171
|
+
sidebar-foreground: oklch(0.92 0.005 264)
|
|
172
|
+
sidebar-primary: oklch(0.95 0.005 264)
|
|
173
|
+
sidebar-primary-foreground: oklch(0.18 0.006 264)
|
|
174
|
+
sidebar-accent: oklch(0.21 0.007 264)
|
|
175
|
+
sidebar-accent-foreground: oklch(0.92 0.005 264)
|
|
176
|
+
sidebar-border: oklch(0.21 0.007 264)
|
|
177
|
+
sidebar-ring: oklch(0.95 0.005 264)
|
|
178
|
+
typography:
|
|
179
|
+
display: { family: "Cal Sans", fallback: "system-ui, sans-serif", weights: [600] }
|
|
180
|
+
sans: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [400, 600] }
|
|
181
|
+
mono: { family: "JetBrains Mono Variable", fallback: "ui-monospace, monospace", weights: [400] }
|
|
182
|
+
ramp:
|
|
183
|
+
display: { size: 32px, line: 38px, weight: 600, family: display, tracking: -0.02em }
|
|
184
|
+
h1: { size: 24px, line: 30px, weight: 600, family: sans, tracking: -0.02em }
|
|
185
|
+
h2: { size: 18px, line: 25px, weight: 600, family: sans, tracking: -0.02em }
|
|
186
|
+
body: { size: 14px, line: 21px, weight: 400, family: sans }
|
|
187
|
+
small: { size: 13px, line: 18px, weight: 400, family: sans }
|
|
188
|
+
caption: { size: 12px, line: 14px, weight: 600, family: sans, tracking: 0.02em, transform: uppercase }
|
|
189
|
+
data: { size: 13px, line: 20px, weight: 400, family: mono, features: [tnum] }
|
|
190
|
+
register-scope: { display: [page-title, empty-state, auth], sans: [chrome, controls, body], mono: [data, ids, timestamps] }
|
|
191
|
+
elevation:
|
|
192
|
+
radius: { sm: 8px, md: 12px, lg: 16px }
|
|
193
|
+
hairline: border
|
|
194
|
+
shadow:
|
|
195
|
+
overlay: "0 4px 12px oklch(0.20 0.01 264 / 0.08)"
|
|
196
|
+
popover: "0 1px 2px oklch(0.20 0.01 264 / 0.05)"
|
|
197
|
+
dark-ladder: { background: 0.16, raised: 0.215, overlay: 0.26, hue-held: 264 }
|
|
198
|
+
motion:
|
|
199
|
+
duration: { press: 100ms, fade: 150ms, panel: 250ms }
|
|
200
|
+
easing: { standard: "cubic-bezier(0.4, 0, 0.2, 1)", exit: "cubic-bezier(0.4, 0, 1, 1)" }
|
|
201
|
+
entrance-never: ease-in
|
|
202
|
+
identity-moments: [auth, first-run-empty]
|
|
203
|
+
iconography: { set: lucide, stroke: 1.75px, grid: [16px, 20px] }
|
|
204
|
+
charts:
|
|
205
|
+
categorical: [chart-1, chart-2, chart-3, chart-4, chart-5]
|
|
206
|
+
sequential: { from: background, to: chart-1 }
|
|
207
|
+
diverging: { negative: destructive, mid: muted, positive: chart-5 }
|
|
208
|
+
layout: { base: 4px, sidebar: [248px, 56px], topbar: 64px, side-panel: [420px, 640px], content-max: 1280px }
|
|
209
|
+
```
|