Remixes of maroc.ma
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: Maroc
description: |
Maroc.ma's design system embodies official digital governance with cultural
dignity. The visual identity balances formal authority with modern
accessibility, grounding itself in Morocco's national palette of deep blues
and burgundy while maintaining clean, minimal surfaces. The atmosphere is
professional yet approachable—layered gradients and deep navy sections provide
visual hierarchy and gravitas, while crisp white cards and generous whitespace
ensure readability and trust. The system prioritizes clarity and institutional
confidence, using colour blocking rather than shadows for depth, creating a
sense of structured authority suitable for a national portal. Typography is
confident and bold, with generous line heights supporting multilingual content
(French, Arabic, and English readability).
source:
url: "https://maroc.ma/fr"
pagesAnalyzed: 6
extractedAt: 2026-11-02
tokensMeasured: true
colors:
primary: "#3977E4"
accent: "#335AB7"
link: "#0D6EFD"
canvas: "#FFFFFF"
surface: "#072F75"
surface-alt: "#0F1B5C"
on-primary: "#FFFFFF"
ink: "#111111"
body: "#212529"
muted: "#333333"
faint: "#404040"
accent-1: "#4A5464"
accent-2: "#0051C3"
accent-3: "#BB0A21"
accent-4: "#D4DEF0"
accent-5: "#1C2E55"
neutral-1: "#000000"
typography:
display:
fontFamily: -apple-system
fontSize: 60px
fontWeight: 300
lineHeight: 1.2
letterSpacing: 0px
heading-xxl:
fontFamily: "montserrat Bold"
fontSize: 38px
fontWeight: 500
lineHeight: 1.05
letterSpacing: 0px
heading-xl:
fontFamily: "montserrat Bold"
fontSize: 32px
fontWeight: 500
lineHeight: 1.2
letterSpacing: 0px
heading-lg:
fontFamily: "montserrat Bold"
fontSize: 25px
fontWeight: 500
lineHeight: 1.2
letterSpacing: 0px
heading-md:
fontFamily: "montserrat Bold"
fontSize: 22px
fontWeight: 500
lineHeight: 1.14
letterSpacing: 0px
heading-sm:
fontFamily: "montserrat Bold"
fontSize: 20px
fontWeight: 500
lineHeight: 1.2
letterSpacing: 0px
heading-xs:
fontFamily: "montserrat Bold"
fontSize: 18px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0px
body-xl:
fontFamily: "manrope bold"
fontSize: 18px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
body-lg:
fontFamily: "manrope bold"
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
body-lg-system-ui:
fontFamily: system-ui
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
body-md:
fontFamily: Metrophobic
fontSize: 15.2px
fontWeight: 600
lineHeight: 1
letterSpacing: 0.2px
body-sm:
fontFamily: "manrope regular"
fontSize: 14px
fontWeight: 400
lineHeight: 1.79
letterSpacing: 0px
body-xs:
fontFamily: system-ui
fontSize: 13px
fontWeight: 400
lineHeight: 1.7
letterSpacing: 0px
nav-xs:
fontFamily: "manrope bold"
fontSize: 13px
fontWeight: 700
lineHeight: 1.5
letterSpacing: 0px
nav-xs-cairo-regular:
fontFamily: "Cairo Regular"
fontSize: 13px
fontWeight: 700
lineHeight: 1.5
letterSpacing: 0px
button-xl:
fontFamily: "montserrat Bold"
fontSize: 26px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0px
button-lg:
fontFamily: "manrope bold"
fontSize: 20px
fontWeight: 700
lineHeight: 1.5
letterSpacing: 0px
button-md:
fontFamily: Metrophobic
fontSize: 16px
fontWeight: 400
lineHeight: 1
letterSpacing: 0px
button-sm:
fontFamily: Metrophobic
fontSize: 14.4px
fontWeight: 600
lineHeight: 1
letterSpacing: 0.2px
button-xs:
fontFamily: Metrophobic
fontSize: 14px
fontWeight: 600
lineHeight: 1
letterSpacing: 0px
button-xs-strong:
fontFamily: "manrope bold"
fontSize: 14px
fontWeight: 700
lineHeight: 1.5
letterSpacing: 0px
label-md:
fontFamily: system-ui
fontSize: 16px
fontWeight: 400
lineHeight: 1.7
letterSpacing: 0px
label-md-cairo-regular:
fontFamily: "Cairo Regular"
fontSize: 16px
fontWeight: 400
lineHeight: 1.7
letterSpacing: 0px
label-sm:
fontFamily: system-ui
fontSize: 14px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
rounded:
none: 0px
xs: 4px
sm: 6px
md: 10px
lg: 12px
xl: 17px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 40px
band: 60px
borderWidths:
thin: 1px
medium: 2px
shadows:
sm: "rgba(0, 0, 0, 0.8) 0px 10px 20px -20px inset"
md: "rgba(0, 0, 0, 0.075) 0px 2px 4px 0px"
lg: "rgba(0, 0, 0, 0.12) 0px 5px 12px 0px"
xl: "rgba(0, 0, 0, 0.04) 0px 0.320247px 0.640494px 0.160124px"
elevationStrategy: progressive
themes:
derived: dark # the other theme is the site's measured palette
light:
bg: "#FFFFFF"
surface: "#072F75"
surfaceRaised: "#072E71"
text: "#111111"
textMuted: "#212529"
border: "#E2E2E2"
accent: "#3977E4"
accentFg: "#000000"
focusRing: "#3977E4"
elevation: shadow
dark:
bg: "#0B0D14"
surface: "#1A1C22"
surfaceRaised: "#26282E"
text: "#F7FAFE"
textMuted: "#9DA0A5"
border: "#32343A"
accent: "#3977E4"
accentFg: "#0B0B0C"
focusRing: "#3977E4"
elevation: "border+surface"
contrastFailures:
- "light: text on surface = 1.5:1 (needs 4.5:1)"
gradients:
- context: section
kind: linear
value: "linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75))"
- context: section
kind: linear
value: "linear-gradient(200deg, rgb(15, 27, 92) 60%, rgb(51, 90, 183) 100%)"
- context: section
kind: linear
value: "linear-gradient(200deg, rgb(15, 27, 92) 60%, rgba(51, 90, 183, 0.58) 100%)"
components:
button-primary:
typography: "{typography.button-md}"
textColor: "{colors.on-primary}"
border: "2px solid {colors.primary}"
height: 48px
padding: "14px 10px 14px 10px"
rounded: "{rounded.md}"
backgroundColor: "{colors.primary}"
button-filled:
typography: "{typography.body-lg}"
textColor: "{colors.on-primary}"
border: "1px solid {colors.accent}"
height: 46px
padding: "10px 20px 10px 20px"
rounded: "{rounded.md}"
backgroundColor: "{colors.accent}"
button-filled-sm:
textColor: "{colors.on-primary}"
height: 36px
padding: "6px 10px 6px 10px"
fontSize: 14px
fontFamily: system-ui
fontWeight: 700
lineHeight: 1.5
rounded: "{rounded.xl}"
backgroundColor: "{colors.accent-3}"
button-icon:
typography: "{typography.body-lg-system-ui}"
textColor: "{colors.neutral-1}"
height: 60px
padding: "1px 6px 1px 6px"
rounded: 30px
backgroundColor: "{colors.surface-alt}"
card:
typography: "{typography.body-lg-system-ui}"
textColor: "{colors.body}"
border: "1px solid rgba(0, 0, 0, 0.176)"
rounded: "{rounded.sm}"
backgroundColor: "{colors.canvas}"
card-sm:
typography: "{typography.body-lg}"
textColor: "{colors.link}"
rounded: "5px 5px 0px 0px"
backgroundColor: "rgba(255, 255, 255, 0.05)"
badge-icon:
textColor: "{colors.on-primary}"
border: "1px solid {colors.canvas}"
height: 37px
fontSize: 16px
fontFamily: "Font Awesome 6 Brands"
fontWeight: 400
lineHeight: 1
rounded: 30px
badge-icon-sm:
textColor: "{colors.on-primary}"
height: 30px
fontSize: 16px
fontFamily: "Font Awesome 6 Brands"
fontWeight: 400
lineHeight: 1
rounded: 30px
navigation:
typography: "{typography.body-lg-system-ui}"
textColor: "{colors.body}"
height: 44px
padding: "0px 40px 0px 40px"
navigation-lg:
typography: "{typography.body-lg-system-ui}"
textColor: "{colors.body}"
height: 79px
padding: "0px 40px 0px 40px"
footer:
typography: "{typography.body-lg-system-ui}"
textColor: "{colors.body}"
footer-2:
textColor: "{colors.body}"
fontSize: 16px
fontFamily: "Cairo Regular"
fontWeight: 400
lineHeight: 1.5
link:
typography: "{typography.body-xl}"
textColor: "{colors.on-primary}"
border: "1px solid {colors.surface-alt}"
padding: "10px 0px 10px 0px"
rounded: "{rounded.md}"
backgroundColor: "{colors.surface-alt}"
link-lg:
textColor: "{colors.body}"
fontSize: 16px
fontFamily: "manrope bold"
fontWeight: 400
states:
link-hover:
target: link
state: hover
textDecoration: none
input-disabled:
target: input
state: disabled
opacity: 1
input-focus:
target: input
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%)"
other-disabled:
target: other
state: disabled
textColor: "rgb(108, 117, 125)"
other-active:
target: other
state: active
textDecoration: none
nav-focus-visible:
target: nav
state: focus-visible
boxShadow: "rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem"
nav-disabled:
target: nav
state: disabled
borderColor: transparent
backgroundColor: transparent
other-hover:
target: other
state: hover
textDecoration: none
other-focus:
target: other
state: focus
textDecoration: none
button-hover:
target: button
state: hover
textDecoration: none
button-active:
target: button
state: active
borderColor: "{colors.accent}"
backgroundColor: "{colors.accent}"
nav-hover:
target: nav
state: hover
opacity: 1
link-focus:
target: link
state: focus
textColor: "rgb(98, 161, 216)"
borderColor: currentcolor
link-active:
target: link
state: active
textColor: "rgb(193, 101, 8)"
borderColor: currentcolor
button-focus:
target: button
state: focus
boxShadow: "rgba(0, 0, 0, 0.3) 0px 0px 4px inset"
input-hover:
target: input
state: hover
borderColor: gray
breakpoints:
- width: 375
containerWidth: 359
gridColumns: 4
navLinksVisible: 15
menuToggleVisible: true
headingPx: 25
bodyPx: 16
sectionPaddingX: 0
- width: 768
containerWidth: 720
gridColumns: 4
navLinksVisible: 15
menuToggleVisible: true
headingPx: 32
bodyPx: 16
sectionPaddingX: 0
- width: 1024
containerWidth: 960
gridColumns: 5
navLinksVisible: 8
menuToggleVisible: true
headingPx: 32
bodyPx: 16
sectionPaddingX: 0
- width: 1280
containerWidth: 1200
gridColumns: 8
navLinksVisible: 8
menuToggleVisible: true
headingPx: 32
bodyPx: 16
sectionPaddingX: 0
- width: 1440
containerWidth: 1360
gridColumns: 8
navLinksVisible: 8
menuToggleVisible: true
headingPx: 32
bodyPx: 16
sectionPaddingX: 0
coverage:
statesFound: 78
gradientsFound: 3
rolesUnassigned: 6
archetypesUnnamed: 0
archetypesDetected: 0
responsiveMeasured: true
stylesheetsBlocked: true
semanticRampDeclared: false
Maroc.ma's design system embodies official digital governance with cultural dignity. The visual identity balances formal authority with modern accessibility, grounding itself in Morocco's national palette of deep blues and burgundy while maintaining clean, minimal surfaces. The atmosphere is professional yet approachable—layered gradients and deep navy sections provide visual hierarchy and gravitas, while crisp white cards and generous whitespace ensure readability and trust. The system prioritizes clarity and institutional confidence, using colour blocking rather than shadows for depth, creating a sense of structured authority suitable for a national portal. Typography is confident and bold, with generous line heights supporting multilingual content (French, Arabic, and English readability).
Key Characteristics
{colors.primary} — #3977E4): Primary CTA buttons, brand accent, active interactive states, and system foundation{colors.link} — #0D6EFD): Inline hyperlinks, secondary CTAs{colors.accent} — #335AB7): Hero bands, navigation hover states, secondary active states{colors.accent-2} — #0051C3): Observed on site but not assigned a specific semantic function; use as tertiary accent only{colors.accent-3} — #BB0A21): Burgundy tone observed in button hovers; no error/success state was declared{colors.accent-1} — #4A5464): Muted blue-grey; no specific role evidence{colors.accent-5} — #1C2E55): Deep navy; decorative use only{colors.canvas} — #FFFFFF): Default page background; label and text on primary-coloured surfaces{colors.ink} — #111111): Primary headings and high-contrast text{colors.body} — #212529): Body copy and standard text{colors.muted} — #333333): Captions, secondary text, de-emphasized content{colors.faint} — #404040): Tertiary text, placeholder text{colors.surface} — #072F75): Card and panel background; deep navy base{colors.surface-alt} — #0F1B5C): Alternating section band; slightly lighter navy{colors.accent-4} — #D4DEF0): Pale blue; no assigned semantic function{colors.neutral-1} — #000000): Fallback; observed but not assigned primary rolePrimary Display Font (Headings)
montserrat, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serifSecondary Fonts (Body & Interface)
manrope, system-ui, -apple-system, sans-serifsystem-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif'Cairo', system-ui, sans-serif| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display | -apple-system | 60px | 300 | 1.2 | 0px | Hero display; h1 equivalent |
| Heading XXL | Montserrat Bold | 38px | 500 | 1.05 | 0px | Section headline; h4 equivalent |
| Heading XL | Montserrat Bold | 32px | 500 | 1.2 | 0px | Page section heading; h2 equivalent |
| Heading LG | Montserrat Bold | 25px | 500 | 1.2 | 0px | Card/subsection title; h3 equivalent |
| Heading MD | Montserrat Bold | 22px | 500 | 1.14 | 0px | Module heading; secondary h3 |
| Heading SM | Montserrat Bold | 20px | 500 | 1.2 | 0px | Minor heading; h3/h4 variant |
| Heading XS | Montserrat Bold | 18px | 700 | 1.2 | 0px | Label heading; bold caption |
| Button XL | Montserrat Bold | 26px | 700 | 1.2 | 0px | Large/primary CTA text |
| Button LG | Manrope | 20px | 700 | 1.5 | 0px | Secondary button; call-to-action |
| Button MD | Metrophobic | 16px | 400 | 1 | 0px | Standard button text |
| Button SM | Metrophobic | 14.4px | 600 | 1 | 0.2px | Small button; compact CTA |
| Button XS | System-UI | 14px | 600 | 1 | 0px | Minimal button; icon + text |
| Button XS Strong | Manrope | 14px | 700 | 1.5 | 0px | Emphasized small button |
| Body XL | Manrope | 18px | 400 | 1.5 | 0px | Large body copy; intro text |
| Body LG | Manrope | 16px | 400 | 1.5 | 0px | Standard body copy |
| Body LG (system-ui) | System-UI | 16px | 400 | 1.5 | 0px | Body copy (system font variant) |
| Body MD | Metrophobic | 15.2px | 600 | 1 | 0.2px | Emphasized body; strong text |
| Body SM | Manrope | 14px | 400 | 1.79 | 0px | Small body; tertiary content |
| Body XS | System-UI | 13px | 400 | 1.7 | 0px | Caption/footnote text |
| Nav XS | Manrope | 13px | 700 | 1.5 | 0px | Navigation link text |
| Nav XS (Cairo) | Cairo | 13px | 700 | 1.5 | 0px | Navigation link (Arabic variant) |
| Label MD | System-UI | 16px | 400 | 1.7 | 0px | Form label; input text |
| Label MD (Cairo) | Cairo | 16px | 400 | 1.7 | 0px | Form label (Arabic variant) |
| Label SM | System-UI | 14px | 400 | 1.5 | 0px | Small form label; input hint |
Primary Button
{colors.primary} (#3977E4){colors.canvas} (#FFFFFF){typography.button-md} (16px, 400 weight, Metrophobic)14px 10px48px2px solid {colors.primary} (#3977E4){rounded.md} (10px){colors.accent} (#335AB7), text {colors.canvas}{colors.accent}, border {colors.accent}{colors.muted}Secondary Button (Filled)
{colors.accent} (#335AB7){colors.canvas} (#FFFFFF){typography.button-lg} (20px, 700 weight, Manrope)10px 20px46px1px solid {colors.accent} (#335AB7){rounded.md} (10px){colors.primary} (#3977E4){colors.primary}, border {colors.primary}Small Button (Alert variant)
{colors.accent-3} (#BB0A21){colors.canvas} (#FFFFFF){typography.button-xs} (14px, 600 weight, System-UI)6px 10px36px{rounded.xl} (17px — pill shape)#840A1B (darkened), box shadow rgba(0, 0, 0, 0.12) 0px 2px 10pxIcon Button
{colors.surface} (#072F75){colors.body} (#212529)1px 6px60px60px{rounded.full} (30px — circular)Default Card
{colors.canvas} (#FFFFFF){colors.body} (#212529)1px solid rgba(0, 0, 0, 0.176){rounded.sm} (6px){typography.body-lg} (16px, 400 weight, System-UI)Small Card Variant
rgba(255, 255, 255, 0.05) (translucent){colors.link} (#0D6EFD)5px 5px 0px 0px (rounded top only){typography.body-lg} (16px, 400 weight, Manrope)Text Input (Focus State)
{colors.canvas} (#FFFFFF)rgb(134, 183, 254) (light blue)rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem{colors.body} (#212529){typography.label-md} (16px, 400 weight, System-UI)gray0.5, background var(--bs-secondary-bg)brightness(90%)Form Label
{typography.label-md} (16px, 400 weight, System-UI) or {typography.label-md-cairo-regular} (Arabic){colors.body} (#212529)Primary Navigation
{colors.body} (#212529){typography.nav-xs} (13px, 700 weight, Manrope)0px 40px{colors.link} (#0D6EFD), opacity 1rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem, outline 0px{colors.muted} (#333333), background transparentNavigation (Arabic variant)
{typography.nav-xs-cairo-regular} (13px, 700 weight, Cairo)Default Link
{colors.surface} (#072F75){colors.canvas} (#FFFFFF)1px solid {colors.surface} (#072F75){rounded.md} (10px)10px 0px{typography.body-xl} (18px, 400 weight, Manrope)rgb(246, 139, 31), background initial, border nonergb(98, 161, 216), outline 0pxrgb(193, 101, 8), outline 0pxLarge Link Variant
{colors.body} (#212529){typography.body-lg} (16px, 400 weight, Manrope)Default Footer
{colors.body} (#212529){typography.body-lg-system-ui} (16px, 400 weight, System-UI){typography.body-lg-system-ui} using Cairo fontBase Unit: {spacing.xxs} = 4px
Scale:
{spacing.xxs} = 4px — micro spacing; internal padding within tight components{spacing.xs} = 8px — small padding; input fields, small buttons{spacing.sm} = 12px — compact spacing; card internal padding{spacing.md} = 16px — standard spacing; section padding, default gap{spacing.lg} = 20px — generous spacing; heading underscore, link gaps{spacing.xl} = 24px — large spacing; container padding, module separation{spacing.xxl} = 28px — extra large; block spacing{spacing.xxxl} = 32px — section margins{spacing.section} = 40px — horizontal padding on full-width sections{spacing.band} = 60px — vertical spacing between major sections; hero/band heightUsage Context:
{spacing.section} (40px) to {spacing.band} (60px) at large viewports; reduces to {spacing.md} (16px) on mobile{spacing.md} to {spacing.lg} (16–20px){spacing.xs} to {spacing.md} (8–16px) horizontally; {spacing.xs} to {spacing.lg} (8–20px) vertically{spacing.lg} to {spacing.xl} (20–24px)The system employs intentional colour blocking over whitespace relief. While generous line heights (1.5–1.79) ensure readable body copy, vertical spacing between sections comes from alternating background colours ({colors.canvas} white, {colors.surface} navy) rather than large gaps. This creates visual separation without requiring large blank areas, keeping the page compact and scannable. Horizontal whitespace is reserved for card/button breathing room and form field clarity.
{rounded.none} = 0px — images, full-width sections, sharp edges{rounded.xs} = 4px — minimal rounding; rare use{rounded.sm} = 6px — card corners; default container radius{rounded.md} = 10px — button standard; link containers{rounded.lg} = 12px — button default on measured variants{rounded.xl} = 17px — pill buttons (small alert variant); near-full rounding{rounded.full} = 9999px — fully circular; icon buttons, social badges1px): Card borders, subtle dividers, input focus ring borders2px): Primary button borders; strong emphasis dividers| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow; color blocking | Buttons, cards, section backgrounds |
| Micro (sm) | rgba(0, 0, 0, 0.8) 0px 10px 20px -20px inset | Inset shadow on dropdowns; subtle depth |
| Light (md) | rgba(0, 0, 0, 0.075) 0px 2px 4px 0px | Custom elements; barely perceptible lift |
| Medium (lg) | rgba(0, 0, 0, 0.12) 0px 5px 12px 0px | Card elevation; modal backing depth |
| Thin (xl) | rgba(0, 0, 0, 0.04) 0px 0.320247px 0.640494px 0.160124px | Button subtle shadow; minimal layering |
Shadow Philosophy: The system prioritizes colour-blocked depth over shadow layering. Navy and blue surfaces act as the primary depth signifier; shadows are used sparingly and with very low opacity. This approach suits institutional design—depth comes from intentional colour choices and surface placement rather than realistic drop shadows. Buttons and cards sit flat when at rest; shadows appear only on hover or active states to signal interaction.
Gradient Overlays (decorative depth):
linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75)) — fade to transparent overlay; text readability on hero imageslinear-gradient(200deg, rgb(15, 27, 92) 60%, rgb(51, 90, 183) 100%) — navy to blue angle; 200deg angle creates directional visual flowlinear-gradient(200deg, rgb(15, 27, 92) 60%, rgba(51, 90, 183, 0.58) 100%) — same angle, faded second colour; translucent effect{colors.surface} navy sections with {colors.canvas} white sections; avoid relying on shadows alone{rounded.sm} (6px) or {rounded.none} (0px) for institutional confidence{rounded.full} (9999px) for soft, modern interaction surfaceslinear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75)) to ensure white/light text is readable#3977E4 → accent #335AB7); ensure sufficient contrastbox-shadow values; the system uses flat, colour-based depth{colors.accent-1}, {colors.accent-2}, and {colors.accent-4} have no assigned role; use only for decoration or as instructed by design specs{rounded.md} (10px) or {rounded.xl} (17px for pill); don't use intermediate valuesrgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem and border colour shift for keyboard accessibility| Viewport | Width | Content Width | Grid | Nav Visible Links | Key Changes |
|---|---|---|---|---|---|
| Mobile | 375px | 359px | 4 | 15 | Menu toggle active; single-column grid; {typography.heading-lg} (25px) displayed; padding-x {spacing.md} (16px) |
| Tablet | 768px | 720px | 4 | 15 | Menu toggle remains; content column expands; nav remains compressed; body text {typography.body-lg} (16px) |
| Small Desktop | 1024px | 960px | 5 | 8 | Nav begins to unwrap; 5-column grid; heading size holds at 32px |
| Desktop | 1280px | 1200px | 8 | 8 | Full 8-column grid; max width constrained; section padding {spacing.section} (40px) |
| Large Desktop | 1440px | 1360px | 8 | 8 | Max width 1360px; full spacing; all nav links visible |
{spacing.xs} to {spacing.md} horizontally; {spacing.xs} to {spacing.lg} vertically to meet 44px height{spacing.section} (40px) at desktop to {spacing.md} (16px) on mobile; vertical spacing ({spacing.band} 60px) maintained for rhythm#3977E4) — all main call-to-action buttons#335AB7) — secondary buttons, hover states#0D6EFD) — inline hyperlinks, tertiary CTAs#FFFFFF) — default page background#072F75) — card backgrounds, hero bands#111111) — primary text hierarchy#212529) — standard copy#333333) — captions, hints{spacing.xs} to {spacing.md} and height 36–48px{colors.canvas}) with 6px radius and 1px border: Never shadow; rely on border and background colour contrastlinear-gradient(200deg, rgb(15, 27, 92) 60%, rgb(51, 90, 183) 100%) plus linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75)) for text readabilityrgb(134, 183, 254)), box shadow applies rgba(13, 110, 253, 0.25) 0px 0px 0px 0.25rem, outline 0px#0D6EFD); maintain 1.5 line height for multilingual support{rounded.full} (9999px) and square dimensions (60px, 30px){colors.surface}) and white ({colors.canvas}) backgrounds; internal padding {spacing.md} to {spacing.xl} (16–24px)#3977E4 → Accent #335AB7 on hover; avoid shadow scaling{colors.accent-3} — #BB0A21) appears in button hover states but is not assigned an error role.{colors.accent-1}, {colors.accent-2}, {colors.accent-4}, and {colors.accent-5} were observed in the markup but have no measured semantic function. Treat these as brand flourishes or design experiment colours only.0.5 for disabled inputs, 0.05 for translucent card backgrounds), a complete disabled state opacity scale was not extracted; additional opacity tiers may exist in production.colors:
primary: "#3977E4"
accent: "#335AB7"
link: "#0D6EFD"
accent-1: "#4A5464"
accent-2: "#0051C3"
accent-3: "#BB0A21"
accent-4: "#D4DEF0"
accent-5: "#1C2E55"
canvas: "#FFFFFF"
surface: "#072F75"
surface-alt: "#0F1B5C"
ink: "#111111"
body: "#212529"
muted: "#333333"
faint: "#404040"
neutral-1: "#000000"
typography:
display:
size: 60px
weight: 300
line-height: 1.2
letter-spacing: 0px
font-family: -apple-system
heading-xxl:
size: 38px
weight: 500
line-height: 1.05
letter-spacing: 0px
font-family: Montserrat Bold
heading-xl:
size: 32px
weight: 500
line-height: 1.2
letter-spacing: 0px
font-family: Montserrat Bold
heading-lg:
size: 25px
weight: 500
line-height: 1.2
letter-spacing: 0px
font-family: Montserrat Bold
heading-md:
size: 22px
weight: 500
line-height: 1.14
letter-spacing: 0px
font-family: Montserrat Bold
heading-sm:
size: 20px
weight: 500
line-height: 1.2
letter-spacing: 0px
font-family: Montserrat Bold
heading-xs:
size: 18px
weight: 700
line-height: 1.2
letter-spacing: 0px
font-family: Montserrat Bold
button-xl:
size: 26px
weight: 700
line-height: 1.2
letter-spacing: 0px
font-family: Montserrat Bold
button-lg:
size: 20px
weight: 700
line-height: 1.5
letter-spacing: 0px
font-family: Manrope
button-md:
size: 16px
weight: 400
line-height: 1
letter-spacing: 0px
font-family: Metrophobic
button-sm:
size: 14.4px
weight: 600
line-height: 1
letter-spacing: 0.2px
font-family: Metrophobic
button-xs:
size: 14px
weight: 600
line-height: 1
letter-spacing: 0px
font-family: System-UI
button-xs-strong:
size: 14px
weight: 700
line-height: 1.5
letter-spacing: 0px
font-family: Manrope
body-xl:
size: 18px
weight: 400
line-height: 1.5
letter-spacing: 0px
font-family: Manrope
body-lg:
size: 16px
weight: 400
line-height: 1.5
letter-spacing: 0px
font-family: Manrope
body-lg-system-ui:
size: 16px
weight: 400
line-height: 1.5
letter-spacing: 0px
font-family: System-UI
body-md:
size: 15.2px
weight: 600
line-height: 1
letter-spacing: 0.2px
font-family: Metrophobic
body-sm:
size: 14px
weight: 400
line-height: 1.79
letter-spacing: 0px
font-family: Manrope
body-xs:
size: 13px
weight: 400
line-height: 1.7
letter-spacing: 0px
font-family: System-UI
nav-xs:
size: 13px
weight: 700
line-height: 1.5
letter-spacing: 0px
font-family: Manrope
nav-xs-cairo-regular:
size: 13px
weight: 700
line-height: 1.5
letter-spacing: 0px
font-family: Cairo
label-md:
size: 16px
weight: 400
line-height: 1.7
letter-spacing: 0px
font-family: System-UI
label-md-cairo-regular:
size: 16px
weight: 400
line-height: 1.7
letter-spacing: 0px
font-family: Cairo
label-sm:
size: 14px
weight: 400
line-height: 1.5
letter-spacing: 0px
font-family: System-UI
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 40px
band: 60px
rounded:
none: 0px
xs: 4px
sm: 6px
md: 10px
lg: 12px
xl: 17px
full: 9999px
shadows:
sm: "rgba(0, 0, 0, 0.8) 0px 10px 20px -20px inset"
md: "rgba(0, 0, 0, 0.075) 0px 2px 4px 0px"
lg: "rgba(0, 0, 0, 0.12) 0px 5px 12px 0px"
xl: "rgba(0, 0, 0, 0.04) 0px 0.320247px 0.640494px 0.160124px"
borders:
thin: 1px
medium: 2px
z-index:
base: 1
base-2: 2
base-3: 3
base-9: 9
dropdown: 20
dropdown-99: 99
sticky: 999
modal: 9999
gradients:
overlay-dark: "linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75))"
hero: "linear-gradient(200deg, rgb(15, 27, 92) 60%, rgb(51, 90, 183) 100%)"
hero-faded: "linear-gradient(200deg, rgb(15, 27, 92) 60%, rgba(51, 90, 183, 0.58) 100%)"
breakpoints:
mobile: 375px
tablet: 768px
desktop-sm: 1024px
desktop: 1280px
desktop-lg: 1440px