Vintage Paper
tweakcnApache-2.0Texture · textureRetro · retroLight and dark · bothMedium · mediumOrange · orangeMedium · mediumSerif · serifGeneral · generalLanding · landing
A theme based on the Vintage Paper 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
"Vintage Paper" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/vintage-paper.json @ a3b47b37cba9.
https://github.com/jnsahaj/tweakcn · r/themes/vintage-paper.json · a3b47b37cba9 · © jnsahaj
Prompt
Design a user interface in the "Vintage Paper" style. A theme based on the Vintage Paper color palette. Apply these tokens to every surface. Do not invent a second palette. - Background oklch(0.9582 0.0152 90.2357), foreground oklch(0.3760 0.0225 64.3434) - Primary oklch(0.6180 0.0778 65.5444) on oklch(1.0000 0 0) - Accent oklch(0.8348 0.0426 88.8064), muted oklch(0.9239 0.0190 83.0636), border oklch(0.8606 0.0321 84.5881) - Radius 0.25rem, type Libre Baskerville, serif - Shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04) "Vintage Paper" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/vintage-paper.json @ a3b47b37cba9. powered by Styledex — https://styledex.dev
Tokens
DTCG
{
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
"$description": "Vintage Paper. \"Vintage Paper\" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/vintage-paper.json @ a3b47b37cba9.",
"$extensions": {
"dev.styledex": {
"id": "tweakcn-vintage-paper",
"license": "Apache-2.0",
"attribution": "\"Vintage Paper\" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/vintage-paper.json @ a3b47b37cba9.",
"banner": "powered by Styledex — https://styledex.dev"
}
},
"color": {
"background": {
"$type": "color",
"$value": "oklch(0.9582 0.0152 90.2357)"
},
"foreground": {
"$type": "color",
"$value": "oklch(0.3760 0.0225 64.3434)"
},
"card": {
"$type": "color",
"$value": "oklch(0.9914 0.0098 87.4695)"
},
"card-foreground": {
"$type": "color",
"$value": "oklch(0.3760 0.0225 64.3434)"
},
"primary": {
"$type": "color",
"$value": "oklch(0.6180 0.0778 65.5444)"
},
"primary-foreground": {
"$type": "color",
"$value": "oklch(1.0000 0 0)"
},
"secondary": {
"$type": "color",
"$value": "oklch(0.8846 0.0302 85.5655)"
},
"secondary-foreground": {
"$type": "color",
"$value": "oklch(0.4313 0.0300 64.9288)"
},
"accent": {
"$type": "color",
"$value": "oklch(0.8348 0.0426 88.8064)"
},
"accent-foreground": {
"$type": "color",
"$value": "oklch(0.3760 0.0225 64.3434)"
},
"muted": {
"$type": "color",
"$value": "oklch(0.9239 0.0190 83.0636)"
},
"muted-foreground": {
"$type": "color",
"$value": "oklch(0.5391 0.0387 71.1655)"
},
"border": {
"$type": "color",
"$value": "oklch(0.8606 0.0321 84.5881)"
},
"destructive": {
"$type": "color",
"$value": "oklch(0.5471 0.1438 32.9149)"
},
"ring": {
"$type": "color",
"$value": "oklch(0.6180 0.0778 65.5444)"
}
},
"font": {
"sans": {
"$type": "fontFamily",
"$value": [
"Libre Baskerville",
"serif"
]
},
"serif": {
"$type": "fontFamily",
"$value": [
"Lora",
"serif"
]
},
"mono": {
"$type": "fontFamily",
"$value": [
"IBM Plex Mono",
"monospace"
]
}
},
"radius": {
"base": {
"$type": "dimension",
"$value": "0.25rem"
}
},
"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.2747 0.0139 57.6523)"
},
"foreground": {
"$type": "color",
"$value": "oklch(0.9239 0.0190 83.0636)"
},
"card": {
"$type": "color",
"$value": "oklch(0.3237 0.0155 59.0603)"
},
"card-foreground": {
"$type": "color",
"$value": "oklch(0.9239 0.0190 83.0636)"
},
"primary": {
"$type": "color",
"$value": "oklch(0.7264 0.0581 66.6967)"
},
"primary-foreground": {
"$type": "color",
"$value": "oklch(0.2747 0.0139 57.6523)"
},
"secondary": {
"$type": "color",
"$value": "oklch(0.3795 0.0181 57.1280)"
},
"secondary-foreground": {
"$type": "color",
"$value": "oklch(0.9239 0.0190 83.0636)"
},
"accent": {
"$type": "color",
"$value": "oklch(0.4186 0.0281 56.3404)"
},
"accent-foreground": {
"$type": "color",
"$value": "oklch(0.9239 0.0190 83.0636)"
},
"muted": {
"$type": "color",
"$value": "oklch(0.2939 0.0125 62.1298)"
},
"muted-foreground": {
"$type": "color",
"$value": "oklch(0.7982 0.0243 82.1078)"
},
"border": {
"$type": "color",
"$value": "oklch(0.3795 0.0181 57.1280)"
},
"destructive": {
"$type": "color",
"$value": "oklch(0.5471 0.1438 32.9149)"
},
"ring": {
"$type": "color",
"$value": "oklch(0.7264 0.0581 66.6967)"
}
}
}
}
CSS
/* powered by Styledex — https://styledex.dev */
/* "Vintage Paper" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/vintage-paper.json @ a3b47b37cba9. */
:root {
--background: oklch(0.9582 0.0152 90.2357);
--foreground: oklch(0.3760 0.0225 64.3434);
--card: oklch(0.9914 0.0098 87.4695);
--card-foreground: oklch(0.3760 0.0225 64.3434);
--primary: oklch(0.6180 0.0778 65.5444);
--primary-foreground: oklch(1.0000 0 0);
--secondary: oklch(0.8846 0.0302 85.5655);
--secondary-foreground: oklch(0.4313 0.0300 64.9288);
--accent: oklch(0.8348 0.0426 88.8064);
--accent-foreground: oklch(0.3760 0.0225 64.3434);
--muted: oklch(0.9239 0.0190 83.0636);
--muted-foreground: oklch(0.5391 0.0387 71.1655);
--border: oklch(0.8606 0.0321 84.5881);
--destructive: oklch(0.5471 0.1438 32.9149);
--ring: oklch(0.6180 0.0778 65.5444);
--radius: 0.25rem;
--font-sans: Libre Baskerville, serif;
--font-serif: Lora, serif;
--font-mono: IBM Plex 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.2747 0.0139 57.6523);
--foreground: oklch(0.9239 0.0190 83.0636);
--card: oklch(0.3237 0.0155 59.0603);
--card-foreground: oklch(0.9239 0.0190 83.0636);
--primary: oklch(0.7264 0.0581 66.6967);
--primary-foreground: oklch(0.2747 0.0139 57.6523);
--secondary: oklch(0.3795 0.0181 57.1280);
--secondary-foreground: oklch(0.9239 0.0190 83.0636);
--accent: oklch(0.4186 0.0281 56.3404);
--accent-foreground: oklch(0.9239 0.0190 83.0636);
--muted: oklch(0.2939 0.0125 62.1298);
--muted-foreground: oklch(0.7982 0.0243 82.1078);
--border: oklch(0.3795 0.0181 57.1280);
--destructive: oklch(0.5471 0.1438 32.9149);
--ring: oklch(0.7264 0.0581 66.6967);
--radius: 0.25rem;
--font-sans: Libre Baskerville, serif;
--font-serif: Lora, serif;
--font-mono: IBM Plex 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 */
/* "Vintage Paper" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/vintage-paper.json @ a3b47b37cba9. */
/** Tailwind theme extend for Vintage Paper (tweakcn-vintage-paper) */
module.exports = {
"theme": {
"extend": {
"colors": {
"background": "oklch(0.9582 0.0152 90.2357)",
"foreground": "oklch(0.3760 0.0225 64.3434)",
"card": "oklch(0.9914 0.0098 87.4695)",
"primary": "oklch(0.6180 0.0778 65.5444)",
"primary-foreground": "oklch(1.0000 0 0)",
"secondary": "oklch(0.8846 0.0302 85.5655)",
"accent": "oklch(0.8348 0.0426 88.8064)",
"muted": "oklch(0.9239 0.0190 83.0636)",
"border": "oklch(0.8606 0.0321 84.5881)",
"destructive": "oklch(0.5471 0.1438 32.9149)",
"ring": "oklch(0.6180 0.0778 65.5444)"
},
"borderRadius": {
"lg": "0.25rem"
},
"fontFamily": {
"sans": [
"Libre Baskerville",
"serif"
],
"serif": [
"Lora",
"serif"
],
"mono": [
"IBM Plex 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 */
/* "Vintage Paper" from https://github.com/jnsahaj/tweakcn (Apache-2.0). © jnsahaj. r/themes/vintage-paper.json @ a3b47b37cba9. */
@layer base {
:root {
--background: oklch(0.9582 0.0152 90.2357);
--foreground: oklch(0.3760 0.0225 64.3434);
--card: oklch(0.9914 0.0098 87.4695);
--card-foreground: oklch(0.3760 0.0225 64.3434);
--primary: oklch(0.6180 0.0778 65.5444);
--primary-foreground: oklch(1.0000 0 0);
--secondary: oklch(0.8846 0.0302 85.5655);
--secondary-foreground: oklch(0.4313 0.0300 64.9288);
--accent: oklch(0.8348 0.0426 88.8064);
--accent-foreground: oklch(0.3760 0.0225 64.3434);
--muted: oklch(0.9239 0.0190 83.0636);
--muted-foreground: oklch(0.5391 0.0387 71.1655);
--border: oklch(0.8606 0.0321 84.5881);
--destructive: oklch(0.5471 0.1438 32.9149);
--ring: oklch(0.6180 0.0778 65.5444);
--radius: 0.25rem;
--font-sans: Libre Baskerville, serif;
--font-serif: Lora, serif;
--font-mono: IBM Plex 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.2747 0.0139 57.6523);
--foreground: oklch(0.9239 0.0190 83.0636);
--card: oklch(0.3237 0.0155 59.0603);
--card-foreground: oklch(0.9239 0.0190 83.0636);
--primary: oklch(0.7264 0.0581 66.6967);
--primary-foreground: oklch(0.2747 0.0139 57.6523);
--secondary: oklch(0.3795 0.0181 57.1280);
--secondary-foreground: oklch(0.9239 0.0190 83.0636);
--accent: oklch(0.4186 0.0281 56.3404);
--accent-foreground: oklch(0.9239 0.0190 83.0636);
--muted: oklch(0.2939 0.0125 62.1298);
--muted-foreground: oklch(0.7982 0.0243 82.1078);
--border: oklch(0.3795 0.0181 57.1280);
--destructive: oklch(0.5471 0.1438 32.9149);
--ring: oklch(0.7264 0.0581 66.6967);
--radius: 0.25rem;
--font-sans: Libre Baskerville, serif;
--font-serif: Lora, serif;
--font-mono: IBM Plex Mono, monospace;
--spacing: 0.25rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
}