@wener/console
Version:
Base console UI toolkit
176 lines (172 loc) • 5.39 kB
text/typescript
import containerQueries from '@tailwindcss/container-queries';
import typography from '@tailwindcss/typography';
import daisyuiPlugin from 'daisyui';
import type { Config } from 'tailwindcss';
import animatePlugin from 'tailwindcss-animate';
import { PluginCreator } from 'tailwindcss/types/config';
export function createConfig(opts: { daisyui?: any } = {}): Config {
const { daisyui } = opts;
let config = {
mode: 'jit',
content: [
//
'./src/**/*.{html,ts,tsx,js,jsx,mdx}',
'node_modules/@wener/console/src/**/*.{html,ts,tsx,js,jsx,mdx}',
],
safelist: [{ pattern: /^(btn|input)-/ }],
darkMode: ['class'],
theme: {
extend: {
spacing: {
15: '3.75rem',
},
margin: {
'safe-top': 'env(safe-area-inset-top)',
'safe-right': 'env(safe-area-inset-right)',
'safe-bottom': 'env(safe-area-inset-bottom)',
'safe-left': 'env(safe-area-inset-left)',
},
// shadcn
colors: {
// border: 'hsl(var(--border))',
border: 'oklch(var(--b3))',
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',
background: 'oklch(var(--b1))',
foreground: 'oklch(var(--n))',
// background: 'hsl(var(--background))',
// foreground: 'hsl(var(--foreground))',
primary: {
// DEFAULT: 'hsl(var(--primary))',
// foreground: 'hsl(var(--primary-foreground))',
DEFAULT: 'oklch(var(--p)',
foreground: 'oklch(var(--pc))',
},
secondary: {
DEFAULT: 'oklch(var(--s)',
foreground: 'oklch(var(--sc))',
// DEFAULT: 'hsl(var(--secondary))',
// foreground: 'hsl(var(--secondary-foreground))',
},
destructive: {
// DEFAULT: 'hsl(var(--destructive))',
// foreground: 'hsl(var(--destructive-foreground))',
DEFAULT: 'oklch(var(--er))',
foreground: 'oklch(var(--erc))',
},
muted: {
DEFAULT: 'hsl(var(--muted))',
foreground: 'hsl(var(--muted-foreground))',
},
accent: {
DEFAULT: 'oklch(var(--a))',
foreground: 'oklch(var(--ac))',
// DEFAULT: 'hsl(var(--accent))',
// foreground: 'hsl(var(--accent-foreground))',
},
popover: {
// DEFAULT: 'hsl(var(--popover))',
// foreground: 'hsl(var(--popover-foreground))',
DEFAULT: 'oklch(var(--b1))',
foreground: 'oklch(var(--pc))',
},
card: {
DEFAULT: 'hsl(var(--card))',
foreground: 'hsl(var(--card-foreground))',
},
},
borderRadius: {
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)',
},
keyframes: {
'accordion-down': {
from: { height: '0' },
to: { height: 'var(--radix-accordion-content-height)' },
},
'accordion-up': {
from: { height: 'var(--radix-accordion-content-height)' },
to: { height: '0' },
},
},
animation: {
'accordion-down': 'accordion-down 0.2s ease-out',
'accordion-up': 'accordion-up 0.2s ease-out',
},
},
},
experimental: {
// classRegex: [
// 'twc\\.[^`]+`([^`]*)`',
// 'twc\\(.*?\\).*?`([^`]*)',
// ['twc\\.[^`]+\\(([^)]*)\\)', "(?:'|\"|`)([^']*)(?:'|\"|`)"],
// ['twc\\(.*?\\).*?\\(([^)]*)\\)', "(?:'|\"|`)([^']*)(?:'|\"|`)"],
// ],
},
variants: {
extend: {},
},
plugins: [
typography,
containerQueries,
animatePlugin,
// https://github.com/tailwindlabs/tailwindcss.com/blob/ceb07ba4d7694ef48e108e66598a20ae31cced19/tailwind.config.js#L280-L284
function ({ addVariant }) {
addVariant(
'supports-backdrop-blur',
'@supports (backdrop-filter: blur(0)) or (-webkit-backdrop-filter: blur(0))',
);
addVariant('supports-scrollbars', '@supports selector(::-webkit-scrollbar)');
addVariant('children', '& > *');
addVariant('scrollbar', '&::-webkit-scrollbar');
addVariant('scrollbar-track', '&::-webkit-scrollbar-track');
addVariant('scrollbar-thumb', '&::-webkit-scrollbar-thumb');
} satisfies PluginCreator,
// containerQuery,
],
daisyui: {
logs: false,
themes: [
'light',
'dark',
'cupcake',
'bumblebee',
'emerald',
'corporate',
'synthwave',
'retro',
'cyberpunk',
'valentine',
'halloween',
'garden',
'forest',
'aqua',
'lofi',
'pastel',
'fantasy',
'wireframe',
'black',
'luxury',
'dracula',
'cmyk',
'autumn',
'business',
'acid',
'lemonade',
'night',
'coffee',
'winter',
'dim',
'nord',
'sunset',
],
...(daisyui && typeof daisyui === 'object' ? daisyui : {}),
},
} satisfies Config;
if (daisyui ?? true) {
config.plugins.push(daisyuiPlugin);
}
return config as Config;
}
export default createConfig();