Afro Baroque is a cultural fusion aesthetic that weaves together the exuberant maximalism of African design traditions with the theatrical opulence of European Baroque. It is not a historical period style but a contemporary design movement that celebrates the intersection of two of the world’s richest decorative legacies: the bold geometric patterns, symbolic storytelling, and vibrant color palettes of West and Southern African textile arts (kente, Ankara wax print, mudcloth, Shweshwe, Ndebele geometry, Adinkra symbols), and the dramatic grandeur, gilded ornamentation, chiaroscuro lighting, and layered depth of Baroque composition.
Where traditional Baroque relies on scrollwork, acanthus leaves, and Eurocentric religious iconography, Afro Baroque replaces or remixes these motifs with culturally rooted African symbols, hand-beaded textures, woven strip patterns, and bold geometric borders. Gold remains central to both lineages: in Ashanti culture, gold signifies royalty, wealth, and spiritual power, while in Baroque art it represents divine glory and aristocratic excess. The convergence of these two golden traditions creates a visual language that feels simultaneously ancestral and palatial.
In digital and web design, Afro Baroque translates into richly layered compositions with deep, warm backgrounds, abundant gold and bronze metallic accents, dramatic lighting gradients, culturally significant geometric patterns used as borders and textures, ornate serif and display typography, and an unapologetic embrace of visual density. The aesthetic follows a “more is more” philosophy, but with intentional cultural meaning behind every decorative choice. Each pattern, symbol, and color carries narrative weight drawn from centuries of African artistic tradition, elevated through the theatrical staging and monumental scale of the Baroque sensibility.
Pioneering examples of this fusion include the work of designers and artisans like Ithemba Creations, who combine raw silk, African wax print, and found fabrics into pieces that marry the colorful grandeur of Baroque art with the craftsmanship of African textile traditions. The result is an aesthetic that is powerful, texturally rich, and deeply rooted in cultural storytelling while projecting an unmistakable sense of luxury and drama.
The Afro Baroque palette draws from two rich chromatic traditions. From African design: the bold primaries and earth tones of kente cloth, the deep indigo of Shweshwe and mudcloth, the warm terracotta of laterite soil, and the symbolic golds of Ashanti royal regalia. From Baroque: the deep burgundies and crimsons of velvet, the burnished metallics of gilded frames, and the dramatic contrast of shadow against illumination. Together they form a palette that is warm, saturated, and unmistakably luxurious.
| Swatch | Hex | Role / Usage |
|---|---|---|
| Ashanti Gold | #D4A017 |
Primary metallic accent, borders, headings, gilded elements |
| Burnished Bronze | #8C6B3E |
Secondary metallic, warm frames, ornamental details |
| Royal Kente Yellow | #E8B931 |
Bright gold accent, kente-inspired highlights, button hovers |
| Deep Burgundy | #6B0F1A |
Rich background panels, dramatic depth, Baroque warmth |
| Ankara Crimson | #B22234 |
Bold primary accent, call-to-action elements, vital energy |
| Shweshwe Indigo | #1B2A4A |
Deep surface backgrounds, card panels, wisdom and depth |
| Mudcloth Earth | #5C3A21 |
Warm mid-tone, earthy grounding, organic texture references |
| Laterite Terracotta | #C65D3E |
Warm accent, African earth tones, decorative highlights |
| Ancestral Black | #120E0A |
Deepest background, shadow areas, high-contrast base |
| Ivory Parchment | #F5E6CA |
Primary text color, warm off-white, readable body copy |
| Palm Green | #2D5A27 |
Accent for growth and vitality, secondary decorative element |
| Royal Purple | #4B1D6B |
Regal accent, spiritual depth, ornamental highlights |
| Warm Cream | #FDF0D5 |
Light section backgrounds, contrast panels, highlighted text |
| Copper Shimmer | #B87333 |
Tertiary metallic, warm glow accents, hover states |
:root {
/* Metallics */
--ab-gold: #D4A017;
--ab-gold-bright: #E8B931;
--ab-bronze: #8C6B3E;
--ab-copper: #B87333;
/* Deep Tones */
--ab-black: #120E0A;
--ab-burgundy: #6B0F1A;
--ab-indigo: #1B2A4A;
--ab-purple: #4B1D6B;
/* Warm Accents */
--ab-crimson: #B22234;
--ab-terracotta: #C65D3E;
--ab-earth: #5C3A21;
--ab-green: #2D5A27;
/* Light Tones */
--ab-parchment: #F5E6CA;
--ab-cream: #FDF0D5;
/* Functional Aliases */
--ab-bg-primary: var(--ab-black);
--ab-bg-surface: var(--ab-indigo);
--ab-bg-panel: var(--ab-burgundy);
--ab-text-primary: var(--ab-parchment);
--ab-text-heading: var(--ab-gold);
--ab-accent: var(--ab-gold);
--ab-accent-warm: var(--ab-terracotta);
--ab-border: var(--ab-gold);
}
Afro Baroque typography bridges two worlds: the ornate, high-contrast serif traditions of Baroque lettering (elaborate swash capitals, flowing calligraphic curves, dramatic thick-thin stroke variation) and the bold geometric confidence found in contemporary African-inspired display typefaces. Headings should feel monumental and gilded, body text should be warm and readable with classical elegance, and accent text can incorporate decorative or display faces that evoke both cultural richness and theatrical grandeur.
| Font | Weight(s) | Usage | Link |
|---|---|---|---|
| Playfair Display | 400, 600, 700, 800, 900 | Primary display headings; high-contrast serif with Baroque drama | Playfair Display |
| Cormorant Garamond | 300, 400, 500, 600, 700 | Body text and subheadings; elegant old-style serif | Cormorant Garamond |
| Cinzel Decorative | 400, 700, 900 | Hero display text; ornamental Roman capitals | Cinzel Decorative |
| Syne | 400, 500, 600, 700, 800 | Bold geometric headings; modern African-inspired feel | Syne |
| Libre Baskerville | 400, 700, 400i | Readable body copy; refined transitional serif | Libre Baskerville |
| Great Vibes | 400 | Decorative script accents; calligraphic flourishes | Great Vibes |
| Heading | Body | Vibe |
|---|---|---|
| Playfair Display 800 | Cormorant Garamond 400 | Classical Afro Baroque opulence |
| Cinzel Decorative 700 | Libre Baskerville 400 | Monumental gilded grandeur |
| Syne 700 | Cormorant Garamond 400 | Contemporary African-meets-Baroque editorial |
| Playfair Display 700 | Libre Baskerville 400 | Refined cultural fusion |
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Cinzel+Decorative:wght@400;700;900&family=Syne:wght@400;600;700;800&display=swap');
/* Body text */
body {
font-family: 'Cormorant Garamond', 'Libre Baskerville', Georgia, serif;
font-weight: 400;
font-size: 1.1rem;
letter-spacing: 0.02em;
line-height: 1.8;
color: var(--ab-parchment);
-webkit-font-smoothing: antialiased;
}
/* Headings */
h1, h2, h3 {
font-family: 'Playfair Display', 'Georgia', serif;
color: var(--ab-gold);
letter-spacing: 0.04em;
font-weight: 800;
text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5);
}
/* Hero display title */
.ab-display {
font-family: 'Cinzel Decorative', 'Playfair Display', serif;
font-size: clamp(2.5rem, 7vw, 6rem);
font-weight: 700;
letter-spacing: 0.06em;
line-height: 1.15;
background: linear-gradient(
135deg,
#D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Bold geometric subheading */
.ab-subheading {
font-family: 'Syne', sans-serif;
font-weight: 700;
font-size: 1.3rem;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--ab-terracotta);
}
/* Decorative script accent */
.ab-script {
font-family: 'Great Vibes', cursive;
font-size: 1.6em;
color: var(--ab-gold-bright);
}
/* Burnished gold gradient text */
.ab-gold-text {
background: linear-gradient(
135deg,
#D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Animated gold shimmer for headings */
.ab-gold-shimmer {
background: linear-gradient(
90deg,
#D4A017 0%, #E8B931 25%, #FDF0D5 50%, #E8B931 75%, #D4A017 100%
);
background-size: 200% 100%;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: ab-shimmer 4s ease-in-out infinite;
}
@keyframes ab-shimmer {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
/* Gold border with inner glow */
.ab-gold-border {
border: 2px solid var(--ab-gold);
box-shadow:
inset 0 0 20px rgba(212, 160, 23, 0.08),
0 0 15px rgba(212, 160, 23, 0.1);
}
/* Kente-inspired repeating strip pattern */
.ab-kente-bg {
background-color: var(--ab-black);
background-image:
repeating-linear-gradient(
0deg,
transparent 0px,
transparent 18px,
rgba(212, 160, 23, 0.06) 18px,
rgba(212, 160, 23, 0.06) 20px
),
repeating-linear-gradient(
90deg,
transparent 0px,
transparent 18px,
rgba(178, 34, 52, 0.04) 18px,
rgba(178, 34, 52, 0.04) 20px
);
}
/* Bold kente strip divider */
.ab-kente-divider {
height: 8px;
background: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 12px,
#B22234 12px, #B22234 24px,
#2D5A27 24px, #2D5A27 36px,
#1B2A4A 36px, #1B2A4A 48px,
#D4A017 48px, #D4A017 60px
);
margin: 3rem 0;
}
/* Diamond / chevron kente-inspired pattern overlay */
.ab-kente-overlay {
background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 0 L40 20 L20 40 L0 20 Z' fill='none' stroke='%23D4A017' stroke-width='0.5' opacity='0.08'/%3E%3C/svg%3E");
}
.ab-card {
background: linear-gradient(
160deg,
rgba(27, 42, 74, 0.6) 0%,
rgba(18, 14, 10, 0.9) 100%
);
border: 2px solid var(--ab-gold);
border-radius: 4px;
padding: 2.5rem;
position: relative;
box-shadow:
0 6px 24px rgba(0, 0, 0, 0.5),
inset 0 0 40px rgba(212, 160, 23, 0.04);
}
/* Top kente-strip accent bar */
.ab-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 8px,
#B22234 8px, #B22234 16px,
#2D5A27 16px, #2D5A27 24px,
#D4A017 24px, #D4A017 32px
);
border-radius: 4px 4px 0 0;
}
/* Bottom decorative border using Adinkra-inspired element */
.ab-card::after {
content: '\2726';
position: absolute;
bottom: -14px;
left: 50%;
transform: translateX(-50%);
font-size: 1.4rem;
color: var(--ab-gold);
background: var(--ab-black);
padding: 0 0.6em;
}
.ab-card h3 {
font-family: 'Playfair Display', serif;
font-weight: 800;
font-size: 1.4rem;
color: var(--ab-gold);
margin-bottom: 1rem;
letter-spacing: 0.03em;
}
.ab-card p {
color: var(--ab-parchment);
line-height: 1.8;
}
.ab-button {
display: inline-block;
background: linear-gradient(
135deg,
rgba(212, 160, 23, 0.15) 0%,
rgba(140, 107, 62, 0.1) 100%
);
color: var(--ab-gold);
border: 2px solid var(--ab-gold);
border-radius: 2px;
padding: 14px 40px;
font-family: 'Playfair Display', serif;
font-size: 0.9rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.12em;
text-decoration: none;
cursor: pointer;
transition: all 0.35s ease;
position: relative;
overflow: hidden;
}
.ab-button:hover {
background: linear-gradient(
135deg,
rgba(212, 160, 23, 0.3) 0%,
rgba(232, 185, 49, 0.2) 100%
);
box-shadow:
0 0 20px rgba(212, 160, 23, 0.25),
0 0 40px rgba(212, 160, 23, 0.1);
text-shadow: 0 0 10px rgba(212, 160, 23, 0.4);
color: var(--ab-cream);
}
/* Shimmer sweep effect on hover */
.ab-button::after {
content: '';
position: absolute;
top: -50%;
left: -100%;
width: 60%;
height: 200%;
background: linear-gradient(
90deg,
transparent,
rgba(232, 185, 49, 0.15),
transparent
);
transform: skewX(-20deg);
transition: left 0.6s ease;
}
.ab-button:hover::after {
left: 120%;
}
.ab-nav {
background: rgba(18, 14, 10, 0.96);
border-bottom: 3px solid transparent;
border-image: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 12px,
transparent 12px, transparent 16px,
#B22234 16px, #B22234 28px,
transparent 28px, transparent 32px
) 3;
padding: 18px 40px;
display: flex;
align-items: center;
justify-content: space-between;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.ab-nav .logo {
font-family: 'Cinzel Decorative', serif;
font-size: 1.3rem;
font-weight: 700;
color: var(--ab-gold);
text-decoration: none;
letter-spacing: 0.06em;
}
.ab-nav-links {
display: flex;
gap: 8px;
list-style: none;
margin: 0;
padding: 0;
}
.ab-nav a {
font-family: 'Playfair Display', serif;
font-size: 0.85rem;
font-weight: 600;
color: var(--ab-parchment);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.08em;
padding: 8px 16px;
transition: color 0.25s ease, text-shadow 0.25s ease;
}
.ab-nav a:hover {
color: var(--ab-gold);
text-shadow: 0 0 12px rgba(212, 160, 23, 0.35);
}
.ab-hero {
text-align: center;
padding: 100px 40px 80px;
position: relative;
overflow: hidden;
background:
radial-gradient(
ellipse at 50% 40%,
rgba(212, 160, 23, 0.1) 0%,
rgba(107, 15, 26, 0.06) 40%,
rgba(18, 14, 10, 0) 70%
);
}
/* Kente-inspired geometric frame around hero */
.ab-hero::before {
content: '';
position: absolute;
inset: 20px;
border: 2px solid rgba(212, 160, 23, 0.15);
pointer-events: none;
}
/* Subtle diamond pattern overlay */
.ab-hero::after {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg width='48' height='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 4 L44 24 L24 44 L4 24 Z' fill='none' stroke='%23D4A017' stroke-width='0.3' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none;
}
.ab-hero h1 {
font-family: 'Cinzel Decorative', serif;
font-size: clamp(2.5rem, 7vw, 5.5rem);
font-weight: 700;
letter-spacing: 0.06em;
line-height: 1.15;
background: linear-gradient(
135deg,
#D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 1rem;
position: relative;
}
.ab-hero .tagline {
font-family: 'Cormorant Garamond', serif;
font-size: 1.3rem;
font-style: italic;
color: var(--ab-parchment);
max-width: 600px;
margin: 0 auto;
line-height: 1.8;
position: relative;
}
/* Afro Baroque section divider */
.ab-divider {
border: none;
height: 0;
border-top: 2px solid var(--ab-gold);
margin: 3rem auto;
width: 60%;
position: relative;
}
.ab-divider::before {
content: '\2726';
position: absolute;
top: -0.65em;
left: 50%;
transform: translateX(-50%);
background: var(--ab-black);
padding: 0 0.6em;
color: var(--ab-gold);
font-size: 1.3rem;
}
/* Kente strip section break */
.ab-strip-divider {
border: none;
height: 6px;
background: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 10px,
transparent 10px, transparent 14px,
#B22234 14px, #B22234 24px,
transparent 24px, transparent 28px,
#2D5A27 28px, #2D5A27 38px,
transparent 38px, transparent 42px
);
margin: 3rem 0;
}
/* Warm baroque spotlight on dark background */
.ab-spotlight {
background: radial-gradient(
ellipse at 50% 30%,
rgba(212, 160, 23, 0.12) 0%,
rgba(107, 15, 26, 0.05) 40%,
rgba(18, 14, 10, 0) 70%
);
}
/* Vignette overlay for dramatic framing */
.ab-vignette::after {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(
ellipse at center,
transparent 40%,
rgba(18, 14, 10, 0.65) 100%
);
pointer-events: none;
}
/* Deep layered shadow for cards and panels */
.ab-depth {
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.3),
0 6px 16px rgba(0, 0, 0, 0.25),
0 12px 40px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(212, 160, 23, 0.12);
}
| Aesthetic | Relationship to Afro Baroque |
|---|---|
| Baroque | Direct parent aesthetic providing the ornate framing, chiaroscuro lighting, gilded metallic accents, and theatrical grandeur |
| Afrofuturism | Fellow African-heritage aesthetic; shares gold metallics and geometric patterns but projects into sci-fi futures rather than opulent historical fusion |
| Art Deco | Shares geometric precision and gold/black palettes; the Afro-Deco movement is a parallel cultural fusion cousin |
| Maximalism | Shares the “more is more” philosophy and layered visual density; Afro Baroque is maximalism with specific cultural roots |
| Royalcore | Both celebrate palatial luxury, rich textures, and gold accents, but Royalcore centers European monarchy |
| Rococo | Successor to Baroque with lighter, more playful ornamentation; provides contrast to Afro Baroque’s heavier grandeur |
| Bohemian / Afrohemian | Shares African textile celebration and pattern layering but with a more relaxed, free-spirited sensibility rather than dramatic opulence |
| Gothic Revival | Both use dark palettes, ornate framing, and dramatic atmosphere, but Gothic draws from medieval rather than African and Baroque sources |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Afro Baroque</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Cinzel+Decorative:wght@400;700;900&family=Syne:wght@400;600;700;800&display=swap" rel="stylesheet">
<style>
/* ========================================
CSS Custom Properties
======================================== */
:root {
/* Metallics */
--ab-gold: #D4A017;
--ab-gold-bright: #E8B931;
--ab-bronze: #8C6B3E;
--ab-copper: #B87333;
/* Deep Tones */
--ab-black: #120E0A;
--ab-burgundy: #6B0F1A;
--ab-indigo: #1B2A4A;
--ab-purple: #4B1D6B;
/* Warm Accents */
--ab-crimson: #B22234;
--ab-terracotta: #C65D3E;
--ab-earth: #5C3A21;
--ab-green: #2D5A27;
/* Light Tones */
--ab-parchment: #F5E6CA;
--ab-cream: #FDF0D5;
}
/* ========================================
Reset and Base
======================================== */
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Cormorant Garamond', Georgia, serif;
font-weight: 400;
font-size: 1.1rem;
line-height: 1.8;
letter-spacing: 0.02em;
color: var(--ab-parchment);
background: var(--ab-black);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* ========================================
Kente Pattern Background Texture
======================================== */
body::before {
content: '';
position: fixed;
inset: 0;
background-image:
repeating-linear-gradient(
0deg,
transparent 0px, transparent 20px,
rgba(212, 160, 23, 0.03) 20px, rgba(212, 160, 23, 0.03) 21px
),
repeating-linear-gradient(
90deg,
transparent 0px, transparent 20px,
rgba(178, 34, 52, 0.02) 20px, rgba(178, 34, 52, 0.02) 21px
);
pointer-events: none;
z-index: 0;
}
/* ========================================
Typography
======================================== */
h1, h2, h3 {
font-family: 'Playfair Display', Georgia, serif;
color: var(--ab-gold);
letter-spacing: 0.04em;
font-weight: 800;
text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5);
}
h2 {
font-size: 2rem;
margin-bottom: 0.8rem;
}
h3 {
font-size: 1.4rem;
margin-bottom: 0.6rem;
}
p {
margin-bottom: 1rem;
}
a {
color: var(--ab-gold-bright);
text-decoration: none;
transition: color 0.25s ease;
}
a:hover {
color: var(--ab-cream);
text-shadow: 0 0 8px rgba(212, 160, 23, 0.3);
}
/* ========================================
Navigation
======================================== */
.ab-nav {
position: sticky;
top: 0;
z-index: 100;
background: rgba(18, 14, 10, 0.96);
border-bottom: 3px solid transparent;
border-image: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 12px,
transparent 12px, transparent 16px,
#B22234 16px, #B22234 28px,
transparent 28px, transparent 32px
) 3;
padding: 16px 40px;
display: flex;
align-items: center;
justify-content: space-between;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.ab-nav .logo {
font-family: 'Cinzel Decorative', serif;
font-size: 1.2rem;
font-weight: 700;
color: var(--ab-gold);
text-decoration: none;
letter-spacing: 0.06em;
}
.ab-nav-links {
display: flex;
gap: 4px;
list-style: none;
}
.ab-nav-links a {
font-family: 'Playfair Display', serif;
font-size: 0.82rem;
font-weight: 600;
color: var(--ab-parchment);
text-transform: uppercase;
letter-spacing: 0.08em;
padding: 8px 14px;
transition: color 0.25s ease, text-shadow 0.25s ease;
}
.ab-nav-links a:hover {
color: var(--ab-gold);
text-shadow: 0 0 12px rgba(212, 160, 23, 0.35);
}
/* ========================================
Hero Section
======================================== */
.ab-hero {
text-align: center;
padding: 100px 40px 80px;
position: relative;
overflow: hidden;
background:
radial-gradient(
ellipse at 50% 35%,
rgba(212, 160, 23, 0.1) 0%,
rgba(107, 15, 26, 0.05) 40%,
rgba(18, 14, 10, 0) 70%
);
}
/* Geometric border frame */
.ab-hero::before {
content: '';
position: absolute;
inset: 24px;
border: 2px solid rgba(212, 160, 23, 0.12);
pointer-events: none;
}
/* Diamond pattern overlay */
.ab-hero::after {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg width='48' height='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 4 L44 24 L24 44 L4 24 Z' fill='none' stroke='%23D4A017' stroke-width='0.3' opacity='0.04'/%3E%3C/svg%3E");
pointer-events: none;
}
.ab-hero .label {
font-family: 'Syne', sans-serif;
font-size: 0.75rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.25em;
color: var(--ab-terracotta);
margin-bottom: 20px;
position: relative;
}
.ab-hero h1 {
font-family: 'Cinzel Decorative', serif;
font-size: clamp(2.5rem, 7vw, 5rem);
font-weight: 700;
letter-spacing: 0.06em;
line-height: 1.15;
background: linear-gradient(
135deg,
#D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 1.2rem;
text-shadow: none;
position: relative;
}
.ab-hero .tagline {
font-family: 'Cormorant Garamond', serif;
font-size: 1.25rem;
font-style: italic;
color: var(--ab-parchment);
max-width: 580px;
margin: 0 auto 2rem;
line-height: 1.8;
position: relative;
}
/* ========================================
Kente Dividers
======================================== */
.ab-kente-bar {
height: 6px;
background: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 10px,
#B22234 10px, #B22234 20px,
#2D5A27 20px, #2D5A27 30px,
#1B2A4A 30px, #1B2A4A 40px,
#D4A017 40px, #D4A017 50px
);
margin: 0;
}
.ab-divider {
border: none;
height: 0;
border-top: 2px solid var(--ab-gold);
margin: 2.5rem auto;
width: 50%;
position: relative;
}
.ab-divider::before {
content: '\2726';
position: absolute;
top: -0.65em;
left: 50%;
transform: translateX(-50%);
background: var(--ab-black);
padding: 0 0.6em;
color: var(--ab-gold);
font-size: 1.2rem;
}
/* ========================================
Layout Container
======================================== */
.container {
max-width: 960px;
margin: 0 auto;
padding: 0 24px;
position: relative;
z-index: 1;
}
section {
padding: 60px 0;
}
/* ========================================
Cards
======================================== */
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 32px;
margin-top: 2rem;
}
.ab-card {
background: linear-gradient(
160deg,
rgba(27, 42, 74, 0.5) 0%,
rgba(18, 14, 10, 0.9) 100%
);
border: 2px solid var(--ab-gold);
border-radius: 4px;
padding: 2.5rem 2rem;
position: relative;
box-shadow:
0 6px 24px rgba(0, 0, 0, 0.5),
inset 0 0 30px rgba(212, 160, 23, 0.03);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.ab-card:hover {
transform: translateY(-4px);
box-shadow:
0 10px 36px rgba(0, 0, 0, 0.6),
0 0 20px rgba(212, 160, 23, 0.08),
inset 0 0 30px rgba(212, 160, 23, 0.05);
}
/* Kente strip top accent */
.ab-card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 4px;
background: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 8px,
#B22234 8px, #B22234 16px,
#2D5A27 16px, #2D5A27 24px
);
border-radius: 4px 4px 0 0;
}
.ab-card .card-icon {
font-size: 2rem;
margin-bottom: 1rem;
display: block;
}
.ab-card h3 {
font-family: 'Playfair Display', serif;
font-weight: 800;
font-size: 1.3rem;
color: var(--ab-gold);
margin-bottom: 0.8rem;
}
.ab-card p {
font-size: 1rem;
color: var(--ab-parchment);
line-height: 1.75;
}
/* ========================================
Buttons
======================================== */
.ab-button {
display: inline-block;
background: linear-gradient(
135deg,
rgba(212, 160, 23, 0.12) 0%,
rgba(140, 107, 62, 0.08) 100%
);
color: var(--ab-gold);
border: 2px solid var(--ab-gold);
border-radius: 2px;
padding: 14px 40px;
font-family: 'Playfair Display', serif;
font-size: 0.88rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.12em;
text-decoration: none;
cursor: pointer;
transition: all 0.35s ease;
position: relative;
overflow: hidden;
}
.ab-button:hover {
background: linear-gradient(
135deg,
rgba(212, 160, 23, 0.28) 0%,
rgba(232, 185, 49, 0.18) 100%
);
box-shadow:
0 0 20px rgba(212, 160, 23, 0.25),
0 0 40px rgba(212, 160, 23, 0.1);
text-shadow: 0 0 10px rgba(212, 160, 23, 0.4);
color: var(--ab-cream);
}
.ab-button::after {
content: '';
position: absolute;
top: -50%;
left: -100%;
width: 60%;
height: 200%;
background: linear-gradient(
90deg,
transparent,
rgba(232, 185, 49, 0.12),
transparent
);
transform: skewX(-20deg);
transition: left 0.6s ease;
}
.ab-button:hover::after {
left: 120%;
}
.ab-button--secondary {
background: transparent;
border-color: var(--ab-terracotta);
color: var(--ab-terracotta);
}
.ab-button--secondary:hover {
background: rgba(198, 93, 62, 0.12);
box-shadow: 0 0 20px rgba(198, 93, 62, 0.2);
color: var(--ab-cream);
}
/* ========================================
Feature / Highlight Panel
======================================== */
.ab-panel {
background: linear-gradient(
160deg,
rgba(107, 15, 26, 0.25) 0%,
rgba(18, 14, 10, 0.85) 100%
);
border: 2px solid var(--ab-gold);
padding: 3rem;
position: relative;
margin: 2rem 0;
}
/* Double-frame ornate border */
.ab-panel::before {
content: '';
position: absolute;
inset: 8px;
border: 1px solid rgba(212, 160, 23, 0.2);
pointer-events: none;
}
.ab-panel h2 {
text-align: center;
margin-bottom: 1.5rem;
}
.ab-panel p {
text-align: center;
max-width: 700px;
margin: 0 auto;
font-size: 1.15rem;
}
/* ========================================
Footer
======================================== */
.ab-footer {
text-align: center;
padding: 40px 24px;
border-top: 3px solid transparent;
border-image: repeating-linear-gradient(
90deg,
#D4A017 0px, #D4A017 12px,
transparent 12px, transparent 16px,
#B22234 16px, #B22234 28px,
transparent 28px, transparent 32px
) 3;
font-size: 0.9rem;
color: rgba(245, 230, 202, 0.5);
}
.ab-footer .footer-symbol {
font-size: 1.4rem;
color: var(--ab-gold);
margin-bottom: 0.8rem;
display: block;
}
/* ========================================
Responsive
======================================== */
@media (max-width: 768px) {
.ab-nav {
flex-direction: column;
gap: 12px;
padding: 14px 20px;
}
.ab-nav-links {
flex-wrap: wrap;
justify-content: center;
}
.ab-hero {
padding: 70px 20px 60px;
}
.ab-hero::before {
inset: 12px;
}
.card-grid {
grid-template-columns: 1fr;
}
.ab-panel {
padding: 2rem 1.5rem;
}
section {
padding: 40px 0;
}
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="ab-nav">
<a href="#" class="logo">Afro Baroque</a>
<ul class="ab-nav-links">
<li><a href="#heritage">Heritage</a></li>
<li><a href="#craft">Craft</a></li>
<li><a href="#gallery">Gallery</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
<!-- Kente Strip Bar -->
<div class="ab-kente-bar"></div>
<!-- Hero Section -->
<header class="ab-hero">
<p class="label">Where Heritage Meets Grandeur</p>
<h1>Afro Baroque</h1>
<p class="tagline">
African design maximalism woven with Baroque opulence —
bold patterns, ancestral gold, rich textures, cultural fusion.
</p>
<div style="margin-top: 2rem; position: relative;">
<a href="#heritage" class="ab-button">Explore the Aesthetic</a>
</div>
</header>
<!-- Kente Strip Bar -->
<div class="ab-kente-bar"></div>
<!-- Heritage Section -->
<section id="heritage">
<div class="container">
<h2>Rooted in Heritage</h2>
<hr class="ab-divider">
<p style="text-align: center; max-width: 700px; margin: 0 auto 2rem; font-size: 1.15rem;">
From the gold-weighted geometry of Ashanti kente cloth to the dramatic
chiaroscuro of Caravaggio, Afro Baroque draws from centuries of artistic
mastery across continents. Every pattern encodes a story. Every gilded
surface reflects a legacy of craftsmanship.
</p>
<div class="card-grid">
<div class="ab-card">
<span class="card-icon">◆</span>
<h3>Kente Geometry</h3>
<p>
Originally the cloth of kings and queens in the Ashanti kingdom,
kente weaving transforms narrow strips into bold geometric
narratives of status, history, and aspiration.
</p>
</div>
<div class="ab-card">
<span class="card-icon">✦</span>
<h3>Baroque Grandeur</h3>
<p>
Born in 16th-century Rome, the Baroque tradition embraced
dramatic light, monumental scale, and gilded ornamentation
to create spaces of overwhelming beauty.
</p>
</div>
<div class="ab-card">
<span class="card-icon">✿</span>
<h3>Cultural Fusion</h3>
<p>
Afro Baroque is neither historical pastiche nor superficial
blending. It is a living dialogue between two of the world's
richest decorative traditions, creating something new.
</p>
</div>
</div>
</div>
</section>
<!-- Kente Strip Bar -->
<div class="ab-kente-bar"></div>
<!-- Craft Section -->
<section id="craft">
<div class="container">
<div class="ab-panel">
<h2>The Craft of Fusion</h2>
<p>
Raw silk meets African wax print. Mudcloth earth tones layer
beneath burnished gold leaf. Hand-beaded Yoruba patterns frame
Baroque cartouches. In Afro Baroque design, every texture tells
two stories at once — ancestral and aspirational, rooted
and reaching.
</p>
</div>
<div class="card-grid" style="margin-top: 3rem;">
<div class="ab-card">
<h3>Adinkra Symbols</h3>
<p>
Ghanaian visual philosophy rendered in gold. Gye Nyame
(supremacy of God), Sankofa (learn from the past),
Dwennimmen (strength with humility) — each symbol
carries generations of wisdom.
</p>
</div>
<div class="ab-card">
<h3>Gilded Ornamentation</h3>
<p>
Gold unites both traditions. In Ashanti culture it signifies
royalty and spiritual power. In Baroque art it represents
divine glory. Their convergence creates a shared language of
reverence and magnificence.
</p>
</div>
</div>
<div style="text-align: center; margin-top: 3rem;">
<a href="#gallery" class="ab-button">View the Gallery</a>
<a href="#contact" class="ab-button ab-button--secondary" style="margin-left: 16px;">Get in Touch</a>
</div>
</div>
</section>
<!-- Kente Strip Bar -->
<div class="ab-kente-bar"></div>
<!-- Gallery Section -->
<section id="gallery">
<div class="container">
<h2 style="text-align: center;">Gallery of Fusion</h2>
<hr class="ab-divider">
<div class="card-grid">
<div class="ab-card">
<h3>Textile Alchemy</h3>
<p>
Ankara wax-print cottons layered with Baroque brocade
patterns, dyed in deep indigo and bordered with gold thread.
The fabric itself becomes a canvas of cultural dialogue.
</p>
</div>
<div class="ab-card">
<h3>Beaded Cartouches</h3>
<p>
Traditional Zulu beadwork techniques applied to Baroque
oval frames, creating ornate borders where every bead
carries chromatic meaning and every curve echoes palatial halls.
</p>
</div>
<div class="ab-card">
<h3>Chiaroscuro Portraits</h3>
<p>
Dramatic Baroque lighting illuminates subjects adorned in
kente cloth and gold jewelry, celebrating African beauty
through the theatrical staging of Renaissance masters.
</p>
</div>
</div>
</div>
</section>
<!-- Footer -->
<div class="ab-kente-bar"></div>
<footer class="ab-footer">
<span class="footer-symbol">✦</span>
<p>Afro Baroque — Heritage as Luxury, Pattern as Power</p>
<p style="margin-top: 0.5rem;">© 2026 · A Celebration of Cultural Fusion</p>
</footer>
</body>
</html>
background: linear-gradient(135deg, #D4A017, #E8B931, #8C6B3E, #E8B931, #D4A017) with -webkit-background-clip: text and -webkit-text-fill-color: transparent for shimmering gold headings that reference both Ashanti goldwork and Baroque gildingrepeating-linear-gradient with palette colors (gold, crimson, green, indigo) at defined pixel intervals; use these as border-image or standalone divider elementsradial-gradient values with warm gold and burgundy tones on dark backgrounds; use box-shadow with multiple values at increasing blur radii for dimensional card effects#FFFFFF) and pure black (#000000); instead use warm parchment (#F5E6CA) for text and warm near-black (#120E0A) for backgrounds to maintain the rich, candlelit atmosphere