Spanish football club color codes in a digital workflow
When a match graphic looks “off,” it’s often a color problem, not a layout problem.
Spanish top-flight teams carry palettes that viewers recognize in a split second, and small deviations can feel jarring—especially in scorebars, fixture cards, and live tickers where colors do most of the labeling work.
Over time, modern football design also became more systematic: brand kits, social templates, broadcast packages, app UI, and merch filters all benefit from a palette that’s stored like data.
That means color values you can paste into CSS, Figma, After Effects, or a brand library without guessing.
This page focuses on HEX and RGB codes, plus a practical way to keep them consistent even as kits change from season to season.
HEX and RGB explained without the fog
HEX
A HEX code is a six-character value like #FF0000. Each pair controls one channel: red, green, blue.
Designers love HEX because it’s compact, copy-friendly, and widely supported.
RGB
RGB writes the same color as three numbers, for example rgb(255, 0, 0).
It’s handy when you animate channels, generate tints programmatically, or export data into tools that prefer explicit channels.
Both formats describe the same thing—just different wrappers—so a clean workflow stores one and derives the other.
That small habit saves hours when a palette is reused across dozens of templates.
What “club colors” can mean in practice
People often say “official colors,” but football palettes usually come from several layers:
brand identity (logo, typography, style guides), home kit (seasonal), and broadcast conventions (what a league or TV package treats as the primary hue).
Since its early years, Spanish football has leaned on strong visual contrast—deep blues, vivid reds, high whites—yet modern kits can introduce extra tones through trim, gradients, and patterns.
A palette guide works best when it states what each code represents: “shirt base,” “shorts,” “socks,” or “accent.”
If you only need one set of colors for UI labels, pick a stable primary (often the most associated hue) and a stable neutral.
For match posters, keep a second “season kit” palette beside the stable set, and label both clearly.
Fast ways to extract reliable color codes
Method A: Use Wikipedia kit parameters for quick, structured values
Wikipedia club pages commonly include kit color parameters in the infobox source—fields like body1, shorts1, and socks1.
They are already in HEX, which makes them ideal for a fast first pass.
- Open the club page on Wikipedia.
- Click Edit (or View source on protected pages).
- Search within the wikitext for
body1,shorts1,socks1. - Copy the six-character values and prefix them with
#. - Convert to RGB only when needed.
One nuance matters: striped or patterned kits often use a separate “pattern” file, while body1 may store only the base color.
In those cases, treat the base as your anchor color, then sample the pattern asset if you need every stripe tone.
Pattern-driven kits are not a mistake—they just require one extra step.
Method B: Validate against a palette directory
A curated directory can help cross-check names, variants, and historical alternates.
When you use one, keep a note of the source and the interpretation—“brand,” “home kit,” or “fan palette”—so the numbers don’t become folklore in your design system.
Method C: Build your own “UI-safe” palette from real kit colors
Sometimes the raw kit blue is perfect for a shirt mockup but too intense for small UI chips.
A practical approach is to keep the original value as base, then generate a calmer UI variant (a tint, shade, or desaturated version) and store both.
That way, the identity stays intact while your interface stays readable.
La Liga palette snapshot
The table below shows examples of home-kit base colors as encoded in Wikipedia infobox kit parameters for the current-season templates shown on those pages.
It’s a pragmatic slice: enough to build graphics quickly, and structured enough to automate.
For clubs with stripes or complex patterns, the “Notes” column tells you what’s missing.
| Team | Shirt base | Shorts | Socks | Notes |
|---|---|---|---|---|
| Real Madrid CF |
#FFFFFF / rgb(255, 255, 255) |
#FFFFFF / rgb(255, 255, 255) |
#433E3A / rgb(67, 62, 58) | High-white kits benefit from a darker UI outline so chips don’t disappear on light backgrounds. |
| FC Barcelona |
#14266E / rgb(20, 38, 110) |
#14266E / rgb(20, 38, 110) |
#14266E / rgb(20, 38, 110) | Pattern files usually carry the stripe/secondary tones; treat this as the base anchor color. |
| Atlético Madrid |
#FF0000 / rgb(255, 0, 0) |
#0000FF / rgb(0, 0, 255) |
#0000FF / rgb(0, 0, 255) | Red + blue gives strong contrast; watch legibility for white text on saturated red chips. |
| Sevilla FC |
#FFFFFF / rgb(255, 255, 255) |
#FFFFFF / rgb(255, 255, 255) |
#E20000 / rgb(226, 0, 0) | White-dominant palettes typically need a red (or black) accent for UI hierarchy. |
| Valencia CF |
#FFFFFF / rgb(255, 255, 255) |
#000000 / rgb(0, 0, 0) |
#000000 / rgb(0, 0, 0) | Simple, high-contrast set; ideal for minimalist scorebars and tables. |
| Villarreal CF |
#FFFF00 / rgb(255, 255, 0) |
#FFFF00 / rgb(255, 255, 0) |
#FFFF00 / rgb(255, 255, 0) | Bright yellow needs dark text; a navy UI companion color keeps interfaces readable. |
| Real Sociedad |
#0042FF / rgb(0, 66, 255) |
#FFFFFF / rgb(255, 255, 255) |
#FFFFFF / rgb(255, 255, 255) | Blue/white pairing is clean; stripes and trims can add nuance via pattern assets. |
| Real Betis |
#008000 / rgb(0, 128, 0) |
#000000 / rgb(0, 0, 0) |
#008000 / rgb(0, 128, 0) | Green + black reads well in dark mode; keep a lighter green tint for badges on black. |
| Girona FC |
#FFFFFF / rgb(255, 255, 255) |
#FF0000 / rgb(255, 0, 0) |
#FF0000 / rgb(255, 0, 0) | White base with red blocks is flexible; add a muted gray for UI separators. |
| Getafe CF |
#0000FF / rgb(0, 0, 255) |
#0000FF / rgb(0, 0, 255) |
#0000FF / rgb(0, 0, 255) | Solid single-color kits are perfect for automated graphics and quick team chips. |
| RCD Espanyol |
#FFFFFF / rgb(255, 255, 255) |
#0000FF / rgb(0, 0, 255) |
#FFFFFF / rgb(255, 255, 255) | Blue-and-white stripes are often handled via pattern assets; shorts color is a useful secondary. |
Turn raw club colors into a palette you can ship
Store palette roles, not just numbers
A reliable palette entry includes a role name: primary, secondary, neutral, accent.
That way, when a season kit introduces a new trim color, your system gains a new accent without breaking old templates.
A small CSS pattern that stays clean
If you publish match UI on the web, CSS variables are an easy backbone.
Keep them simple and predictable—then your components can stay generic while colors swap per team.
:root {
--team-primary: #0042FF;
--team-secondary: #FFFFFF;
--team-neutral: #111111;
}
/* Use: background: var(--team-primary); color: var(--team-secondary); */HEX to RGB in one step
Many tools convert automatically, but when you need a scriptable conversion, a short function is enough.
Keep it in your design ops toolbox and you’ll stop doing manual math.
function hexToRgb(hex) {
const h = hex.replace('#', '');
return {
r: parseInt(h.slice(0, 2), 16),
g: parseInt(h.slice(2, 4), 16),
b: parseInt(h.slice(4, 6), 16)
};
}Accessibility checks that protect your design
Saturated reds and bright yellows look powerful, but they can fail fast when placed behind thin typography.
Before you lock a palette into a scoreboard or app header, test contrast for small text and icons.
Don’t rely on “it looks fine”; test it at the smallest size your product uses.
- Always add a border to light chips (white kits especially) so they remain visible on light surfaces.
- For bright yellows, prefer dark text and consider a slightly darker UI variant as a secondary option.
- If you show two teams side-by-side, ensure their chips differ by more than hue—add shape, label, or outline.
Where these palettes pay off immediately
Broadcast-style match graphics
Team chips, goal notifications, and lineup cards become consistent when your palette is centralized.
Designers stop hunting for “the right blue”, and editors stop shipping mismatched templates.
Web and app UI
Filters (“Teams”), tables (“Form”), and fixtures (“Upcoming”) benefit from color as a quick identifier—but only if the values are stable and tested for contrast.
A good rule is to keep club colors as accents and let layout carry the heavy structure.
Merch and editorial imagery
When you build thumbnails for jersey drops or derby promos, storing both a stable brand palette and a season kit palette lets you switch tone without losing identity.
That dual-track approach feels quietly professional to anyone who works with large content volumes.
References
-
All Club Colors – Spain football club color pages
(A directory of Spanish club color pages with palette-style presentation.) -
Wikipedia – Template: Infobox football club
(Explains the infobox fields where kit colors are encoded, such asbody1,shorts1, andsocks1.) -
Wikipedia – La Liga
(Background on the league; useful context since club membership and kits change across seasons.)
When you treat each team palette as versioned data—labeled by role, verified for contrast, and updated with the season—you get La Liga visuals that stay sharp even as kits and design trends keep moving.
