Remixes of dribbble.com
Latest remixes
No public remixes yet. Be the first to make one.
Remix itLatest remixes
No public remixes yet. Be the first to make one.
Remix itSwitch between the rendered Visual preview and the Raw DESIGN.md.
version: alpha
name: Dribbble
description: |
ROFTRIX embodies a modern, professional aesthetic grounded in craftsmanship
and trust. The design system combines a sophisticated dark-on-light foundation
with deliberate accent colors that evoke energy and forward momentum. The
typography is clean and geometric, favoring clarity and hierarchy. Navigation
and interactive elements are bold yet restrained, establishing a premium
positioning while remaining approachable. The overall mood is contemporary,
confident, and solution-oriented—reflecting the construction industry's
evolution toward transparency and refined design standards.
source:
url: "https://dribbble.com/shots/27539913--ROFTRIX-Roofing-Construction-Website-Design?utm_source=Clipboard_Shot&utm_campaign=nasrin_akter01&utm_content=%F0%9F%8F%A0%20ROFTRIX%20%E2%80%93%20Roofing%20%26%20Construction%20Website%20Design&utm_medium=Social_Share&utm_source=Clipboard_Shot&utm_campaign=nasrin_akter01&utm_content=%F0%9F%8F%A0%20ROFTRIX%20%E2%80%93%20Roofing%20%26%20Construction%20Website%20Design&utm_medium=Social_Share"
pagesAnalyzed: 6
extractedAt: 2026-10-13
tokensMeasured: true
colors:
primary: "#0D0C22"
accent: "#EA4C89"
link: "#060318"
canvas: "#FFFFFF"
on-primary: "#FFFFFF"
ink: "#0D0C22"
body: "#3A3546"
muted: "#524B63"
faint: "#655C7A"
hairline: "#F3F3F4"
accent-1: "#E62D75"
accent-2: "#3E34D3"
accent-3: "#7B7194"
accent-4: "#6E6D7A"
accent-5: "#146EF5"
neutral-1: "#E7E7E9"
neutral-2: "#000000"
neutral-3: "#D1CEDA"
typography:
heading-xl:
fontFamily: "Mona Sans"
fontSize: 32px
fontWeight: 700
lineHeight: 1.19
letterSpacing: 0px
heading-lg:
fontFamily: "Mona Sans"
fontSize: 24px
fontWeight: 700
lineHeight: 1.21
letterSpacing: 0px
heading-md:
fontFamily: "Mona Sans"
fontSize: 22px
fontWeight: 600
lineHeight: 1.4
letterSpacing: 0px
heading-md-strong:
fontFamily: "Mona Sans"
fontSize: 22px
fontWeight: 700
letterSpacing: 0px
heading-sm:
fontFamily: "Mona Sans"
fontSize: 20px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
heading-xs:
fontFamily: "Mona Sans"
fontSize: 16px
fontWeight: 500
lineHeight: 1.38
letterSpacing: 0px
body-md:
fontFamily: "Mona Sans"
fontSize: 16px
fontWeight: 400
lineHeight: 1.75
letterSpacing: 0px
body-sm:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 400
lineHeight: 1.43
letterSpacing: 0px
body-sm-strong:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 500
lineHeight: 2
letterSpacing: 0px
body-sm-2:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 600
lineHeight: 1.43
letterSpacing: 0px
body-sm-tight:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 700
lineHeight: 1.21
letterSpacing: 0px
body-xs:
fontFamily: "Mona Sans"
fontSize: 13px
fontWeight: 600
lineHeight: 1.54
letterSpacing: 0px
nav:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 600
lineHeight: 2.14
letterSpacing: 0px
button-lg:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 400
lineHeight: 1.21
letterSpacing: 0px
button-lg-strong:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 600
lineHeight: 1
letterSpacing: 0px
button-md:
fontFamily: "Mona Sans"
fontSize: 13px
fontWeight: 600
lineHeight: 1
letterSpacing: 0px
button-sm:
fontFamily: "Mona Sans"
fontSize: 12px
fontWeight: 500
lineHeight: 1
letterSpacing: 0px
button-xs:
fontFamily: Arial
fontSize: 11px
fontWeight: 400
letterSpacing: 0px
label:
fontFamily: "Mona Sans"
fontSize: 14px
fontWeight: 400
lineHeight: 2
letterSpacing: 0px
caption-md:
fontFamily: "Mona Sans"
fontSize: 12px
fontWeight: 400
lineHeight: 1
letterSpacing: 0px
textTransform: lowercase
caption-md-strong:
fontFamily: "Mona Sans"
fontSize: 12px
fontWeight: 500
lineHeight: 1.33
letterSpacing: 0px
caption-md-2:
fontFamily: "Mona Sans"
fontSize: 12px
fontWeight: 600
letterSpacing: 0px
caption-md-3:
fontFamily: "Mona Sans"
fontSize: 12px
fontWeight: 700
lineHeight: 1
letterSpacing: 0px
caption-sm:
fontFamily: "Mona Sans"
fontSize: 11px
fontWeight: 700
lineHeight: 1.27
letterSpacing: 0px
caption-xs:
fontFamily: "Mona Sans"
fontSize: 9px
fontWeight: 800
lineHeight: 2.22
letterSpacing: 0px
textTransform: uppercase
rounded:
none: 0px
xs: 4px
sm: 6px
md: 8px
lg: 12px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 36px
band: 40px
borderWidths:
thin: 1px
shadows:
sm: "rgba(0, 0, 0, 0.01) 0px 2px 2px 0px"
md: "rgba(18, 22, 25, 0.02) 0px 1px 10px 0px"
lg: "rgba(6, 3, 24, 0.01) 0px 4px 4px 0px"
elevationStrategy: progressive
themes:
derived: dark # the other theme is the site's measured palette
light:
bg: "#FFFFFF"
surface: "#F7F7F7"
surfaceRaised: "#EEEEEE"
text: "#0D0C22"
textMuted: "#3A3546"
border: "#F3F3F4"
accent: "#0D0C22"
accentFg: "#FFFFFF"
focusRing: "#0D0C22"
elevation: shadow
dark:
bg: "#0E0E11"
surface: "#1C1C1F"
surfaceRaised: "#29292B"
text: "#F5F5F6"
textMuted: "#9D9D9F"
border: "#353537"
accent: "#7F7BD0"
accentFg: "#0B0B0C"
focusRing: "#625DC6"
elevation: "border+surface"
gradients:
- context: section
kind: linear
value: "linear-gradient(rgba(0, 0, 0, 0) 62%, rgba(0, 0, 0, 0.004) 63.94%, rgba(0, 0, 0, 0.016) 65.89%, rgba(0, 0, 0, 0.03) 67.83%, rgba(0, 0, 0, 0.06) 69.78%, rgba(0, 0, 0, 0.094) 71.72%, rgba(0, 0, 0, 0.133) 73.67%, rgba(0, 0, 0, 0.176) 75.61%, rgba(0, 0, 0, 0.224) 77.56%, rgba(0, 0, 0, 0.267) 79.5%, rgba(0, 0, 0, 0.306) 81.44%, rgba(0, 0, 0, 0.34) 83.39%, rgba(0, 0, 0, 0.37) 85.33%, rgba(0, 0, 0, 0.384) 87.28%, rgba(0, 0, 0, 0.396) 89.22%, rgba(0, 0, 0, 0.4) 91.17%)"
components:
button-primary:
typography: "{typography.button-md}"
textColor: "{colors.on-primary}"
border: "1px solid {colors.primary}"
height: 40px
padding: "0px 20px 0px 20px"
rounded: "1e+07px"
backgroundColor: "{colors.primary}"
button-primary-lg:
typography: "{typography.button-lg-strong}"
textColor: "{colors.on-primary}"
border: "1px solid {colors.primary}"
height: 48px
padding: "0px 24px 0px 24px"
rounded: "1e+07px"
backgroundColor: "{colors.primary}"
button-icon:
typography: "{typography.button-md}"
textColor: "{colors.on-primary}"
border: "1px solid {colors.accent}"
height: 40px
rounded: "50%"
backgroundColor: "{colors.accent}"
button-filled:
typography: "{typography.label}"
textColor: "{colors.ink}"
height: 30px
backgroundColor: "rgb(68, 64, 62)"
button-filled-2:
typography: "{typography.label}"
textColor: "{colors.ink}"
height: 30px
backgroundColor: "rgb(155, 99, 67)"
navigation:
typography: "{typography.body-md}"
textColor: "{colors.link}"
height: 30px
footer:
typography: "{typography.body-md}"
textColor: "{colors.ink}"
backgroundColor: "{colors.canvas}"
link:
typography: "{typography.label}"
textColor: "{colors.ink}"
rounded: "{rounded.md}"
link-sm:
typography: "{typography.label}"
textColor: "{colors.ink}"
backgroundColor: "rgb(185, 182, 173)"
card:
typography: "{typography.label}"
textColor: "{colors.ink}"
badge-filled:
textColor: "{colors.body}"
border: "1px solid rgb(243, 243, 246)"
height: 27px
padding: "0px 16px 0px 16px"
fontSize: 14px
fontFamily: "Mona Sans"
fontWeight: 400
lineHeight: 1
rounded: "1e+07px"
backgroundColor: "rgb(243, 243, 246)"
badge-filled-sm:
textColor: "{colors.on-primary}"
height: 9px
padding: "4px 6px 4px 6px"
fontSize: 9px
fontFamily: "Mona Sans"
fontWeight: 700
lineHeight: 1
rounded: "{rounded.lg}"
backgroundColor: "{colors.accent}"
states:
other-focus:
target: other
state: focus
outline: none
button-hover:
target: button
state: hover
backgroundColor: white
button-focus:
target: button
state: focus
outline: none
boxShadow: "rgb(17, 153, 255) 0px 0px 0px 5px"
button-active:
target: button
state: active
opacity: 0.6
button-disabled:
target: button
state: disabled
opacity: 0.3
other-hover:
target: other
state: hover
outline: none
input-focus:
target: input
state: focus
outline: none
boxShadow: none
link-hover:
target: link
state: hover
borderColor: transparent
backgroundColor: "{colors.hairline}"
other-active:
target: other
state: active
backgroundColor: "rgba(66, 133, 244, 0.1)"
link-active:
target: link
state: active
textColor: "rgb(51, 51, 51)"
breakpoints:
- width: 375
containerWidth: 343
gridColumns: 4
navLinksVisible: 36
menuToggleVisible: true
headingPx: 20
bodyPx: 16
sectionPaddingX: 0
- width: 768
containerWidth: 736
gridColumns: 7
navLinksVisible: 0
menuToggleVisible: true
headingPx: 24
bodyPx: 16
sectionPaddingX: 0
- width: 1024
containerWidth: 944
gridColumns: 7
navLinksVisible: 0
menuToggleVisible: true
headingPx: 24
bodyPx: 16
sectionPaddingX: 0
- width: 1280
containerWidth: 1264
gridColumns: 7
navLinksVisible: 4
menuToggleVisible: false
headingPx: 24
bodyPx: 16
sectionPaddingX: 0
- width: 1440
containerWidth: 1360
gridColumns: 7
navLinksVisible: 4
menuToggleVisible: false
headingPx: 24
bodyPx: 16
sectionPaddingX: 0
coverage:
statesFound: 36
gradientsFound: 1
rolesUnassigned: 8
archetypesUnnamed: 0
archetypesDetected: 0
responsiveMeasured: true
stylesheetsBlocked: true
semanticRampDeclared: false
ROFTRIX embodies a modern, professional aesthetic grounded in craftsmanship and trust. The design system combines a sophisticated dark-on-light foundation with deliberate accent colors that evoke energy and forward momentum. The typography is clean and geometric, favoring clarity and hierarchy. Navigation and interactive elements are bold yet restrained, establishing a premium positioning while remaining approachable. The overall mood is contemporary, confident, and solution-oriented—reflecting the construction industry's evolution toward transparency and refined design standards.
Key Characteristics
{colors.accent} — #EA4C89) reserved for CTAs and key highlights to maintain focus{colors.canvas}) and cool grays to support content legibility{colors.primary} — #0D0C22): Primary CTA fill, active states, brand accent, headings, and primary text. Establishes the core identity.{colors.link} — #060318): Inline link color, text-based navigation, and secondary interactive elements.{colors.accent} — #EA4C89): Secondary accent and hero bands. High-visibility magenta reserved for prominent calls-to-action and decorative flourishes.{colors.accent-1} — #E62D75): Supportive decorative accent with slightly deeper magenta tone.{colors.accent-2} — #3E34D3): Deep indigo accent for decorative purposes only.{colors.accent-3} — #7B7194): Muted purple-gray for subtle decorative elements.{colors.accent-4} — #6E6D7A): Cool gray-purple for decorative contexts.{colors.accent-5} — #146EF5): Bright blue accent reserved for decorative use.{colors.primary} (#0D0C22){colors.canvas} (#FFFFFF){colors.accent} (#EA4C89){colors.canvas} (#FFFFFF){colors.canvas} — #FFFFFF): Primary page background and surface color. Label and text color on brand-colored surfaces.{colors.body} — #3A3546): Primary body copy and content text.{colors.muted} — #524B63): Captions, secondary text, and reduced-emphasis labels.{colors.faint} — #655C7A): Tertiary text, placeholder text, and minimal-emphasis annotations.{colors.neutral-2} — #000000): Full black reserved for maximum contrast where needed.{colors.neutral-3} — #D1CEDA): Mid-tone gray for secondary surfaces or borders.{colors.hairline} — #F3F3F4): 1px borders, dividers, and delicate rule lines.{colors.neutral-1} — #E7E7E9): Gentle border color for containers and input fields.Primary: Mona Sans (https://fonts.googleapis.com/)
Fallback: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif
Secondary: Arial (https://fonts.googleapis.com/)
Fallback: sans-serif
The system is unified around Mona Sans, a geometric sans-serif optimized for digital interfaces. Arial is used sparingly for button-specific roles.
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display / Hero XL | Mona Sans | 32px | 700 | 1.19 | 0px | Major page headings; use sparingly |
| Heading L | Mona Sans | 24px | 700 | 1.21 | 0px | Section headings and sub-heroes |
| Heading M | Mona Sans | 22px | 600–700 | 1.4 | 0px | Subsection titles; two weight variants in use |
| Heading S | Mona Sans | 20px | 600 | 1.2 | 0px | Card titles and tertiary headings |
| Heading XS | Mona Sans | 16px | 500 | 1.38 | 0px | Small section labels and emphasis |
| Body MD | Mona Sans | 16px | 400 | 1.75 | 0px | Primary body copy and long-form text |
| Body SM | Mona Sans | 14px | 400–700 | 1.21–2 | 0px | Standard body and button text; multiple weights for emphasis |
| Body XS | Mona Sans | 13px | 600 | 1.54 | 0px | Fine print and minimal text |
| Button LG | Mona Sans | 14px | 600 | 1–1.21 | 0px | Large CTA buttons |
| Button MD | Mona Sans | 13px | 600 | 1 | 0px | Standard button text |
| Button SM | Mona Sans | 12px | 500 | 1 | 0px | Small button and badge text |
| Button XS | Arial | 11px | 400 | — | 0px | Minimal button labels |
| Caption MD | Mona Sans | 12px | 400–700 | 1–1.33 | 0px | Image captions, metadata, labels; multiple weights |
| Caption SM | Mona Sans | 11px | 700 | 1.27 | 0px | Tiny labels and badges |
| Caption XS | Mona Sans | 9px | 800 | 2.22 | 0px | Uppercase small caps; high-emphasis micro text |
| Navigation | Mona Sans | 14px | 600 | 2.14 | 0px | Primary navigation links |
| Input Label | Mona Sans | 14px | 400 | 2 | 0px | Form labels and placeholders |
Primary Button (Standard)
{colors.primary} (#0D0C22){colors.canvas} (#FFFFFF){typography.button-md} (13px, weight 600){colors.primary}{rounded.full} (pill-shaped)#FFFFFF, text becomes {colors.primary}rgb(17, 153, 255) 0px 0px 0px 5pxPrimary Button (Large)
{colors.primary} (#0D0C22){colors.canvas} (#FFFFFF){typography.button-lg} (14px, weight 600){colors.primary}{rounded.full}#FFFFFFIcon Button
{colors.accent} (#EA4C89){colors.canvas} (#FFFFFF){typography.button-md} (13px, weight 600){colors.accent}{colors.accent} with increased intensitySecondary Button (Filled)
#444040 (muted brown-gray){colors.primary} (#0D0C22){typography.button-lg} (14px, weight 400){rounded.none} (sharp corners)Secondary Button (Alternative Filled)
#9B6343 (warm tan-brown){colors.primary} (#0D0C22){typography.button-lg} (14px, weight 400){rounded.none}Card (Default)
{colors.canvas} (#FFFFFF){colors.body} (#3A3546){rounded.md} (8px)rgba(18, 22, 25, 0.02) 0px 1px 10px 0px (soft lift){spacing.lg} (20px)Text Input
{colors.canvas} (#FFFFFF){colors.body} (#3A3546){colors.faint} (#655C7A){colors.neutral-1} (#E7E7E9){rounded.lg} (12px){typography.label} (14px, weight 400){spacing.md} (16px)var(--iti-hover-color) (ITI-specific)#D2E3FC (light blue tint)Input Label
{typography.label} (14px, weight 400){colors.body} (#3A3546){spacing.xs} (8px)Navigation Link (Primary)
{colors.link} (#060318){typography.nav} (14px, weight 600){colors.link}, slight opacity shift{colors.primary}Navigation Link (Desktop)
Badge (Filled)
{colors.hairline} (#F3F3F4){colors.body} (#3A3546){typography.body-sm} (14px, weight 400){colors.hairline}{rounded.full} (pill)Badge (Small, Accent)
{colors.accent} (#EA4C89){colors.canvas} (#FFFFFF){typography.caption-xs} (9px, weight 800, uppercase){rounded.lg} (12px)Inline Link (Default)
{colors.link} (#060318){typography.body-sm} (14px, weight 400){rounded.md} (8px){colors.hairline} (#F3F3F4)rgb(51, 51, 51) (darker)Link with Accent Hover
{colors.link} (#060318){typography.button-md} (13px, weight 600)rgba(119, 121, 245, 0.09) (subtle blue tint)rgb(26, 26, 26) (pure black)The spacing system uses a base unit of 4px, scaled linearly to create harmonious intervals:
{spacing.xxs} = 4px — Minimal gutters within tightly-packed components{spacing.xs} = 8px — Small gaps between sibling elements{spacing.sm} = 12px — Default internal padding for small components{spacing.md} = 16px — Primary padding and gutters; standard component spacing{spacing.lg} = 20px — Card and container padding; section gutters{spacing.xl} = 24px — Large spacing between distinct sections{spacing.xxl} = 28px — Extra-large vertical breaks{spacing.xxxl} = 32px — Major section separation{spacing.section} = 36px — Section boundaries and major layout shifts{spacing.band} = 40px — Hero band and full-bleed section paddingUsage Context:
{spacing.md} (16px) horizontally{spacing.lg} (20px){spacing.band} (40px) top/bottom on full-width hero sections{spacing.md} (16px){spacing.band} (40px) vertical paddingThe design system prioritizes breathing room and clarity. Whitespace is not wasted space but rather a design decision that guides the eye and reduces cognitive load. Sections are separated by generous vertical spacing ({spacing.section} — 36px minimum), allowing each content block to stand alone. Within containers, padding scales with content importance: primary CTAs receive {spacing.lg} (20px), while secondary elements use {spacing.md} (16px). This creates a visual hierarchy where negative space reinforces information hierarchy.
The system uses five discrete radius values:
{rounded.none} = 0px — Sharp-edged containers (secondary filled buttons, image crops){rounded.xs} = 4px — Badge and chip corners (subtle rounding){rounded.sm} = 6px — Link hover states and minor elements{rounded.md} = 8px — Card and container borders; standard component radius{rounded.lg} = 12px — Input fields and larger interactive surfaces{rounded.full} = 9999px (pill-shaped) — Buttons, badges, and icon containers; signals affordance and modernityComponent Mapping:
{rounded.full} (pill){rounded.lg} (12px){rounded.md} (8px){rounded.full} or {rounded.lg} depending on variantThe system uses a single border weight for emphasis:
| Level | Treatment | Use |
|---|---|---|
| Flat (Level 0) | No shadow; color-blocked surfaces | Page background, primary buttons, cards on light backgrounds |
| Micro (Level 1) | rgba(0, 0, 0, 0.01) 0px 2px 2px 0px | Dropdown menus, subtle lift elements |
| Base (Level 2) | rgba(18, 22, 25, 0.02) 0px 1px 10px 0px | Standard cards and containers; most interactive surfaces |
| Accent (Level 3) | rgba(6, 3, 24, 0.01) 0px 4px 4px 0px | Emphasis dropdowns and slightly raised containers |
The elevation strategy is color-blocking with progressive micro-shadows. Depth comes primarily from surface color shifts (white on light gray, dark on light) rather than heavy drop shadows. Where shadows do appear, they are barely-there at 1–2% opacity, creating a sense of subtle lift without visual noise. This approach maintains clarity while signaling interactive affordance. The system avoids aggressive shadows, preferring transparency and layering to convey depth.
Three opacity values are used for state modulation:
The system organizes layering across six distinct stacking contexts:
The wide gaps (e.g., 11 to 999 to 9995) prevent z-index collision and allow safe insertion of intermediate layers if needed.
{rounded.full}) for all primary CTAs and icon buttons. The rounded form signals modernity and drives engagement.{colors.body} on {colors.canvas}) meets WCAG AA; never invert without testing.{spacing.lg} (20px) inside cards and {spacing.band} (40px) around hero sections. Whitespace is a design asset.{colors.accent} — #EA4C89) for CTAs and accents only. Its intensity demands restraint; overuse dilutes impact.{spacing.xxs} opacity) for subtle depth. Heavy shadows (0px 10px 20px or greater) are not part of this system.text-transform: uppercase for captions and badges only; body text should always be sentence case.{colors.accent-2}, {colors.accent-5}, etc.) for semantic roles (error, success, warning). These are for illustration and decoration only.rgba(6, 3, 24, 0.01) 0px 4px 4px 0px). Heavier shadows contradict the system's minimalist depth philosophy.| Viewport | Width | Content Column | Grid Columns | Nav Links Visible | Menu Toggle | Largest Heading | Body Size | Section Padding X |
|---|---|---|---|---|---|---|---|---|
| Mobile (Small) | 375px | 343px | 4 | No | Yes | 20px | 16px | 0px |
| Tablet | 768px | 736px | 7 | No | Yes | 24px | 16px | 0px |
| Desktop (Small) | 1024px | 944px | 7 | No | Yes | 24px | 16px | 0px |
| Desktop (Medium) | 1280px | 1264px | 7 | Yes (4 links) | No | 24px | 16px | 0px |
| Desktop (Large) | 1440px | 1360px | 7 | Yes (4 links) | No | 24px | 16px | 0px |
Breakpoint Summary:
Minimum touch target sizes for interactive elements:
These sizes ensure accessibility for users with motor impairments and reduce mis-taps on mobile devices.
Mobile (375px):
{spacing.section} (36px) vertical, 0px horizontalTablet (768px):
Desktop (1024px+):
Max Width Constraint:
Refer to these mappings when implementing UI:
{colors.primary} — #0D0C22) — dark charcoal; fill for all standard buttons{colors.canvas} — #FFFFFF) — white text on dark background{colors.accent} — #EA4C89) — magenta; use for icon buttons and hero highlights{colors.body} — #3A3546) — dark gray-purple for primary content{colors.muted} — #524B63) — muted purple for captions and labels{colors.canvas} — #FFFFFF) — white page background{colors.hairline} — #F3F3F4) — very light gray for 1px separatorsAlways use Mona Sans for typography unless explicitly building a button role that specifies Arial. Font family is a brand asset.
Button radius is always pill-shaped ({rounded.full}) for primary and icon buttons. Secondary filled buttons use sharp corners ({rounded.none}).
Padding scales predictably: {spacing.md} (16px) for most elements; {spacing.lg} (20px) for cards; {spacing.band} (40px) for hero sections.
No custom colors. All fills, strokes, and text colors are drawn from the 16-color palette. If a new need arises, remix existing roles or revert to the design team.
Shadows are subtle — max rgba(6, 3, 24, 0.01) 0px 4px 4px 0px. No shadows darker than 2% opacity; depth comes first from color, second from micro-shadows.
Responsive breakpoint is 1280px: Below this width, navigation hides and menu toggle appears. At 1280px+, horizontal navigation is visible.
Line-height is sacred — 1.75 on 16px body ({typography.body-md}); 2 on 14px labels ({typography.label}). Do not adjust for visual fit; test text instead.
Focus states must be visible — Box-shadow rgb(17, 153, 255) 0px 0px 0px 5px on buttons; subtle border or ring on other elements. Never remove focus indicators.
Opacity 0.3 means disabled; opacity 0.6 means hover on certain states. These are the only opacity shifts allowed; do not invent intermediate values.
Z-index is 1–4 for base, 11 for dropdowns, 999 for sticky, 9995+ for modals. Use these strict bands; never pick arbitrary values.
This design system extraction has the following limitations:
Interaction states are partially inferred: Hover, active, focus, and disabled states were captured from the site's stylesheets where available. However, the site does not expose a complete state matrix for all components. Microinteractions (e.g., focus on links, disabled form states beyond opacity) are not fully specified and should be validated with the design team.
No semantic color palette: The site does not declare error, success, warning, or informational states in its extracted markup. Users should avoid inventing a semantic ramp and instead rely on the primary, accent, and neutral roles provided.
8 decorative colors lack assigned roles: Colors {colors.accent-1} through {colors.accent-5} and two additional neutrals have no measured semantic function. They appear in illustrations and backgrounds but are not assigned to specific UI components. Treat these as decoration-only; do not use them for CTA or semantic roles.
Shadow and elevation data is incomplete: Cross-origin stylesheets and shadow rendering across different browsers may have altered the extracted shadow values. The three shadow levels provided (Micro, Base, Accent) are the only explicitly measured values; deeper elevations or layered shadows are not part of the extraction.
Dark mode was not observed: The extraction covers light-mode only. No dark-mode or theme-switching behavior was measured. If dark mode is required, it would need to be derived separately or designed as an extension.
Animation and motion undefined: The extraction does not capture CSS transitions, keyframe animations, or easing curves. Interaction timing and smoothness are not specified; designers should define these separately or follow modern UI animation best practices (200–400ms easing).
Component coverage limited to 6 pages: The design system was extracted from 6 publicly visible pages. Any components behind authentication, paywalls, or admin interfaces were not measured and are absent from this specification.
Border width is minimal: Only the 1px thin border is used across the system. Thicker borders (2px, 3px+) are not extracted and likely do not exist in the design system.
Typography measured on limited HTML tags: Font sizes, weights, and line-heights were derived from <h1>, <h2>, <h3>, <body>, <button>, <input>, <link>, and <caption> elements. Other semantic or display roles (e.g., <code>, <pre>, custom heading styles) may exist but were not captured.
Form input states incomplete: Only default, hover, and focus states on text inputs were measured. Other input types (select, checkbox, radio, textarea) may have additional styling not captured in this extraction.