Kodama Grove
tweakcnApache-2.0Light and dark · bothMedium · mediumGreen · greenVivid · vividSerif · serifGeneral · generalLanding · landingProfessional · professional
A theme based on the Kodama Grove color palette.
NNorthwind
Product · PricingSpecimen
Make the work feel finished
One interface, dressed in this style. Compare type, color, radius, and density.
128
Active
4.8
Score
12ms
Edge
Attribution
"Kodama Grove" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/kodama-grove.json @ a3b47b37cba9.
https://github.com/jnsahaj/tweakcn · r/themes/kodama-grove.json · a3b47b37cba9 · © jnsahaj
Prompt
Design a user interface in the "Kodama Grove" style. A theme based on the Kodama Grove color palette. Apply these tokens to every surface. Do not invent a second palette. - Background oklch(0.8798 0.0534 91.7893), foreground oklch(0.4265 0.0310 59.2153) - Primary oklch(0.6657 0.1050 118.9078) on oklch(0.9882 0.0069 88.6415) - Accent oklch(0.8361 0.0713 90.3269), muted oklch(0.8532 0.0631 91.1493), border oklch(0.6918 0.0440 59.8448) - Radius 0.425rem, type Merriweather, serif - Shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04) "Kodama Grove" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/kodama-grove.json @ a3b47b37cba9. powered by Styledex — https://styledex.dev
Tokens
DTCG
{
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
"$description": "Kodama Grove. \"Kodama Grove\" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/kodama-grove.json @ a3b47b37cba9.",
"$extensions": {
"dev.styledex": {
"id": "tweakcn-kodama-grove",
"license": "Apache-2.0",
"attribution": "\"Kodama Grove\" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/kodama-grove.json @ a3b47b37cba9.",
"banner": "powered by Styledex — https://styledex.dev"
}
},
"color": {
"background": {
"$type": "color",
"$value": "oklch(0.8798 0.0534 91.7893)"
},
"foreground": {
"$type": "color",
"$value": "oklch(0.4265 0.0310 59.2153)"
},
"card": {
"$type": "color",
"$value": "oklch(0.8937 0.0395 87.5676)"
},
"card-foreground": {
"$type": "color",
"$value": "oklch(0.4265 0.0310 59.2153)"
},
"primary": {
"$type": "color",
"$value": "oklch(0.6657 0.1050 118.9078)"
},
"primary-foreground": {
"$type": "color",
"$value": "oklch(0.9882 0.0069 88.6415)"
},
"secondary": {
"$type": "color",
"$value": "oklch(0.8532 0.0631 91.1493)"
},
"secondary-foreground": {
"$type": "color",
"$value": "oklch(0.4265 0.0310 59.2153)"
},
"accent": {
"$type": "color",
"$value": "oklch(0.8361 0.0713 90.3269)"
},
"accent-foreground": {
"$type": "color",
"$value": "oklch(0.4265 0.0310 59.2153)"
},
"muted": {
"$type": "color",
"$value": "oklch(0.8532 0.0631 91.1493)"
},
"muted-foreground": {
"$type": "color",
"$value": "oklch(0.5761 0.0259 60.9323)"
},
"border": {
"$type": "color",
"$value": "oklch(0.6918 0.0440 59.8448)"
},
"destructive": {
"$type": "color",
"$value": "oklch(0.7136 0.0981 29.9827)"
},
"ring": {
"$type": "color",
"$value": "oklch(0.7350 0.0564 130.8494)"
}
},
"font": {
"sans": {
"$type": "fontFamily",
"$value": [
"Merriweather",
"serif"
]
},
"serif": {
"$type": "fontFamily",
"$value": [
"Source Serif 4",
"serif"
]
},
"mono": {
"$type": "fontFamily",
"$value": [
"JetBrains Mono",
"monospace"
]
}
},
"radius": {
"base": {
"$type": "dimension",
"$value": "0.425rem"
}
},
"spacing": {
"base": {
"$type": "dimension",
"$value": "0.25rem"
}
},
"shadow": {
"base": {
"$type": "shadow",
"$value": "0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04)"
}
},
"dark": {
"color": {
"background": {
"$type": "color",
"$value": "oklch(0.3303 0.0214 88.0737)"
},
"foreground": {
"$type": "color",
"$value": "oklch(0.9217 0.0235 82.1191)"
},
"card": {
"$type": "color",
"$value": "oklch(0.3583 0.0165 82.3257)"
},
"card-foreground": {
"$type": "color",
"$value": "oklch(0.9217 0.0235 82.1191)"
},
"primary": {
"$type": "color",
"$value": "oklch(0.6762 0.0567 132.4479)"
},
"primary-foreground": {
"$type": "color",
"$value": "oklch(0.2686 0.0105 61.0213)"
},
"secondary": {
"$type": "color",
"$value": "oklch(0.4448 0.0239 84.5498)"
},
"secondary-foreground": {
"$type": "color",
"$value": "oklch(0.9217 0.0235 82.1191)"
},
"accent": {
"$type": "color",
"$value": "oklch(0.6540 0.0723 90.7629)"
},
"accent-foreground": {
"$type": "color",
"$value": "oklch(0.2686 0.0105 61.0213)"
},
"muted": {
"$type": "color",
"$value": "oklch(0.3892 0.0197 82.7084)"
},
"muted-foreground": {
"$type": "color",
"$value": "oklch(0.7096 0.0171 73.6179)"
},
"border": {
"$type": "color",
"$value": "oklch(0.4448 0.0239 84.5498)"
},
"destructive": {
"$type": "color",
"$value": "oklch(0.6287 0.0821 31.2958)"
},
"ring": {
"$type": "color",
"$value": "oklch(0.6762 0.0567 132.4479)"
}
}
}
}
CSS
/* powered by Styledex — https://styledex.dev */
/* "Kodama Grove" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/kodama-grove.json @ a3b47b37cba9. */
:root {
--background: oklch(0.8798 0.0534 91.7893);
--foreground: oklch(0.4265 0.0310 59.2153);
--card: oklch(0.8937 0.0395 87.5676);
--card-foreground: oklch(0.4265 0.0310 59.2153);
--primary: oklch(0.6657 0.1050 118.9078);
--primary-foreground: oklch(0.9882 0.0069 88.6415);
--secondary: oklch(0.8532 0.0631 91.1493);
--secondary-foreground: oklch(0.4265 0.0310 59.2153);
--accent: oklch(0.8361 0.0713 90.3269);
--accent-foreground: oklch(0.4265 0.0310 59.2153);
--muted: oklch(0.8532 0.0631 91.1493);
--muted-foreground: oklch(0.5761 0.0259 60.9323);
--border: oklch(0.6918 0.0440 59.8448);
--destructive: oklch(0.7136 0.0981 29.9827);
--ring: oklch(0.7350 0.0564 130.8494);
--radius: 0.425rem;
--font-sans: Merriweather, serif;
--font-serif: Source Serif 4, serif;
--font-mono: JetBrains Mono, monospace;
--spacing: 0.25rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
.dark {
--background: oklch(0.3303 0.0214 88.0737);
--foreground: oklch(0.9217 0.0235 82.1191);
--card: oklch(0.3583 0.0165 82.3257);
--card-foreground: oklch(0.9217 0.0235 82.1191);
--primary: oklch(0.6762 0.0567 132.4479);
--primary-foreground: oklch(0.2686 0.0105 61.0213);
--secondary: oklch(0.4448 0.0239 84.5498);
--secondary-foreground: oklch(0.9217 0.0235 82.1191);
--accent: oklch(0.6540 0.0723 90.7629);
--accent-foreground: oklch(0.2686 0.0105 61.0213);
--muted: oklch(0.3892 0.0197 82.7084);
--muted-foreground: oklch(0.7096 0.0171 73.6179);
--border: oklch(0.4448 0.0239 84.5498);
--destructive: oklch(0.6287 0.0821 31.2958);
--ring: oklch(0.6762 0.0567 132.4479);
--radius: 0.425rem;
--font-sans: Merriweather, serif;
--font-serif: Source Serif 4, serif;
--font-mono: JetBrains Mono, monospace;
--spacing: 0.25rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
Tailwind
/* powered by Styledex — https://styledex.dev */
/* "Kodama Grove" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/kodama-grove.json @ a3b47b37cba9. */
/** Tailwind theme extend for Kodama Grove (tweakcn-kodama-grove) */
module.exports = {
"theme": {
"extend": {
"colors": {
"background": "oklch(0.8798 0.0534 91.7893)",
"foreground": "oklch(0.4265 0.0310 59.2153)",
"card": "oklch(0.8937 0.0395 87.5676)",
"primary": "oklch(0.6657 0.1050 118.9078)",
"primary-foreground": "oklch(0.9882 0.0069 88.6415)",
"secondary": "oklch(0.8532 0.0631 91.1493)",
"accent": "oklch(0.8361 0.0713 90.3269)",
"muted": "oklch(0.8532 0.0631 91.1493)",
"border": "oklch(0.6918 0.0440 59.8448)",
"destructive": "oklch(0.7136 0.0981 29.9827)",
"ring": "oklch(0.7350 0.0564 130.8494)"
},
"borderRadius": {
"lg": "0.425rem"
},
"fontFamily": {
"sans": [
"Merriweather",
"serif"
],
"serif": [
"Source Serif 4",
"serif"
],
"mono": [
"JetBrains Mono",
"monospace"
]
},
"boxShadow": {
"styledex": "0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04)"
}
}
}
};
shadcn
/* powered by Styledex — https://styledex.dev */
/* "Kodama Grove" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/kodama-grove.json @ a3b47b37cba9. */
@layer base {
:root {
--background: oklch(0.8798 0.0534 91.7893);
--foreground: oklch(0.4265 0.0310 59.2153);
--card: oklch(0.8937 0.0395 87.5676);
--card-foreground: oklch(0.4265 0.0310 59.2153);
--primary: oklch(0.6657 0.1050 118.9078);
--primary-foreground: oklch(0.9882 0.0069 88.6415);
--secondary: oklch(0.8532 0.0631 91.1493);
--secondary-foreground: oklch(0.4265 0.0310 59.2153);
--accent: oklch(0.8361 0.0713 90.3269);
--accent-foreground: oklch(0.4265 0.0310 59.2153);
--muted: oklch(0.8532 0.0631 91.1493);
--muted-foreground: oklch(0.5761 0.0259 60.9323);
--border: oklch(0.6918 0.0440 59.8448);
--destructive: oklch(0.7136 0.0981 29.9827);
--ring: oklch(0.7350 0.0564 130.8494);
--radius: 0.425rem;
--font-sans: Merriweather, serif;
--font-serif: Source Serif 4, serif;
--font-mono: JetBrains Mono, monospace;
--spacing: 0.25rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
.dark {
--background: oklch(0.3303 0.0214 88.0737);
--foreground: oklch(0.9217 0.0235 82.1191);
--card: oklch(0.3583 0.0165 82.3257);
--card-foreground: oklch(0.9217 0.0235 82.1191);
--primary: oklch(0.6762 0.0567 132.4479);
--primary-foreground: oklch(0.2686 0.0105 61.0213);
--secondary: oklch(0.4448 0.0239 84.5498);
--secondary-foreground: oklch(0.9217 0.0235 82.1191);
--accent: oklch(0.6540 0.0723 90.7629);
--accent-foreground: oklch(0.2686 0.0105 61.0213);
--muted: oklch(0.3892 0.0197 82.7084);
--muted-foreground: oklch(0.7096 0.0171 73.6179);
--border: oklch(0.4448 0.0239 84.5498);
--destructive: oklch(0.6287 0.0821 31.2958);
--ring: oklch(0.6762 0.0567 132.4479);
--radius: 0.425rem;
--font-sans: Merriweather, serif;
--font-serif: Source Serif 4, serif;
--font-mono: JetBrains Mono, monospace;
--spacing: 0.25rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
}