Welcome to Day 24 of the 180 Days of Frontend Development Challenge. Today we'll explore professional techniques for working with colors, background properties, and gradient effects. For comprehensive styling techniques, see the Learn Frontend Development in 180 Days ebook.
1. Color Systems in CSS
A. Named Colors
.primary {
color: dodgerblue;
background-color: whitesmoke;
border-color: goldenrod;
}
B. Hexadecimal (Most Common)
.secondary {
color: #1e90ff; /* Dodgerblue */
background-color: #f5f5f5; /* Whitesmoke */
border-color: #daa520; /* Goldenrod */
}
C. RGB/RGBA (Alpha Transparency)
.overlay {
background-color: rgba(30, 144, 255, 0.7); /* 70% opaque dodgerblue */
color: rgb(255, 255, 255); /* Pure white */
}
D. HSL/HSLA (Human-Friendly)
.button {
background-color: hsl(210, 100%, 56%); /* Dodgerblue */
color: hsla(0, 0%, 100%, 0.9); /* 90% opaque white */
}
E. Modern Color Functions
:root {
--primary: oklch(59.59% 0.151 252.37%); /* Perceptually uniform */
--surface: color(display-p3 0.96 0.96 0.96); /* Wide gamut */
}
2. Background Properties
A. Background Basics
.card {
background-color: #ffffff;
background-image: url("texture.png");
background-repeat: no-repeat;
background-position: right bottom;
background-size: 200px auto;
}
B. Background Shorthand
.hero {
background: #2c3e50 url("hero-bg.jpg") center/cover no-repeat;
}
/* Order: color image position/size repeat */
C. Multiple Backgrounds
.promo-banner {
background:
url("pattern.svg") top left repeat,
linear-gradient(to right, #3498db, #2c3e50),
url("logo.png") center no-repeat;
}
D. Advanced Background Techniques
/* Fixed background effect */
.parallax-section {
background-attachment: fixed;
}
/* Clip background to text */
.text-fill {
background: linear-gradient(45deg, #ff8a00, #e52e71);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
3. Gradient Techniques
A. Linear Gradients
.header {
background: linear-gradient(135deg, #667eea, #764ba2);
}
.button {
/* Direction keywords */
background: linear-gradient(to right, #4facfe, #00f2fe);
}
B. Radial Gradients
.spotlight {
background: radial-gradient(
circle at center,
rgba(255,255,255,0.8),
rgba(255,255,255,0)
);
}
C. Conic Gradients
.color-wheel {
background: conic-gradient(
red, yellow, lime, aqua, blue, magenta, red
);
border-radius: 50%;
}
D. Advanced Gradient Patterns
/* Striped background */
.stripes {
background: repeating-linear-gradient(
45deg,
#606dbc,
#606dbc 10px,
#465298 10px,
#465298 20px
);
}
/* Checkerboard */
.checkerboard {
background:
linear-gradient(45deg, #eee 25%, transparent 25%),
linear-gradient(-45deg, #eee 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #eee 75%),
linear-gradient(-45deg, transparent 75%, #eee 75%);
background-size: 20px 20px;
}
4. Professional Color Systems
A. CSS Variables for Colors
:root {
--primary: #3498db;
--primary-dark: #2980b9;
--text: #2c3e50;
--surface: #f8f9fa;
--error: #e74c3c;
}
.button {
background-color: var(--primary);
color: white;
}
.button:hover {
background-color: var(--primary-dark);
}
B. Color Contrast Accessibility
.cta {
background: #2c3e50;
color: #ffffff; /* 11:1 contrast ratio */
}
.warning {
background: #fff3cd;
color: #856404; /* 5.74:1 contrast ratio */
}
C. Dark Mode Implementation
:root {
--text: #333;
--bg: #fff;
}
@media (prefers-color-scheme: dark) {
:root {
--text: #f0f0f0;
--bg: #1a1a1a;
}
}
body {
color: var(--text);
background: var(--bg);
}
5. Practical Examples
Glassmorphism Effect
.glass-card {
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
Gradient Text Animation
.animated-text {
background: linear-gradient(
90deg,
#ff8a00,
#e52e71,
#ff8a00
);
background-size: 200% auto;
color: transparent;
-webkit-background-clip: text;
background-clip: text;
animation: shine 3s linear infinite;
}
@keyframes shine {
to {
background-position: 200% center;
}
}
Complex Background Pattern
.geometric-bg {
background-color: #2c3e50;
background-image:
radial-gradient(circle at 10% 20%, rgba(255,255,255,0.1) 0%, transparent 20%),
radial-gradient(circle at 90% 80%, rgba(255,255,255,0.1) 0%, transparent 20%),
linear-gradient(135deg, transparent 40%, rgba(52, 152, 219, 0.2) 40%,
linear-gradient(-135deg, transparent 40%, rgba(52, 152, 219, 0.2) 40%);
background-size: 100px 100px;
}
6. Exercises
-
Color System Implementation
- Create a color system using CSS variables
- Implement dark mode support
- Ensure all colors meet WCAG contrast ratios
-
Gradient Challenge
- Create a conic gradient color picker
- Implement a striped loading indicator
- Design a gradient text effect
-
Background Patterns
- Create a polka dot background
- Implement a diagonal stripe pattern
- Combine multiple backgrounds creatively
What's Next?
Tomorrow (Day 25) dives into CSS Typography covering web fonts, responsive text, and advanced text effects. For professional color systems and design tokens, see Chapter 19 in the Learn Frontend Development in 180 Days ebook.
Pro Tip: Use these tools for professional color work:
# Install color contrast checker
npm install -g color-contrast-checker
color-contrast #ff0000 #0000ff
Top comments (1)
Thanks