Cute-alism is the deliberate collision of Japan’s kawaii culture with the raw, unpolished energy of brutalist web design. It pairs the soft, approachable warmth of rounded shapes, pastel candies, smiling faces, and sticker-like graphics with the structural honesty of thick black borders, asymmetric grids, system monospace fonts, and hard box-shadows that cast no blur. The result is a visual language that is simultaneously playful and confrontational – cute elements forced into harsh containers, cartoon icons living inside stark grid cells, neon pinks bleeding through rigid black outlines. Where brutalism strips away decoration to expose structure, Cute-alism re-decorates that exposed structure with glitter, emoji, and candy color. Where kawaii softens every edge, Cute-alism reintroduces hard corners, heavy weights, and unapologetic asymmetry. The tension between these opposing forces is the entire point: a web page that feels like a sticker-bombed concrete wall, a monospace terminal that outputs hearts, a construction site wrapped in pastel ribbon.
The Cute-alism palette is built on maximum contrast between brutalist neutrals (black, white) and kawaii-inspired neon/pastel colors. Black provides the structural grid and borders; vivid colors fill the spaces between:
| Role | Color | Hex |
|---|---|---|
| Border / Structure | Pure Black | #000000 |
| Background Light | Clean White | #FFFFFF |
| Background Warm | Soft Cream | #FFF8F0 |
| Primary Accent | Neon Pink | #FF2D8A |
| Secondary Accent | Candy Yellow | #FFE156 |
| Tertiary Accent | Pastel Lilac | #C9A0FF |
| Pop Accent | Lime Green | #7AFF5E |
| Interactive | Hot Magenta | #FF47B5 |
| Cool Balance | Pastel Blue | #A0D4FF |
| Surface Cute | Blush Pink | #FFD6E8 |
| Surface Bright | Mint Cream | #D4FFE7 |
| Text Primary | Near Black | #1A1A1A |
| Text Inverted | White | #FFFFFF |
| Shadow | Pure Black | #000000 |
| Highlight Glow | Warm Pink | #FF8EC6 |
| Sticker Yellow | Bright Banana | #FFF06B |
:root {
/* Structure */
--cutealism-black: #000000;
--cutealism-white: #FFFFFF;
--cutealism-cream: #FFF8F0;
/* Primary palette */
--cutealism-pink: #FF2D8A;
--cutealism-yellow: #FFE156;
--cutealism-lilac: #C9A0FF;
--cutealism-lime: #7AFF5E;
--cutealism-magenta: #FF47B5;
--cutealism-blue: #A0D4FF;
/* Surfaces */
--cutealism-blush: #FFD6E8;
--cutealism-mint: #D4FFE7;
--cutealism-banana: #FFF06B;
--cutealism-lavender: #E8D6FF;
/* Text */
--cutealism-text-primary: #1A1A1A;
--cutealism-text-inverted: #FFFFFF;
--cutealism-text-muted: #666666;
/* Borders and shadows */
--cutealism-border: #000000;
--cutealism-border-width: 3px;
--cutealism-shadow-offset: 5px;
--cutealism-shadow: 5px 5px 0px #000000;
--cutealism-shadow-sm: 3px 3px 0px #000000;
/* Radius mixing */
--cutealism-radius-none: 0px;
--cutealism-radius-soft: 12px;
--cutealism-radius-round: 50px;
--cutealism-radius-circle: 50%;
/* Functional mappings */
--cutealism-bg-primary: var(--cutealism-white);
--cutealism-bg-secondary: var(--cutealism-cream);
--cutealism-bg-card: var(--cutealism-white);
--cutealism-text-heading: var(--cutealism-pink);
--cutealism-text-body: var(--cutealism-text-primary);
--cutealism-accent-primary: var(--cutealism-pink);
--cutealism-accent-secondary: var(--cutealism-yellow);
--cutealism-border-color: var(--cutealism-border);
}
Cute-alism typography lives in the tension between two opposing font philosophies:
| Font | Style | Usage |
|---|---|---|
| Baloo 2 | Chunky rounded display | Primary headings, hero text – playful, bold, unmistakably cute |
| Quicksand | Geometric rounded sans | Secondary headings, navigation – clean roundness with modern weight |
| Nunito | Rounded terminal sans-serif | Body text alternative, cards – friendly and highly readable |
| Courier Prime | Refined monospace | Body text, code blocks, labels – cleaner Courier for the brutalist layer |
| Space Mono | Geometric monospace | UI labels, metadata, tags – modern monospace with character |
| IBM Plex Mono | Industrial monospace | Structural text, footers – brutalist credibility |
@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=Quicksand:wght@500;600;700&family=Nunito:wght@400;600;700;800&family=Space+Mono:wght@400;700&display=swap');
/* Brutalist base -- monospace body */
body {
font-family: 'Courier Prime', 'Courier New', Courier, monospace;
font-size: 16px;
line-height: 1.7;
color: var(--cutealism-text-primary);
font-weight: 400;
}
/* Cute headings -- chunky rounded */
h1, h2, h3 {
font-family: 'Baloo 2', 'Quicksand', 'Nunito', sans-serif;
font-weight: 800;
line-height: 1.2;
letter-spacing: -0.01em;
}
h1 {
font-size: clamp(2rem, 5vw, 3.5rem);
color: var(--cutealism-pink);
}
h2 {
font-size: clamp(1.4rem, 3.5vw, 2.2rem);
color: var(--cutealism-text-primary);
}
h3 {
font-size: clamp(1.1rem, 2.5vw, 1.5rem);
color: var(--cutealism-lilac);
font-family: 'Quicksand', 'Nunito', sans-serif;
font-weight: 700;
}
/* Brutalist labels -- uppercase monospace */
.cutealism-label {
font-family: 'Space Mono', 'Courier New', monospace;
font-size: 0.75rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--cutealism-text-muted);
}
/* Cute callout text -- rounded and friendly */
.cutealism-callout {
font-family: 'Quicksand', 'Nunito', sans-serif;
font-size: 1.1rem;
font-weight: 600;
line-height: 1.6;
color: var(--cutealism-text-primary);
}
/* Inline emoji sizing */
.cutealism-emoji {
font-size: 1.3em;
vertical-align: middle;
line-height: 1;
}
/* Tag / badge text */
.cutealism-tag {
font-family: 'Space Mono', monospace;
font-size: 0.7rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
}
The defining structural element – every surface is outlined:
#000000), never gray or colored, to maintain brutalist honestyFlat, no-blur shadows that create a stamped or printed depth effect:
Playful positioned elements that break the grid:
rotate(-3deg) to rotate(5deg)) – mimicking hand-placed stickersThe core visual tension of the aesthetic:
border-radius: 0) – the brutalist frameborder-radius: 12px to 50px) – the kawaii contentborder-radius: 50% with thick black bordersEmoji transcend decoration to become structural design components:
::before and ::after – stars, sparkles, hearts positioned alongside headingsFlat saturated fills that divide and organize:
grid-template-columns: 2fr 1fr or 1fr 2fr 1fr rather than equal divisionsgap: 1rem or more between grid items, with the background color visible between, making the grid structure apparent::before/::after pseudo-elements on section containers/* The signature Cute-alism card: sharp outside, soft inside */
.cutealism-card {
background: var(--cutealism-white);
border: var(--cutealism-border-width) solid var(--cutealism-border);
box-shadow: var(--cutealism-shadow);
padding: 2rem;
position: relative;
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.cutealism-card:hover {
transform: translate(-2px, -2px);
box-shadow: 7px 7px 0px var(--cutealism-black);
}
.cutealism-card:active {
transform: translate(2px, 2px);
box-shadow: 1px 1px 0px var(--cutealism-black);
}
/* Card with colored background variant */
.cutealism-card--pink {
background: var(--cutealism-blush);
}
.cutealism-card--yellow {
background: var(--cutealism-banana);
}
.cutealism-card--lilac {
background: var(--cutealism-lavender);
}
.cutealism-card--mint {
background: var(--cutealism-mint);
}
/* Rounded cute button inside the brutalist system */
.cutealism-button {
display: inline-block;
padding: 0.75rem 2rem;
font-family: 'Quicksand', 'Nunito', sans-serif;
font-size: 1rem;
font-weight: 700;
color: var(--cutealism-text-inverted);
background: var(--cutealism-pink);
border: var(--cutealism-border-width) solid var(--cutealism-border);
border-radius: var(--cutealism-radius-round);
box-shadow: var(--cutealism-shadow-sm);
cursor: pointer;
text-decoration: none;
transition: transform 0.1s ease, box-shadow 0.1s ease;
}
.cutealism-button:hover {
background: var(--cutealism-magenta);
transform: translate(-1px, -1px);
box-shadow: 4px 4px 0px var(--cutealism-black);
}
.cutealism-button:active {
transform: translate(2px, 2px);
box-shadow: 0px 0px 0px var(--cutealism-black);
}
/* Color variants */
.cutealism-button--yellow {
background: var(--cutealism-yellow);
color: var(--cutealism-text-primary);
}
.cutealism-button--lilac {
background: var(--cutealism-lilac);
color: var(--cutealism-text-primary);
}
.cutealism-button--lime {
background: var(--cutealism-lime);
color: var(--cutealism-text-primary);
}
/* Sticker-like emoji decoration on sections and cards */
.cutealism-sticker {
position: relative;
}
/* Top-right sticker */
.cutealism-sticker::before {
content: attr(data-sticker);
position: absolute;
top: -12px;
right: -8px;
font-size: 2rem;
transform: rotate(12deg);
z-index: 10;
filter: drop-shadow(1px 1px 0px rgba(0,0,0,0.3));
pointer-events: none;
}
/* Bottom-left sticker */
.cutealism-sticker::after {
content: attr(data-sticker-2);
position: absolute;
bottom: -10px;
left: -6px;
font-size: 1.6rem;
transform: rotate(-8deg);
z-index: 10;
filter: drop-shadow(1px 1px 0px rgba(0,0,0,0.3));
pointer-events: none;
}
/* Animated sticker hover -- subtle wiggle */
@keyframes cutealism-wiggle {
0%, 100% { transform: rotate(12deg); }
25% { transform: rotate(16deg); }
75% { transform: rotate(8deg); }
}
.cutealism-sticker:hover::before {
animation: cutealism-wiggle 0.4s ease-in-out;
}
/* Core asymmetric grid -- the structural brutalist framework */
.cutealism-grid {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 1.5rem;
}
/* Alternate asymmetry for variety */
.cutealism-grid--reverse {
grid-template-columns: 1fr 2fr;
}
/* Three-column asymmetric */
.cutealism-grid--three {
grid-template-columns: 1fr 2fr 1fr;
}
/* Dense auto-flow for collage feel */
.cutealism-grid--collage {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
grid-auto-flow: dense;
gap: 1rem;
}
/* Span items for asymmetry within auto-grid */
.cutealism-grid--collage > *:nth-child(3n+1) {
grid-column: span 2;
}
/* Responsive: collapse to single column */
@media (max-width: 768px) {
.cutealism-grid,
.cutealism-grid--reverse,
.cutealism-grid--three {
grid-template-columns: 1fr;
}
}
/* Replace standard bullets with emoji */
.cutealism-list {
list-style: none;
padding: 0;
}
.cutealism-list li {
padding: 0.4rem 0 0.4rem 2rem;
position: relative;
font-family: 'Nunito', sans-serif;
font-weight: 600;
}
.cutealism-list li::before {
content: '\2B50'; /* star emoji */
position: absolute;
left: 0;
top: 0.4rem;
font-size: 1.1rem;
}
/* Alternate emoji per item */
.cutealism-list li:nth-child(2n)::before { content: '\2728'; /* sparkles */ }
.cutealism-list li:nth-child(3n)::before { content: '\1F496'; /* sparkling heart */ }
.cutealism-list li:nth-child(5n)::before { content: '\1F31F'; /* glowing star */ }
/* Monospace tags with colored backgrounds */
.cutealism-tag {
display: inline-block;
padding: 0.2rem 0.8rem;
font-family: 'Space Mono', monospace;
font-size: 0.7rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
border: 2px solid var(--cutealism-border);
border-radius: var(--cutealism-radius-round);
background: var(--cutealism-yellow);
color: var(--cutealism-text-primary);
box-shadow: 2px 2px 0px var(--cutealism-black);
}
.cutealism-tag--pink {
background: var(--cutealism-pink);
color: var(--cutealism-text-inverted);
}
.cutealism-tag--lilac {
background: var(--cutealism-lilac);
color: var(--cutealism-text-primary);
}
.cutealism-tag--lime {
background: var(--cutealism-lime);
color: var(--cutealism-text-primary);
}
/* Animated sparkle particles -- the kawaii magic touch */
@keyframes cutealism-sparkle {
0%, 100% {
opacity: 0;
transform: scale(0) rotate(0deg);
}
50% {
opacity: 1;
transform: scale(1) rotate(180deg);
}
}
.cutealism-sparkle {
position: relative;
overflow: visible;
}
.cutealism-sparkle::before,
.cutealism-sparkle::after {
content: '\2726'; /* sparkle character */
position: absolute;
font-size: 1rem;
color: var(--cutealism-yellow);
pointer-events: none;
animation: cutealism-sparkle 2s ease-in-out infinite;
}
.cutealism-sparkle::before {
top: -8px;
right: -4px;
animation-delay: 0s;
}
.cutealism-sparkle::after {
bottom: -6px;
left: -4px;
animation-delay: 0.7s;
font-size: 0.7rem;
color: var(--cutealism-pink);
}
/* Full-width colored section bands */
.cutealism-section {
padding: 3rem 2rem;
border-top: var(--cutealism-border-width) solid var(--cutealism-border);
border-bottom: var(--cutealism-border-width) solid var(--cutealism-border);
}
.cutealism-section--pink {
background: var(--cutealism-blush);
}
.cutealism-section--yellow {
background: var(--cutealism-banana);
}
.cutealism-section--lilac {
background: var(--cutealism-lavender);
}
.cutealism-section--white {
background: var(--cutealism-white);
}
/* Accent bar divider between sections */
.cutealism-divider {
height: 6px;
background: var(--cutealism-pink);
border: none;
border-top: 2px solid var(--cutealism-border);
border-bottom: 2px solid var(--cutealism-border);
}
/* Emoji section divider */
.cutealism-divider--emoji {
text-align: center;
font-size: 2rem;
padding: 1rem 0;
border-top: var(--cutealism-border-width) solid var(--cutealism-border);
background: var(--cutealism-white);
letter-spacing: 1rem;
}
/* Brutalist nav with cute touches */
.cutealism-nav {
display: flex;
align-items: center;
gap: 0;
border: var(--cutealism-border-width) solid var(--cutealism-border);
background: var(--cutealism-white);
box-shadow: var(--cutealism-shadow-sm);
}
.cutealism-nav a {
padding: 0.8rem 1.5rem;
font-family: 'Space Mono', monospace;
font-size: 0.85rem;
font-weight: 700;
text-decoration: none;
color: var(--cutealism-text-primary);
border-right: var(--cutealism-border-width) solid var(--cutealism-border);
transition: background 0.1s ease;
}
.cutealism-nav a:last-child {
border-right: none;
}
.cutealism-nav a:hover {
background: var(--cutealism-yellow);
}
.cutealism-nav a.active {
background: var(--cutealism-pink);
color: var(--cutealism-text-inverted);
}
/* Brand in nav -- rounded cute style */
.cutealism-nav .brand {
font-family: 'Baloo 2', sans-serif;
font-size: 1.3rem;
font-weight: 800;
padding: 0.5rem 1.5rem;
color: var(--cutealism-pink);
border-right: var(--cutealism-border-width) solid var(--cutealism-border);
}
| Physical / Cultural Reference | Web Equivalent |
|---|---|
| Sticker-bombed laptop or phone case | Absolutely positioned emoji/icon pseudo-elements with rotation transforms scattered across containers |
| Brutalist concrete surface | Flat white or light gray backgrounds with thick black border outlines and hard box-shadows |
| Kawaii character goods (plushies, keychains) | Rounded pill-shaped buttons, circular avatar images, soft border-radius on inner elements |
| Neon signage on raw brick | Bright saturated color fills (background: #FF2D8A) contained within stark black-bordered frames |
| Purikura (Japanese photo booth) sticker sheets | Grid-based card layouts with colorful backgrounds, decorative borders, and playful positioned elements |
| Handmade zine with cut-and-paste collage | Asymmetric grid with overlapping elements, mixed typography, and varied alignment |
| Glitter and sparkle craft materials | CSS @keyframes animations on pseudo-elements using sparkle Unicode characters, subtle rotation and scale |
| Washi tape strips | Thin colored horizontal bars (6-8px) with black top and bottom borders used as section dividers |
| Blackboard with chalk drawings | Dark-background variant: #1A1A1A background with white monospace text and bright colored accents |
| Candy packaging | Cards with bright background fills (pink, yellow, lime) wrapped in thick black borders – product-like containment |
When creating or sourcing imagery for a Cute-alism styled site:
| Aesthetic | Relationship to Cute-alism |
|---|---|
| Neubrutalism | The closest structural relative; Cute-alism takes Neubrutalism’s thick borders and hard shadows and injects kawaii color and decoration where Neubrutalism stays restrained |
| Cutecore | Shares the kawaii visual vocabulary (pastels, rounded shapes, emoji, stickers) but without the brutalist structural framework; Cutecore is purely soft |
| Dopamine Design | Overlapping color energy and joyful maximalism; Dopamine Design uses gradients and organic shapes where Cute-alism insists on flat fills and hard edges |
| Brutalism | The raw structural ancestor; Cute-alism preserves brutalism’s honesty of construction but rejects its austerity by filling every exposed surface with candy color |
| Kawaii | The cultural and visual source for the “cute” half; Cute-alism channels kawaii through a brutalist filter, adding structure and edge to inherent softness |
| Y2K | Shares the neon palette and playful energy; Y2K tends toward chrome, translucency, and futurism where Cute-alism stays flat and hand-crafted |
| Kidcore | Overlapping childlike exuberance and bright primary colors; Kidcore is more nostalgic and toy-like, Cute-alism more design-conscious and intentionally contrasting |
blur to a box-shadow, the brutalist edge softens into something else. Keep all shadows at zero blur with pixel-level offset precision. The shadow should look like a second copy of the shape, offset and black.transform and opacity only (GPU-composited properties). Avoid animating box-shadow, border, or background-color for smooth performance.#1A1A1A) on bright backgrounds.z-index: 10, modals or overlays above that.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cute-alism Page</title>
<link href="https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=Quicksand:wght@500;600;700&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet">
<style>
:root {
--cutealism-black: #000000;
--cutealism-white: #FFFFFF;
--cutealism-cream: #FFF8F0;
--cutealism-pink: #FF2D8A;
--cutealism-yellow: #FFE156;
--cutealism-lilac: #C9A0FF;
--cutealism-lime: #7AFF5E;
--cutealism-magenta: #FF47B5;
--cutealism-blue: #A0D4FF;
--cutealism-blush: #FFD6E8;
--cutealism-mint: #D4FFE7;
--cutealism-banana: #FFF06B;
--cutealism-lavender: #E8D6FF;
--cutealism-text-primary: #1A1A1A;
--cutealism-text-inverted: #FFFFFF;
--cutealism-text-muted: #666666;
--cutealism-border: #000000;
--cutealism-border-width: 3px;
--cutealism-shadow: 5px 5px 0px #000000;
--cutealism-shadow-sm: 3px 3px 0px #000000;
--cutealism-radius-soft: 12px;
--cutealism-radius-round: 50px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--cutealism-cream);
color: var(--cutealism-text-primary);
font-family: 'Courier New', Courier, monospace;
font-size: 16px;
line-height: 1.7;
min-height: 100vh;
}
/* -- Navigation -- */
.nav {
display: flex;
align-items: center;
border-bottom: var(--cutealism-border-width) solid var(--cutealism-border);
background: var(--cutealism-white);
}
.nav .brand {
font-family: 'Baloo 2', sans-serif;
font-size: 1.4rem;
font-weight: 800;
color: var(--cutealism-pink);
padding: 0.6rem 1.5rem;
border-right: var(--cutealism-border-width) solid var(--cutealism-border);
}
.nav a {
padding: 0.8rem 1.2rem;
font-family: 'Space Mono', monospace;
font-size: 0.8rem;
font-weight: 700;
text-decoration: none;
color: var(--cutealism-text-primary);
border-right: var(--cutealism-border-width) solid var(--cutealism-border);
transition: background 0.1s ease;
}
.nav a:hover { background: var(--cutealism-yellow); }
.nav a.active { background: var(--cutealism-pink); color: var(--cutealism-text-inverted); }
/* -- Hero Section -- */
.hero {
background: var(--cutealism-pink);
border-bottom: var(--cutealism-border-width) solid var(--cutealism-border);
padding: 4rem 2rem;
text-align: center;
position: relative;
overflow: hidden;
}
.hero h1 {
font-family: 'Baloo 2', sans-serif;
font-size: clamp(2.2rem, 6vw, 4rem);
font-weight: 800;
color: var(--cutealism-white);
line-height: 1.1;
margin-bottom: 1rem;
}
.hero p {
font-family: 'Space Mono', monospace;
font-size: 0.9rem;
color: var(--cutealism-text-inverted);
max-width: 500px;
margin: 0 auto 2rem;
}
/* Hero sticker decorations */
.hero::before {
content: '\2B50';
position: absolute;
top: 20px;
left: 30px;
font-size: 2.5rem;
transform: rotate(-15deg);
}
.hero::after {
content: '\1F496';
position: absolute;
bottom: 25px;
right: 35px;
font-size: 2.2rem;
transform: rotate(10deg);
}
/* Hero button */
.hero-btn {
display: inline-block;
padding: 0.8rem 2.5rem;
font-family: 'Quicksand', sans-serif;
font-size: 1.1rem;
font-weight: 700;
color: var(--cutealism-text-primary);
background: var(--cutealism-yellow);
border: var(--cutealism-border-width) solid var(--cutealism-border);
border-radius: var(--cutealism-radius-round);
box-shadow: var(--cutealism-shadow-sm);
cursor: pointer;
text-decoration: none;
transition: transform 0.1s ease, box-shadow 0.1s ease;
}
.hero-btn:hover {
transform: translate(-1px, -1px);
box-shadow: 4px 4px 0px var(--cutealism-black);
}
.hero-btn:active {
transform: translate(2px, 2px);
box-shadow: 0px 0px 0px var(--cutealism-black);
}
/* -- Main Content Grid -- */
.main {
max-width: 1000px;
margin: 2rem auto;
padding: 0 1.5rem;
}
/* Asymmetric two-column grid */
.grid-asym {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 1.5rem;
margin-bottom: 2rem;
}
/* -- Cards -- */
.card {
background: var(--cutealism-white);
border: var(--cutealism-border-width) solid var(--cutealism-border);
box-shadow: var(--cutealism-shadow);
padding: 2rem;
position: relative;
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.card:hover {
transform: translate(-2px, -2px);
box-shadow: 7px 7px 0px var(--cutealism-black);
}
.card h2 {
font-family: 'Baloo 2', sans-serif;
font-size: 1.6rem;
font-weight: 800;
color: var(--cutealism-pink);
margin-bottom: 0.5rem;
line-height: 1.2;
}
.card h3 {
font-family: 'Quicksand', sans-serif;
font-size: 1.1rem;
font-weight: 700;
color: var(--cutealism-lilac);
margin-bottom: 0.5rem;
}
.card p {
margin-bottom: 0.8rem;
color: var(--cutealism-text-primary);
}
.card .label {
font-family: 'Space Mono', monospace;
font-size: 0.7rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--cutealism-text-muted);
margin-bottom: 0.5rem;
}
/* Colored card variants */
.card--pink { background: var(--cutealism-blush); }
.card--yellow { background: var(--cutealism-banana); }
.card--lilac { background: var(--cutealism-lavender); }
.card--mint { background: var(--cutealism-mint); }
/* Sticker on card */
.card--sticker::before {
content: attr(data-sticker);
position: absolute;
top: -10px;
right: -8px;
font-size: 1.8rem;
transform: rotate(12deg);
z-index: 10;
filter: drop-shadow(1px 1px 0px rgba(0,0,0,0.2));
}
/* -- Tags -- */
.tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
.tag {
display: inline-block;
padding: 0.15rem 0.7rem;
font-family: 'Space Mono', monospace;
font-size: 0.65rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
border: 2px solid var(--cutealism-border);
border-radius: var(--cutealism-radius-round);
background: var(--cutealism-yellow);
box-shadow: 2px 2px 0px var(--cutealism-black);
}
.tag--pink { background: var(--cutealism-pink); color: var(--cutealism-text-inverted); }
.tag--lilac { background: var(--cutealism-lilac); }
.tag--lime { background: var(--cutealism-lime); }
.tag--blue { background: var(--cutealism-blue); }
/* -- Sidebar card with cute interior -- */
.sidebar-card {
background: var(--cutealism-white);
border: var(--cutealism-border-width) solid var(--cutealism-border);
box-shadow: var(--cutealism-shadow);
padding: 1.5rem;
text-align: center;
}
.sidebar-card .emoji-icon {
font-size: 3rem;
display: block;
margin-bottom: 0.5rem;
}
.sidebar-card h3 {
font-family: 'Baloo 2', sans-serif;
font-size: 1.2rem;
font-weight: 800;
color: var(--cutealism-text-primary);
margin-bottom: 0.5rem;
}
.sidebar-card p {
font-size: 0.85rem;
color: var(--cutealism-text-muted);
}
.sidebar-card .btn-small {
display: inline-block;
margin-top: 1rem;
padding: 0.4rem 1.2rem;
font-family: 'Quicksand', sans-serif;
font-size: 0.85rem;
font-weight: 700;
background: var(--cutealism-lime);
border: 2px solid var(--cutealism-border);
border-radius: var(--cutealism-radius-round);
box-shadow: 2px 2px 0px var(--cutealism-black);
text-decoration: none;
color: var(--cutealism-text-primary);
cursor: pointer;
}
/* -- Emoji Divider -- */
.divider {
text-align: center;
font-size: 1.8rem;
padding: 1.2rem 0;
letter-spacing: 1.5rem;
border-top: var(--cutealism-border-width) solid var(--cutealism-border);
border-bottom: var(--cutealism-border-width) solid var(--cutealism-border);
background: var(--cutealism-white);
margin-bottom: 2rem;
}
/* -- Reverse grid for second section -- */
.grid-asym-reverse {
display: grid;
grid-template-columns: 1fr 2fr;
gap: 1.5rem;
margin-bottom: 2rem;
}
/* -- Color band section -- */
.color-band {
background: var(--cutealism-banana);
border-top: var(--cutealism-border-width) solid var(--cutealism-border);
border-bottom: var(--cutealism-border-width) solid var(--cutealism-border);
padding: 3rem 2rem;
text-align: center;
margin: 2rem 0;
position: relative;
}
.color-band h2 {
font-family: 'Baloo 2', sans-serif;
font-size: clamp(1.5rem, 4vw, 2.5rem);
font-weight: 800;
color: var(--cutealism-text-primary);
margin-bottom: 0.5rem;
}
.color-band p {
font-family: 'Space Mono', monospace;
font-size: 0.85rem;
max-width: 600px;
margin: 0 auto;
}
.color-band::before {
content: '\2728';
position: absolute;
top: 15px;
right: 25px;
font-size: 2rem;
transform: rotate(8deg);
}
.color-band::after {
content: '\1F31F';
position: absolute;
bottom: 15px;
left: 25px;
font-size: 1.8rem;
transform: rotate(-12deg);
}
/* -- Three-column feature grid -- */
.grid-three {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 1.5rem;
margin-bottom: 2rem;
}
.feature-card {
background: var(--cutealism-white);
border: var(--cutealism-border-width) solid var(--cutealism-border);
box-shadow: var(--cutealism-shadow-sm);
padding: 1.5rem;
text-align: center;
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.feature-card:hover {
transform: translate(-2px, -2px);
box-shadow: 5px 5px 0px var(--cutealism-black);
}
.feature-card .icon {
font-size: 2.5rem;
margin-bottom: 0.8rem;
display: block;
}
.feature-card h3 {
font-family: 'Baloo 2', sans-serif;
font-size: 1.1rem;
font-weight: 800;
margin-bottom: 0.3rem;
}
.feature-card p {
font-size: 0.85rem;
color: var(--cutealism-text-muted);
}
.feature-card:nth-child(1) { background: var(--cutealism-blush); }
.feature-card:nth-child(2) { background: var(--cutealism-mint); }
.feature-card:nth-child(3) { background: var(--cutealism-lavender); }
/* -- Footer -- */
.footer {
border-top: var(--cutealism-border-width) solid var(--cutealism-border);
background: var(--cutealism-black);
color: var(--cutealism-text-inverted);
padding: 2rem;
text-align: center;
font-family: 'Space Mono', monospace;
font-size: 0.8rem;
margin-top: 2rem;
}
.footer span {
color: var(--cutealism-pink);
}
/* -- Sparkle animation -- */
@keyframes wiggle {
0%, 100% { transform: rotate(0deg); }
25% { transform: rotate(3deg); }
75% { transform: rotate(-3deg); }
}
@keyframes sparkle {
0%, 100% { opacity: 0.4; transform: scale(0.8); }
50% { opacity: 1; transform: scale(1.1); }
}
/* -- Responsive -- */
@media (max-width: 768px) {
.grid-asym,
.grid-asym-reverse,
.grid-three {
grid-template-columns: 1fr;
}
.nav {
flex-wrap: wrap;
}
.hero { padding: 2.5rem 1.5rem; }
.main { padding: 0 1rem; }
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="nav">
<div class="brand">Cute-alism</div>
<a href="#" class="active">Home</a>
<a href="#">Projects</a>
<a href="#">About</a>
<a href="#">Contact</a>
</nav>
<!-- Hero Section -->
<section class="hero">
<h1>Hard Borders, Soft Hearts</h1>
<p>WHERE KAWAII MEETS BRUTALISM // CUTE THINGS IN ROUGH CONTAINERS</p>
<a href="#" class="hero-btn">Explore Now</a>
</section>
<!-- Main Content -->
<div class="main">
<!-- Asymmetric Grid: Wide Left, Narrow Right -->
<div class="grid-asym">
<div class="card card--sticker" data-sticker="⭐">
<div class="label">// FEATURED PROJECT</div>
<h2>Sticker Bomb Dashboard</h2>
<p>A monitoring interface that proves data visualization can be adorable without losing clarity. Chunky rounded charts sit inside sharp-cornered panels. Every metric has a mood.</p>
<div class="tags">
<span class="tag tag--pink">DESIGN</span>
<span class="tag">UI/UX</span>
<span class="tag tag--lilac">KAWAII</span>
<span class="tag tag--lime">NEW</span>
</div>
</div>
<div class="sidebar-card">
<span class="emoji-icon">🌟</span>
<h3>Quick Stats</h3>
<p>47 designs<br>12 color combos<br>infinite sparkle</p>
<a href="#" class="btn-small">View All</a>
</div>
</div>
<!-- Emoji Divider -->
<div class="divider">✨ 💖 ⭐ 🌟 ✨</div>
<!-- Reverse Asymmetric Grid: Narrow Left, Wide Right -->
<div class="grid-asym-reverse">
<div class="card card--yellow">
<div class="label">// STATUS</div>
<h3>System Check</h3>
<p style="font-family: 'Space Mono', monospace; font-size: 0.85rem;">
BORDERS: THICK<br>
SHADOWS: HARD<br>
CORNERS: MIXED<br>
VIBES: IMMACULATE
</p>
</div>
<div class="card card--sticker" data-sticker="💖">
<div class="label">// LATEST UPDATE</div>
<h2>Concrete Candy</h2>
<p>New component library that pairs brutalist grid systems with kawaii micro-interactions. Every hover state sparks joy. Every click lands with a satisfying thunk.</p>
<div class="tags">
<span class="tag tag--blue">COMPONENTS</span>
<span class="tag tag--pink">RELEASED</span>
</div>
</div>
</div>
</div>
<!-- Full-Width Color Band -->
<section class="color-band">
<h2>Build Something Bold and Cute</h2>
<p>THICK BORDERS. HARD SHADOWS. NEON FILLS. ROUND BUTTONS. THE COLLISION IS THE AESTHETIC.</p>
</section>
<!-- Feature Cards -->
<div class="main">
<div class="grid-three">
<div class="feature-card">
<span class="icon">🌸</span>
<h3>Soft Inside</h3>
<p>Rounded buttons, pill tags, and circular icons live happily within the hard grid.</p>
</div>
<div class="feature-card">
<span class="icon">🧱</span>
<h3>Hard Outside</h3>
<p>Thick black borders and zero-blur shadows form the brutalist skeleton.</p>
</div>
<div class="feature-card">
<span class="icon">✨</span>
<h3>Sparkle Always</h3>
<p>Emoji decorations and candy colors turn raw structure into celebration.</p>
</div>
</div>
</div>
<!-- Footer -->
<footer class="footer">
<span>CUTE-ALISM</span> // KAWAII x BRUTALISM // HARD BORDERS SOFT HEARTS
</footer>
</body>
</html>