Cluttercore is a maximalist interior and lifestyle aesthetic that emerged on TikTok around 2020, gaining traction during the COVID-19 pandemic. It celebrates the “beautiful mess” – densely curated, deeply personal spaces where every surface becomes a display canvas for collections, memorabilia, and sentimental objects. Unlike traditional maximalism, which aims for bold but cohesive design, Cluttercore prioritizes emotional resonance and personal expression over aesthetic harmony, creating spaces that feel organically evolved and intimately lived-in.
| Role | Colors |
|---|---|
| Base / Background | Warm cream, aged paper, soft ivory |
| Warm accents | Terracotta, mustard yellow, burnt orange, dusty rose |
| Cool accents | Teal, sage green, periwinkle blue, plum purple |
| Rich tones | Burgundy, forest green, navy blue, ochre |
| Bright pops | Cherry red, sunflower yellow, cobalt blue, magenta |
| Color | Hex (suggested) | Usage |
|---|---|---|
| Warm Cream | #F5F0E6, #FFF8EE |
Primary background, base surface |
| Aged Paper | #EDE4D3, #E8DCCA |
Secondary backgrounds, card surfaces |
| Terracotta | #C8614C, #D4735E |
Primary warm accent, highlights |
| Mustard Yellow | #D4A843, #E5B94E |
Accent elements, badges, tags |
| Sage Green | #8DA47E, #9BB08E |
Nature/plant accents, secondary elements |
| Dusty Rose | #C48B8B, #D1A0A0 |
Soft warm accent, borders, hover states |
| Teal | #3D8B8B, #4A9E9E |
Cool accent, links, interactive elements |
| Plum Purple | #7B5078, #8E6088 |
Feature accents, headings |
| Burgundy | #803040, #943A4A |
Deep accent, emphasis text |
| Forest Green | #2E5E3E, #3A7050 |
Rich accent, section backgrounds |
| Burnt Orange | #CC6B30, #D87A3E |
Call-to-action, warm highlight |
| Navy | #2A3A5C, #354770 |
Dark accent, contrast backgrounds |
| Cobalt Blue | #2E5BA8, #3A6CBC |
Bright pop accent |
| Cherry Red | #B83240, #CC3D4C |
Bright pop accent |
| Rich Brown | #5C3D2E, #6B4A3A |
Borders, frames, grounding color |
:root {
/* Warm base tones */
--clutter-cream: #f5f0e6;
--clutter-ivory: #fff8ee;
--clutter-paper: #ede4d3;
--clutter-parchment: #e8dcca;
/* Warm accents */
--clutter-terracotta: #c8614c;
--clutter-mustard: #d4a843;
--clutter-burnt-orange: #cc6b30;
--clutter-dusty-rose: #c48b8b;
/* Cool accents */
--clutter-teal: #3d8b8b;
--clutter-sage: #8da47e;
--clutter-periwinkle: #7080b8;
--clutter-plum: #7b5078;
/* Rich / deep tones */
--clutter-burgundy: #803040;
--clutter-forest: #2e5e3e;
--clutter-navy: #2a3a5c;
--clutter-brown: #5c3d2e;
/* Bright pops */
--clutter-cherry: #b83240;
--clutter-cobalt: #2e5ba8;
--clutter-sunflower: #e5c040;
--clutter-magenta: #b8388e;
/* Functional mappings */
--clutter-bg-primary: var(--clutter-cream);
--clutter-bg-secondary: var(--clutter-paper);
--clutter-bg-card: var(--clutter-ivory);
--clutter-text-primary: var(--clutter-brown);
--clutter-text-secondary: #6b5a4a;
--clutter-text-heading: var(--clutter-burgundy);
--clutter-accent: var(--clutter-teal);
--clutter-accent-warm: var(--clutter-terracotta);
--clutter-border: var(--clutter-dusty-rose);
--clutter-link: var(--clutter-teal);
--clutter-link-hover: var(--clutter-plum);
}
Cluttercore typography reflects its eclectic, personal, handmade ethos:
| Font | Style | Usage |
|---|---|---|
| Playfair Display | Elegant, high-contrast serif | Headlines, section titles |
| Lora | Warm, calligraphic serif | Subheadings, pull quotes |
| Merriweather | Sturdy, readable serif | Body text alternative |
| Nunito | Rounded, friendly sans-serif | Body text, UI elements |
| Quicksand | Rounded geometric sans-serif | Labels, navigation, tags |
| Caveat | Handwritten, natural | Annotations, decorative labels, captions |
| Patrick Hand | Handwritten, casual | Accent text, callouts |
| Crimson Pro | Classic, book-style serif | Long-form body text |
| Indie Flower | Handwritten, whimsical | Decorative accents, stickers |
| DM Serif Display | Bold, characterful display serif | Hero headlines |
/* Headlines -- characterful serif */
h1, h2, h3 {
font-family: 'Playfair Display', 'DM Serif Display', Georgia, serif;
font-weight: 700;
color: var(--clutter-text-heading);
line-height: 1.2;
}
h1 { font-size: clamp(2.2rem, 5vw, 4rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.8rem); }
/* Body text -- friendly, rounded */
body {
font-family: 'Nunito', 'Quicksand', sans-serif;
font-weight: 400;
font-size: 1rem;
line-height: 1.7;
color: var(--clutter-text-primary);
}
/* Handwritten accent text */
.clutter-handwritten {
font-family: 'Caveat', 'Patrick Hand', cursive;
font-size: 1.3em;
color: var(--clutter-terracotta);
transform: rotate(-2deg);
display: inline-block;
}
/* Labels and tags */
.clutter-tag {
font-family: 'Quicksand', 'Nunito', sans-serif;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--clutter-text-secondary);
}
/* Decorative pull quote */
.clutter-quote {
font-family: 'Lora', 'Crimson Pro', serif;
font-style: italic;
font-size: 1.4rem;
line-height: 1.5;
color: var(--clutter-plum);
border-left: 4px solid var(--clutter-dusty-rose);
padding-left: 1.5rem;
}
/* Aged paper / cream background with subtle texture */
.clutter-bg {
background-color: var(--clutter-cream);
background-image:
radial-gradient(
ellipse at 20% 50%,
rgba(212, 168, 67, 0.06) 0%,
transparent 50%
),
radial-gradient(
ellipse at 80% 20%,
rgba(141, 164, 126, 0.06) 0%,
transparent 50%
),
radial-gradient(
ellipse at 50% 80%,
rgba(196, 139, 139, 0.06) 0%,
transparent 50%
);
}
/* Paper grain texture overlay */
.clutter-grain::before {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 0;
}
/* CSS Grid masonry approximation */
.clutter-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 1rem;
padding: 1rem;
}
/* Varied card sizes for organic feel */
.clutter-grid > :nth-child(3n+1) { grid-row: span 2; }
.clutter-grid > :nth-child(5n+2) { grid-column: span 2; }
/* True masonry with columns (fallback approach) */
.clutter-masonry {
columns: 3 280px;
column-gap: 1.2rem;
padding: 1rem;
}
.clutter-masonry > * {
break-inside: avoid;
margin-bottom: 1.2rem;
display: inline-block;
width: 100%;
}
/* Base clutter card -- warm, slightly tilted */
.clutter-card {
background: var(--clutter-bg-card);
border: 2px solid var(--clutter-dusty-rose);
border-radius: 4px;
padding: 1.5rem;
position: relative;
transition: transform 0.3s ease, box-shadow 0.3s ease;
box-shadow: 2px 3px 8px rgba(92, 61, 46, 0.12);
}
/* Random-feeling rotations */
.clutter-card:nth-child(odd) { transform: rotate(-1.2deg); }
.clutter-card:nth-child(even) { transform: rotate(0.8deg); }
.clutter-card:nth-child(3n) { transform: rotate(-0.5deg); }
.clutter-card:hover {
transform: rotate(0deg) translateY(-4px);
box-shadow: 3px 6px 16px rgba(92, 61, 46, 0.2);
z-index: 2;
}
/* Polaroid-style image card */
.clutter-polaroid {
background: #fff;
padding: 0.8rem 0.8rem 2.5rem;
border: 1px solid #ddd;
box-shadow: 2px 3px 10px rgba(0, 0, 0, 0.1);
}
.clutter-polaroid img {
width: 100%;
display: block;
}
.clutter-polaroid .caption {
font-family: 'Caveat', cursive;
font-size: 1.1rem;
color: var(--clutter-text-secondary);
text-align: center;
margin-top: 0.5rem;
}
/* Washi tape strip (decorative element) */
.clutter-tape {
position: absolute;
width: 120px;
height: 28px;
background: var(--clutter-mustard);
opacity: 0.7;
transform: rotate(-5deg);
top: -12px;
left: calc(50% - 60px);
z-index: 3;
}
/* Variant tape colors */
.clutter-tape--rose { background: var(--clutter-dusty-rose); }
.clutter-tape--sage { background: var(--clutter-sage); }
.clutter-tape--teal {
background: repeating-linear-gradient(
90deg,
var(--clutter-teal),
var(--clutter-teal) 4px,
rgba(255,255,255,0.4) 4px,
rgba(255,255,255,0.4) 8px
);
}
/* Corkboard-textured section background */
.clutter-pinboard {
background-color: #c4a56e;
background-image:
radial-gradient(circle at 15% 25%, rgba(180, 140, 80, 0.4) 0%, transparent 40%),
radial-gradient(circle at 85% 75%, rgba(160, 120, 60, 0.3) 0%, transparent 40%),
repeating-linear-gradient(
45deg,
transparent,
transparent 3px,
rgba(0,0,0,0.02) 3px,
rgba(0,0,0,0.02) 4px
);
padding: 3rem 2rem;
position: relative;
border: 8px solid var(--clutter-brown);
border-radius: 2px;
}
/* Push pin decoration */
.clutter-pin {
position: absolute;
width: 16px;
height: 16px;
background: radial-gradient(circle at 40% 40%, #e85050, #c03030);
border-radius: 50%;
box-shadow:
0 2px 4px rgba(0,0,0,0.3),
inset 0 -1px 2px rgba(0,0,0,0.2),
inset 0 1px 1px rgba(255,255,255,0.3);
z-index: 4;
}
/* Wooden shelf effect */
.clutter-shelf {
position: relative;
padding: 2rem 2rem 3rem;
margin-bottom: 2rem;
}
.clutter-shelf::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 20px;
background: linear-gradient(
180deg,
#8b6b4a 0%,
#7a5c3c 40%,
#6b4d30 100%
);
border-radius: 0 0 3px 3px;
box-shadow:
0 4px 8px rgba(0,0,0,0.2),
inset 0 1px 0 rgba(255,255,255,0.15);
}
.clutter-shelf-items {
display: flex;
gap: 1rem;
align-items: flex-end;
justify-content: center;
flex-wrap: wrap;
}
/* Decorative sticker label */
.clutter-sticker {
display: inline-block;
padding: 0.3rem 0.8rem;
font-family: 'Quicksand', sans-serif;
font-size: 0.75rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
border-radius: 100px;
transform: rotate(-3deg);
box-shadow: 1px 2px 4px rgba(0,0,0,0.1);
}
.clutter-sticker--warm {
background: var(--clutter-terracotta);
color: #fff;
}
.clutter-sticker--cool {
background: var(--clutter-teal);
color: #fff;
}
.clutter-sticker--bright {
background: var(--clutter-sunflower);
color: var(--clutter-brown);
}
.clutter-sticker--outlined {
background: transparent;
border: 2px dashed var(--clutter-dusty-rose);
color: var(--clutter-dusty-rose);
}
/* Wavy hand-drawn underline */
.clutter-underline {
text-decoration: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8'%3E%3Cpath d='M0 6 Q12.5 0 25 6 T50 6 T75 6 T100 6' fill='none' stroke='%23c8614c' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
background-repeat: repeat-x;
background-position: bottom;
background-size: 100px 8px;
padding-bottom: 6px;
}
/* Scribble circle highlight */
.clutter-circle-highlight {
position: relative;
}
.clutter-circle-highlight::after {
content: '';
position: absolute;
inset: -8px -12px;
border: 2.5px solid var(--clutter-terracotta);
border-radius: 50% 45% 55% 48%;
opacity: 0.6;
transform: rotate(-2deg);
pointer-events: none;
}
/* Patchwork quilt-inspired section */
.clutter-patchwork {
background:
linear-gradient(45deg, rgba(200, 97, 76, 0.08) 25%, transparent 25%),
linear-gradient(-45deg, rgba(141, 164, 126, 0.08) 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, rgba(123, 80, 120, 0.08) 75%),
linear-gradient(-45deg, transparent 75%, rgba(61, 139, 139, 0.08) 75%),
var(--clutter-cream);
background-size: 60px 60px;
background-position: 0 0, 0 30px, 30px -30px, 30px 0;
}
/* Floral wallpaper hint */
.clutter-floral-bg {
background-color: var(--clutter-paper);
background-image:
radial-gradient(circle at 20% 30%, rgba(196, 139, 139, 0.15) 8px, transparent 8px),
radial-gradient(circle at 60% 70%, rgba(141, 164, 126, 0.12) 6px, transparent 6px),
radial-gradient(circle at 80% 20%, rgba(212, 168, 67, 0.1) 5px, transparent 5px),
radial-gradient(circle at 40% 80%, rgba(123, 80, 120, 0.1) 7px, transparent 7px);
background-size: 200px 200px;
}
/* Dense gallery wall with overlapping frames */
.clutter-gallery {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-auto-rows: 60px;
gap: 0.5rem;
padding: 2rem;
position: relative;
}
.clutter-gallery-item {
border: 3px solid var(--clutter-brown);
background: #fff;
padding: 4px;
box-shadow: 2px 3px 8px rgba(0,0,0,0.15);
overflow: hidden;
z-index: 1;
transition: z-index 0s, transform 0.3s ease;
}
/* Varied frame sizes */
.clutter-gallery-item:nth-child(1) { grid-column: 1 / 5; grid-row: 1 / 4; transform: rotate(-2deg); }
.clutter-gallery-item:nth-child(2) { grid-column: 4 / 8; grid-row: 1 / 5; transform: rotate(1deg); }
.clutter-gallery-item:nth-child(3) { grid-column: 7 / 10; grid-row: 1 / 3; transform: rotate(-1deg); }
.clutter-gallery-item:nth-child(4) { grid-column: 9 / 13; grid-row: 1 / 5; transform: rotate(2deg); }
.clutter-gallery-item:nth-child(5) { grid-column: 1 / 4; grid-row: 3 / 7; transform: rotate(1.5deg); }
.clutter-gallery-item:nth-child(6) { grid-column: 3 / 7; grid-row: 4 / 7; transform: rotate(-0.5deg); }
.clutter-gallery-item:hover {
transform: rotate(0deg) scale(1.05);
z-index: 10;
box-shadow: 4px 6px 20px rgba(0,0,0,0.25);
}
/* Ornate frame variant */
.clutter-gallery-item--ornate {
border: 6px solid var(--clutter-brown);
box-shadow:
inset 0 0 0 2px var(--clutter-mustard),
2px 3px 8px rgba(0,0,0,0.15);
}
/* Floating decorative objects (stars, hearts, flowers) */
.clutter-scatter {
position: relative;
}
.clutter-scatter::before,
.clutter-scatter::after {
position: absolute;
font-size: 1.2rem;
opacity: 0.4;
pointer-events: none;
}
.clutter-scatter--stars::before { content: '\2728'; top: -10px; left: 5%; }
.clutter-scatter--stars::after { content: '\2B50'; bottom: -8px; right: 8%; }
.clutter-scatter--hearts::before { content: '\2764'; top: -8px; right: 10%; }
.clutter-scatter--plants::before { content: '\1F33F'; top: -12px; left: 8%; }
.clutter-scatter--plants::after { content: '\1F33A'; bottom: -10px; right: 5%; }
Physical Cluttercore materials and their web equivalents:
| Physical Material | Web Equivalent |
|---|---|
| Cork board | Warm tan background with subtle noise texture and pinned elements |
| Washi tape | Colored semi-transparent strips with repeating patterns, positioned over edges |
| Picture frames | Thick colored borders with box-shadow, slight rotation transforms |
| Fabric / textiles | CSS patterns using repeating gradients (plaids, dots, stripes) |
| Aging paper / parchment | Cream/ivory backgrounds with radial gradient warm spots and noise overlay |
| Wooden shelves | Horizontal gradient bars with grain-like repeating gradients |
| Ceramic and pottery | Rounded border-radius containers with warm, earthy solid colors |
| Stickers and labels | Pill-shaped badges with slight rotation and drop shadows |
| Plants and greenery | Sage/forest green accent colors; leaf emoji as decorative pseudo-elements |
| String lights | Dotted border or repeated radial gradient circles along a curved path |
| Aspect | Traditional Maximalism | Cluttercore |
|---|---|---|
| Color approach | Bold but cohesive, often with a unifying palette | Any colors, no unifying scheme required |
| Material quality | Luxurious, rich materials (velvet, gold, marble) | Eclectic mix of high and low, thrifted and handmade |
| Organization | Intentionally designed; follows design principles | Organically evolved; follows personal meaning |
| Emotional goal | Impressive, dramatic, curated | Comforting, personal, nostalgic |
| Overall feel | Magazine editorial | Lived-in home |
| Aesthetic | Relationship to Cluttercore |
|---|---|
| Maximalism | Parent aesthetic; Cluttercore is a personal, comfort-oriented subset |
| Cottagecore | Shares warmth, handmade values, and cozy interiors; Cottagecore is more rural and curated |
| Goblincore | Shares collecting instinct and appreciation for unconventional objects |
| Grandmacore | Overlaps in nostalgia, inherited objects, doilies, and vintage decor |
| Cacareco Girl | Related Brazilian aesthetic celebrating eclectic accumulation |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cluttercore Page</title>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Nunito:wght@400;600&family=Caveat:wght@400;700&family=Quicksand:wght@500;700&display=swap" rel="stylesheet">
<style>
:root {
--clutter-cream: #f5f0e6;
--clutter-ivory: #fff8ee;
--clutter-paper: #ede4d3;
--clutter-terracotta: #c8614c;
--clutter-mustard: #d4a843;
--clutter-sage: #8da47e;
--clutter-teal: #3d8b8b;
--clutter-dusty-rose: #c48b8b;
--clutter-plum: #7b5078;
--clutter-burgundy: #803040;
--clutter-brown: #5c3d2e;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--clutter-cream);
color: var(--clutter-brown);
font-family: 'Nunito', sans-serif;
font-weight: 400;
line-height: 1.7;
}
h1, h2, h3 {
font-family: 'Playfair Display', Georgia, serif;
font-weight: 700;
color: var(--clutter-burgundy);
line-height: 1.2;
}
.hero {
text-align: center;
padding: 5rem 2rem 3rem;
background: var(--clutter-paper);
position: relative;
overflow: hidden;
}
.hero h1 {
font-size: clamp(2.5rem, 5vw, 4.5rem);
margin-bottom: 0.5rem;
}
.hero .subtitle {
font-family: 'Caveat', cursive;
font-size: 1.6rem;
color: var(--clutter-terracotta);
transform: rotate(-2deg);
display: inline-block;
}
.clutter-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
gap: 1.5rem;
max-width: 1100px;
margin: 0 auto;
padding: 3rem 2rem;
}
.clutter-card {
background: var(--clutter-ivory);
border: 2px solid var(--clutter-dusty-rose);
border-radius: 4px;
padding: 1.5rem;
box-shadow: 2px 3px 8px rgba(92, 61, 46, 0.12);
position: relative;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.clutter-card:nth-child(odd) { transform: rotate(-1.2deg); }
.clutter-card:nth-child(even) { transform: rotate(0.8deg); }
.clutter-card:hover {
transform: rotate(0deg) translateY(-4px);
box-shadow: 3px 6px 16px rgba(92, 61, 46, 0.2);
z-index: 2;
}
.clutter-card h3 {
font-size: 1.3rem;
margin-bottom: 0.5rem;
}
.tag {
display: inline-block;
padding: 0.2rem 0.6rem;
font-family: 'Quicksand', sans-serif;
font-size: 0.7rem;
font-weight: 700;
text-transform: uppercase;
border-radius: 100px;
margin-bottom: 0.8rem;
}
.tag--terracotta { background: var(--clutter-terracotta); color: #fff; }
.tag--teal { background: var(--clutter-teal); color: #fff; }
.tag--mustard { background: var(--clutter-mustard); color: var(--clutter-brown); }
.tag--sage { background: var(--clutter-sage); color: #fff; }
</style>
</head>
<body>
<div class="hero">
<h1>My Beautiful Mess</h1>
<span class="subtitle">a curated collection of everything</span>
</div>
<section class="clutter-grid">
<div class="clutter-card">
<span class="tag tag--terracotta">Memories</span>
<h3>Grandma's Teacups</h3>
<p>A mismatched set collected from flea markets across three countries, each with its own story.</p>
</div>
<div class="clutter-card">
<span class="tag tag--teal">Collection</span>
<h3>Vintage Cameras</h3>
<p>From Kodak Brownies to Polaroid SX-70s, arranged on the bookshelf between travel guides.</p>
</div>
<div class="clutter-card">
<span class="tag tag--mustard">Reading</span>
<h3>The Overflowing Shelf</h3>
<p>Books stacked two-deep with postcards marking favorite passages and plants filling the gaps.</p>
</div>
<div class="clutter-card">
<span class="tag tag--sage">Growing</span>
<h3>Plant Corner</h3>
<p>Seventeen plants and counting, trailing across the windowsill and climbing up the wall.</p>
</div>
</section>
</body>
</html>