Remixes of profile.af
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: Profile
description: |
Profile.af embodies a clean, modern design system built around professional
portfolio creation and personal branding. The aesthetic is contemporary and
minimal, favoring generous whitespace, a neutral color foundation, and
strategic use of accent colors to guide focus and drive action. The system
prioritizes clarity and accessibility through careful typographic hierarchy
and component clarity. The mood is one of confidence and inclusivity—designed
to make professional profiles feel achievable and beautiful, whether for a
freelancer or an established professional. The layered-micro shadow strategy
creates barely-there depth, maintaining flatness while adding tactile
refinement when needed.
source:
url: "https://profile.af"
pagesAnalyzed: 6
extractedAt: 2026-11-02
tokensMeasured: true
colors:
primary: "#17191E"
accent: "#2563EB"
canvas: "#FFFFFF"
on-primary: "#FFFFFF"
ink: "#5F6673"
body: "#6B7280"
muted: "#D4D4D8"
hairline: "#E5E7EB"
success: "#15803D"
info: "#6D5CD3"
accent-1: "#DFDBFB"
accent-2: "#8B919C"
accent-3: "#FD71AF"
accent-4: "#BBF7D0"
accent-5: "#101216"
accent-6: "#C3E6CB"
neutral-1: "#646464"
neutral-2: "#EEF0F3"
neutral-3: "#F0FDF4"
typography:
display-xl:
fontFamily: "Plus Jakarta Sans"
fontSize: 64px
fontWeight: 800
lineHeight: 1.05
letterSpacing: -2.24px
display-lg:
fontFamily: "Plus Jakarta Sans"
fontSize: 48px
fontWeight: 800
lineHeight: 1.05
letterSpacing: -1.68px
display-md:
fontFamily: "Plus Jakarta Sans"
fontSize: 44px
fontWeight: 800
lineHeight: 1.05
letterSpacing: -1.54px
display-sm:
fontFamily: "Plus Jakarta Sans"
fontSize: 40px
fontWeight: 800
lineHeight: 1
letterSpacing: -1.2px
heading-xl:
fontFamily: "Plus Jakarta Sans"
fontSize: 30px
fontWeight: 700
lineHeight: 1.2
letterSpacing: -0.75px
heading-xl-strong:
fontFamily: Inter
fontSize: 30px
fontWeight: 800
lineHeight: 1.2
letterSpacing: -0.75px
heading-lg:
fontFamily: "Plus Jakarta Sans"
fontSize: 28px
fontWeight: 800
lineHeight: 1.15
letterSpacing: -0.7px
heading-md:
fontFamily: Inter
fontSize: 24px
fontWeight: 700
lineHeight: 1.33
letterSpacing: 0px
heading-sm:
fontFamily: "Plus Jakarta Sans"
fontSize: 18px
fontWeight: 700
lineHeight: 1.56
letterSpacing: 0px
heading-xs:
fontFamily: "Plus Jakarta Sans"
fontSize: 12px
fontWeight: 700
lineHeight: 1.33
letterSpacing: 0.6px
textTransform: uppercase
body-lg:
fontFamily: "Plus Jakarta Sans"
fontSize: 18px
fontWeight: 400
lineHeight: 1.65
letterSpacing: 0px
body-md:
fontFamily: "Plus Jakarta Sans"
fontSize: 16px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
body-sm:
fontFamily: "Plus Jakarta Sans"
fontSize: 15px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
body-xs:
fontFamily: "Plus Jakarta Sans"
fontSize: 14px
fontWeight: 400
lineHeight: 1.63
letterSpacing: 0px
body-xs-tight:
fontFamily: "Plus Jakarta Sans"
fontSize: 14px
fontWeight: 400
lineHeight: 1.43
letterSpacing: 0px
body-xs-strong:
fontFamily: "Plus Jakarta Sans"
fontSize: 14px
fontWeight: 600
lineHeight: 1.43
letterSpacing: 0px
nav-sm:
fontFamily: "Plus Jakarta Sans"
fontSize: 14px
fontWeight: 500
lineHeight: 1.43
letterSpacing: 0px
nav-xs:
fontFamily: "Plus Jakarta Sans"
fontSize: 13.12px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
button-sm:
fontFamily: "Plus Jakarta Sans"
fontSize: 14px
fontWeight: 600
lineHeight: 1.43
letterSpacing: -0.07px
button-sm-inter:
fontFamily: Inter
fontSize: 14px
fontWeight: 600
lineHeight: 1.43
letterSpacing: -0.07px
label-sm:
fontFamily: "Plus Jakarta Sans"
fontSize: 14.4px
fontWeight: 400
lineHeight: 1.67
letterSpacing: 0px
label-sm-inter:
fontFamily: Inter
fontSize: 14.4px
fontWeight: 400
lineHeight: 1.67
letterSpacing: 0px
label-xs:
fontFamily: "Plus Jakarta Sans"
fontSize: 12.8px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
caption-lg:
fontFamily: "Plus Jakarta Sans"
fontSize: 12px
fontWeight: 400
lineHeight: 1.33
letterSpacing: 0px
caption-md:
fontFamily: "Plus Jakarta Sans"
fontSize: 11.52px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
caption-md-strong:
fontFamily: "Plus Jakarta Sans"
fontSize: 11.52px
fontWeight: 700
lineHeight: 1.5
letterSpacing: 1.38px
textTransform: uppercase
caption-sm:
fontFamily: "Plus Jakarta Sans"
fontSize: 11px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
caption-sm-strong:
fontFamily: "Plus Jakarta Sans"
fontSize: 11px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
caption-xs:
fontFamily: "Plus Jakarta Sans"
fontSize: 10px
fontWeight: 600
lineHeight: 1
letterSpacing: 0.9px
textTransform: uppercase
rounded:
none: 0px
xs: 8px
sm: 10px
md: 12px
lg: 14px
xl: 16px
xxl: 22px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 32px
xxxl: 40px
section: 56px
band: 64px
borderWidths:
thin: 1px
shadows:
sm: "rgba(17, 19, 24, 0.05) 0px 1px 2px 0px"
md: "rgba(0, 0, 0, 0.08) 0px 4px 12px 0px"
lg: "rgba(255, 255, 255, 0.05) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.8) 0px 40px 80px -40px"
xl: "rgb(255, 255, 255) 0px 0px 0px 0px, rgb(255, 255, 255) 0px 0px 0px 6px, rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px"
elevationStrategy: layered-micro
themes:
derived: dark # the other theme is the site's measured palette
light:
bg: "#FFFFFF"
surface: "#F7F7F7"
surfaceRaised: "#F1F1F2"
text: "#5F6673"
textMuted: "#6B7280"
border: "#E5E7EB"
accent: "#17191E"
accentFg: "#FFFFFF"
focusRing: "#17191E"
elevation: shadow
dark:
bg: "#0F0F10"
surface: "#1D1D1E"
surfaceRaised: "#29292A"
text: "#F6F6F6"
textMuted: "#9E9E9F"
border: "#353536"
accent: "#7B849A"
accentFg: "#0B0B0C"
focusRing: "#5E667A"
elevation: "border+surface"
gradients:
- context: section
kind: linear
value: "linear-gradient(100deg, rgb(73, 204, 249) 0%, rgb(123, 104, 238) 35%, rgb(253, 113, 175) 68%, rgb(255, 200, 0) 100%)"
- context: section
kind: radial
value: "radial-gradient(90% 170% at 14% 0%, rgba(102, 71, 240, 0.07), rgba(0, 0, 0, 0) 56%), radial-gradient(75% 150% at 82% -25%, rgba(118, 18, 250, 0.05), rgba(0, 0, 0, 0) 58%), none"
components:
button-filled:
textColor: "rgb(17, 19, 24)"
border: "1px solid rgb(212, 216, 223)"
height: 48px
padding: "12px 22.4px 12px 22.4px"
fontSize: 15.2px
fontFamily: "Plus Jakarta Sans"
fontWeight: 600
lineHeight: 1.32
rounded: "{rounded.md}"
backgroundColor: "rgb(247, 248, 250)"
button-filled-sm:
typography: "{typography.body-xs-strong}"
textColor: "rgb(17, 19, 24)"
border: "1px solid rgb(212, 216, 223)"
height: 40px
padding: "8.8px 16px 8.8px 16px"
rounded: "{rounded.sm}"
backgroundColor: "rgb(247, 248, 250)"
button-primary:
textColor: "{colors.on-primary}"
height: 48px
padding: "12px 22.4px 12px 22.4px"
fontSize: 15.2px
boxShadow: "rgba(17, 19, 24, 0.05) 0px 1px 2px 0px"
fontFamily: "Plus Jakarta Sans"
fontWeight: 600
lineHeight: 1.32
rounded: "{rounded.md}"
backgroundColor: "{colors.primary}"
button-primary-sm:
typography: "{typography.body-xs-strong}"
textColor: "{colors.on-primary}"
height: 40px
padding: "8.8px 16px 8.8px 16px"
boxShadow: "rgba(17, 19, 24, 0.05) 0px 1px 2px 0px"
rounded: "{rounded.sm}"
backgroundColor: "{colors.primary}"
card-featured:
textColor: "{colors.on-primary}"
border: "1px solid rgba(255, 255, 255, 0.08)"
padding: "28px 28px 28px 28px"
fontSize: 16px
boxShadow: "rgba(255, 255, 255, 0.05) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.8) 0px 40px 80px -40px"
fontFamily: "Plus Jakarta Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xxl}"
backgroundColor: "rgb(22, 24, 29)"
card:
textColor: "{colors.neutral-1}"
border: "1px solid rgb(232, 232, 232)"
fontSize: 16px
boxShadow: "rgba(0, 0, 0, 0.08) 0px 4px 12px 0px"
fontFamily: "Plus Jakarta Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xl}"
backgroundColor: "{colors.canvas}"
card-sm:
textColor: "rgb(17, 19, 24)"
border: "1px solid {colors.hairline}"
fontSize: 16px
fontFamily: "Plus Jakarta Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xxl}"
backgroundColor: "{colors.canvas}"
badge-filled:
typography: "{typography.caption-sm-strong}"
textColor: "rgb(166, 174, 187)"
border: "1px solid rgba(255, 255, 255, 0.09)"
height: 28.0938px
padding: "4.8px 9.6px 4.8px 9.6px"
rounded: 999px
backgroundColor: "rgba(255, 255, 255, 0.05)"
badge-filled-sm:
typography: "{typography.caption-md}"
textColor: "{colors.success}"
border: "1px solid {colors.accent-4}"
height: 24.0469px
padding: "2.4px 8.8px 2.4px 8.8px"
rounded: 999px
backgroundColor: "{colors.neutral-3}"
navigation:
typography: "{typography.body-xs-tight}"
textColor: "rgb(17, 19, 24)"
height: 36px
footer:
textColor: "rgb(17, 19, 24)"
border: "1px solid {colors.hairline}"
fontSize: 16px
fontFamily: "Plus Jakarta Sans"
fontWeight: 400
lineHeight: 1.5
backgroundColor: "rgb(247, 248, 250)"
footer-sm:
typography: "{typography.caption-lg}"
textColor: "{colors.ink}"
padding: "24px 20px 24px 20px"
link:
textColor: "rgb(17, 19, 24)"
border: "1px solid {colors.hairline}"
padding: "24px 24px 24px 24px"
fontSize: 16px
fontFamily: "Plus Jakarta Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xl}"
backgroundColor: "{colors.canvas}"
link-sm:
typography: "{typography.nav-sm}"
textColor: "{colors.ink}"
padding: "8px 12px 8px 12px"
rounded: "{rounded.xs}"
states:
input-focus:
target: input
state: focus
outline: "transparent solid 2px"
borderColor: "{colors.accent}"
outlineColor: transparent
outlineWidth: 2px
input-hover:
target: input
state: hover
borderColor: transparent
backgroundColor: currentcolor
other-hover:
target: other
state: hover
backgroundColor: "rgba(249, 250, 251, 0.6)"
other-disabled:
target: other
state: disabled
opacity: 0.5
button-focus-visible:
target: button
state: focus-visible
rounded: 6px
button-active:
target: button
state: active
transform: "translateY(0.5px)"
button-hover:
target: button
state: hover
borderColor: "rgb(194, 199, 208)"
button-disabled:
target: button
state: disabled
opacity: 0.5
boxShadow: none
transform: none
nav-disabled:
target: nav
state: disabled
opacity: 0.4
nav-hover:
target: nav
state: hover
backgroundColor: transparent
other-focus:
target: other
state: focus
outline: none
input-disabled:
target: input
state: disabled
textColor: "rgb(148, 163, 184)"
backgroundColor: "rgb(241, 245, 249)"
link-hover:
target: link
state: hover
textDecoration: underline
card-hover:
target: card
state: hover
boxShadow: "rgba(15, 23, 42, 0.16) 0px 10px 28px -10px"
transform: "translateY(-2px)"
borderColor: "rgb(226, 232, 240)"
card-active:
target: card
state: active
transform: "translateY(0px)"
breakpoints:
- width: 375
containerWidth: 375
gridColumns: 3
navLinksVisible: 0
menuToggleVisible: true
headingPx: 36
bodyPx: 16
sectionPaddingX: 0
- width: 768
containerWidth: 768
gridColumns: 5
navLinksVisible: 3
menuToggleVisible: false
headingPx: 48
bodyPx: 16
sectionPaddingX: 0
- width: 1024
containerWidth: 1024
gridColumns: 5
navLinksVisible: 3
menuToggleVisible: false
headingPx: 53
bodyPx: 16
sectionPaddingX: 0
- width: 1280
containerWidth: 1280
gridColumns: 5
navLinksVisible: 3
menuToggleVisible: false
headingPx: 64
bodyPx: 16
sectionPaddingX: 0
- width: 1440
containerWidth: 1280
gridColumns: 5
navLinksVisible: 3
menuToggleVisible: false
headingPx: 64
bodyPx: 16
sectionPaddingX: 0
coverage:
statesFound: 61
gradientsFound: 2
rolesUnassigned: 9
archetypesUnnamed: 0
archetypesDetected: 0
responsiveMeasured: true
stylesheetsBlocked: false
semanticRampDeclared: true
Profile.af embodies a clean, modern design system built around professional portfolio creation and personal branding. The aesthetic is contemporary and minimal, favoring generous whitespace, a neutral color foundation, and strategic use of accent colors to guide focus and drive action. The system prioritizes clarity and accessibility through careful typographic hierarchy and component clarity. The mood is one of confidence and inclusivity—designed to make professional profiles feel achievable and beautiful, whether for a freelancer or an established professional. The layered-micro shadow strategy creates barely-there depth, maintaining flatness while adding tactile refinement when needed.
Key Characteristics
{colors.primary} — #17191E): Primary button fills, active states, brand accent, and dark interactive elements. The darkest neutral in the system, used for primary CTAs and brand moments.{colors.accent} — #2563EB): Hero bands, decorative accents, and secondary highlighting. A vibrant blue used sparingly for visual interest.{colors.accent-1} — #DFDBFB): Accent palette for theme customization and decorative surfaces.{colors.accent-2} — #8B919C): Neutral-toned decorative accent.{colors.accent-3} — #FD71AF): Bright pink accent for theme variations.{colors.accent-4} — #BBF7D0): Soft mint for supportive visual touches.{colors.accent-5} — #101216): Deep neutral decorative accent.{colors.accent-6} — #C3E6CB): Muted green accent for theme flexibility.{colors.canvas} — #FFFFFF): Text on primary-colored backgrounds; also the default page canvas and surfaces.{colors.success} — #15803D): Confirmation, completed states, and validation messaging.{colors.info} — #6D5CD3): Informational states and secondary highlights.{colors.ink} — #5F6673): Primary text for headings, high-contrast semantic content.{colors.body} — #6B7280): Default body text color for paragraphs and standard copy.{colors.muted} — #D4D4D8): Captions, secondary text, and reduced-emphasis labels.{colors.neutral-1} — #646464): Mid-tone neutral for additional contrast layers.{colors.neutral-2} — #EEF0F3): Light neutral surface for subtle background variations.{colors.neutral-3} — #F0FDF4): Success-adjacent light surface, used in success confirmation backgrounds.{colors.canvas} — #FFFFFF): Default page background and primary surface color.{colors.hairline} — #E5E7EB): 1px borders, dividers, and subtle stroke lines throughout the system.Primary Font: Plus Jakarta Sans (fallback: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif)
Secondary Font: Inter (fallback: system-ui, sans-serif)
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display XL | Plus Jakarta Sans | 64px | 800 | 1.05 | -2.24px | Hero headline, maximum impact |
| Display LG | Plus Jakarta Sans | 48px | 800 | 1.05 | -1.68px | Large section headings |
| Display MD | Plus Jakarta Sans | 44px | 800 | 1.05 | -1.54px | Medium display size |
| Display SM | Plus Jakarta Sans | 40px | 800 | 1.00 | -1.2px | Small display size |
| Heading XL (Inter) | Inter | 30px | 800 | 1.2 | -0.75px | Strong heading alternate |
| Heading XL | Plus Jakarta Sans | 30px | 700 | 1.2 | -0.75px | Primary heading |
| Heading LG | Plus Jakarta Sans | 28px | 800 | 1.15 | -0.7px | Large heading |
| Heading MD | Inter | 24px | 700 | 1.33 | 0px | Medium heading |
| Heading SM | Plus Jakarta Sans | 18px | 700 | 1.56 | 0px | Small heading |
| Heading XS | Plus Jakarta Sans | 12px | 700 | 1.33 | 0.6px | Smallest heading, uppercase |
| Body LG | Plus Jakarta Sans | 18px | 400 | 1.65 | 0px | Large body text |
| Body MD | Plus Jakarta Sans | 16px | 600 | 1.5 | 0px | Medium body, semibold |
| Body SM | Plus Jakarta Sans | 15px | 400 | 1.5 | 0px | Standard body size |
| Body XS | Plus Jakarta Sans | 14px | 400 | 1.63 | 0px | Small body text |
| Body XS Tight | Plus Jakarta Sans | 14px | 400 | 1.43 | 0px | Compact body line-height |
| Body XS Strong | Plus Jakarta Sans | 14px | 600 | 1.43 | 0px | Small body, bold |
| Button SM | Plus Jakarta Sans | 14px | 600 | 1.43 | -0.07px | Button text |
| Label SM | Plus Jakarta Sans | 14.4px | 400 | 1.67 | 0px | Input labels, standard |
| Label XS | Plus Jakarta Sans | 12.8px | 600 | 1.5 | 0px | Small label, bold |
| Nav SM | Plus Jakarta Sans | 14px | 500 | 1.43 | 0px | Navigation link |
| Nav XS | Plus Jakarta Sans | 13.12px | 600 | 1.5 | 0px | Small navigation |
| Caption MD | Plus Jakarta Sans | 11.52px | 600 | 1.5 | 0px | Caption, bold |
| Caption MD Strong | Plus Jakarta Sans | 11.52px | 700 | 1.5 | 1.38px | Caption, bold uppercase |
| Caption LG | Plus Jakarta Sans | 12px | 400 | 1.33 | 0px | Large caption |
| Caption SM | Plus Jakarta Sans | 11px | 400 | 1.5 | 0px | Small caption |
| Caption SM Strong | Plus Jakarta Sans | 11px | 600 | 1.5 | 0px | Small caption, bold |
| Caption XS | Plus Jakarta Sans | 10px | 600 | 1.00 | 0.9px | Smallest caption, uppercase |
Primary Button (Default)
{colors.primary} — #17191E{colors.canvas} — #FFFFFF{rounded.md} — 12pxrgba(17, 19, 24, 0.05) 0px 1px 2px 0pxPrimary Button (Small)
{colors.primary} — #17191E{colors.canvas} — #FFFFFF{rounded.sm} — 10pxrgba(17, 19, 24, 0.05) 0px 1px 2px 0pxSecondary Button (Default)
rgb(247, 248, 250) — light neutral surface{colors.primary} — #17191E{rounded.md} — 12pxrgb(212, 216, 223)Secondary Button (Small)
rgb(247, 248, 250){colors.primary} — #17191E{rounded.sm} — 10pxrgb(212, 216, 223)Button States
0 4px 14px -4px var(--pf-btn-ring), active transform: translateY(0.5px)var(--pf-primary), border-radius 6pxDefault Card
{colors.canvas} — #FFFFFF{colors.hairline} — #E5E7EB{rounded.lg} — 14pxrgba(0, 0, 0, 0.08) 0px 4px 12px 0px{colors.neutral-1} — #646464Featured Card (Dark)
rgb(22, 24, 29) — dark surfacergba(255, 255, 255, 0.08) — subtle light border{rounded.xxl} — 22pxrgba(255, 255, 255, 0.05) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.8) 0px 40px 80px -40px{colors.canvas} — #FFFFFFSmall Card
{colors.canvas} — #FFFFFF{colors.hairline} — #E5E7EB{rounded.xxl} — 22px{colors.primary} — #17191ECard Hover State
rgba(15, 23, 42, 0.16) 0px 10px 28px -10pxtranslateY(-2px)rgb(226, 232, 240)Input Field (Base)
{colors.canvas} — #FFFFFF{colors.hairline} — #E5E7EB{rounded.xs} — 8px{colors.ink} — #5F6673{colors.muted} — #D4D4D8Input Focus State
{colors.primary} — #17191E0 0 0 3px var(--pf-ring)Input Hover State
var(--pf-border-strong) (mid-tone border highlight)Input Disabled State
rgb(148, 163, 184) — muted textrgb(241, 245, 249) — very light surfaceForm Label
{colors.ink} — #5F6673{spacing.xs} — 8pxNav Link (Default)
{colors.primary} — #17191E{rounded.none} — 0pxNav Link Secondary (Small)
{colors.primary} — #17191E{rounded.xs} — 8pxrgb(243, 244, 246) (light neutral)Badge (Filled Default)
rgba(255, 255, 255, 0.05) — very subtle light surfacergba(255, 255, 255, 0.09){rounded.full} — 9999px (pill shape)rgb(166, 174, 187) — light neutral textBadge (Success)
{colors.neutral-3} — #F0FDF4 (success light surface){colors.accent-4} — #BBF7D0 (mint border){rounded.full} — 9999px{colors.success} — #15803DThe design system uses an 8px base unit with a logarithmic scale for flexibility and rhythm:
{spacing.xxs} (4px): Micro spacing, tight kerning in components{spacing.xs} (8px): Minimal gutters, label–input gaps{spacing.sm} (12px): Compact component internals{spacing.md} (16px): Default padding, primary internal spacing{spacing.lg} (20px): Breathing room between elements{spacing.xl} (24px): Generous padding, card internals{spacing.xxl} (32px): Section breaks, large component padding{spacing.xxxl} (40px): Substantial vertical rhythm{spacing.section} (56px): Between major content sections{spacing.band} (64px): Full-width band spacingWhitespace is strategic and measured. The system favors generous padding within cards and containers, with breathing room between major sections achieved via {spacing.section} and {spacing.band} values. Sections and layouts expand vertically to create rhythm; horizontal space is controlled through container widths and internal padding rather than edge margins. This creates a premium, uncluttered aesthetic that guides the user through content hierarchically.
{rounded.none} — 0px (navigation, sharp footers){rounded.xs} — 8px (input fields, small interactive elements){rounded.sm} — 10px (buttons, small buttons){rounded.md} — 12px (standard buttons, moderate containers){rounded.lg} — 14px (card containers, primary surfaces){rounded.xl} — 16px (larger card variants, link containers){rounded.xxl} — 22px (featured cards, premium components){rounded.full} — 9999px (badges, avatars, pill-shaped elements)Component Radius Assignments:
{rounded.sm} (10px) or {rounded.md} (12px){rounded.lg} (14px), {rounded.xl} (16px), or {rounded.xxl} (22px){rounded.xs} (8px){rounded.full} (9999px)| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow | Navigation, footer, background surfaces |
| Micro | rgba(17, 19, 24, 0.05) 0px 1px 2px 0px | Buttons at rest; subtle lift |
| Base | rgba(0, 0, 0, 0.08) 0px 4px 12px 0px | Default cards; standard depth |
| Premium | rgba(255, 255, 255, 0.05) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.8) 0px 40px 80px -40px | Featured dark cards; dramatic depth with inner light border |
| Custom | rgb(255, 255, 255) 0px 0px 0px 0px, rgb(255, 255, 255) 0px 0px 0px 6px, rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px | Focus rings and special interactive states |
Shadow Philosophy
The system employs a layered-micro shadow strategy: many near-transparent layers stacked for a barely-there lift rather than bold, obvious shadows. This creates sophistication and subtle depth without flattening the design or adding visual weight. Buttons receive the smallest shadow (0.05 opacity, 2px blur); default cards sit slightly higher (0.08 opacity, 12px blur); featured dark cards use a dramatic inset light border paired with a deep drop shadow for dimensional elegance. The focus ring shadow includes multiple layers to create a glow effect without harsh outlines.
{colors.primary} (#17191E) for all primary CTAs and brand moments to maintain consistencyrgba(17, 19, 24, 0.05) 0px 1px 2px 0px) is sufficient for most buttons-2.24px on 64px headlines, etc.){spacing.md} (16px) base padding for standard component internals and section gutters{rounded.sm} or {rounded.md}; cards use {rounded.lg}, {rounded.xl}, or {rounded.xxl}; badges always use {rounded.full}display-xl, display-lg, display-md) for hero content; use heading scale for section headingsvar(--pf-primary) color and 4px ring shadow for accessibilitytranslateY(-2px) with box-shadow increase) for interactive card feedback{colors.canvas} white (#FFFFFF) for interactive elements; it is reserved for page background and text on primary surfaces| Breakpoint | Width | Key Changes | Nav Links | Menu Toggle |
|---|---|---|---|---|
| Mobile | 375px | Single column, 36px heading, hero-scale display, 0px section padding-x | Hidden | Visible |
| Tablet | 768px | 48px heading, 5-column grid, nav links visible | 3 links | Hidden |
| Desktop (Medium) | 1024px | 53px heading, content centered, full nav visible | 3 links | Hidden |
| Desktop (Large) | 1280px | 64px heading, max content width 1280px | 3 links | Hidden |
| Desktop (XL) | 1440px | Max-width enforced at 1280px, padding adjusts | 3 links | Hidden |
Key Responsive Changes
Minimum interactive element sizes for touch:
All breakpoint transitions are fluid; no hard layout breaks occur between measurement points. Padding, margins, and sizing scale smoothly. Content remains readable and accessible across all widths.
Use this mapping for rapid implementation decisions:
#17191E) — dark charcoal for buttons, active states, and emphasis#2563EB) — vibrant blue for hero bands and decorative highlights#FFFFFF) — white, the default background#5F6673) — medium gray for impact text#6B7280) — balanced gray for reading comfort#E5E7EB) — light gray, 1px strokes#D4D4D8) — pale gray for secondary information#15803D) — dark green for validation and positive feedback#6D5CD3) — purple for informational content{colors.primary} for primary buttons, secondary button background is rgb(247, 248, 250), add micro shadow rgba(17, 19, 24, 0.05) 0px 1px 2px 0px, set border-radius to {rounded.md} (12px) or {rounded.sm} (10px) depending on size, apply focus ring outline when focuseddisplay-xl, display-lg, display-md) are 64px, 48px, and 44px respectively with 800 weight and negative letter-spacing (do not normalize); headings use Plus Jakarta Sans 700–800 weight; body is 14–16px at 400 weight with 1.5 line-height minimum{spacing.xs}); stack values in multiples (16px, 24px, 32px, 40px, 56px, 64px); pad cards with {spacing.xl} (24px) or {spacing.xxl} (32px); section breaks use {spacing.section} (56px) or {spacing.band} (64px)rgba(0, 0, 0, 0.08) 0px 4px 12px 0px; featured/dark card uses premium shadow with inset light border; on hover, add rgba(15, 23, 42, 0.16) 0px 10px 28px -10px and translateY(-2px) transform{colors.hairline}, radius 8px, on focus apply 2px outline and shadow; placeholder and disabled states use muted color; padding is {spacing.md} (16px) minimum{colors.accent-1} through {colors.accent-6} plus {colors.accent-5} and {colors.neutral-2} / {colors.neutral-3} appear in the extracted palette but were not observed in use on measured pages. These are assumed to be part of a theme customization system or decorative palette and should not be used for interactive or semantic purposes without further confirmation.rgb(22, 24, 29) background) is a single component variant, not a full theme. If a light/dark mode system exists, it was not captured in this extraction.