271 lines
8.7 KiB
Markdown
271 lines
8.7 KiB
Markdown
---
|
|
version: alpha
|
|
name: Vodafone-design-analysis
|
|
description: An inspired interpretation of Vodafone's design language — a telecom super-brand whose web surface alternates between editorial photography hero bands with massive uppercase display headlines and clean white content bands, anchored by the company's signature scarlet red CTA and the proprietary Vodafone display sans set at impossibly heavy 800 weight.
|
|
|
|
colors:
|
|
primary: "#e60000"
|
|
on-primary: "#ffffff"
|
|
ink: "#25282b"
|
|
body: "#7e7e7e"
|
|
mute: "#bebebe"
|
|
canvas: "#ffffff"
|
|
canvas-soft: "#f2f2f2"
|
|
on-dark: "#ffffff"
|
|
|
|
typography:
|
|
display-hero:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 144px
|
|
fontWeight: 800
|
|
lineHeight: 114px
|
|
letterSpacing: -1px
|
|
display-xxl:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 126px
|
|
fontWeight: 800
|
|
lineHeight: 113px
|
|
letterSpacing: -1px
|
|
display-xl:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 90px
|
|
fontWeight: 800
|
|
lineHeight: 84px
|
|
display-lg:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 48px
|
|
fontWeight: 300
|
|
lineHeight: 52px
|
|
display-md:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 40px
|
|
fontWeight: 300
|
|
lineHeight: 44px
|
|
display-sm:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 32px
|
|
fontWeight: 700
|
|
lineHeight: 40px
|
|
display-xs:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 24px
|
|
fontWeight: 700
|
|
lineHeight: 24px
|
|
eyebrow-uppercase:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 16px
|
|
fontWeight: 800
|
|
lineHeight: 24px
|
|
body-lg:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 22px
|
|
fontWeight: 400
|
|
lineHeight: 24px
|
|
body-md:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 18px
|
|
fontWeight: 400
|
|
lineHeight: 28px
|
|
body-md-strong:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 18px
|
|
fontWeight: 600
|
|
lineHeight: 28px
|
|
body-sm:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 16px
|
|
fontWeight: 400
|
|
lineHeight: 20px
|
|
body-sm-strong:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 16px
|
|
fontWeight: 700
|
|
lineHeight: 22px
|
|
caption:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 14px
|
|
fontWeight: 400
|
|
lineHeight: 16px
|
|
caption-strong:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 14px
|
|
fontWeight: 700
|
|
lineHeight: 21px
|
|
caption-uppercase:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 12px
|
|
fontWeight: 600
|
|
lineHeight: 16px
|
|
letterSpacing: 0.5691px
|
|
button-md:
|
|
fontFamily: Vodafone, Vodafone Rg, Helvetica Neue, Arial, sans-serif
|
|
fontSize: 18px
|
|
fontWeight: 400
|
|
lineHeight: 28px
|
|
|
|
rounded:
|
|
none: 0px
|
|
xs: 1px
|
|
sm: 6px
|
|
card: 6px
|
|
pill-md: 32px
|
|
pill-lg: 60px
|
|
full: 9999px
|
|
|
|
spacing:
|
|
xxs: 2px
|
|
xs: 4px
|
|
sm: 8px
|
|
md: 12px
|
|
lg: 16px
|
|
xl: 20px
|
|
2xl: 24px
|
|
3xl: 32px
|
|
|
|
components:
|
|
nav-bar:
|
|
backgroundColor: "{colors.ink}"
|
|
textColor: "{colors.on-dark}"
|
|
typography: "{typography.body-sm}"
|
|
padding: "{spacing.lg} {spacing.3xl}"
|
|
nav-link:
|
|
textColor: "{colors.on-dark}"
|
|
typography: "{typography.body-sm}"
|
|
button-primary:
|
|
backgroundColor: "{colors.primary}"
|
|
textColor: "{colors.on-primary}"
|
|
borderColor: "{colors.primary}"
|
|
typography: "{typography.button-md}"
|
|
rounded: "{rounded.pill-lg}"
|
|
padding: "{spacing.md} {spacing.2xl}"
|
|
button-outline-red:
|
|
backgroundColor: "{colors.canvas}"
|
|
textColor: "{colors.primary}"
|
|
borderColor: "{colors.primary}"
|
|
typography: "{typography.button-md}"
|
|
rounded: "{rounded.pill-lg}"
|
|
padding: "{spacing.md} {spacing.2xl}"
|
|
button-outline-dark:
|
|
backgroundColor: "{colors.canvas}"
|
|
textColor: "{colors.ink}"
|
|
borderColor: "{colors.ink}"
|
|
typography: "{typography.button-md}"
|
|
rounded: "{rounded.pill-lg}"
|
|
padding: "{spacing.md} {spacing.2xl}"
|
|
button-icon-circular:
|
|
backgroundColor: "{colors.canvas}"
|
|
textColor: "{colors.ink}"
|
|
borderColor: "{colors.canvas}"
|
|
rounded: "{rounded.full}"
|
|
text-input:
|
|
backgroundColor: "{colors.canvas}"
|
|
textColor: "{colors.ink}"
|
|
borderColor: "{colors.ink}"
|
|
typography: "{typography.body-sm}"
|
|
rounded: "{rounded.sm}"
|
|
padding: "{spacing.md} {spacing.lg}"
|
|
badge-chip:
|
|
backgroundColor: "{colors.canvas-soft}"
|
|
textColor: "{colors.ink}"
|
|
typography: "{typography.caption-strong}"
|
|
rounded: "{rounded.pill-md}"
|
|
padding: "{spacing.xs} {spacing.md}"
|
|
card-content:
|
|
backgroundColor: "{colors.canvas}"
|
|
textColor: "{colors.ink}"
|
|
typography: "{typography.body-md}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
card-hero:
|
|
backgroundColor: "{colors.canvas}"
|
|
textColor: "{colors.ink}"
|
|
typography: "{typography.display-sm}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
hero-band-dark:
|
|
backgroundColor: "{colors.ink}"
|
|
textColor: "{colors.on-dark}"
|
|
typography: "{typography.display-hero}"
|
|
padding: "{spacing.3xl} {spacing.3xl}"
|
|
hero-band-red:
|
|
backgroundColor: "{colors.primary}"
|
|
textColor: "{colors.on-primary}"
|
|
typography: "{typography.display-xl}"
|
|
padding: "{spacing.3xl} {spacing.3xl}"
|
|
content-band-light:
|
|
backgroundColor: "{colors.canvas}"
|
|
textColor: "{colors.ink}"
|
|
typography: "{typography.display-md}"
|
|
padding: "{spacing.3xl} {spacing.3xl}"
|
|
speechmark-logo-orb:
|
|
backgroundColor: "{colors.primary}"
|
|
textColor: "{colors.on-primary}"
|
|
rounded: "{rounded.sm}"
|
|
divider-on-dark:
|
|
borderColor: "{colors.on-dark}"
|
|
footer:
|
|
backgroundColor: "{colors.ink}"
|
|
textColor: "{colors.on-dark}"
|
|
typography: "{typography.body-sm}"
|
|
padding: "{spacing.3xl} {spacing.3xl}"
|
|
|
|
ex-pricing-tier:
|
|
description: "Default tier card. Mirrors card-content chrome with canvas-soft surface and a hairline border."
|
|
backgroundColor: "{colors.canvas-soft}"
|
|
textColor: "{colors.ink}"
|
|
borderColor: "{colors.mute}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
ex-pricing-tier-featured:
|
|
description: "Featured tier — polarity-flipped to ink with white text and white pill CTA inside."
|
|
backgroundColor: "{colors.ink}"
|
|
textColor: "{colors.on-primary}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
ex-product-selector:
|
|
description: "Tariff-tier picker — repurposed as the brand's plan selector with badge-chip chips inside the frame."
|
|
backgroundColor: "{colors.canvas-soft}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
ex-cart-drawer:
|
|
description: "Subscription summary — line items per tariff add-on, light hairline dividers."
|
|
backgroundColor: "{colors.canvas}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
item-divider: "{colors.mute}"
|
|
ex-app-shell-row:
|
|
description: "Sidebar nav row. Active state uses brand primary as a left-edge indicator bar."
|
|
backgroundColor: "{colors.canvas}"
|
|
activeIndicator: "{colors.primary}"
|
|
rounded: "{rounded.sm}"
|
|
padding: "{spacing.md} {spacing.lg}"
|
|
ex-data-table-cell:
|
|
description: "Default data-table cell chrome. Header uses caption-uppercase mono-style eyebrow; body uses body-sm."
|
|
headerBackground: "{colors.canvas-soft}"
|
|
headerTypography: "{typography.caption-uppercase}"
|
|
bodyTypography: "{typography.body-sm}"
|
|
cellPadding: "{spacing.md} {spacing.lg}"
|
|
rowBorder: "{colors.mute}"
|
|
ex-auth-form-card:
|
|
description: "Sign-in / sign-up card. Mirrors card-content chrome with text-input primitives inside."
|
|
backgroundColor: "{colors.canvas-soft}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
ex-modal-card:
|
|
description: "Modal dialog surface — same chrome as card-content; brand uses scrim, not card shadow."
|
|
backgroundColor: "{colors.canvas}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.lg}"
|
|
ex-empty-state-card:
|
|
description: "Empty-state illustration frame on canvas-soft with generous interior padding."
|
|
backgroundColor: "{colors.canvas-soft}"
|
|
rounded: "{rounded.card}"
|
|
padding: "{spacing.3xl}"
|
|
captionTypography: "{typography.body-md}"
|
|
ex-toast:
|
|
description: "Toast notification surface — card-content shape with caption-strong body."
|
|
backgroundColor: "{colors.canvas}"
|
|
rounded: "{rounded.sm}"
|
|
padding: "{spacing.md} {spacing.lg}"
|
|
typography: "{typography.body-sm}"
|