Remixes of dezon.vn
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: Dezon
description: |
Dezon's design system embodies premium minimalism refined for the
architecture, interior design, and construction industries in Vietnam. The
visual identity balances stark geometric precision with welcoming openness,
using a near-black primary palette accented by electric blue for digital
moments. The system prioritizes clarity and hierarchy through negative space,
restrained colour application, and typography that commands attention without
ornament. Photography and project imagery dominate surfaces, with the
interface stepping back to serve as a sophisticated scaffold. The mood is
professional yet approachable—formal enough for enterprise stakeholders
(architects, contractors, suppliers) but accessible to creative practitioners
(designers, emerging studios). Sharp edges and flush layouts reinforce a
contemporary, direct aesthetic; typography is generous and breathing. Depth
emerges through surface colour shifts rather than shadows, and interaction
rewards are understated—a scale, a glow, a subtle lift.
source:
url: "https://dezon.vn/business/"
pagesAnalyzed: 6
extractedAt: 2026-10-21
tokensMeasured: true
colors:
primary: "#0A0A0A"
accent: "#0D6EFD"
link: "#094BF4"
canvas: "#FFFFFF"
on-primary: "#FFFFFF"
ink: "#0A0A0A"
body: "#111111"
muted: "#333333"
faint: "#525252"
hairline: "#E5E5E5"
accent-1: "#212529"
accent-2: "#8F96A3"
neutral-1: "#C2C2C2"
neutral-2: "#000000"
neutral-3: "#E9EBEF"
typography:
display-lg:
fontFamily: "Inter Tight"
fontSize: 44px
fontWeight: 500
lineHeight: 1.2
letterSpacing: -0.44px
display-lg-strong:
fontFamily: "Inter Tight"
fontSize: 44px
fontWeight: 600
lineHeight: 1.05
letterSpacing: -1.1px
display-md:
fontFamily: "Inter Tight"
fontSize: 40px
fontWeight: 500
lineHeight: 1.28
letterSpacing: -0.4px
heading-lg:
fontFamily: "Inter Tight"
fontSize: 36px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
heading-md:
fontFamily: "Inter Tight"
fontSize: 32px
fontWeight: 500
lineHeight: 1.3
letterSpacing: -0.32px
heading-md-strong:
fontFamily: "Inter Tight"
fontSize: 32px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
heading-sm:
fontFamily: "Inter Tight"
fontSize: 18px
fontWeight: 500
lineHeight: 1.6
letterSpacing: -0.18px
heading-sm-strong:
fontFamily: "Inter Tight"
fontSize: 18px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
heading-xs:
fontFamily: "Inter Tight"
fontSize: 14px
fontWeight: 500
lineHeight: 1.2
letterSpacing: 0px
body-lg:
fontFamily: "Inter Tight"
fontSize: 18px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
body-lg-strong:
fontFamily: "Inter Tight"
fontSize: 18px
fontWeight: 500
lineHeight: 1.5
letterSpacing: 0px
body-md:
fontFamily: "Inter Tight"
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
body-md-strong:
fontFamily: "Inter Tight"
fontSize: 16px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0px
body-sm:
fontFamily: "Inter Tight"
fontSize: 14px
fontWeight: 500
lineHeight: 1.6
letterSpacing: 0px
body-xs:
fontFamily: "Inter Tight"
fontSize: 13px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0.26px
textTransform: uppercase
nav:
fontFamily: "Inter Tight"
fontSize: 13px
fontWeight: 400
lineHeight: 1.6
letterSpacing: 0px
button-md:
fontFamily: "Inter Tight"
fontSize: 16px
fontWeight: 500
lineHeight: 1.5
letterSpacing: 0px
button-sm:
fontFamily: "Inter Tight"
fontSize: 12px
fontWeight: 400
lineHeight: 1.3
letterSpacing: 0px
label:
fontFamily: "Inter Tight"
fontSize: 15px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
caption-xs:
fontFamily: "Inter Tight"
fontSize: 12px
fontWeight: 400
lineHeight: 1.6
letterSpacing: 0px
caption-xs-strong:
fontFamily: "Inter Tight"
fontSize: 12px
fontWeight: 500
lineHeight: 1.5
letterSpacing: 0px
caption-xs-2:
fontFamily: "Inter Tight"
fontSize: 12px
fontWeight: 600
lineHeight: 1.6
letterSpacing: 0px
caption-xs-tight:
fontFamily: "Inter Tight"
fontSize: 12px
fontWeight: 700
lineHeight: 1
letterSpacing: 0px
rounded:
none: 0px
xs: 8px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 48px
band: 60px
borderWidths:
thin: 1px
elevationStrategy: color-blocking
themes:
derived: dark # the other theme is the site's measured palette
light:
bg: "#FFFFFF"
surface: "#F7F7F7"
surfaceRaised: "#EEEEEE"
text: "#0A0A0A"
textMuted: "#111111"
border: "#E5E5E5"
accent: "#0D6EFD"
accentFg: "#000000"
focusRing: "#0D6EFD"
elevation: shadow
dark:
bg: "#090E16"
surface: "#181C24"
surfaceRaised: "#242930"
text: "#F5F9FF"
textMuted: "#9BA0A6"
border: "#30353B"
accent: "#217AFD"
accentFg: "#0B0B0C"
focusRing: "#0D6EFD"
elevation: "border+surface"
gradients:
- context: section
kind: linear
value: "linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.55) 55%, rgba(0, 0, 0, 0) 100%)"
components:
button-filled:
typography: "{typography.body-sm}"
textColor: "{colors.on-primary}"
border: "1px solid {colors.link}"
height: 46.3906px
padding: "11px 22px 11px 22px"
rounded: "{rounded.xs}"
backgroundColor: "{colors.link}"
button-primary:
textColor: "{colors.on-primary}"
border: "1px solid {colors.primary}"
height: 31px
padding: "4px 12px 4px 12px"
fontSize: 14px
fontFamily: "Inter Tight"
fontWeight: 500
lineHeight: 1.5
rounded: 6px
backgroundColor: "{colors.primary}"
button-primary-lg:
textColor: "{colors.on-primary}"
border: "1px solid {colors.primary}"
height: 37px
padding: "7px 16px 7px 16px"
fontSize: 14px
fontFamily: "Inter Tight"
fontWeight: 500
lineHeight: 1.5
rounded: 50px
backgroundColor: "{colors.primary}"
button-filled-sm:
textColor: "{colors.on-primary}"
height: 33px
padding: "6px 16px 6px 16px"
fontSize: 14px
fontFamily: "Inter Tight"
fontWeight: 500
lineHeight: 1.5
backgroundColor: "{colors.link}"
button-outline:
textColor: "{colors.ink}"
border: "1px solid {colors.hairline}"
height: 31px
padding: "4px 12px 4px 12px"
fontSize: 14px
fontFamily: "Inter Tight"
fontWeight: 500
lineHeight: 1.5
rounded: 6px
button-outline-lg:
typography: "{typography.body-lg-strong}"
textColor: "{colors.accent-1}"
border: "1px solid {colors.primary}"
height: 43px
padding: "7px 16px 7px 16px"
rounded: "{rounded.xs}"
card:
textColor: "{colors.ink}"
fontSize: 16px
fontFamily: "Inter Tight"
fontWeight: 400
lineHeight: 1.6
card-sm:
textColor: "{colors.body}"
fontSize: 14px
fontFamily: "Inter Tight"
fontWeight: 400
lineHeight: 1.5
badge-outline:
typography: "{typography.caption-xs-2}"
textColor: "{colors.ink}"
border: "1px solid rgb(199, 199, 199)"
height: 29.1875px
padding: "4px 12px 4px 12px"
rounded: "{rounded.xs}"
badge-outline-2:
typography: "{typography.caption-xs-2}"
textColor: "{colors.on-primary}"
border: "1px solid {colors.canvas}"
height: 29.1875px
padding: "4px 12px 4px 12px"
rounded: "{rounded.xs}"
badge-filled:
textColor: "rgb(91, 63, 176)"
height: 23.1875px
padding: "2px 10px 2px 10px"
fontSize: 12px
fontFamily: "Inter Tight"
fontWeight: 500
lineHeight: 1.6
rounded: 999px
backgroundColor: "rgb(239, 234, 252)"
badge-filled-2:
textColor: "rgb(22, 87, 168)"
height: 23.1875px
padding: "2px 10px 2px 10px"
fontSize: 12px
fontFamily: "Inter Tight"
fontWeight: 500
lineHeight: 1.6
rounded: 999px
backgroundColor: "rgb(231, 240, 251)"
navigation:
typography: "{typography.nav}"
textColor: "rgb(185, 189, 198)"
height: 20.7969px
navigation-lg:
textColor: "{colors.ink}"
height: 37px
fontSize: 14px
fontFamily: "Inter Tight"
fontWeight: 500
lineHeight: 1.5
footer:
textColor: "{colors.on-primary}"
padding: "56px 0px 20px 0px"
fontSize: 16px
fontFamily: "Inter Tight"
fontWeight: 400
lineHeight: 1.6
backgroundColor: "{colors.primary}"
footer-lg:
textColor: "{colors.on-primary}"
fontSize: 14px
fontFamily: "Inter Tight"
fontWeight: 400
lineHeight: 1.5
backgroundColor: "{colors.primary}"
link:
typography: "{typography.nav}"
textColor: "rgb(185, 189, 198)"
link-2:
textColor: "{colors.on-primary}"
fontSize: 13px
fontFamily: "Inter Tight"
fontWeight: 600
lineHeight: 1.6
states:
link-hover:
target: link
state: hover
textColor: "{colors.on-primary}"
button-hover:
target: button
state: hover
filter: "brightness(1.08)"
other-hover:
target: other
state: hover
textDecoration: underline
input-focus:
target: input
state: focus
borderColor: "{colors.neutral-2}"
backgroundColor: "{colors.canvas}"
other-disabled:
target: other
state: disabled
textColor: "rgb(204, 204, 204)"
input-disabled:
target: input
state: disabled
opacity: 1
other-focus:
target: other
state: focus
boxShadow: "rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem"
borderColor: "rgb(134, 183, 254)"
input-active:
target: input
state: active
filter: "brightness(90%)"
button-disabled:
target: button
state: disabled
filter: none
opacity: 0.65
other-active:
target: other
state: active
backgroundColor: "rgb(182, 212, 254)"
nav-focus-visible:
target: nav
state: focus-visible
boxShadow: "rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem"
breakpoints:
- width: 375
containerWidth: 1920
gridColumns: 0
navLinksVisible: 0
menuToggleVisible: true
headingPx: 28
bodyPx: 16
sectionPaddingX: 0
- width: 768
containerWidth: 1920
gridColumns: 0
navLinksVisible: 6
menuToggleVisible: false
headingPx: 28
bodyPx: 16
sectionPaddingX: 0
- width: 1024
containerWidth: 1920
gridColumns: 4
navLinksVisible: 6
menuToggleVisible: false
headingPx: 35
bodyPx: 16
sectionPaddingX: 0
- width: 1280
containerWidth: 1920
gridColumns: 4
navLinksVisible: 6
menuToggleVisible: false
headingPx: 40
bodyPx: 16
sectionPaddingX: 0
- width: 1440
containerWidth: 1920
gridColumns: 4
navLinksVisible: 6
menuToggleVisible: false
headingPx: 40
bodyPx: 16
sectionPaddingX: 0
coverage:
statesFound: 65
gradientsFound: 1
rolesUnassigned: 5
archetypesUnnamed: 0
archetypesDetected: 0
responsiveMeasured: true
stylesheetsBlocked: true
semanticRampDeclared: false
Dezon's design system embodies premium minimalism refined for the architecture, interior design, and construction industries in Vietnam. The visual identity balances stark geometric precision with welcoming openness, using a near-black primary palette accented by electric blue for digital moments. The system prioritizes clarity and hierarchy through negative space, restrained colour application, and typography that commands attention without ornament. Photography and project imagery dominate surfaces, with the interface stepping back to serve as a sophisticated scaffold. The mood is professional yet approachable—formal enough for enterprise stakeholders (architects, contractors, suppliers) but accessible to creative practitioners (designers, emerging studios). Sharp edges and flush layouts reinforce a contemporary, direct aesthetic; typography is generous and breathing. Depth emerges through surface colour shifts rather than shadows, and interaction rewards are understated—a scale, a glow, a subtle lift.
Key Characteristics
#0D6EFD){rounded.full}){colors.primary} — #0A0A0A): Headings, body copy, brand mark, primary CTAs, and active states. The dominant text and interactive colour across the system.{colors.accent} — #0D6EFD): Electric blue used for secondary CTAs, interactive highlights, focus states, and accent moments that signal digital affordance.{colors.link} — #094BF4): Inline hyperlinks and navigation links; deeper blue than the general accent, reserved for semantic link purpose.{colors.canvas} — #FFFFFF): Default page background and label text on dark/brand surfaces.{colors.body} — #111111): Primary body copy and standard text.{colors.muted} — #333333): Secondary text, captions, and reduced-emphasis labels.{colors.faint} — #525252): Tertiary text and placeholder copy.{colors.hairline} — #E5E5E5): 1px borders, dividers, and subtle surface delineation.{colors.accent-1} — #212529): No measured role; used decoratively in the markup.{colors.accent-2} — #8F96A3): No measured role; used decoratively in the markup.{colors.neutral-1} — #C2C2C2): No measured role; neutral placeholder.{colors.neutral-2} — #000000): No measured role; pure black for decorative or overlay intent.{colors.neutral-3} — #E9EBEF): No measured role; light neutral for backgrounds or surfaces.Primary: Inter Tight (https://fonts.googleapis.com/)
Fallback: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif
Inter Tight is a condensed sans-serif optimized for tight spacing and modern digital interfaces. Its geometric construction suits the architecture and design verticales.
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display XL | Inter Tight | 44px | 600 | 1.05 | −1.1px | Bold hero statement; section opener |
| Display Large | Inter Tight | 44px | 500 | 1.2 | −0.44px | Large display with negative tracking |
| Display Medium | Inter Tight | 40px | 500 | 1.28 | −0.4px | Prominent section heading |
| Heading Large | Inter Tight | 36px | 600 | 1.2 | 0px | Primary section title |
| Heading Medium Strong | Inter Tight | 32px | 600 | 1.2 | 0px | Subsection title; card heading |
| Heading Medium | Inter Tight | 32px | 500 | 1.3 | −0.32px | Section heading with reduced weight |
| Heading Small Strong | Inter Tight | 18px | 600 | 1.2 | 0px | Small section opener |
| Heading Small | Inter Tight | 18px | 500 | 1.6 | −0.18px | Subheading with breathing room |
| Heading XS | Inter Tight | 14px | 500 | 1.2 | 0px | Mini heading; card title |
| Body Large Strong | Inter Tight | 18px | 500 | 1.5 | 0px | Emphasized body; CTA text |
| Body Large | Inter Tight | 18px | 400 | 1.5 | 0px | Large body copy; hero text |
| Body Medium Strong | Inter Tight | 16px | 500 | 1.4 | 0px | Emphasized inline text |
| Body Medium | Inter Tight | 16px | 400 | 1.5 | 0px | Standard body copy |
| Body Small | Inter Tight | 14px | 500 | 1.6 | −0.13px | Secondary text; labels |
| Body XS | Inter Tight | 13px | 600 | 1.5 | 0.26px | Uppercase label; badge text |
| Caption XS | Inter Tight | 12px | 400 | 1.6 | 0px | Small caption; footnote |
| Caption XS Strong | Inter Tight | 12px | 500 | 1.5 | 0px | Emphasized caption |
| Caption XS Tight | Inter Tight | 12px | 700 | 1 | 0px | Dense, bold micro text |
| Caption XS–2 | Inter Tight | 12px | 600 | 1.6 | 0px | Bold caption variant |
| Button Medium | Inter Tight | 16px | 500 | 1.5 | 0px | Standard button label |
| Button Small | Inter Tight | 12px | 400 | 1.3 | 0px | Small button label |
| Nav | Inter Tight | 13px | 400 | 1.6 | 0px | Navigation link text |
| Label | Inter Tight | 15px | 400 | 1.5 | 0px | Form label text |
display-lg, display-md) employ negative letter-spacing (−0.4px to −0.44px to −1.1px) to create visual tension and draw the eye; never flatten these values to 0.body-md, body-lg) use 1.5 line-height and 0px letter-spacing for comfort and legibility; captions reduce line-height to 1.6 for compact density.body-xs role is uppercase + 0.26px letter-spacing, signalling labels and tags.Primary Button
{colors.primary} (#0A0A0A){colors.canvas} (#FFFFFF){typography.button-md} (16px, 500, 1.5){colors.primary}{rounded.xs} (8px)filter: brightness(1.08), transform: translateY(-2px), background lightens to #E4E6EBPrimary Button Large
{colors.primary} (#0A0A0A){colors.canvas} (#FFFFFF){typography.button-md} (16px, 500, 1.5){colors.primary}{rounded.full} (9999px) — pill-shapedFilled Button (Secondary CTA)
{colors.accent} (#0D6EFD){colors.canvas} (#FFFFFF){typography.button-md} (16px, 500, 1.5){colors.accent}{rounded.xs} (8px)brightness(1.08), translateY(-1px)Filled Button Small
{colors.accent} (#0D6EFD){colors.canvas} (#FFFFFF){typography.button-md} (16px, 500, 1.5){rounded.none} (0px) — sharpbrightness(1.08)Outline Button
{colors.primary} (#0A0A0A){typography.button-md} (16px, 500, 1.5){colors.hairline} (#E5E5E5){rounded.xs} (8px)#E4E6EBOutline Button Large
{colors.muted} (#333333){typography.body-lg-strong} (18px, 500, 1.5){colors.primary}{rounded.xs} (8px)#E4E6EBButton Disabled State
Card Default
{colors.primary} (#0A0A0A){rounded.none} (0px) — sharp edge{typography.body-md} (16px, 400, 1.5)transform: scale(1.05) (for image-based cards)Card Default Small
{colors.body} (#111111){rounded.none} (0px) — sharp edge{typography.body-sm} (14px, 500, 1.6)transform: scale(1.02)Badge Outline
{colors.primary} (#0A0A0A){typography.caption-xs-2} (12px, 600, 1.6){colors.neutral-1} (#C2C2C2){rounded.xs} (8px)Badge Outline (Light)
{colors.canvas} (#FFFFFF){typography.caption-xs-2} (12px, 600, 1.6){colors.canvas}{rounded.xs} (8px)Badge Filled (Purple)
#EFEBFC#5B3FB0{typography.caption-xs-strong} (12px, 500, 1.5){rounded.full} (9999px) — pill-shapedBadge Filled (Blue)
#E7F0FB#1657A8{typography.caption-xs-strong} (12px, 500, 1.5){rounded.full} (9999px) — pill-shapedNavigation Default (Small/Muted)
#B9BDBEC (muted blue-grey){typography.nav} (13px, 400, 1.6)color: var(--bs-nav-link-hover-color) (typically white or primary accent)outline: 0px, box-shadow: rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25remNavigation Default Large
{colors.primary} (#0A0A0A){typography.body-sm} (14px, 500, 1.6)Input Base
{colors.canvas} (#FFFFFF){colors.body} (#111111){typography.body-md} (16px, 400, 1.5){colors.hairline} (#E5E5E5){rounded.xs} (8px)border-color: #0A0A0A, box-shadow: rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem, outline: 0pxopacity: 0.5, background: var(--bs-secondary-bg){colors.faint} (#525252)Input Label
{typography.label} (15px, 400, 1.5){colors.body} (#111111)Link Default (Navigation)
#B9BDBE (muted){typography.nav} (13px, 400, 1.6)color: #FFFFFF, opacity: 1Link Default (Footer)
{colors.canvas} (#FFFFFF){typography.caption-xs-2} (12px, 600, 1.6)color: var(--bs-navbar-active-color) (typically accent or hover state)Footer Default
{colors.primary} (#0A0A0A){colors.canvas} (#FFFFFF){typography.body-md} (16px, 400, 1.5)Footer Large
{colors.primary} (#0A0A0A){colors.canvas} (#FFFFFF){typography.body-sm} (14px, 400, 1.6)Base unit: {spacing.xs} = 8px
Full scale:
{spacing.xxs} = 4px — micro spacing between adjacent elements{spacing.xs} = 8px — padding inside small components, tight gutters{spacing.sm} = 12px — internal spacing for inputs, buttons{spacing.md} = 16px — standard padding for cards, sections{spacing.lg} = 20px — breathing room between components{spacing.xl} = 24px — larger section spacing{spacing.xxl} = 28px — major separation{spacing.xxxl} = 32px — substantial gaps{spacing.section} = 48px — between major sections{spacing.band} = 60px — hero sections, full-width breaks{spacing.md} and {spacing.lg} between card columnsNegative space is active design. The system embraces breathing room around typography and imagery. Sections are separated by {spacing.section} (48px) or {spacing.band} (60px) gaps; interior component padding uses {spacing.md} (16px) as default. Photography fills surfaces; the UI recedes. Text is generously spaced vertically (line-height 1.5–1.6), and horizontal gutters are balanced to avoid cramping. This breathing enables focus on content—projects, creators, services—while the interface remains transparent.
{rounded.none} = 0px — cards, small buttons, sharp modern aesthetic{rounded.xs} = 8px — inputs, badge outlines, form elements{rounded.full} = 9999px — badges (filled), large primary buttonsNote: Button and badge styling alternates between sharp (0px) and pill (9999px) by variant; cards are uniformly sharp (0px).
Color-blocking depth model: The system achieves depth and layering through surface colour shifts, opacity overlays, and spatial arrangement rather than drop shadows. No box-shadow values are measured in the component styles, confirming that elevation is expressed via:
{colors.primary} (#0A0A0A) to create visual separation from white canvas.linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.55) 55%, rgba(0, 0, 0, 0) 100%) — creates depth and readability over photography.scale(1.05), scale(1.02)) to suggest lift.translateY(-1px), translateY(-2px)) to imply floating above the surface.This approach eliminates shadow complexity, maintaining the minimalist aesthetic while still signalling hierarchy.
display-lg, display-md, display-lg-strong) require −0.4px, −0.44px, or −1.1px tracking to maintain the system's contemporary tension; never flatten to 0px.{colors.primary} for headings and primary CTAs, {colors.accent} for secondary/highlight moments, neutrals for text hierarchy.rgba(0, 0, 0, 0.85) and rgba(0, 0, 0, 0.55) in gradients to achieve readable text over photography.{rounded.full}.{colors.accent} (#0D6EFD); do not invent intermediate blues or secondary accents.{rounded.none} (0px); do not default to 8px or 12px radius.box-shadow: rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem (soft blue halo); do not layer dark or hard shadows.{colors.canvas} as body text: {colors.canvas} (#FFFFFF) is reserved for text on dark/brand surfaces; use {colors.body} (#111111) or {colors.muted} for default text.| Breakpoint | Viewport Width | Grid Columns | Max Content Width | Heading Size | Body Size | Nav Links Visible | Menu Toggle | Key Changes |
|---|---|---|---|---|---|---|---|---|
| Mobile | 375px | 1 | 1920px | 28px | 16px | 0 | yes | Full-bleed layout; hamburger menu; single column |
| Tablet | 768px | n/a | 1920px | 28px | 16px | 6 | no | Navigation expands; category tabs appear; grid begins |
| Large Tablet | 1024px | 4 | 1920px | 35px | 16px | 6 | no | Heading sizes scale; 4-column grid active; full sidebar nav |
| Desktop | 1280px | 4 | 1920px | 40px | 16px | 6 | no | Optimal layout; all features visible |
| Large Desktop | 1440px | 4 | 1920px | 40px | 16px | 6 | no | Headings stabilise at 40px; no further scaling |
{spacing.md} (16px) minimum surrounding clickable areas to prevent accidental activation.375px (Mobile):
768px (Tablet):
1024px+ (Desktop):
Adaptive Typography:
Padding & Margin:
{spacing.section} = 48px, {spacing.band} = 60px) consistent across all sizes{spacing.md} = 16px) consistentImplement interactive UI elements, text, and surfaces using these colour assignments:
{colors.primary} (#0A0A0A) — all primary buttons, h1–h6, bold accents{colors.accent} (#0D6EFD) — filled secondary buttons, accent moments, focus indicators{colors.link} (#094BF4) — hyperlink text{colors.body} (#111111) — standard paragraph text{colors.muted} (#333333) — captions, helper text{colors.faint} (#525252) — placeholder input text, very reduced emphasis{colors.hairline} (#E5E5E5) — 1px dividers, input borders, badge outlines{colors.canvas} (#FFFFFF) — default page surface{colors.primary} (#0A0A0A) — footer, dark hero overlays, brand-accent sectionsNever Add Shadows: Depth is expressed via rgba(0, 0, 0, 0.85) overlays, colour shifts, and scale transforms. Remove all box-shadow; no drop shadows exist in the measured system.
Scale & Translate on Interaction: Buttons scale to 1.08 brightness or translateY(−2px) on hover; cards scale 1.02–1.05. Animate these properties; never leave hover states flat.
Preserve Letter-Spacing on Display Type: Display headings (display-lg, display-md) require −0.4px to −1.1px letter-spacing. These negative values are intentional; do not round to 0px.
Apply Pill Shape Selectively: Large buttons and filled badges use border-radius: 9999px. Default cards and inputs use border-radius: 0px or 8px. Never make everything rounded.
Use 1.5 Line-Height for Body: Body text (16–18px) must use line-height: 1.5 to maintain the breathing aesthetic. Captions use 1.6; headings use 1.2.
Layer Focus States with Blue Halo: On input focus, apply box-shadow: rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem + border-color: #0A0A0A. Never use sharp outlines.
Respect the Neutral Ramp: Use the measured greys (#111111 body, #333333 muted, #525252 faint) in order; do not invent intermediate shades.
Segment Navigation: Include audience-specific nav links ("for Studios," "for Suppliers," etc.) at the top level to enable user segmentation and self-serve routing.
Full-Bleed Horizontal Layout: Section padding-x = 0px at all breakpoints. Cards and content sit flush to the viewport edges or are constrained by a container within the section, not the section itself.
Grid at 4 Columns: At large viewports (1024px+), use a 4-column grid for project cards and listings. Below 768px, collapse to single column with horizontal scroll tabs for categories.
Interaction States Not Fully Measured: The extraction captured many CSS pseudo-classes (:hover, :focus, :disabled, :active), but not all components' full state trees. Surfaces behind authentication or conditional logic were not inspected.
No Semantic Status Ramp: The site does not expose error, success, warning, or info colour states in its public markup. A semantic status ramp (red/green/yellow/blue) does not exist in this system; status should be communicated via context, labels, and state-specific components if added.
Five Unassigned Decorative Colours: Colours {colors.accent-1} (#212529), {colors.accent-2} (#8F96A3), {colors.neutral-1} (#C2C2C2), {colors.neutral-2} (#000000), and {colors.neutral-3} (#E9EBEF) were extracted but have no measured role in the UI. They may be placeholder tokens, unused legacy values, or decorative markup. Do not assume semantic purpose; confirm use before applying.
Shadow / Elevation Data: The extraction found no box-shadow values on measured components, confirming the system uses colour and scale for depth, not shadows. If shadow depth is needed in future extensions, it was not specified in the original design.
Dark Mode / Theme Variants: Only one theme (light) was analysed. No dark-mode styles or theme-switching logic was observed or measured; the system is presented as achromatic with a single light canvas.
Interaction Animation Timing & Curves: Hover and focus states include transform, scale, and filter properties, but easing functions (ease-in-out, cubic-bezier, etc.) were not captured. Default browser easing may apply; specify transition timing explicitly if smoothness matters.
Micro-Interaction Feedback: Some very small UI moments (toast notifications, loading states, inline validation) were not present on the inspected pages, so their styling is not documented.
Cross-Origin Stylesheets: Some external stylesheets (e.g., from CDNs or design libraries) may not have been readable during extraction, so minor CSS declarations or component behaviours could be missing.
Responsive Images & Lazy Loading: Image sizing strategies and lazy-load directives were not analysed; focus was on layout, typography, and colour only.
Accessibility Attributes (aria-*, role): The system's semantic HTML and screen-reader support were not formally audited. Focus states and keyboard navigation assume standard browser defaults.
Summary for Implementation:
This design system prioritizes minimalism, audience segmentation, and photography-forward layouts. Implement with sharp edges on cards (0px), pill-shaped badges and large buttons (9999px), and electric blue accents (#0D6EFD) for secondary interactivity. Typography is breathing and precise; negative tracking on display sizes is non-negotiable. Depth emerges from colour shifts and scaled transforms, never shadows. Navigation offers segment-specific routes (Studios, Suppliers, Creators, Contractors). The full-bleed, single-column mobile layout expands to a 4-column grid at 1024px+. Test extensively across the captured breakpoints (375px, 768px, 1024px, 1280px, 1440px) to ensure responsive imagery and text scaling behave as measured.