Learn · Comparisons

RAL Classic vs Tailwind/Material – From physical paint to UI themes

Many companies have brand colors defined in RAL, not in hex. Trucks, buildings, machines and signage all use RAL Classic codes — but your UI framework speaks Tailwind classes or Material tokens.

1.

The problem: physical vs digital brand colors

Typical scenario: a construction or industrial company has guidelines like "Primary red: RAL 3020 Traffic Red, Secondary gray: RAL 7016 Anthracite Grey". Designers now need hex values for web UIs and system colors in Tailwind/Material with proper scales and semantics.

Challenges:

  • RAL is defined via physical paint standards, not sRGB
  • Simple one-off conversions don't give you lighter/darker tints, accessible text combinations, or consistent theming in light and dark modes
  • You need a robust mapping, not a single hex swap
2.

Step 1 – Get reliable sRGB approximations

Using ColorR's RAL Classic collection: look up each brand RAL code (/ral/3020, /ral/7016), note the hex, HSL, Lab and OKLCH values.

RAL codeNameApprox. hex
3020Traffic Red#cc1f24
7016Anthracite Grey#383e42

These hex values are tuned for typical sRGB displays — close enough for digital brand matching, but not a substitute for physical swatches.

3.

Step 2 – Find nearest Tailwind hues

Use ColorR to compare RAL colors in OKLCH/Lab against Tailwind hues and pick the closest visual match.

  • RAL 3020 ≈ Tailwind red-600 or red-700
  • RAL 7016 ≈ Tailwind neutral-800 or slate-800

This gives you a base hue in Tailwind's world and a full scale to work with.

4.

Step 3 – Build Tailwind brand tokens

// tailwind.config.js
theme: {
  extend: {
    colors: {
      brand: {
        50:  theme('colors.red.50'),
        // ... other steps
        600: theme('colors.red.600'), // closest to RAL 3020
        // ...
        900: theme('colors.red.900'),
      },
      brandNeutral: {
        50:  theme('colors.slate.50'),
        // ...
        800: theme('colors.slate.800'), // close to RAL 7016
        900: theme('colors.slate.900'),
      },
    },
  },
}
<button class="bg-brand-600 hover:bg-brand-700 text-white">

For light/dark mode, choose appropriate steps:

Light mode
  • background: brandNeutral-50/100
  • text: brandNeutral-900
  • primary button: brand-600
Dark mode
  • background: brandNeutral-900
  • text: brandNeutral-50
  • primary button: brand-400/500
5.

Step 4 – Map into Material Design

Choose a Material base hue

Use ColorR to compare RAL 3020 to Material palette hues and pick the closest visual match. Example: RAL 3020 ≈ Material Red 600 (#e53935 in classic Material).

Create a Material 3 seed color

Set your primary seed to the closest Material red approximating RAL 3020. The system generates primary, secondary, tertiary and error tonal palettes plus neutrals. The resulting dynamic palettes will keep overall Material light/dark behaviour while staying near your RAL base.

Static mapping with Material 2 (MUI)

const theme = createTheme({
  palette: {
    primary: {
      main: '#e53935', // Material Red 600 ≈ RAL 3020
    },
    background: {
      default: '#f9fafb',
    },
  },
})
6.

Step 5 – Align semantics and communication

Once mappings are in place, document them clearly so marketing, industrial design and dev teams share a common language:

Brand Primary

RAL 3020 ≈ Tailwind brand-600 ≈ Material Red 600

Brand Neutral

RAL 7016 ≈ Tailwind brandNeutral-800 ≈ Material Blue Grey 800

In specs and Figma, refer to both RAL codes and digital tokens. This helps marketing and industrial design teams trust that digital work respects physical standards.

7.

When this approach is worth it

Mapping RAL → Tailwind/Material is particularly valuable when your company's brand identity is tightly tied to physical assets (fleets, buildings, signage), existing brand guidelines are in RAL but digital guidelines are fuzzy, or you're standardising UI across marketing sites, apps and internal tools.

ColorR acts as a hub: it exposes RAL values in digital form, helps you find nearest structured colors, and lets you visualise, compare and fine-tune mappings — so your UIs feel like part of the same brand universe as your physical products, without sacrificing accessibility or modern theming.