Interested in sponsoring? Reach out to discuss placements.
Color Shades Generator
Create tints and shades from one color.
Last updated: June 2026
Guide
Introduction
Design systems rarely ship a single flat color — buttons need hover darkening, cards need subtle elevation tints, and semantic scales (primary-100 through primary-900) derive from one brand anchor. Manually lightening #3b82f6 toward white and darkening toward black for five steps each is tedious and inconsistent when different team members guess mixing ratios differently.
Certoflow's Color Shades Generator produces lighter tints and darker shades from a base hex color through linear RGB mixing. Click any swatch to copy its hex value. All computation runs client-side — brand anchors never upload to a server. Light and dark theme support keeps swatch grids readable during token authoring sessions.
What this tool does
| Feature | Behavior |
|---|---|
| Input | Base hex color #RRGGBB |
| Output | Base plus configurable lighter and darker variants |
| Algorithm | Linear RGB mix toward white (tints) and black (shades) |
| Labels | Light 1–N, Base, Dark 1–N |
| Copy | Click any swatch to copy hex |
Default configuration generates five lighter and five darker steps plus the base color, producing an 11-swatch scale suitable for design token tiers.
How it works
Shade generation uses linear interpolation in RGB space:
function mixRgb(a, b, weight) {
return {
r: a.r * (1 - weight) + b.r * weight,
g: a.g * (1 - weight) + b.g * weight,
b: a.b * (1 - weight) + b.b * weight,
};
}
// Light tint: mix base toward {255, 255, 255}
// Dark shade: mix base toward {0, 0, 0}
For N steps, weight t = i / (N + 1) for each step i. Lighter variants insert before base; darker variants append after. This produces even perceptual spacing in RGB space — not HSL lightness steps, which would behave differently near saturated hues.
Certoflow shares generateShades and mixRgb across the color toolkit. Processing is synchronous local JavaScript.
Example from base #3b82f6:
| Label | Approximate role |
|---|---|
| Light 5 | Subtle background tint |
| Light 1 | Near-white brand wash |
| Base | Primary brand color |
| Dark 1 | Hover state |
| Dark 5 | Deep accent border |
Exact hex values depend on step count configuration.
Real-world examples
Button state tokens
Base primary #2563eb. Copy Dark 1 for :hover, Dark 2 for :active, Light 1 for disabled background with reduced opacity alternative.
Tailwind-style scale authoring
Map Light 5 → primary-100, Light 1 → primary-200, Base → primary-500, Dark 3 → primary-700, Dark 5 → primary-900 in extended config.
Fixing contrast failures
Color Contrast Checker fails #64748b on white. Darken text by copying progressively darker shades until ratio exceeds 4.5:1.
Card elevation backgrounds
Page background #f8fafc, card surface uses Light 1 tint of brand neutral base. Shade generator creates consistent tier without manual eyedropper iteration.
Documentation swatches
Export shade grid screenshots or hex list into design system docs alongside HSL documentation from Hex to HSL.
Common mistakes
Expecting HSL lightness steps. RGB linear mixing behaves differently from HSL lightness adjustment. Yellow bases may produce greenish tints when mixed with black. For hue-preserving adjustment, tune via HSL to Hex.
Using shades without contrast validation. Dark 3 text on Dark 1 background may still fail WCAG. Always verify with Color Contrast Checker.
Assuming perceptual uniformity. Human vision does not perceive RGB-linear steps as evenly spaced brightness. Review swatches visually, not only by label number.
Mixing shade scales from different bases. Primary-700 from blue base is not interchangeable with primary-700 from a different anchor. Generate each scale from its own base hex.
Over-darkening saturated colors. Mixing pure red toward black produces brownish darks. Consider HSL lightness reduction for saturated primaries.
Ignoring alpha overlays. Shade scales are opaque hex. Semi-transparent variants need RGBA to Hex.
Related tools
Color category:
- Complementary Color Generator — opposite hue for accent scales
- Hex to HSL — understand base color structure
- Color Contrast Checker — validate text on shade backgrounds
- CSS Gradient Generator — gradients across shade stops
Cross-category:
- Image Color Picker — sample base color from brand assets
- CSS Formatter — format token output stylesheets
Full directory at /color.
FAQ
Is base color uploaded?
No. Shade math runs entirely in your browser.
How are shades calculated?
Linear RGB interpolation toward white (lighter) and black (darker).
Click to copy?
Yes. Click any swatch to copy its hex value.
How many steps?
Default five lighter and five darker plus base (11 swatches). Step count may be configurable in the tool UI.
HSL-based alternative?
Certoflow uses RGB mixing for predictable CSS hex output. Adjust individual stops via HSL to Hex if HSL behavior is preferred.
Works with 3-digit hex input?
Yes. Shorthand expands before shade generation.
Offline?
Yes, after page load.
Dark mode?
Yes. Certoflow supports light and dark themes.
Suitable for print?
sRGB hex shades target screen design. Print CMYK conversion requires separate color management.
Can I generate shades from random colors?
Yes. Generate with Random Color Generator, paste into shade generator.
Frequently Asked Questions
- How are shades calculated?
- Linear RGB mixing toward white (light) or black (dark) from your base color.
- Click to copy?
- Yes. Click any swatch to copy its hex value to the clipboard.
People also use
Related tools that complement this workflow.
Complementary Color Generator
Get complementary hex from a base color.
Color ToolsHex to HSL Converter
Convert hex to hsl() syntax.
Color ToolsColor Contrast Checker
WCAG contrast ratio checker.
Color ToolsCSS Gradient Generator
Generate linear-gradient CSS.
Image ToolsImage Color Picker
Pick hex colors from an image.
Interested in sponsoring? Reach out to discuss placements.