123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- const radix = require('@radix-ui/colors')
- function mapRadixColorToTailwind(color) {
- const radixColor = radix[color]
- if (!radixColor) throw new Error(`[radix color] not exist for ${color}`)
- const twSteps = [10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950]
- const rxSteps = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
- const colors = {}
- twSteps.forEach((twStep, index) => {
- const rxStep = rxSteps[index]
- // base color
- colors[twStep] = radixColor[`${color}${rxStep}`]
- // theme vars color
- const rxStepName = `${(rxStep < 10) ? '0' : ''}${rxStep}`
- const rxVarName = `--rx-${color}-${rxStepName}`
- colors[`rx-${rxStepName}`] = `var(${rxVarName})`
- colors[`rx-${rxStepName}-alpha`] = `var(${rxVarName}-alpha)`
- })
- return colors
- }
- /** @type {import('tailwindcss').Config} */
- module.exports = {
- darkMode: ['class'],
- content: [
- './@/components/**/*.{ts,tsx}',
- './src/**/*.{ts,tsx}',
- './examples/**/*.{ts,tsx}',
- '../../deps/shui/src/**/*.cljs'
- ],
- safelist: [
- { pattern: /primary-(gray|red|yellow|green|blue|orange|indigo|rose|purple|pink)/ }
- ],
- theme: {
- container: {
- center: true,
- padding: '2rem',
- screens: {
- '2xl': '1400px',
- },
- },
- extend: {
- colors: {
- border: 'hsl(var(--border))',
- input: 'hsl(var(--input))',
- ring: 'hsl(var(--ring))',
- background: 'hsl(var(--background))',
- foreground: 'hsl(var(--foreground))',
- primary: {
- DEFAULT: 'hsl(var(--primary))',
- foreground: 'hsl(var(--primary-foreground))',
- },
- secondary: {
- DEFAULT: 'hsl(var(--secondary))',
- foreground: 'hsl(var(--secondary-foreground))',
- },
- destructive: {
- DEFAULT: 'hsl(var(--destructive))',
- foreground: 'hsl(var(--destructive-foreground))',
- },
- muted: {
- DEFAULT: 'hsl(var(--muted))',
- foreground: 'hsl(var(--muted-foreground))',
- },
- accent: {
- DEFAULT: 'var(--lx-gray-04, hsl(var(--accent)))',
- foreground: 'hsl(var(--accent-foreground))',
- },
- popover: {
- DEFAULT: 'var(--lx-gray-03, hsl(var(--popover)))',
- foreground: 'hsl(var(--popover-foreground))',
- },
- card: {
- DEFAULT: 'hsl(var(--card))',
- foreground: 'hsl(var(--card-foreground))',
- },
- red: mapRadixColorToTailwind('red'),
- pink: mapRadixColorToTailwind('pink'),
- orange: mapRadixColorToTailwind('orange'),
- yellow: mapRadixColorToTailwind('yellow'),
- green: mapRadixColorToTailwind('green'),
- blue: mapRadixColorToTailwind('blue'),
- indigo: mapRadixColorToTailwind('indigo'),
- purple: mapRadixColorToTailwind('purple'),
- rose: mapRadixColorToTailwind('red'),
- amber: mapRadixColorToTailwind('amber'),
- bronze: mapRadixColorToTailwind('bronze'),
- brown: mapRadixColorToTailwind('brown'),
- crimson: mapRadixColorToTailwind('crimson'),
- cyan: mapRadixColorToTailwind('cyan'),
- gold: mapRadixColorToTailwind('gold'),
- grass: mapRadixColorToTailwind('grass'),
- lime: mapRadixColorToTailwind('lime'),
- mauve: mapRadixColorToTailwind('mauve'),
- mint: mapRadixColorToTailwind('mint'),
- olive: mapRadixColorToTailwind('olive'),
- plum: mapRadixColorToTailwind('plum'),
- sage: mapRadixColorToTailwind('sage'),
- sand: mapRadixColorToTailwind('sand'),
- sky: mapRadixColorToTailwind('sky'),
- slate: mapRadixColorToTailwind('slate'),
- teal: mapRadixColorToTailwind('teal'),
- tomato: mapRadixColorToTailwind('tomato'),
- violet: mapRadixColorToTailwind('violet')
- },
- 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',
- }
- },
- },
- plugins: [require('tailwindcss-animate')],
- corePlugins: {
- preflight: true,
- }
- }
|