140 lines
3.8 KiB
TypeScript
140 lines
3.8 KiB
TypeScript
import type { Config } from 'tailwindcss';
|
|
import { PluginCreator } from 'tailwindcss/types/config';
|
|
import { fontFamily } from 'tailwindcss/defaultTheme';
|
|
|
|
const plugin: PluginCreator = (api) => {
|
|
api.addUtilities({
|
|
'.text-gradient': {
|
|
background:
|
|
'linear-gradient(270deg, #00E725 -33.33%, #0799B9 17.93%, #940DFF 105.3%)',
|
|
backgroundClip: 'text',
|
|
color: 'transparent',
|
|
},
|
|
});
|
|
};
|
|
|
|
export default {
|
|
darkMode: ['class', '[data-theme="dark"]'],
|
|
corePlugins: {
|
|
preflight: false,
|
|
},
|
|
content: ['./src/**/*.{html,tsx}'],
|
|
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: 'hsl(var(--accent))',
|
|
foreground: 'hsl(var(--accent-foreground))',
|
|
},
|
|
popover: {
|
|
DEFAULT: 'hsl(var(--popover))',
|
|
foreground: 'hsl(var(--popover-foreground))',
|
|
},
|
|
card: {
|
|
DEFAULT: 'hsl(var(--card))',
|
|
foreground: 'hsl(var(--card-foreground))',
|
|
},
|
|
},
|
|
borderRadius: {
|
|
lg: 'var(--radius)',
|
|
md: 'calc(var(--radius) - 2px)',
|
|
sm: 'calc(var(--radius) - 4px)',
|
|
},
|
|
fontFamily: {
|
|
sans: ['var(--font-sans)', ...fontFamily.sans],
|
|
},
|
|
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',
|
|
},
|
|
},
|
|
'shimmer-slide': {
|
|
to: {
|
|
transform: 'translate(calc(100cqw - 100%), 0)',
|
|
},
|
|
},
|
|
'spin-around': {
|
|
'0%': {
|
|
transform: 'translateZ(0) rotate(0)',
|
|
},
|
|
'15%, 35%': {
|
|
transform: 'translateZ(0) rotate(90deg)',
|
|
},
|
|
'65%, 85%': {
|
|
transform: 'translateZ(0) rotate(270deg)',
|
|
},
|
|
'100%': {
|
|
transform: 'translateZ(0) rotate(360deg)',
|
|
},
|
|
},
|
|
shine: {
|
|
'0%': {
|
|
'background-position': '0% 0%',
|
|
},
|
|
'50%': {
|
|
'background-position': '100% 100%',
|
|
},
|
|
to: {
|
|
'background-position': '0% 0%',
|
|
},
|
|
},
|
|
'border-beam': {
|
|
'100%': {
|
|
'offset-distance': '100%',
|
|
},
|
|
},
|
|
},
|
|
animation: {
|
|
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
'shimmer-slide':
|
|
'shimmer-slide var(--speed) ease-in-out infinite alternate',
|
|
'spin-around': 'spin-around calc(var(--speed) * 2) infinite linear',
|
|
shine: 'shine var(--duration) infinite linear',
|
|
'border-beam': 'border-beam calc(var(--duration)*1s) infinite linear',
|
|
},
|
|
},
|
|
},
|
|
plugins: [plugin, require('tailwindcss-animate')],
|
|
} satisfies Config;
|