add tailwind theme

This commit is contained in:
Niccolo Borgioli 2023-10-11 22:13:20 +02:00
parent 1f04e83a3d
commit eb63b57ad4
No known key found for this signature in database
GPG Key ID: D93C615F75EE4F0B
2 changed files with 84 additions and 1 deletions

View File

@ -3,5 +3,6 @@
"cli": "CLI",
"git": "Git",
"dev_ops": "Dev Ops",
"latex": "LaTeX"
"latex": "LaTeX",
"web_dev": "Web Development"
}

View File

@ -0,0 +1,82 @@
---
tags:
- tailwind
- theme
- css variables
- dark mode
---
# Tailwind themes with CSS Variables
There are many tailwind theme plugins, tried few and landed on`tailwindcss-themer`.
## Setup
Two files are required:
1. `pnpm i -D tailwindcss-themer`
1. `tailwind.config.js`
1. `app.postcss`
> Technically, we don't need to use CSS variables, but I like to, as I can export them automatically from Figma, or whatever design tool. Without CSS Variables, you could just define the colors in `tailwind.config.js` without touching css files.
```js
// tailwind.config.js
const themer = require('tailwindcss-themer')
/** @type {import('tailwindcss').Config}*/
const config = {
theme: {
// ...
},
plugins: [
themer({
defaultTheme: {
extend: {
colors: {
primary: 'var(--colors-cyan-500)',
secondary: 'var(--colors-yellow-500)',
surface: 'var(--colors-gray-100)',
text: 'var(--colors-gray-900)',
},
},
},
themes: [
{
name: 'darker',
mediaQuery: '@media (prefers-color-scheme: dark)',
extend: {
colors: {
primary: 'var(--colors-cyan-700)',
secondary: 'var(--colors-yellow-500)',
surface: 'var(--colors-gray-900)',
text: 'var(--colors-gray-100)',
},
},
},
],
}),
],
}
module.exports = config
```
```css
/* app.postcss */
@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
/* colors */
--colors-cyan-500: rgb(164, 189, 245);
--colors-cyan-700: #0d398c;
--colors-gray-100: rgb(255, 255, 255);
--colors-gray-900: rgb(1, 1, 1);
--colors-yellow-500: rgb(233, 246, 82);
}
```