141 lines
4.2 KiB
TypeScript
141 lines
4.2 KiB
TypeScript
import { defineConfig, presetWind, presetAttributify, presetIcons } from 'unocss'
|
|
|
|
export default defineConfig({
|
|
presets: [
|
|
presetWind(), // This is the Tailwind-compatible preset
|
|
presetAttributify(),
|
|
presetIcons(),
|
|
],
|
|
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))',
|
|
hover: 'hsl(var(--primary-hover))',
|
|
},
|
|
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))',
|
|
},
|
|
success: {
|
|
DEFAULT: 'hsl(var(--success))',
|
|
foreground: 'hsl(var(--success-foreground))',
|
|
},
|
|
warning: {
|
|
DEFAULT: 'hsl(var(--warning))',
|
|
foreground: 'hsl(var(--warning-foreground))',
|
|
},
|
|
info: {
|
|
DEFAULT: 'hsl(var(--info))',
|
|
foreground: 'hsl(var(--info-foreground))',
|
|
},
|
|
sidebar: {
|
|
DEFAULT: 'hsl(var(--sidebar-background))',
|
|
foreground: 'hsl(var(--sidebar-foreground))',
|
|
primary: 'hsl(var(--sidebar-primary))',
|
|
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
|
accent: 'hsl(var(--sidebar-accent))',
|
|
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
|
border: 'hsl(var(--sidebar-border))',
|
|
ring: 'hsl(var(--sidebar-ring))',
|
|
},
|
|
},
|
|
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',
|
|
},
|
|
},
|
|
fadeIn: {
|
|
'0%': { opacity: '0', transform: 'translateY(10px)' },
|
|
'100%': { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
slideUp: {
|
|
'0%': { transform: 'translateY(100%)' },
|
|
'100%': { transform: 'translateY(0)' },
|
|
},
|
|
pulseMedical: {
|
|
'0%, 100%': { boxShadow: '0 0 0 0 hsl(var(--primary) / 0.4)' },
|
|
'50%': { boxShadow: '0 0 0 10px hsl(var(--primary) / 0)' },
|
|
},
|
|
},
|
|
animation: {
|
|
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
'fade-in': 'fadeIn 0.5s ease-out',
|
|
'slide-up': 'slideUp 0.3s ease-out',
|
|
'pulse-medical': 'pulseMedical 2s ease-in-out infinite',
|
|
},
|
|
backgroundImage: {
|
|
'gradient-medical': 'var(--gradient-medical)',
|
|
'gradient-primary': 'var(--gradient-primary)',
|
|
'gradient-subtle': 'var(--gradient-subtle)',
|
|
},
|
|
boxShadow: {
|
|
medical: 'var(--shadow-medical)',
|
|
card: 'var(--shadow-card)',
|
|
glow: 'var(--shadow-glow)',
|
|
},
|
|
transitionProperty: {
|
|
smooth: 'var(--transition-smooth)',
|
|
fast: 'var(--transition-fast)',
|
|
},
|
|
},
|
|
},
|
|
shortcuts: [
|
|
// Add any custom shortcuts if needed
|
|
],
|
|
rules: [
|
|
// Custom rules if needed
|
|
],
|
|
})
|