3-layer token architecture: --p-* primitives → --mn-* semantic → --mn-component-* component tokens. Toggle dark/light/system in the top right.
Raw values. Named by what they ARE. Prefixed with --p-*. Never used directly in components.
--p-green-400#34D399--p-green-600#145C47--p-green-800#0A2E23--p-green-950#040E0B--p-red-500#EF4444--p-red-600#DC2626--p-blue-400rgb(96,165,250)--p-amber-500#F59E0B--p-gray-950#09090B--p-gray-900#111113--p-gray-800#18181BContextual meaning. Named by what they MEAN. Prefixed with --mn-*. These change per theme — toggle dark/light above to see values adapt.
--mn-bgPage background--mn-bg-hoverHover overlay--mn-cardCard background--mn-card-elevatedElevated cards--mn-textPrimary text--mn-text-secondaryBody text--mn-text-mutedCaptions, meta--mn-text-dimDecorative--mn-borderDefault border--mn-border-subtleSubtle lines--mn-border-hoverHover border--mn-hero-bgHero background--mn-hero-bg-lightGradient end--mn-hero-accentHero highlight--mn-hero-accent-bgHero accent bg--mn-hero-accent-borderHero accent border--mn-accentLabels, highlights--mn-accent-hoverHover state--mn-accent-bgBackground--mn-accent-borderBorder--mn-infoInfo color--mn-info-bgBackground--mn-info-borderBorder--mn-warningWarning color--mn-warning-bgBackground--mn-warning-borderBorderSpecific usage. Named by WHERE they're used. Prefixed with --mn-component-*.
4px base grid. All spacing through --mn-space-* tokens.
All animations use token durations. Honors prefers-reduced-motion — durations go to 0ms.
--mn-radius-sm4pxBadges, pills, tags--mn-radius-md6pxButtons--mn-radius-lg8pxCards, containersHeadings & UI: Geist / SF Pro (--mn-font-body). Labels & code: JetBrains Mono (--mn-font-mono).
Built with class-variance-authority. Each variant has 3 sizes (sm, md, lg) and hover/focus states.
variant (primary | secondary | outline) · size (sm | md | lg)Tokens: --mn-button-radius · --mn-button-font-sizeBuilt with CVA. Variants: green, red, blue, orange, processing.
<Card> + <Card.Header> + <Card.Body>