Remixes of openquiz.ai
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: Openquiz
description: |
OpenQuiz's design system embodies a modern, education-focused aesthetic built
on clarity and accessibility. The visual personality is clean and confident,
with a strong reliance on high-contrast monochromatic foundations paired with
carefully placed accent colours that guide user attention. The system
prioritizes legibility and cognitive ease—critical for a language-learning
platform—using generous whitespace, straightforward typography, and subtle
elevation to create visual hierarchy. The design feels contemporary yet
approachable, avoiding unnecessary ornamentation while maintaining visual
interest through thoughtful use of cards, badges, and depth layers. The
overall mood is purposeful and energetic, reflecting the active learning
journey users undertake.
source:
url: "https://openquiz.ai/"
pagesAnalyzed: 6
extractedAt: 2026-10-11
tokensMeasured: true
colors:
primary: "#000000"
canvas: "#FFFFFF"
surface: "#212529"
surface-alt: "#EAECF0"
on-primary: "#FFFFFF"
ink: "#0F1729"
body: "#1A1A1A"
muted: "#212529"
faint: "#475569"
hairline: "#DBDFE6"
error: "#DC3545"
accent-1: "#2563EB"
accent-2: "#3B82F6"
accent-3: "#A7F3D0"
accent-4: "#0D6EFD"
accent-5: "#94A3B8"
accent-6: "#047857"
accent-7: "#10B981"
neutral-1: "#F6F7F9"
typography:
display-lg:
fontFamily: -apple-system
fontSize: 56px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0px
display-md:
fontFamily: -apple-system
fontSize: 48px
fontWeight: 900
lineHeight: 1
letterSpacing: 0px
heading-xxl:
fontFamily: -apple-system
fontSize: 30.4px
fontWeight: 700
lineHeight: 1.3
letterSpacing: 0px
heading-xl:
fontFamily: -apple-system
fontSize: 28px
fontWeight: 500
lineHeight: 1.2
letterSpacing: 0px
heading-lg:
fontFamily: -apple-system
fontSize: 24px
fontWeight: 500
lineHeight: 1.2
letterSpacing: 0px
heading-md:
fontFamily: -apple-system
fontSize: 20px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0px
heading-sm:
fontFamily: -apple-system
fontSize: 19.2px
fontWeight: 700
lineHeight: 1.3
letterSpacing: 0px
heading-xs:
fontFamily: -apple-system
fontSize: 16px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0px
body-xl:
fontFamily: -apple-system
fontSize: 20px
fontWeight: 300
lineHeight: 1.6
letterSpacing: 0px
body-xl-strong:
fontFamily: -apple-system
fontSize: 20px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
body-lg:
fontFamily: -apple-system
fontSize: 18px
fontWeight: 400
lineHeight: 1.56
letterSpacing: 0px
body-md:
fontFamily: -apple-system
fontSize: 16px
fontWeight: 400
lineHeight: 1.75
letterSpacing: 0px
body-sm:
fontFamily: -apple-system
fontSize: 14px
fontWeight: 400
lineHeight: 1.71
letterSpacing: 0px
body-sm-strong:
fontFamily: -apple-system
fontSize: 14px
fontWeight: 600
lineHeight: 1.43
letterSpacing: 0px
nav-md:
fontFamily: -apple-system
fontSize: 16px
fontWeight: 500
lineHeight: 1.6
letterSpacing: 0px
nav-sm:
fontFamily: -apple-system
fontSize: 14px
fontWeight: 500
lineHeight: 1.43
letterSpacing: 0px
button-md:
fontFamily: -apple-system
fontSize: 16px
fontWeight: 500
lineHeight: 1.5
letterSpacing: 0px
button-md-strong:
fontFamily: -apple-system
fontSize: 16px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
caption-sm:
fontFamily: -apple-system
fontSize: 12px
fontWeight: 400
lineHeight: 1.67
letterSpacing: 0px
caption-sm-strong:
fontFamily: -apple-system
fontSize: 12px
fontWeight: 500
lineHeight: 1.33
letterSpacing: 0px
caption-sm-tight:
fontFamily: -apple-system
fontSize: 12px
fontWeight: 600
lineHeight: 1.33
letterSpacing: 0px
caption-sm-2:
fontFamily: -apple-system
fontSize: 12px
fontWeight: 700
lineHeight: 1.33
letterSpacing: 0px
caption-sm-uppercase:
fontFamily: -apple-system
fontSize: 12px
fontWeight: 700
lineHeight: 1.33
letterSpacing: 1.68px
textTransform: uppercase
caption-xs:
fontFamily: -apple-system
fontSize: 11px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
rounded:
none: 0px
xs: 6px
sm: 8px
md: 10px
lg: 12px
xl: 14px
xxl: 24px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 40px
band: 48px
borderWidths:
thin: 1px
medium: 2px
shadows:
sm: "rgba(0, 0, 0, 0.05) 0px 1px 2px 0px"
md: "rgba(0, 0, 0, 0.075) 0px 2px 4px 0px"
lg: "rgba(0, 0, 0, 0.08) 0px 4px 12px 0px"
xl: "rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6px"
elevationStrategy: layered-micro
themes:
derived: dark # the other theme is the site's measured palette
light:
bg: "#FFFFFF"
surface: "#212529"
surfaceRaised: "#202429"
text: "#0F1729"
textMuted: "#1A1A1A"
border: "#DBDFE6"
accent: "#000000"
accentFg: "#FFFFFF"
focusRing: "#000000"
elevation: shadow
dark:
bg: "#0F0F10"
surface: "#1D1D1E"
surfaceRaised: "#29292A"
text: "#F5F5F5"
textMuted: "#9E9E9E"
border: "#353536"
accent: "#858585"
accentFg: "#0B0B0C"
focusRing: "#666666"
elevation: "border+surface"
contrastFailures:
- "light: text on surface = 1.16:1 (needs 4.5:1)"
gradients:
- context: section
kind: linear
value: "linear-gradient(to right bottom, rgb(9, 9, 11), rgb(24, 24, 27), rgb(2, 44, 34))"
- context: section
kind: linear
value: "linear-gradient(to right bottom, rgb(246, 247, 249), rgb(255, 255, 255), rgb(234, 236, 240))"
components:
button-primary:
typography: "{typography.button-md}"
textColor: "{colors.on-primary}"
height: 48px
padding: "0px 20px 0px 20px"
rounded: "{rounded.sm}"
backgroundColor: "{colors.primary}"
button-primary-sm:
typography: "{typography.nav-sm}"
textColor: "{colors.on-primary}"
height: 36px
padding: "0px 12px 0px 12px"
rounded: "{rounded.sm}"
backgroundColor: "{colors.primary}"
button-secondary:
typography: "{typography.nav-sm}"
textColor: "{colors.ink}"
height: 48px
padding: "0px 32px 0px 32px"
rounded: "{rounded.sm}"
backgroundColor: "{colors.surface-alt}"
button-icon:
textColor: "{colors.on-primary}"
height: 40px
fontSize: 16px
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.lg}"
backgroundColor: "{colors.primary}"
button-outline:
typography: "{typography.button-md}"
textColor: "{colors.ink}"
border: "1px solid {colors.hairline}"
height: 48px
padding: "0px 20px 0px 20px"
rounded: "{rounded.sm}"
backgroundColor: "{colors.neutral-1}"
button-outline-sm:
textColor: "{colors.ink}"
border: "1px solid {colors.hairline}"
height: 40px
padding: "8px 12px 8px 12px"
fontSize: 14px
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.43
rounded: "{rounded.sm}"
backgroundColor: "{colors.neutral-1}"
card:
textColor: "{colors.ink}"
border: "2px solid rgba(200, 200, 220, 0.4)"
fontSize: 16px
boxShadow: "rgba(0, 0, 0, 0.08) 0px 4px 12px 0px"
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xxl}"
backgroundColor: "rgba(255, 255, 255, 0.9)"
card-sm:
textColor: "{colors.ink}"
border: "1px solid {colors.hairline}"
padding: "12px 12px 12px 12px"
fontSize: 16px
boxShadow: "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6px"
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xl}"
backgroundColor: "rgba(255, 255, 255, 0.95)"
navigation:
textColor: "{colors.ink}"
height: 36px
fontSize: 16px
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.5
navigation-lg:
textColor: "{colors.body}"
height: 82px
padding: "16px 0px 16px 0px"
fontSize: 16px
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.6
backgroundColor: "{colors.canvas}"
footer:
textColor: "{colors.ink}"
border: "1px solid {colors.hairline}"
fontSize: 16px
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.5
backgroundColor: "rgba(234, 236, 240, 0.25)"
footer-lg:
textColor: "{colors.on-primary}"
padding: "48px 0px 48px 0px"
fontSize: 16px
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.6
backgroundColor: "{colors.surface}"
link:
textColor: "{colors.ink}"
fontSize: 16px
fontFamily: -apple-system
fontWeight: 400
lineHeight: 1.5
link-2:
typography: "{typography.caption-sm}"
textColor: "rgb(80, 88, 104)"
badge-filled:
textColor: "{colors.on-primary}"
height: 20.375px
padding: "4.2px 7.8px 4.2px 7.8px"
fontSize: 12px
fontFamily: -apple-system
fontWeight: 700
lineHeight: 1
rounded: "{rounded.xs}"
backgroundColor: "{colors.surface}"
badge-filled-2:
textColor: "rgb(248, 249, 250)"
height: 20.375px
padding: "4.2px 7.8px 4.2px 7.8px"
fontSize: 12px
fontFamily: -apple-system
fontWeight: 700
lineHeight: 1
rounded: "{rounded.xs}"
backgroundColor: "{colors.surface}"
states:
other-hover:
target: other
state: hover
boxShadow: "rgba(0, 0, 0, 0.08) 0px 4px 12px"
transform: "translateY(-2px) translateZ(0px)"
card-hover:
target: card
state: hover
boxShadow: none
button-hover:
target: button
state: hover
boxShadow: "rgba(0, 0, 0, 0.2) 0px 4px 12px"
transform: "translateY(-2px)"
borderColor: "rgb(51, 51, 51)"
backgroundColor: "rgb(51, 51, 51)"
breakpoints:
- width: 375
containerWidth: 375
gridColumns: 2
navLinksVisible: 0
menuToggleVisible: true
headingPx: 36
bodyPx: 16
sectionPaddingX: 0
- width: 768
containerWidth: 768
gridColumns: 4
navLinksVisible: 4
menuToggleVisible: true
headingPx: 48
bodyPx: 16
sectionPaddingX: 0
- width: 1024
containerWidth: 896
gridColumns: 4
navLinksVisible: 4
menuToggleVisible: true
headingPx: 48
bodyPx: 16
sectionPaddingX: 0
- width: 1280
containerWidth: 896
gridColumns: 4
navLinksVisible: 4
menuToggleVisible: true
headingPx: 48
bodyPx: 16
sectionPaddingX: 0
- width: 1440
containerWidth: 1280
gridColumns: 4
navLinksVisible: 4
menuToggleVisible: true
headingPx: 48
bodyPx: 16
sectionPaddingX: 0
coverage:
statesFound: 71
gradientsFound: 2
rolesUnassigned: 8
archetypesUnnamed: 0
archetypesDetected: 0
responsiveMeasured: true
stylesheetsBlocked: true
semanticRampDeclared: true
OpenQuiz's design system embodies a modern, education-focused aesthetic built on clarity and accessibility. The visual personality is clean and confident, with a strong reliance on high-contrast monochromatic foundations paired with carefully placed accent colours that guide user attention. The system prioritizes legibility and cognitive ease—critical for a language-learning platform—using generous whitespace, straightforward typography, and subtle elevation to create visual hierarchy. The design feels contemporary yet approachable, avoiding unnecessary ornamentation while maintaining visual interest through thoughtful use of cards, badges, and depth layers. The overall mood is purposeful and energetic, reflecting the active learning journey users undertake.
Key Characteristics
{colors.primary} — #000000): Primary call-to-action buttons, active states, and brand accent. Used to command attention and establish hierarchy across interactive surfaces.{colors.accent-1} — #2563EB): Decorative accent; no measured functional role in the extraction.{colors.accent-2} — #3B82F6): Decorative accent; no measured functional role in the extraction.{colors.accent-3} — #A7F3D0): Decorative accent; no measured functional role in the extraction.{colors.accent-4} — #0D6EFD): Decorative accent; no measured functional role in the extraction.{colors.accent-5} — #94A3B8): Decorative accent; no measured functional role in the extraction.{colors.accent-6} — #047857): Decorative accent; no measured functional role in the extraction.{colors.accent-7} — #10B981): Decorative accent; no measured functional role in the extraction.{colors.primary} — #000000): Primary button fill and active navigation states. Provides maximum contrast and signal strength.{colors.canvas} — #FFFFFF): Default page background and label text on brand-coloured surfaces. The foundational light surface.{colors.surface} — #212529): Card and panel backgrounds; secondary and caption text. A near-black neutral for depth and contrast.{colors.surface-alt} — #EAECF0): Alternating section band backgrounds. Provides subtle visual separation between content zones.{colors.ink} — #0F1729): Primary heading and dominant text colour. The darkest semantic neutral for maximum readability.{colors.body} — #1A1A1A): Body copy and descriptive text. Nearly as dark as ink but reserved for flowing prose.{colors.faint} — #475569): Tertiary text, placeholders, and helper text. Intentionally de-emphasized for visual hierarchy.{colors.hairline} — #DBDFE6): 1px borders, dividers, and subtle form strokes. Barely-visible structure lines.{colors.neutral-1} — #F6F7F9): Light neutral surface; used for secondary button backgrounds and subtle surface differentiation.{colors.error} — #DC3545): Error states, destructive actions, and validation failures. High-saturation red for immediate recognition.Primary: -apple-system (system stack including San Francisco, Segoe UI, Roboto with fallback to -apple-system-font)
Secondary: None explicitly defined; all typography uses the primary system stack.
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display XL | -apple-system | 56px | 700 | 1.2 | 0px | Hero / marketing headline; largest display size |
| Display MD | -apple-system | 48px | 900 | 1 | 0px | Bold display use; ultra-heavy weight for emphasis |
| Heading XXL | -apple-system | 30.4px | 700 | 1.3 | 0px | Major section head; strong visual anchor |
| Heading SM | -apple-system | 19.2px | 700 | 1.3 | 0px | Smaller section header |
| Heading XL | -apple-system | 28px | 500 | 1.2 | 0px | Major heading; medium-weight for clarity |
| Heading LG | -apple-system | 24px | 500 | 1.2 | 0px | Large section heading |
| Heading MD | -apple-system | 20px | 700 | 1.2 | 0px | Mid-level heading; bold weight |
| Heading XS | -apple-system | 16px | 700 | 1.2 | 0px | Small heading; emphasizes structure |
| Body XL | -apple-system | 20px | 300 | 1.6 | 0px | Large body text; light weight for openness |
| Body XL Strong | -apple-system | 20px | 600 | 1.5 | 0px | Emphasized large body copy |
| Body LG | -apple-system | 18px | 400 | 1.56 | 0px | Large body paragraph |
| Body MD | -apple-system | 16px | 400 | 1.75 | 0px | Standard body copy; primary reading text |
| Body SM Strong | -apple-system | 14px | 600 | 1.43 | 0px–2.24px | Small bold text; uppercase variant available with 1.4–2.24px tracking |
| Body SM | -apple-system | 14px | 400 | 1.71 | 0px | Small body text; secondary paragraphs |
| Button MD | -apple-system | 16px | 500 | 1.5 | 0px | Standard button label |
| Button MD Strong | -apple-system | 16px | 600 | 1.5 | 0px | Emphasis button text |
| Nav SM | -apple-system | 14px | 500 | 1.43 | 0px | Small navigation link text |
| Nav MD | -apple-system | 16px | 500 | 1.6 | 0px | Standard navigation link |
| Caption SM | -apple-system | 12px | 400 | 1.67 | 0px | Fine print and captions |
| Caption SM Strong | -apple-system | 12px | 500 | 1.33 | 0px | Emphasized caption |
| Caption SM Tight | -apple-system | 12px | 600 | 1.33 | 0px | Bold compact caption |
| Caption SM Uppercase | -apple-system | 12px | 700 | 1.33 | 1.68px | All-caps label; heavy weight and tracking |
| Caption XS | -apple-system | 11px | 600 | 1.5 | 0px | Smallest caption; bold for readability at tiny scale |
-apple-system ensures native rendering and fast load times across all platforms.Primary
{colors.primary} (#000000){colors.canvas} (#FFFFFF){spacing.md} top/bottom × {spacing.lg} left/right (16px × 20px){typography.button-md} (16px, weight 500, line-height 1.5){rounded.xs} (6px)rgba(0, 0, 0, 0.2) 0px 4px 12px, transform translateY(-2px), background darkens to rgb(51, 51, 51), border rgb(51, 51, 51)Primary Small
{colors.primary} (#000000){colors.canvas} (#FFFFFF){spacing.xs} top/bottom × {spacing.sm} left/right (8px × 12px){typography.nav-sm} (14px, weight 500, line-height 1.43){rounded.xs} (6px)rgba(0, 0, 0, 0.2) 0px 4px 12px, transform translateY(-2px), background darkens to rgb(51, 51, 51)Secondary
{colors.neutral-1} (#F6F7F9){colors.ink} (#0F1729){spacing.md} top/bottom × 32px left/right{typography.nav-sm} (14px, weight 500, line-height 1.43){rounded.xs} (6px)Ghost / Outline
{colors.neutral-1} (#F6F7F9){colors.ink} (#0F1729){spacing.md} top/bottom × {spacing.lg} left/right (16px × 20px){typography.button-md} (16px, weight 500, line-height 1.5){colors.hairline} (#DBDFE6){rounded.xs} (6px)Outline Small
{colors.neutral-1} (#F6F7F9){colors.ink} (#0F1729){typography.nav-sm} (14px, weight 400, line-height 1.43){colors.hairline} (#DBDFE6){rounded.xs} (6px)Icon Button
{colors.primary} (#000000){colors.canvas} (#FFFFFF){rounded.lg} (12px)Card Default
rgba(255, 255, 255, 0.9) (near-white with slight transparency){colors.ink} (#0F1729)rgba(200, 200, 220, 0.4) (soft purple-tinged hairline){rounded.xxl} (24px){typography.body-md} (16px, weight 400, line-height 1.75)rgba(0, 0, 0, 0.08) 0px 4px 12px 0pxrgba(0, 0, 0, 0.1) 0px 8px 16px, transform translateY(-4px), border colour shifts to primary darkCard Small
rgba(255, 255, 255, 0.95) (near-opaque white){colors.ink} (#0F1729){colors.hairline} (#DBDFE6){rounded.xl} (14px){typography.body-md} (16px, weight 400, line-height 1.75)rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6pxrgba(0, 0, 0, 0.12) 0px 8px 24px, transform translateY(-4px)Content Section (dark)
linear-gradient(to right bottom, rgb(9, 9, 11), rgb(24, 24, 27), rgb(2, 44, 34)){colors.canvas} (#FFFFFF){spacing.band} — 48px or larger)Content Section (light)
linear-gradient(to right bottom, rgb(246, 247, 249), rgb(255, 255, 255), rgb(234, 236, 240)){colors.ink} (#0F1729)No detailed input/form styling was extracted. See "Known Gaps."
Navigation Default (Link)
{colors.ink} (#0F1729){typography.nav-md} (16px, weight 500, line-height 1.6)Navigation Large (Header)
{colors.canvas} (#FFFFFF){colors.body} (#1A1A1A)Footer Default (Light)
rgba(234, 236, 240, 0.25) (very subtle alternating band){colors.ink} (#0F1729){typography.body-md} (16px, weight 400, line-height 1.6){colors.hairline} (#DBDFE6) on topFooter Dark (Alternate)
{colors.surface} (#212529){colors.canvas} (#FFFFFF)Badge Filled
{colors.surface} (#212529){colors.canvas} (#FFFFFF){typography.caption-sm-tight} (12px, weight 700, line-height 1.33){rounded.xs} (6px)Badge Filled Alt
{colors.surface} (#212529)rgb(248, 249, 250) (off-white){rounded.xs} (6px)Link Default
{colors.ink} (#0F1729){typography.body-md} (16px, weight 400, line-height 1.5)Link Small
{colors.faint} (#475569)Base unit: {spacing.xs} = 8px
Full Scale:
{spacing.xxs} = 4px (micro-spacing between elements){spacing.xs} = 8px (tight padding, small gaps){spacing.sm} = 12px (button/badge padding, tight spacing){spacing.md} = 16px (standard padding, grid gutter){spacing.lg} = 20px (generous padding, larger gaps){spacing.xl} = 24px (section-level margin, card spacing){spacing.xxl} = 28px (large margin){spacing.xxxl} = 32px (very large margin){spacing.section} = 40px (between major sections){spacing.band} = 48px (between content bands; hero sections)Usage:
{spacing.md} vertical × {spacing.lg} horizontal (16px × 20px){spacing.md} to {spacing.xl} (16–24px) depending on card size{spacing.section} to {spacing.band} (40–48px) vertical{spacing.md} (16px) between columns{spacing.md} (16px)Whitespace is treated as a first-class design element. The system favours breathing room over density: large headings sit atop generous vertical margins, cards maintain internal padding, and sections are clearly separated by margin bands or alternating background colours. Body text uses 1.56–1.75 line-height to prevent crowding. This approach is deliberate—the platform is teaching-focused, and visual simplicity reduces cognitive load. Every interactive element has breathing room, and dense information is broken into scannable sections rather than packed into a single view.
{rounded.none} = 0px (buttons on certain states; sharp edges for structure){rounded.xs} = 6px (badges, icon buttons; tight rounding){rounded.sm} = 8px (cards and containers; moderate rounding){rounded.md} = 10px (component accent rounding){rounded.lg} = 12px (icon buttons, larger cards; strong rounding){rounded.xl} = 14px (cards and panels; pronounced rounding){rounded.xxl} = 24px (large card surfaces; very rounded appearance){rounded.full} = 9999px (pill buttons and avatars; circular/fully rounded)Component Mapping:
{rounded.xs} (6px) — modern flat appearance{rounded.xxl} (24px) — strong visual softness{rounded.xl} (14px) — moderate rounding{rounded.lg} (12px){rounded.xs} (6px){colors.hairline} strokes| Level | Treatment | Use |
|---|---|---|
| Flat | None | Base surfaces, backgrounds |
| SM (1px lift) | rgba(0, 0, 0, 0.05) 0px 1px 2px 0px | Minimal card elevation, subtle depth cue |
| MD (2px lift) | rgba(0, 0, 0, 0.075) 0px 2px 4px 0px | Card and container hover states |
| LG (4px lift) | rgba(0, 0, 0, 0.08) 0px 4px 12px 0px | Default card shadow; standard elevation for interactive surfaces |
| XL (20px lift) | rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.1) 0px 8px 10px -6px | Modal cards, prominent popovers; layered multi-shadow for depth |
Shadow Philosophy:
OpenQuiz uses a layered-micro elevation strategy. Rather than a single strong shadow, most surfaces layer multiple near-transparent shadows to create barely-perceptible depth. This is sophisticated and contemporary: the system avoids harsh shadows in favour of gentle optical lift. Cards at rest use {colors.lg} or similar; on hover, they shift to taller shadows (XL) and move up slightly (transform translateY(-4px)). The effect is refined and responsive without feeling playful or cartoonish.
0.25): Used in decorative overlays and subtle background layers (e.g., rgba(200, 200, 220, 0.4) card borders)0.50): Medium transparency for secondary surfaces or hover states#000000 on white) as the strongest call to action. The high contrast and solid fill immediately draw the eye; reserve it for the most important interaction per screen.{colors.neutral-1} with {colors.hairline} border) creates clear hierarchy without competing for attention.{rounded.xs} (6px); larger cards use {rounded.xl} to {rounded.xxl} (14–24px). Never mix sharp and rounded in the same interface.translateY transform. The combination of rgba(0, 0, 0, 0.2) 0px 4px 12px shadow and translateY(-2px) creates a responsive, tactile feel.text-transform: uppercase, apply tracking of 1.4–2.24px to prevent visual cramping.{colors.surface} — #212529 fill) to tag content and categorize posts. They are high-contrast and immediately scannable.{colors.surface-alt}, or gradient) to break visual monotony without adding borders.{colors.hairline} — #DBDFE6) to 1px for subtlety. Avoid thick borders; the system communicates depth through shadow and colour instead.{rounded.none}). All measured buttons use {rounded.xs} (6px) minimum. Sharp corners feel dated and break the refined aesthetic.#DC3545) for general emphasis. Reserve it strictly for errors, destructive actions, and validation failures. Overuse dulls its signal.#DBDFE6 hairline colour at widths greater than 1px. Thicker hairlines look inconsistent; use {colors.surface-alt} or secondary backgrounds for larger borders.{rounded.xxl} (24px), child elements should use {rounded.lg} or {rounded.xl}, not {rounded.xs}.| Breakpoint | Viewport Width | Content Width | Grid Columns | Nav Visible | Menu Toggle | Display Size | Body Size |
|---|---|---|---|---|---|---|---|
| Mobile | 375px | 375px | 2 | 0 | Yes | 36px | 16px |
| Tablet | 768px | 768px | 4 | 4 | Yes | 48px | 16px |
| Laptop | 1024px | 896px | 4 | 4 | Yes | 48px | 16px |
| Desktop | 1280px | 896px | 4 | 4 | Yes | 48px | 16px |
| Large | 1440px | 1280px | 4 | 4 | Yes | 48px | 16px |
Key Observations:
{spacing.md} (16px) minimum between adjacent buttons or links to prevent mis-taps{colors.primary} — #000000) — solid fill, white text, 6px radius{colors.neutral-1} — #F6F7F9) — light fill, outline border, ink text{colors.canvas} — #FFFFFF) — default page surfacergba(255, 255, 255, 0.9–0.95)) — semi-transparent white for depth{colors.ink} — #0F1729) — darkest neutral, maximum contrast{colors.body} — #1A1A1A) — nearly as dark as ink; slightly softer{colors.faint} — #475569) — tertiary text, helper copy, placeholders{colors.hairline} — #DBDFE6) — 1px dividers, subtle strokes{colors.error} — #DC3545) — destructive actions, validation errorsrgba(200, 200, 220, 0.4) at 2px) — primary card variant only{colors.hairline} — #DBDFE6 at 1px) — small card variant#000000) on white with white text. No outlines, no gradients. Use only for the strongest CTA per screen.{colors.neutral-1} (#F6F7F9) background with {colors.ink} text and a 1px {colors.hairline} border.-apple-system font stack. Never substitute other fonts unless explicitly overridden by component spec.{rounded.xs}). Icon buttons use 12px ({rounded.lg}). Cards use 14–24px. Never mix radii arbitrarily.translateY(-2px) or translateY(-4px) transform. This creates tactile feedback and signals interactivity.#212529) with white text, 6px radius, 12px bold font. Used for category tags and content labels.{colors.hairline} borders, {rounded.xs} for small inputs, {spacing.md} padding).{colors.accent-1} through {colors.accent-7} appear in the design tokens but have no documented functional role in the extraction. Treat them as decorative or reserved for future use.Document Version: 1.0 | Extraction Date: 2025 | Pages Analysed: 6 | Design System: OpenQuiz