Page
--wc-color-pageThe base page field.
- Light
#f5f7fb- Dark
#0d1420
WebCraft Design System
A system for consistent hierarchy, readable materials, restrained motion, and accessible interaction.
CSS tokens remain the source of truth. This page documents the values and contracts already used by WebCraft.
Foundation
Shared rules keep a growing product coherent without turning every page into a showcase.
Token names describe purpose rather than a specific hue or effect.
Surface is the default; Mist and Glass appear only when a real hierarchy needs them.
Motion communicates state and relationship rather than becoming a continuous decoration.
Native semantics, visible focus, and reduced-motion behavior are part of the current contract.
Semantic tokens
Semantic color roles make hierarchy and status legible without naming a palette by hue. Light and Dark values are shown together; status always retains a text label.
--wc-color-pageThe base page field.
#f5f7fb#0d1420--wc-color-page-subtleQuiet page-level separation.
#e9edf4#131d2b--wc-color-surfaceDefault readable content layer.
rgb(255 255 255 / 94%)rgb(23 32 47 / 94%)--wc-color-surface-subtleSupporting content separation.
rgb(255 255 255 / 72%)rgb(31 43 62 / 76%)--wc-color-surface-elevatedA more explicit functional layer.
#ffffff#182235--wc-color-textPrimary reading text.
#172033#edf2fa--wc-color-text-secondarySupporting explanation and metadata.
#4e5d75#b7c3d7--wc-color-text-mutedDe-emphasized supporting detail.
#728099#8492aa--wc-color-borderFine structural boundary.
rgb(72 91 122 / 18%)rgb(181 198 225 / 18%)--wc-color-border-strongA clearer functional boundary.
rgb(72 91 122 / 32%)rgb(181 198 225 / 32%)--wc-color-highlightSubtle inset material highlight.
rgb(255 255 255 / 72%)rgb(255 255 255 / 12%)--wc-color-accentPrimary interactive emphasis.
#3f63b5#91b5ff--wc-color-accent-softLow-intensity accent context.
#e6edf9#1e3155--wc-color-on-accentText and marks placed on accent.
#ffffff#101929--wc-color-successPositive status alongside text.
#237a5d#73c7a9--wc-color-warningReview or caution status alongside text.
#a66916#e7b56c--wc-color-errorBlocking or error status alongside text.
#b14956#ef9aa3--wc-color-infoInformational status alongside text.
#3f63b5#91b5ff--wc-color-glassTransparent material color with a defined boundary.
rgb(255 255 255 / 68%)rgb(24 34 51 / 72%)--wc-color-crystal-startBrand-level Crystal material start.
rgb(238 244 255 / 88%)rgb(39 57 88 / 88%)--wc-color-crystal-endBrand-level Crystal material end.
rgb(221 231 249 / 68%)rgb(22 33 52 / 72%)Reading rhythm
Type roles use the shared system stacks, scale, leading, and weights.
--wc-font-sansui-sans-serif, system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", sans-serif--wc-font-monoui-monospace, sfmono-regular, menlo, monaco, consolas, "Liberation Mono", monospace--wc-text-xs0.75rem--wc-text-body1rem--wc-text-body-lg1.125rem--wc-text-title-sm1.25rem--wc-text-title-md1.5rem--wc-text-title-lg2.25rem--wc-text-display3.5rem--wc-leading-xs1.4--wc-leading-body1.6--wc-leading-body-lg1.55--wc-leading-title-sm1.35--wc-leading-title-md1.25--wc-leading-title-lg1.15--wc-leading-display1.05--wc-weight-regular400--wc-weight-medium500--wc-weight-semibold600--wc-weight-bold700Measured gaps
A compact scale creates rhythm without letting large gaps destabilize small screens.
--wc-space-2xs0.25rem--wc-space-xs0.5rem--wc-space-sm0.75rem--wc-space-md1rem--wc-space-lg1.5rem--wc-space-xl2rem--wc-space-2xl3rem--wc-space-3xl4.5remBoundaries
Radius, borders, and shadows make structural relationships clear without decorating every surface.
--wc-radius-sm0.375rem--wc-radius-md0.625rem--wc-radius-lg1rem--wc-radius-xl1.5rem--wc-radius-full9999px--wc-border-fine1px solid var(--wc-color-border)--wc-border-default1px solid var(--wc-color-border-strong)--wc-shadow-sm0 1px 2px rgb(31 47 78 / 6%)Dark: 0 1px 2px rgb(0 0 0 / 18%)--wc-shadow-md0 10px 26px rgb(31 47 78 / 10%)Dark: 0 10px 26px rgb(0 0 0 / 24%)--wc-shadow-floating0 18px 48px rgb(31 47 78 / 16%)Dark: 0 18px 48px rgb(0 0 0 / 34%)--wc-shadow-highlightinset 0 1px 0 var(--wc-color-highlight)Safe composition
Container rules and z-index values create a shared safety boundary and controlled visual stack.
--wc-content-max44rem--wc-page-max72rem--wc-page-wide-max90rem--wc-page-gutterclamp(1rem, 4vw, 2.5rem)--wc-nav-height4.25rem--wc-z-base0--wc-z-sticky10--wc-z-navigation20--wc-z-dropdown30--wc-z-overlay40--wc-z-modal50--wc-z-toast60Fluid Material
Crystal is reserved for brand-level visual moments and is intentionally not part of the Card material union.
Default layer for ordinary content and reading.
Supporting content and light grouping.
A deliberate functional layer with readable bounds.
A rare brand-level moment, never a routine Card material.
Feedback, not spectacle
Durations and easing explain state and relationship; they are not continuous decoration. Reduced motion shortens animations and transitions to near-instant feedback.
--wc-duration-micro150ms--wc-duration-standard220ms--wc-duration-page360ms--wc-ease-standardcubic-bezier(0.2, 0, 0, 1)--wc-ease-entercubic-bezier(0.16, 1, 0.3, 1)--wc-ease-exitcubic-bezier(0.7, 0, 0.84, 0)--wc-ease-emphasizedcubic-bezier(0.2, 0.8, 0.2, 1)No continuous animation is required to understand this reference.
Current foundation
The system includes practical defaults, but design tokens support accessibility decisions and do not replace page-level testing.
Shared primitives
These are the small shared contracts used across the product. Interactive states and code workflows remain in the Components catalog.
Primary, secondary, ghost, and danger variants; small, medium, and large sizes; disabled and loading states.
Semantic variants label status with concise text rather than color alone.
Cards support Surface, Mist, and Glass. Crystal remains outside the Card material contract.
Content, default, wide, and full widths preserve the page gutter as a safety boundary.