aboutsummaryrefslogtreecommitdiffstats
path: root/tailwind.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'tailwind.config.js')
-rw-r--r--tailwind.config.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000000..8c474c33a8
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,39 @@
+import {readFileSync} from 'node:fs';
+import {env} from 'node:process';
+import {parse} from 'css-variables-parser';
+
+const isProduction = env.NODE_ENV !== 'development';
+
+export default {
+ prefix: 'tw-',
+ content: [
+ isProduction && '!./templates/devtest/**/*',
+ isProduction && '!./web_src/js/standalone/devtest.js',
+ './templates/**/*.tmpl',
+ './web_src/**/*.{js,vue}',
+ ].filter(Boolean),
+ blocklist: [
+ // classes that don't work without CSS variables from "@tailwind base" which we don't use
+ 'transform', 'shadow', 'ring', 'blur', 'grayscale', 'invert', '!invert', 'filter', '!filter',
+ 'backdrop-filter',
+ // unneeded classes
+ '[-a-zA-Z:0-9_.]',
+ ],
+ theme: {
+ colors: {
+ // make `tw-bg-red` etc work with our CSS variables
+ ...Object.fromEntries(
+ Object.keys(parse([
+ readFileSync(new URL('web_src/css/themes/theme-gitea-light.css', import.meta.url), 'utf8'),
+ readFileSync(new URL('web_src/css/themes/theme-gitea-dark.css', import.meta.url), 'utf8'),
+ ].join('\n'), {})).filter((prop) => prop.startsWith('color-')).map((prop) => {
+ const color = prop.substring(6);
+ return [color, `var(--color-${color})`];
+ })
+ ),
+ inherit: 'inherit',
+ current: 'currentcolor',
+ transparent: 'transparent',
+ },
+ },
+};