Design Specification — Manchester City FC - Official Website of Man City F.C..
| Field | Value |
| Site / Project | https://www.mancity.com/ |
| Analyzed on | 2026-08-27 |
| Analysis mode | Automated code extraction (no AI) |
Overview
This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#001838), a vivid accent (#01375B). All type is set in KippaxCondensed,sans-serif. Detected font weights: 400, 500, 700, 800, 900. Detected style signatures: technical / mono accents.
Logo asset(s): https://www.mancity.com/dist/images/logos/crest.svg
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#001838 | 0, 24, 56 | 214° 100% 11% | 77 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 34 |
#000000 | 0, 0, 0 | 0° 0% 0% | 18 |
#6CADDF | 108, 173, 223 | 206° 64% 65% | 17 |
#01375B | 1, 55, 91 | 204° 98% 18% | 16 |
#3BD6FF | 59, 214, 255 | 193° 100% 62% | 12 |
#F3F6F9 | 243, 246, 249 | 210° 33% 96% | 9 |
#DDE6ED | 221, 230, 237 | 206° 31% 90% | 8 |
#98C5E9 | 152, 197, 233 | 207° 65% 75% | 7 |
#ECF9FE | 236, 249, 254 | 197° 90% 96% | 5 |
#E6FF00 | 230, 255, 0 | 66° 100% 50% | 4 |
#69738C | 105, 115, 140 | 223° 14% 48% | 4 |
#F5B3C4 | 245, 179, 196 | 345° 77% 83% | 4 |
#E6007E | 230, 0, 126 | 327° 100% 45% | 4 |
#1D1E1B | 29, 30, 27 | 80° 5% 11% | 4 |
#01285E | 1, 40, 94 | 215° 98% 19% | 4 |
#D4E4F7 | 212, 228, 247 | 213° 69% 90% | 3 |
#EEF4FC | 238, 244, 252 | 214° 70% 96% | 2 |
#F1F5F8 | 241, 245, 248 | 206° 33% 96% | 2 |
#EEF5FC | 238, 245, 252 | 210° 70% 96% | 2 |
Assigned roles
Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.
| Token | Hex | RGB | HSL |
--color-text-primary | #001838 | 0, 24, 56 | 214° 100% 11% |
--color-primary | #001838 | 0, 24, 56 | 214° 100% 11% |
--color-accent | #01375B | 1, 55, 91 | 204° 98% 18% |
--color-background | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-surface | #F3F6F9 | 243, 246, 249 | 210° 33% 96% |
--color-secondary | #001838 | 0, 24, 56 | 214° 100% 11% |
--color-text-secondary | #DDE6ED | 221, 230, 237 | 206° 31% 90% |
--color-border | #E6FF00 | 230, 255, 0 | 66° 100% 50% |
--color-on-primary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
Surface ramp (derived from detected light neutrals)
| Token | Hex |
--color-surface-container-lowest | #FFFFFF |
--color-surface-container-low | #F3F6F9 |
--color-surface-container | #F1F5F8 |
--color-surface-container-high | #EBEDF0 |
--color-surface-container-highest | #DDE6ED |
Gradients
linear-gradient(140.75deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.16))
linear-gradient(140.75deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,.48))
Typography
Primary typeface: KippaxCondensed — stack: KippaxCondensed,sans-serif
Font stacks (most used first)
KippaxCondensed,sans-serif
Kippax,sans-serif
"Kippax Modern"
swiper-icons
monospace,monospace
KippaxCondensed
Kippax
"Kippax Modern",sans-serif
Arial, sans-serif
inherit
Derived type scale
| Token | Size |
| display | 60px |
| headline-lg | 35px |
| headline-md | 30px |
| body-lg | 18px |
| body-md | 16px |
| label-md | 14px |
| label-sm | 12px |
Font sizes (by frequency)
| Size | Count |
| 13px | 6 |
| 15px | 6 |
| 16px | 5 |
| 12px | 5 |
| .625rem | 5 |
| 14px | 4 |
| 10px | 3 |
| 28px | 3 |
| 30px | 3 |
| 33px | 3 |
| .75rem | 3 |
| 1em | 2 |
| 18px | 2 |
| 11px | 2 |
| 46px | 2 |
| 56px | 2 |
| 60px | 2 |
| 32px | 2 |
| 1rem | 2 |
| 35px | 1 |
Weights in use: 400, 500, 700, 800, 900
Line heights (by frequency)
| Value | Count |
| 1rem | 7 |
| 19px | 6 |
| 30px | 6 |
| 17px | 5 |
| 16px | 4 |
| 33px | 4 |
| 1.5rem | 3 |
| 1.15 | 2 |
| 36px | 2 |
| 15px | 2 |
Letter spacing (by frequency)
| Value | Count |
| 0 | 7 |
| .3px | 4 |
| .28px | 3 |
| .33px | 3 |
| -.31em | 1 |
| .14px | 1 |
| .35px | 1 |
| .43px | 1 |
Spacing
Derived spacing scale
| Token | Value |
| xs | 4px |
| sm | 8px |
| md | 16px |
Raw values (by frequency)
| Value | Count |
| 12px | 4 |
| 5px | 4 |
| 17px | 3 |
| 20px | 3 |
| .25rem | 2 |
| .5rem | 2 |
| 4px | 2 |
| 15px | 1 |
| .375rem | 1 |
| .625rem | 1 |
| .35em | 1 |
| 21px | 1 |
| 19px | 1 |
| 13px | 1 |
| 11px | 1 |
| 16px | 1 |
Borders & Radius
Derived radius tokens
| Token | Value |
| sm | 2px |
| md | 8px |
| pill | 50% |
Raw values (resolved, by frequency)
| Radius | Count |
50% | 6 |
624.9375rem | 6 |
0 | 4 |
4px | 2 |
0.25rem | 2 |
0.375rem | 2 |
3px | 1 |
0.5rem | 1 |
2px | 1 |
Shadows
Derived elevation
| Token | Value |
| sm | 0 0 12px rgba(59,214,255,.501) |
| md | 0 4px 12px rgba(0,0,0,.15) |
| lg | 0 2px 8px 0 rgba(0,24,56,.5) |
All detected shadows
0 0 12px rgba(59,214,255,.501)
0 8px 16px 0 rgba(0,24,56,.2)
0 8px 16px 0 rgba(0,24,56,.3)
0 0 0 25px rgba(1,40,94,0)
0 4px 12px rgba(0,0,0,.15)
0 2px 4px -2px rgba(0,24,56,.059),0 8px 18px -3px rgba(0,24,56,.2)
0 0 0 .125rem #d4e4f7
0 2px 8px 0 rgba(0,24,56,.5)
Layout
Container max-width: 768px
Breakpoints
- 22.5rem
- 37.49rem
- 37.5rem
- 47.99rem
- 48rem
- 861px
- 63.99rem
- 64rem
Animation & Motion
Transitions
opacity .3s
opacity .5s ease-out
all .3s ease
opacity .3s ease,left 0s .3s,-webkit-transform .3s ease
opacity .3s ease,transform .3s ease,left 0s .3s
opacity .3s ease,transform .3s ease,left 0s .3s,-webkit-transform .3s ease
opacity .3s ease,left 0s 0s,-webkit-transform .3s ease
opacity .3s ease,transform .3s ease,left 0s 0s
opacity .3s ease,transform .3s ease,left 0s 0s,-webkit-transform .3s ease
.2s cubic-bezier(.215,.61,.355,1)
.3s
-webkit-text-decoration-color .1s ease-in-out
Easing curves
cubic-bezier(.215,.61,.355,1)
cubic-bezier(1,0,1,0)
Keyframes
@keyframes a { to{-webkit-transform:rotate(1turn);transform:rotate(1turn)} }
@keyframes blinker { 50%{opacity:1} }
@keyframes progress-value-stripes { 0%{background-position:0 0}to{background-position:40px 0} }
@keyframes indicatorBorderChange { to{outline-color:transparent} }
@keyframes rotation { 0%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)} }
@keyframes fadeIn { 0%{opacity:0}to{opacity:1} }
@keyframes slideInLeft { 0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)} }
@keyframes slideOutLeft { 0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)} }
@keyframes slideInRight { 0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)} }
@keyframes slideOutRight { 0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)} }
@keyframes opacity-animation { 0%{opacity:0}to{opacity:1} }
@keyframes pulse { to{-webkit-box-shadow:0 0 0 25px rgba(1,40,94,0);box-shadow:0 0 0 25px rgba(1,40,94,0)} }
Animations
opacity-animation 5s cubic-bezier(1,0,1,0) forwards
none
CTA labels found on page
- View
- More News
- Preview
- Buy Tickets
- Match report
- More video
Source Design Tokens (CSS custom properties)
:root {
--swiper-theme-color: #007aff;
--swiper-navigation-size: 44px;
--primary-yellow: hover;
--secondary: hover;
--svg-base: var(--colour-content-primary);
--svg-contrast: transparent;
--as-trigger: hover:after;
--padlock: lang(ar);
--gallery: lang(ar);
--opacity-0: 0%;
--opacity-1: 12%;
--opacity-2: 20%;
--opacity-3: 32%;
--opacity-4: 40%;
--opacity-5: 52%;
--opacity-6: 60%;
--opacity-7: 72%;
--opacity-8: 80%;
--opacity-9: 92%;
--opacity-10: 100%;
--blur-none: 0rem;
--blur-xsmall: 0.5rem;
--blur-small: 1rem;
--blur-medium: 1.5rem;
--blur-large: 2.5rem;
--blur-xlarge: 3.5rem;
--border-width-none: 0rem;
--border-width-xsmall: 0.0625rem;
--border-width-small: 0.09375rem;
--border-width-medium: 0.125rem;
--border-width-xlarge: 0.25rem;
--border-width-large: 0.1875rem;
--border-radius-none: 0rem;
--border-radius-xsmall: 0.125rem;
--border-radius-small: 0.25rem;
--border-radius-medium: 0.375rem;
--border-radius-large: 0.5rem;
--border-radius-xlarge: 0.75rem;
--border-radius-xxlarge: 1rem;
--border-radius-round: 624.9375rem;
--spacing-0: 0rem;
--spacing-1: 0.125rem;
--spacing-2: 0.25rem;
--spacing-3: 0.375rem;
--spacing-4: 0.5rem;
--spacing-5: 0.75rem;
--spacing-6: 1rem;
--spacing-7: 1.25rem;
--spacing-8: 1.5rem;
--spacing-9: 2rem;
--spacing-10: 2.5rem;
--spacing-11: 3rem;
--spacing-12: 4rem;
--spacing-13: 5rem;
--spacing-14: 6rem;
--spacing-15: 7rem;
--spacing-16: 8rem;
--spacing-17: 10rem;
--spacing-18: 12rem;
--spacing-negative-1: -0.125rem;
}
Do's and Don'ts
Do
- Do reserve the accent
#01375B for interactive highlights and key moments — it is used sparingly on the source page.
- Do keep the canvas at
#FFFFFF; surfaces should stay within the detected neutral ramp.
- Do stick to the detected font weight(s): 400, 500, 700, 800, 900.
Don't
- Don't introduce colors outside the detected palette — every hue above was found in the source.
Design Tokens (copy-paste)
:root {
--color-text-primary: #001838;
--color-primary: #001838;
--color-accent: #01375B;
--color-background: #FFFFFF;
--color-surface: #F3F6F9;
--color-secondary: #001838;
--color-text-secondary: #DDE6ED;
--color-border: #E6FF00;
--color-on-primary: #FFFFFF;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #F3F6F9;
--color-surface-container: #F1F5F8;
--color-surface-container-high: #EBEDF0;
--color-surface-container-highest: #DDE6ED;
--font-sans: KippaxCondensed,sans-serif;
--font-size-display: 60px;
--font-size-headline-lg: 35px;
--font-size-headline-md: 30px;
--font-size-body-lg: 18px;
--font-size-body-md: 16px;
--font-size-label-md: 14px;
--font-size-label-sm: 12px;
--radius-sm: 2px;
--radius-md: 8px;
--radius-pill: 50%;
--shadow-sm: 0 0 12px rgba(59,214,255,.501);
--shadow-md: 0 4px 12px rgba(0,0,0,.15);
--shadow-lg: 0 2px 8px 0 rgba(0,24,56,.5);
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--tracking-display: -.31em;
--tracking-label: .3px;
--container-max: 768px;
}