@nurix/etna 0.19.11 → 0.19.12
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/data/harness-index.json +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/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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name,industry,size_band
|
|
2
|
+
Meridian Cloud Services,Cloud Infrastructure,Enterprise
|
|
3
|
+
Ashgrove Office Supply,Office & Facilities,SMB
|
|
4
|
+
Talbridge Consulting Group,Professional Services,Mid-Market
|
|
5
|
+
Kestrel Security Systems,IT Security,SMB
|
|
6
|
+
Vantree Staffing Solutions,Staffing & Contractors,Mid-Market
|
|
7
|
+
Redwood Print & Signage,Marketing Services,SMB
|
|
8
|
+
Corvid Analytics Software,Software/SaaS,Mid-Market
|
|
9
|
+
Highmark Freight & Logistics,Logistics,Enterprise
|
|
10
|
+
Juniper Legal Services,Professional Services,SMB
|
|
11
|
+
Atlas Facilities Management,Office & Facilities,Mid-Market
|
|
12
|
+
Brightline Travel Solutions,Travel,SMB
|
|
13
|
+
Fenwick Hardware Supply,Office & Facilities,SMB
|
|
14
|
+
Novacore Data Centers,Cloud Infrastructure,Enterprise
|
|
15
|
+
Silverline Training Group,Professional Services,SMB
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: procurement-approvals
|
|
3
|
+
class: c1
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "Distilled from purchase-order approval-workflow vocabulary (knack.com, ziphq.com, procurify.com, stampli.com) and SaaS spend-category taxonomy (finops.org, ardura.consulting); escalation mechanics from cflowapps.com. See docs/research/design-skill-phase1/c1-demo-data.md."
|
|
6
|
+
license: open
|
|
7
|
+
---
|
|
8
|
+
# Procurement approvals — demo corpus
|
|
9
|
+
|
|
10
|
+
A purchase-requisition and approval-chain workflow. `people.csv` is the internal requesters, approvers, and finance staff; `companies.csv` is the vendors/suppliers a request or PO is issued against.
|
|
11
|
+
|
|
12
|
+
## Activity vocabulary (25)
|
|
13
|
+
|
|
14
|
+
1. Purchase requisition submitted — 25 Figma seats, annual plan
|
|
15
|
+
2. Auto-approved — under the $500 department threshold
|
|
16
|
+
3. Escalated to Finance — request exceeds the $10,000 single-purchase limit
|
|
17
|
+
4. Approved by department manager, pending Finance sign-off
|
|
18
|
+
5. Rejected — duplicate request, existing contract already covers the need
|
|
19
|
+
6. Returned for revision — missing cost center code
|
|
20
|
+
7. Vendor onboarding required before a PO can be issued
|
|
21
|
+
8. Three-bid comparison attached — selected the mid-price vendor per policy
|
|
22
|
+
9. Sole-source justification submitted for specialized equipment
|
|
23
|
+
10. Budget check failed — exceeds the Q3 marketing allocation by $4,200
|
|
24
|
+
11. Approved with conditions — 12-month term cap, no auto-renewal
|
|
25
|
+
12. Contract routed to Legal for MSA redline review
|
|
26
|
+
13. PO issued — Net 30 terms, delivery expected in 3 weeks
|
|
27
|
+
14. Invoice mismatch — PO amount $8,400, invoice received for $9,150
|
|
28
|
+
15. Emergency purchase approved retroactively — server outage remediation
|
|
29
|
+
16. Renewal flagged 60 days out — auto-renewal clause, opt-out deadline approaching
|
|
30
|
+
17. Approval delegated — primary approver on PTO, alternate assigned
|
|
31
|
+
18. Request withdrawn by requester — need resolved internally
|
|
32
|
+
19. Compliance hold — vendor missing a signed security questionnaire
|
|
33
|
+
20. Second approval required — crosses the $25,000 dual-authorization threshold
|
|
34
|
+
21. Spend category reclassified from Software to Professional Services
|
|
35
|
+
22. Escalated to CFO — capital expenditure exceeds department authority
|
|
36
|
+
23. Approved — annual software audit recommended vendor consolidation
|
|
37
|
+
24. Change order submitted — scope increase adds $6,000 to the existing PO
|
|
38
|
+
25. Reminder sent — approval pending 4 business days, SLA breach imminent
|
|
39
|
+
|
|
40
|
+
## Number-shape recipes
|
|
41
|
+
|
|
42
|
+
```yaml number-shapes
|
|
43
|
+
request_amount_usd:
|
|
44
|
+
distribution: "log-normal(mu=6.8, sigma=1.4)"
|
|
45
|
+
median: 900
|
|
46
|
+
p90: 12000
|
|
47
|
+
p99: 145000
|
|
48
|
+
approval_tiers:
|
|
49
|
+
- { max_amount: 500, approvers: 1, chain: "Manager", auto_approve_share: 0.9 }
|
|
50
|
+
- { max_amount: 10000, approvers: 2, chain: "Manager + Department Head" }
|
|
51
|
+
- { max_amount: 50000, approvers: 3, chain: "+ Finance" }
|
|
52
|
+
- { max_amount: null, approvers: 4, chain: "+ CFO/Executive" }
|
|
53
|
+
approval_cycle_time_hours:
|
|
54
|
+
distribution: "log-normal(mu=2.1, sigma=1.3)"
|
|
55
|
+
median: 8.2
|
|
56
|
+
p95: 96
|
|
57
|
+
rejection_rate: "0.05-0.12"
|
|
58
|
+
escalation_rate: "0.08-0.15"
|
|
59
|
+
spend_category_mix:
|
|
60
|
+
software_saas: 0.34
|
|
61
|
+
professional_services: 0.18
|
|
62
|
+
cloud_infrastructure: 0.15
|
|
63
|
+
hardware_equipment: 0.10
|
|
64
|
+
travel: 0.09
|
|
65
|
+
marketing_services: 0.08
|
|
66
|
+
office_facilities: 0.06
|
|
67
|
+
vendor_count_growth: "+1 to +3 new vendors/month for SMB; +5 to +10/month for enterprise"
|
|
68
|
+
renewal_auto_flag_window_days: 60
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Believability patterns applied
|
|
72
|
+
|
|
73
|
+
- **Realism needs imperfection, deliberately placed** — `rejection_rate` and `escalation_rate` above are authored non-zero bands, so the primary set already carries the friction a real approval queue has; true edge cases (a null cost center, a $0 PO) still live only in fixtures per `edge-rows`.
|
|
74
|
+
- **Relationships carry more realism than any single field** — `approval_tiers` above routes each request to a chain of roles (Manager → Department Head → Finance → CFO) that must resolve to real `people.csv` rows; a request approved by no one in the chain reads as broken, not just less real.
|
|
75
|
+
- **Name diversity is deliberate, not incidental** — `people.csv` draws names across cultural backgrounds by hand rather than from a frequency-ranked census list, so no single surname or origin dominates the roster.
|
|
76
|
+
|
|
77
|
+
```yaml invariants
|
|
78
|
+
aggregates-reconcile: [requests_submitted = requests_approved + requests_rejected + requests_pending, po_total_amount = sum(line_items.amount), total_period_spend = sum(spend_by_category)]
|
|
79
|
+
legal-ranges: { request_amount_usd: [25, 250000, log-normal], approval_cycle_time_hours: [0.25, 240, log-normal], approver_count: [1, 4, tiered-discrete] }
|
|
80
|
+
forbidden-repetition: { max_same_surname_visible: 2, max_identical_requester_amount_same_day: 1, max_consecutive_pos_same_vendor: 5 }
|
|
81
|
+
edge-rows: fixtures-only # nulls/zeros/outliers live in state fixtures, never the primary set
|
|
82
|
+
reference-instant: 2026-07-12T09:00:00Z # fixed — all dates vary around this instant
|
|
83
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name,email,role,seniority
|
|
2
|
+
Isabela Rocha,isabela.rocha@cordillera.com,Procurement Specialist,Junior
|
|
3
|
+
Nathaniel Cross,nathaniel.cross@cordillera.com,Finance Manager,Manager
|
|
4
|
+
Aditi Krishnan,aditi.krishnan@cordillera.com,Department Head - Marketing,Senior
|
|
5
|
+
Samuel Okoro,samuel.okoro@cordillera.com,Controller,Senior
|
|
6
|
+
Freya Halvorsen,freya.halvorsen@cordillera.com,AP Coordinator,Junior
|
|
7
|
+
Benjamin Achterberg,benjamin.achterberg@cordillera.com,CFO,Executive
|
|
8
|
+
Leila Haddad,leila.haddad@cordillera.com,IT Manager,Mid
|
|
9
|
+
Connor Whitfield,connor.whitfield@cordillera.com,Facilities Coordinator,Junior
|
|
10
|
+
Ngozi Eze,ngozi.eze@cordillera.com,Sourcing Manager,Mid
|
|
11
|
+
Piotr Zielinski,piotr.zielinski@cordillera.com,VP Operations,Lead
|
|
12
|
+
Mateus Lima,mateus.lima@cordillera.com,Procurement Specialist,Junior
|
|
13
|
+
Elin Kristiansen,elin.kristiansen@cordillera.com,Senior Procurement Specialist,Senior
|
|
14
|
+
Farrukh Aliyev,farrukh.aliyev@cordillera.com,AP Coordinator,Junior
|
|
15
|
+
Priya Chandran,priya.chandran@cordillera.com,Department Head - Engineering,Senior
|
|
16
|
+
Owen Delacroix,owen.delacroix@cordillera.com,Contracts Manager,Mid
|
|
17
|
+
Simone Fischer,simone.fischer@cordillera.com,Category Manager - Software,Mid
|
|
18
|
+
Dario Moretti,dario.moretti@cordillera.com,Procurement Manager,Manager
|
|
19
|
+
Amina Toure,amina.toure@cordillera.com,Sourcing Manager,Mid
|
|
20
|
+
Grant Fairweather,grant.fairweather@cordillera.com,IT Manager,Mid
|
|
21
|
+
Renata Ibarra,renata.ibarra@cordillera.com,AP Manager,Manager
|
|
22
|
+
Kofi Mensah,kofi.mensah@cordillera.com,Legal Counsel,Senior
|
|
23
|
+
Wendy Lachance,wendy.lachance@cordillera.com,Department Head - Sales,Senior
|
|
24
|
+
Rasheed Malik,rasheed.malik@cordillera.com,Controller,Senior
|
|
25
|
+
Bianca Ferreira,bianca.ferreira@cordillera.com,Procurement Specialist,Junior
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name,industry,size_band
|
|
2
|
+
Northwind Traders,Wholesale Distribution,Mid-Market
|
|
3
|
+
Brackenridge Health Group,Healthcare,Enterprise
|
|
4
|
+
Pinnacle Freight Systems,Logistics,Mid-Market
|
|
5
|
+
Solstice Financial Partners,Financial Services,Enterprise
|
|
6
|
+
Fielding & Cole Law,Legal Services,SMB
|
|
7
|
+
Marrow Robotics,Manufacturing,Mid-Market
|
|
8
|
+
Cobalt Learning Systems,EdTech,SMB
|
|
9
|
+
Havencrest Insurance,Insurance,Enterprise
|
|
10
|
+
Ashworth Biotech,Life Sciences,Mid-Market
|
|
11
|
+
Cascade Retail Group,Retail,Enterprise
|
|
12
|
+
Ternion Aerospace,Aerospace & Defense,Enterprise
|
|
13
|
+
Lighthouse Media Partners,Media & Entertainment,SMB
|
|
14
|
+
Granite Peak Construction,Construction,Mid-Market
|
|
15
|
+
Vellum Publishing House,Publishing,SMB
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: revenue-analytics
|
|
3
|
+
class: c1
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "Distilled from B2B SaaS deal-size and win-rate benchmarks (culta.ai, optif.ai, Velocity Partners' 200-company dataset) and CRM call-note / pipeline-stage vocabulary (Weflow- and HubSpot-class sales-call-report guidance); segment bands from Martal and GTMnow's SMB/mid-market/enterprise definitions. See docs/research/design-skill-phase1/c1-demo-data.md."
|
|
6
|
+
license: open
|
|
7
|
+
---
|
|
8
|
+
# Revenue analytics — demo corpus
|
|
9
|
+
|
|
10
|
+
A CRM sales pipeline. `people.csv` is the internal sales/CS org (AE, SDR, CSM, RevOps — seniority is meaningful here); `companies.csv` is the CRM accounts: prospects and customers a deal is opened against.
|
|
11
|
+
|
|
12
|
+
## Activity vocabulary (25)
|
|
13
|
+
|
|
14
|
+
1. Intro call with Elena — pricing discussion, budget confirmed at $40K
|
|
15
|
+
2. Discovery call: identified pain point around manual reconciliation
|
|
16
|
+
3. Demo delivered to VP Eng and 2 stakeholders — positive reaction to SSO
|
|
17
|
+
4. Sent proposal — 3-year term, 12% discount for annual prepay
|
|
18
|
+
5. Champion (Marcus, Head of Ops) went quiet — no response in 9 days
|
|
19
|
+
6. Negotiation: legal redlines returned, DPA clause under review
|
|
20
|
+
7. Closed won — signed an 18-month contract, ARR $86,400
|
|
21
|
+
8. Closed lost — chose the incumbent, price was the deciding factor
|
|
22
|
+
9. Renewal call — flagged a 22% QoQ usage drop, account at risk
|
|
23
|
+
10. Upsell opportunity: 15 additional seats, add-on module discussed
|
|
24
|
+
11. Economic buyer identified — CFO joining the next call
|
|
25
|
+
12. Security review kicked off — SOC 2 report requested
|
|
26
|
+
13. Referral from an existing customer (Northwind Traders)
|
|
27
|
+
14. Trial extended 14 days — low activation, nudged onboarding
|
|
28
|
+
15. Competitive deal — up against Rippling, differentiating on support SLA
|
|
29
|
+
16. Contract sent via DocuSign — awaiting counter-signature
|
|
30
|
+
17. Budget confirmed for Q3, procurement process to follow
|
|
31
|
+
18. No-show on the scheduled demo — rescheduled for next Tuesday
|
|
32
|
+
19. Champion change — original contact left the company, re-engaging new VP
|
|
33
|
+
20. QBR completed — NPS 8/10, expansion conversation opened
|
|
34
|
+
21. Free trial converted to paid — 22 seats at $49/seat/mo
|
|
35
|
+
22. Objection raised on implementation timeline — offered a dedicated CSM
|
|
36
|
+
23. Multi-year deal restructured to annual due to a budget freeze
|
|
37
|
+
24. Stakeholder map updated — 4 decision-makers, 2 influencers identified
|
|
38
|
+
25. Deal slipped to next quarter — legal review taking longer than expected
|
|
39
|
+
|
|
40
|
+
## Number-shape recipes
|
|
41
|
+
|
|
42
|
+
```yaml number-shapes
|
|
43
|
+
deal_size_usd:
|
|
44
|
+
distribution: "log-normal(mu=9.4, sigma=1.1)"
|
|
45
|
+
median: 12400
|
|
46
|
+
p90: 68000
|
|
47
|
+
p99: 310000
|
|
48
|
+
win_rate_by_segment:
|
|
49
|
+
smb: "0.30-0.35" # <$10K ACV band
|
|
50
|
+
mid_market: "0.20-0.28" # $10-50K ACV band
|
|
51
|
+
enterprise: "0.12-0.18" # >$50K ACV band
|
|
52
|
+
sales_cycle_days:
|
|
53
|
+
smb: "log-normal, median ~34"
|
|
54
|
+
mid_market: "log-normal, median ~95"
|
|
55
|
+
enterprise: "log-normal, median ~210"
|
|
56
|
+
open_pipeline_stage_mix:
|
|
57
|
+
prospecting: 0.35
|
|
58
|
+
discovery: 0.22
|
|
59
|
+
demo: 0.16
|
|
60
|
+
proposal: 0.12
|
|
61
|
+
negotiation: 0.08
|
|
62
|
+
closing: 0.07
|
|
63
|
+
activity_volume_per_rep:
|
|
64
|
+
shape: power-law
|
|
65
|
+
concentration: "top quartile of reps generates ~60% of pipeline value"
|
|
66
|
+
mrr_growth:
|
|
67
|
+
monthly_delta: "+3 to +9% for growth-stage accounts, -2 to +2% for mature accounts"
|
|
68
|
+
net_revenue_retention: "0.95-1.15"
|
|
69
|
+
logo_churn_monthly: "0.008-0.02"
|
|
70
|
+
stakeholders_per_deal:
|
|
71
|
+
smb: "1-3"
|
|
72
|
+
mid_market: "3-7"
|
|
73
|
+
enterprise: "7-13"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Believability patterns applied
|
|
77
|
+
|
|
78
|
+
- **Distributions have a known shape, not uniform or normal** — deal size is modeled log-normal (many small deals, a long right tail of large ones) and rep activity is power-law (top quartile generates ~60% of pipeline value); drawing either as uniform-random or bell-curve reads as generated.
|
|
79
|
+
- **Domain vocabulary beats generic placeholders** — the activity vocabulary above names actual pipeline stages, dispositions, and stakeholder roles ("Champion... went quiet," "Economic buyer identified") instead of generic "Task 1"-style phrasing.
|
|
80
|
+
- **Never repeat identical values across records** — `forbidden-repetition` below caps identical open-deal amounts and same-day close dates so no two rows read as copy-paste.
|
|
81
|
+
- **Measured amounts should pass a Benford-style sniff test** — `deal_size_usd`'s log-normal generation naturally skews leading digits toward 1–3, unlike a naive uniform-random amount generator.
|
|
82
|
+
|
|
83
|
+
```yaml invariants
|
|
84
|
+
aggregates-reconcile: [total_open_pipeline = sum(pipeline_value_by_stage), arr_net_change = arr_new + arr_expansion - arr_churn - arr_contraction, total_deals = count(closed_won) + count(closed_lost) + count(open_deals)]
|
|
85
|
+
legal-ranges: { deal_size_usd: [500, 500000, log-normal], win_rate: [0.05, 0.45, beta-segment-dependent], sales_cycle_days: [7, 400, log-normal-segment-dependent] }
|
|
86
|
+
forbidden-repetition: { max_same_surname_visible: 2, max_identical_deal_amount_open_deals: 2, max_deals_same_close_date: 4 }
|
|
87
|
+
edge-rows: fixtures-only # nulls/zeros/outliers live in state fixtures, never the primary set
|
|
88
|
+
reference-instant: 2026-07-12T09:00:00Z # fixed — all dates vary around this instant
|
|
89
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name,email,role,seniority
|
|
2
|
+
Elena Vasquez,elena.vasquez@fernhollow.io,Account Executive,Mid
|
|
3
|
+
Kwame Asante,kwame.asante@fernhollow.io,Sales Development Rep,Junior
|
|
4
|
+
Sofia Marchetti,sofia.marchetti@fernhollow.io,Senior Account Executive,Senior
|
|
5
|
+
Raj Patel,raj.patel@fernhollow.io,VP Sales,Executive
|
|
6
|
+
Hannah Lindqvist,hannah.lindqvist@fernhollow.io,Customer Success Manager,Mid
|
|
7
|
+
Yusuf Demir,yusuf.demir@fernhollow.io,Sales Engineer,Mid
|
|
8
|
+
Chloe Bergstrom,chloe.bergstrom@fernhollow.io,RevOps Analyst,Junior
|
|
9
|
+
Daniel Osei-Mensah,daniel.osei-mensah@fernhollow.io,Enterprise Account Executive,Senior
|
|
10
|
+
Mei-Lin Tan,mei-lin.tan@fernhollow.io,Renewals Manager,Mid
|
|
11
|
+
Oliver Bancroft,oliver.bancroft@fernhollow.io,Sales Manager,Lead
|
|
12
|
+
Isabelle Fontaine,isabelle.fontaine@fernhollow.io,Account Executive,Mid
|
|
13
|
+
Tariq Nasser,tariq.nasser@fernhollow.io,Sales Development Rep,Junior
|
|
14
|
+
Brynn O'Callaghan,brynn.ocallaghan@fernhollow.io,Customer Success Manager,Mid
|
|
15
|
+
Felix Andersson,felix.andersson@fernhollow.io,Sales Engineer,Mid
|
|
16
|
+
Priyanka Deshmukh,priyanka.deshmukh@fernhollow.io,Senior Account Executive,Senior
|
|
17
|
+
Marcus Lindgren,marcus.lindgren@fernhollow.io,RevOps Manager,Manager
|
|
18
|
+
Aaliyah Johnson,aaliyah.johnson@fernhollow.io,Sales Development Rep,Junior
|
|
19
|
+
Sebastian Kruger,sebastian.kruger@fernhollow.io,Enterprise Account Executive,Senior
|
|
20
|
+
Noor Hassan,noor.hassan@fernhollow.io,Customer Success Manager,Mid
|
|
21
|
+
Viktor Petrenko,viktor.petrenko@fernhollow.io,Deal Desk Analyst,Mid
|
|
22
|
+
Camille Dubois,camille.dubois@fernhollow.io,Renewals Manager,Manager
|
|
23
|
+
Adebayo Okonkwo,adebayo.okonkwo@fernhollow.io,Account Executive,Mid
|
|
24
|
+
Ingrid Solheim,ingrid.solheim@fernhollow.io,Senior Customer Success Manager,Senior
|
|
25
|
+
Julian Marsh,julian.marsh@fernhollow.io,Sales Director,Lead
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ant-design-directional-shadow
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from ant.design/docs/spec/shadow"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "enterprise-friendly, directionally aware; drawers and fixed headers cast shadow toward the content they overlay, not just downward"
|
|
8
|
+
---
|
|
9
|
+
Ant Design is unusual in defining shadow **direction** as a first-class variable: the same three-layer blur/opacity recipe is mirrored down/up/left/right depending on where the component sits (a right-side drawer casts left, a bottom-fixed table header casts up). Three layers per direction blend from a tight, high-opacity contact shadow to a huge, near-invisible ambient one.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 4, md: 6, lg: 8 }
|
|
13
|
+
hairline: "none at rest; inputs use a separate 1px border token, not shared with the shadow system"
|
|
14
|
+
shadow:
|
|
15
|
+
layer1-down: "0px 1px 2px -2px rgba(0,0,0,.16), 0px 3px 6px 0px rgba(0,0,0,.12), 0px 5px 12px 4px rgba(0,0,0,.09)"
|
|
16
|
+
layer2-down: "0px 3px 6px -4px rgba(0,0,0,.12), 0px 6px 16px 0px rgba(0,0,0,.08), 0px 9px 28px 8px rgba(0,0,0,.05)"
|
|
17
|
+
layer3-down: "0px 6px 16px -8px rgba(0,0,0,.08), 0px 9px 28px 0px rgba(0,0,0,.05), 0px 12px 48px 16px rgba(0,0,0,.03)"
|
|
18
|
+
dark-ladder: { step: "+~5L per level (v5 dark algorithm inverts the neutral scale)", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: apple-liquid-glass-material
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from developer.apple.com/design/human-interface-guidelines/materials"
|
|
6
|
+
license: reference-only
|
|
7
|
+
feel: "spatial, translucent, light-reactive; depth comes from a refractive material simulating glass thickness, not a fixed shadow token"
|
|
8
|
+
---
|
|
9
|
+
Apple's newest materials model (Liquid Glass) ties elevation to simulated material *thickness* rather than a discrete shadow scale: as a glass element grows or is interacted with, it "flexes" to a thicker material with deeper shadow and more pronounced lensing/refraction. Darker, denser materials deliberately mute shadow legibility, trading depth for reduced visual noise — the opposite trade every other system here makes.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 10, md: 16, lg: 28 }
|
|
13
|
+
hairline: "none as a drawn line — edge definition comes from the material's own refractive/specular edge"
|
|
14
|
+
shadow:
|
|
15
|
+
base: "shadow deepens dynamically as the glass element scales up (material 'flexes' thicker)"
|
|
16
|
+
scroll: "shadow intensifies as content scrolls beneath it, to preserve separation"
|
|
17
|
+
dark-ladder: { step: "n/a — darker/denser materials intentionally reduce shadow legibility rather than laddering lightness", hue: held }
|
|
18
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: atlassian-surface-shadow-pairing
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from atlassian.design/foundations/elevation and /foundations/radius; radius px approximated from usage guidance, exact figures not published in source"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "structured enterprise calm; every raised surface ships as a matched surface+shadow pair, never a shadow in isolation"
|
|
8
|
+
---
|
|
9
|
+
Atlassian defines four discrete elevations — sunken, default, raised, overlay — and enforces that `elevation.surface.*` and `elevation.shadow.*` tokens are always used together, never mixed across levels. In dark mode the rule inverts intuition: higher elevation surfaces get **lighter**, not darker, simulating front-lighting rather than cast shadow.
|
|
10
|
+
|
|
11
|
+
Approximation note: radius px approximated from usage guidance — exact figures are not published in the source and should be checked before shipping.
|
|
12
|
+
|
|
13
|
+
```yaml values
|
|
14
|
+
radius: { sm: 3, md: 6, lg: 8 }
|
|
15
|
+
hairline: "none at rest — sunken/default read via fill color, not a border line"
|
|
16
|
+
shadow:
|
|
17
|
+
raised: "0px 1px 1px #091E4240, 0px 0px 1px #091E424F"
|
|
18
|
+
overlay: "0px 8px 12px #091E4226, 0px 0px 1px #091E424F"
|
|
19
|
+
dark-ladder: { step: "+~4L per level — \"the higher the elevation, the lighter the surface looks\"", hue: held }
|
|
20
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: fluent-2-key-ambient-ramp
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from fluent2.microsoft.design/elevation"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "Windows-native layered light; every shadow is a paired sharp key + soft ambient cast, doubling in blur up the ramp"
|
|
8
|
+
---
|
|
9
|
+
Fluent 2 generates its whole shadow ramp from one equation: each step doubles the prior step's blur (shadow2 → 4 → 8 → 16 → 28 → 64), always as a key+ambient pair. Dark mode doesn't lighten surfaces — it simply raises the shadow's own opacity (~0.14 → ~0.28) to stay visible against a dark canvas.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 2, md: 4, lg: 6 }
|
|
13
|
+
hairline: "none by default — shadow2 (near-hairline blur) covers the lowest resting state"
|
|
14
|
+
shadow:
|
|
15
|
+
shadow2: "0 0.5px 1px rgba(0,0,0,.14)"
|
|
16
|
+
shadow8: "0 4px 8px rgba(0,0,0,.14)"
|
|
17
|
+
shadow16: "0 8px 16px rgba(0,0,0,.14)"
|
|
18
|
+
shadow64: "0 0.5px 1px rgba(0,0,0,.24), 0 0 8px rgba(0,0,0,.20)"
|
|
19
|
+
dark-ladder: { step: "n/a — dark mode doubles shadow alpha (~.14→.28) rather than lightening surfaces", hue: held }
|
|
20
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: github-primer-sparing-shadow
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from primer.style/product/css-utilities/box-shadow and primer.style/foundations/css-utilities/borders"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "developer-tool restraint; flat-and-bordered by default, shadow is the deliberate exception, never the everyday chrome"
|
|
8
|
+
---
|
|
9
|
+
Primer's stated philosophy is to use shadow *sparingly*: small shadows for things that need to feel slightly elevated (pricing cards), medium for editorialized clickable content, and large reserved almost entirely for marketing pages and screenshots — never for ordinary product UI, which relies on `border-default` instead.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 4, md: 6, lg: 8 }
|
|
13
|
+
hairline: "border-default, 1px solid — the primary separation mechanic; shadow is the exception, not the rule"
|
|
14
|
+
shadow:
|
|
15
|
+
small: "subtle lift — pricing cards, attention-getting UI"
|
|
16
|
+
medium: "diffused, larger — editorialized clickable content"
|
|
17
|
+
large: "very diffused, used sparingly — marketing content and screenshots only"
|
|
18
|
+
dark-ladder: { step: "+~3L per level (canvas-default #0d1117 → canvas-subtle/overlay)", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ibm-carbon-layer-and-border
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from v11.carbondesignsystem.com/guidelines/color/implementation and Carbon's elevation guidance"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "flat, rectilinear, enterprise-IBM; depth is a color-and-border swap between layers, almost never a cast shadow"
|
|
8
|
+
---
|
|
9
|
+
Carbon's default posture is nearly shadow-free: each of its layer tokens (`layer-01/02/03`) is paired 1:1 with a matching border token, so nesting a panel inside a panel is a background-color-plus-border swap, not a shadow stack. Shadow is reserved almost exclusively for true overlays — dropdowns and modals. Corners stay square almost everywhere, in keeping with Carbon's rectilinear IBM heritage.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 0, md: 0, lg: 2 }
|
|
13
|
+
hairline: "$border-strong-0X paired with $layer-0X — the layer+border pair IS the elevation cue"
|
|
14
|
+
shadow:
|
|
15
|
+
layer: "none — flat; separation via layer-01/02/03 background swap + paired border"
|
|
16
|
+
overlay: "0 2px 6px 0 rgba(0,0,0,.30)"
|
|
17
|
+
modal: "0 8px 16px 0 rgba(0,0,0,.30)"
|
|
18
|
+
dark-ladder: { step: "n/a — discrete named themes (White/g10 light, g90/g100 dark), not a continuous ladder", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: linear-dark-surface-ladder
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from github.com/voltagent/awesome-design-md — linear.app/DESIGN.md"
|
|
6
|
+
license: reference-only
|
|
7
|
+
feel: "software-craft dark mode; restraint scales — one accent, hairlines, and a shallow surface ladder carry all the hierarchy, no shadows anywhere"
|
|
8
|
+
---
|
|
9
|
+
Linear runs dark-only and resists drop shadows almost entirely; elevation is a **four-step surface-lightness ladder** (surface-1 through surface-4) paired with 1px hairlines of increasing strength (default → strong → tertiary) for nested content. The steps are deliberately small — a whisper of lift, never a spotlight.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 6, md: 8, lg: 12 }
|
|
13
|
+
hairline: "1px solid {colors.hairline} #23252a at rest; {hairline-strong} #34343a on focus; {hairline-tertiary} #3e3e44 for nested surfaces"
|
|
14
|
+
shadow:
|
|
15
|
+
all-levels: "none — drop shadows resisted almost entirely on dark surfaces"
|
|
16
|
+
dark-ladder: { step: "+~2L per level (surface-1 #0f1011 → surface-2 #141516 → surface-3 #18191a → surface-4 #191a1b)", hue: held }
|
|
17
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: material-2-key-ambient-dp-ramp
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from m2.material.io/design/environment/elevation.html and m1.material.io/resources/shadows.html"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "classic Google-Material paper-stack; every raise reads as a discrete, physical dp jump"
|
|
8
|
+
---
|
|
9
|
+
The original Material model: a single dp scale (0–24) drives a fixed **key shadow + ambient shadow** pair at every level — sharp directional shadow layered under a soft diffuse one, both pure black at low opacity. No brand tint, no tonal color; the whole hierarchy is shadow-only, which is what later gave way to M3's tonal approach.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 2, md: 4, lg: 8 }
|
|
13
|
+
hairline: none
|
|
14
|
+
shadow:
|
|
15
|
+
1dp: "0 1px 1px 0 rgba(0,0,0,.14), 0 2px 1px -1px rgba(0,0,0,.12), 0 1px 3px 0 rgba(0,0,0,.20)"
|
|
16
|
+
8dp: "0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12), 0 5px 5px -3px rgba(0,0,0,.20)"
|
|
17
|
+
16dp: "0 16px 24px 2px rgba(0,0,0,.14), 0 6px 30px 5px rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.20)"
|
|
18
|
+
dark-ladder: { step: "white-overlay 5%→16% across 1dp→24dp (~+1-2% per step)", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: material-3-tonal-elevation
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from m3.material.io/styles/elevation/tokens; shadow figures approximate Material Web's published elevation-level tokens"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "quiet tech-forward calm; depth reads as a warm color shift more than a cast shadow, corners softly rounded"
|
|
8
|
+
---
|
|
9
|
+
Material 3's headline move: elevation is expressed primarily through **tonal surface tint** (a translucent overlay of the primary brand color, stronger at higher levels) with a thin shadow underneath as a secondary cue. No borders — surfaces separate by tone, not line. Best where a single brand hue should visibly "light up" whatever floats highest.
|
|
10
|
+
|
|
11
|
+
Approximation note: shadow figures approximate Material Web's published elevation-level tokens — check exact rgba/opacity figures against the live source before shipping.
|
|
12
|
+
|
|
13
|
+
```yaml values
|
|
14
|
+
radius: { sm: 8, md: 12, lg: 16 }
|
|
15
|
+
hairline: none
|
|
16
|
+
shadow:
|
|
17
|
+
level1: "0px 1px 2px rgba(0,0,0,0.30), 0px 1px 3px 1px rgba(0,0,0,0.15) + {primary-hue tint / ~5% overlay}"
|
|
18
|
+
level2: "0px 1px 2px rgba(0,0,0,0.30), 0px 2px 6px 2px rgba(0,0,0,0.15) + {primary-hue tint / ~8% overlay}"
|
|
19
|
+
level3: "0px 4px 8px 3px rgba(0,0,0,0.15), 0px 1px 3px rgba(0,0,0,0.30) + {primary-hue tint / ~11% overlay}"
|
|
20
|
+
dark-ladder: { step: "+~3% primary-tint per level (approx 5/8/11/12/14%)", hue: drift }
|
|
21
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: neobrutalist-hard-offset
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from neubrutalism.com and community neobrutalism CSS references (community pattern, no single owning org)"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "loud, tactile, intentionally raw; a solid offset shadow with zero blur reads as a physical card lifted straight off the page"
|
|
8
|
+
---
|
|
9
|
+
Neobrutalism inverts the entire elevation vocabulary: no blur, ever. A thick (3–4px) solid black border plus a flat, hard-edged offset shadow in pure black (or a bold flat color) does all the depth work — the shadow is a solid silhouette displaced down-right, not a soft cast. Radius stays at or near zero to keep the "raw" read.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 0, md: 0, lg: 4 }
|
|
13
|
+
hairline: "not a hairline — a 3-4px solid black border replaces the border/shadow distinction entirely"
|
|
14
|
+
shadow:
|
|
15
|
+
sm: "4px 4px 0px #000000"
|
|
16
|
+
md: "6px 6px 0px #000000"
|
|
17
|
+
lg: "8px 8px 0px #000000"
|
|
18
|
+
dark-ladder: { step: "n/a — most kits binary-invert black/white rather than laddering surfaces", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: neumorphic-soft-dual-shadow
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from neumorphism.io and community soft-UI CSS references (community pattern, no single owning org)"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "soft, extruded, monochrome; elements look pressed into or popped out of a background that shares their exact color"
|
|
8
|
+
---
|
|
9
|
+
Neumorphism fakes physical extrusion with a **paired light+dark shadow** on an element whose background exactly matches its parent's — no border, no color contrast, only two offset shadows (one lighter, one darker than the shared base) doing all the modeling. Pressed/inset states simply invert the pair. Contrast-fragile by construction: raising shadow strength enough to pass accessibility checks destroys the soft illusion that is the entire point.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 12, md: 16, lg: 24 }
|
|
13
|
+
hairline: "none — a drawn border would break the illusion; edges exist only via the shadow pair"
|
|
14
|
+
shadow:
|
|
15
|
+
raised: "10px 10px 20px #bebebe, -10px -10px 20px #ffffff"
|
|
16
|
+
pressed: "inset 6px 6px 12px #bebebe, inset -6px -6px 12px #ffffff"
|
|
17
|
+
dark-ladder: { step: "n/a — dark variant is a manual per-surface retune (e.g. base #2d3239, shadows #23272d / #373d46), not a formula", hue: held }
|
|
18
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: notion-warm-minimal-hairline
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from github.com/VoltAgent/awesome-design-md — notion/DESIGN.md"
|
|
6
|
+
license: reference-only
|
|
7
|
+
feel: "warm, paper-like minimalism; content over chrome, separation is almost always a thin line rather than a cast shadow"
|
|
8
|
+
---
|
|
9
|
+
Notion's house rule is explicit: don't apply heavy shadows on flat documentation cards. Separation is carried almost entirely by a single hairline border token reused across nav, cards, and containers; the rare exception is a very soft lift on preview/mockup cards, kept subtle enough not to compete with content.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 4, md: 6, lg: 10 }
|
|
13
|
+
hairline: "1px solid {colors.hairline} #EDEEEC — the default separator for nav, cards, and containers; heavy shadows explicitly avoided"
|
|
14
|
+
shadow:
|
|
15
|
+
rare-lift: "used sparingly, only on mockup/preview cards — e.g. 0 4px 16px rgba(0,0,0,.06)"
|
|
16
|
+
dark-ladder: { step: "+~2-3L per level (approx #191919 → #202020 → #2f2f2f surfaces)", hue: held }
|
|
17
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: polaris-elevation-inset-bevel
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from polaris-react.shopify.com/design/depth/shadow-tokens; radius px approximated, exact figures not published in source"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "commerce-admin friendly; raised surfaces read as physically thick, machined edges rather than flat cards floated on a shadow"
|
|
8
|
+
---
|
|
9
|
+
Polaris splits shadow into three distinct token families used in combination: elevation (the classic cast drop-shadow), inset (an embedded/pressed look), and bevel (a thin inner highlight+shadow edge that gives a raised surface the sense of physical thickness). Combining bevel with elevation is the house move for "this is a real, liftable object."
|
|
10
|
+
|
|
11
|
+
Approximation note: radius px approximated — exact figures are not published in the source and should be checked before shipping.
|
|
12
|
+
|
|
13
|
+
```yaml values
|
|
14
|
+
radius: { sm: 4, md: 8, lg: 12 }
|
|
15
|
+
hairline: "implicit — bevel-100 supplies a 1px inner highlight/shadow edge in place of a plain border"
|
|
16
|
+
shadow:
|
|
17
|
+
elevation-100: "cast shadow, lightest — resting cards"
|
|
18
|
+
elevation-300: "cast shadow, medium — popovers and overlays"
|
|
19
|
+
bevel-100: "inset highlight + inset shadow — thick machined edge on raised surfaces"
|
|
20
|
+
dark-ladder: { step: "n/a — Shopify admin ships no official dark theme", hue: held }
|
|
21
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: radix-themes-alpha-ring-scale
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from radix-ui.com/themes/docs/theme/shadows, /radius, and the shadow.css token source"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "quiet, correct, slightly clinical; a 6-step alpha ramp any accent color can flow through without redoing the shadows"
|
|
8
|
+
---
|
|
9
|
+
Radix builds its shadow ramp entirely from **gray-alpha and black-alpha overlays** rather than fixed opaque colors, so the same six shadow steps stay correct across every accent and every light/dark theme automatically. `shadow-1` is an inset ring that doubles as the hairline for flush, level-0 surfaces.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 4, md: 8, lg: 12 }
|
|
13
|
+
hairline: "shadow-1 — inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px var(--gray-a2)/var(--black-a2)"
|
|
14
|
+
shadow:
|
|
15
|
+
shadow-2: "0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px var(--black-a1)"
|
|
16
|
+
shadow-3: "0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2)"
|
|
17
|
+
shadow-5: "0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5)"
|
|
18
|
+
dark-ladder: { step: "n/a — alpha-step ramp (gray-a3 → a5 → a7 in dark), not a lightness ladder", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: shadcn-neutral-derived-radius
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from ui.shadcn.com/docs/theming; shadow values are the Tailwind defaults shadcn themes typically inherit"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "neutral, restrained utility feel; nearly flat, with one hairline border doing most of the separating work"
|
|
8
|
+
---
|
|
9
|
+
shadcn/ui derives its entire radius scale from a single `--radius` variable (multiplied up/down for sm/md/lg/xl), and leans on a plain neutral `border` token rather than shadow for everyday separation — shadow is reserved for popovers/menus. The whole system is intentionally colorless so any brand palette can sit on top of it unchanged.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 6, md: 8, lg: 10 }
|
|
13
|
+
hairline: "border token — 1px solid, neutral gray/oklch; default separator for card, input, and popover"
|
|
14
|
+
shadow:
|
|
15
|
+
sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)"
|
|
16
|
+
md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"
|
|
17
|
+
popover: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"
|
|
18
|
+
dark-ladder: { step: "+0.03–0.05 L per surface (oklch background → card)", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: stripe-brand-tinted-dual-shadow
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from designmd.run/blog/stripe-design-system-breakdown and docs.stripe.com/elements/appearance-api"
|
|
6
|
+
license: reference-only
|
|
7
|
+
feel: "warm, trustworthy, faintly atmospheric; shadows carry Stripe's navy-purple brand hue instead of reading as neutral gray"
|
|
8
|
+
---
|
|
9
|
+
Stripe's shadows are two stacked layers where the far/ambient layer is tinted `rgba(50,50,93,...)` — the same blue-gray family as its navy-purple brand palette — with only the near/contact layer left as neutral black. Radius is deliberately conservative (Elements' own default is 4px) — Stripe treats restraint on both shadow and radius as part of feeling "trustworthy."
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 4, md: 6, lg: 8 }
|
|
13
|
+
hairline: "none specified — separation relies on shadow against a cool-gray canvas (#F6F9FC)"
|
|
14
|
+
shadow:
|
|
15
|
+
near: "rgba(0,0,0,.1) 0px 1px 2px 0px"
|
|
16
|
+
card: "rgba(50,50,93,.25) 0px 6px 12px -2px, rgba(0,0,0,.3) 0px 3px 7px -3px — {navy-purple tint / 0.25 alpha on far layer}"
|
|
17
|
+
dark-ladder: { step: "unconfirmed — Stripe's public brand system is light-first with no published dark ramp", hue: held }
|
|
18
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: tailwind-default-utility-scale
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from tailwindcss.com/docs/box-shadow default theme values"
|
|
6
|
+
license: open
|
|
7
|
+
feel: "the internet's default; a neutral gray shadow ramp so common it reads as 'no design system' unless overridden"
|
|
8
|
+
---
|
|
9
|
+
Tailwind's out-of-the-box shadow scale is the de facto baseline for a huge share of the web: six pure-neutral steps (sm → 2xl) with no brand tint, used independently of its separate border-color utilities rather than paired with them. Its very ubiquity is the point of including it here — it's the "control group" every more opinionated system in this list is reacting against.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 4, md: 6, lg: 8 }
|
|
13
|
+
hairline: "border-gray-200 (or theme border color), 1px solid — used independently of the shadow scale, not paired with it"
|
|
14
|
+
shadow:
|
|
15
|
+
sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)"
|
|
16
|
+
md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"
|
|
17
|
+
xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"
|
|
18
|
+
dark-ladder: { step: "n/a — no shipped dark ramp; convention is dark:shadow-none or a manual opacity boost", hue: held }
|
|
19
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: vercel-geist-shadow-as-border
|
|
3
|
+
class: a3
|
|
4
|
+
sourced: 2026-07-12
|
|
5
|
+
source: "distilled from vercel.com/geist/materials"
|
|
6
|
+
license: reference-only
|
|
7
|
+
feel: "razor-flat product chrome; the resting 'border' is secretly a zero-blur shadow, softness saved entirely for menus and modals"
|
|
8
|
+
---
|
|
9
|
+
Geist's signature trick: a zero-offset, zero-blur, 1px-spread shadow (`0 0 0 1px rgba(0,0,0,.08)`) stands in for a border at rest, avoiding box-model side effects. As elements go from card → menu → modal, additional shadow layers stack on top of that same base line rather than replacing it, so the "border" never disappears.
|
|
10
|
+
|
|
11
|
+
```yaml values
|
|
12
|
+
radius: { sm: 6, md: 12, lg: 16 }
|
|
13
|
+
hairline: "shadow-emulated hairline — 0px 0px 0px 1px rgba(0,0,0,.08), zero blur, present at every rest state"
|
|
14
|
+
shadow:
|
|
15
|
+
base: "0px 0px 0px 1px rgba(0,0,0,.08)"
|
|
16
|
+
small: "0px 0px 0px 1px rgba(0,0,0,.08), 0px 2px 4px rgba(0,0,0,.04)"
|
|
17
|
+
menu: "0px 0px 0px 1px rgba(0,0,0,.08), 0px 8px 24px -8px rgba(0,0,0,.12)"
|
|
18
|
+
modal: "0px 0px 0px 1px rgba(0,0,0,.08), 0px 16px 48px -12px rgba(0,0,0,.18)"
|
|
19
|
+
dark-ladder: { step: "+1 surface swap per level (#000 → #0a0a0a → #111), occasional {blue-hue tint / low-alpha} wash surface", hue: drift }
|
|
20
|
+
```
|