107 lines
3.3 KiB
TypeScript
107 lines
3.3 KiB
TypeScript
import type { Config } from "tailwindcss";
|
|
import typography from "@tailwindcss/typography";
|
|
|
|
export default {
|
|
content: [
|
|
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./src/components/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./src/app/**/*.{js,ts,jsx,tsx,mdx}",
|
|
],
|
|
darkMode: 'class',
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
background: "var(--background)",
|
|
foreground: "var(--foreground)",
|
|
base: "var(--base)",
|
|
offbase: "var(--offbase)",
|
|
accent: "var(--accent)",
|
|
"secondary-accent": "var(--secondary-accent)",
|
|
muted: "var(--muted)",
|
|
surface: "var(--surface)",
|
|
"surface-solid": "var(--surface-solid)",
|
|
"surface-sunken": "var(--surface-sunken)",
|
|
line: "var(--line)",
|
|
"line-soft": "var(--line-soft)",
|
|
"line-strong": "var(--line-strong)",
|
|
soft: "var(--soft)",
|
|
faint: "var(--faint)",
|
|
"accent-wash": "var(--accent-wash)",
|
|
"accent-line": "var(--accent-line)",
|
|
"accent-strong": "var(--accent-strong)",
|
|
danger: "var(--danger)",
|
|
"danger-wash": "var(--danger-wash)",
|
|
},
|
|
boxShadow: {
|
|
"elev-1": "var(--elev-1)",
|
|
"elev-2": "var(--elev-2)",
|
|
"elev-3": "var(--elev-3)",
|
|
},
|
|
borderRadius: {
|
|
sm: "6px",
|
|
md: "10px",
|
|
lg: "14px",
|
|
pill: "999px",
|
|
},
|
|
transitionDuration: {
|
|
fast: "var(--dur-fast)",
|
|
base: "var(--dur-base)",
|
|
slow: "var(--dur-slow)",
|
|
},
|
|
transitionTimingFunction: {
|
|
standard: "var(--ease)",
|
|
},
|
|
animation: {
|
|
'spin-slow': 'spin 2s linear infinite',
|
|
'fade-in': 'fadeIn 200ms ease-in',
|
|
'fade-out': 'fadeOut 200ms ease-out',
|
|
'scale-in': 'scaleIn 200ms ease-in',
|
|
'scale-out': 'scaleOut 200ms ease-out',
|
|
},
|
|
keyframes: {
|
|
fadeIn: {
|
|
'0%': { opacity: '0' },
|
|
'100%': { opacity: '1' },
|
|
},
|
|
fadeOut: {
|
|
'0%': { opacity: '1' },
|
|
'100%': { opacity: '0' },
|
|
},
|
|
scaleIn: {
|
|
'0%': { transform: 'scale(0.95)', opacity: '0' },
|
|
'100%': { transform: 'scale(1)', opacity: '1' },
|
|
},
|
|
scaleOut: {
|
|
'0%': { transform: 'scale(1)', opacity: '1' },
|
|
'100%': { transform: 'scale(0.95)', opacity: '0' },
|
|
},
|
|
},
|
|
typography: {
|
|
DEFAULT: {
|
|
css: {
|
|
'--tw-prose-body': 'var(--foreground)',
|
|
'--tw-prose-headings': 'var(--foreground)',
|
|
'--tw-prose-lead': 'var(--muted)',
|
|
'--tw-prose-links': 'var(--accent)',
|
|
'--tw-prose-bold': 'var(--foreground)',
|
|
'--tw-prose-counters': 'var(--muted)',
|
|
'--tw-prose-bullets': 'var(--muted)',
|
|
'--tw-prose-hr': 'var(--offbase)',
|
|
'--tw-prose-quotes': 'var(--foreground)',
|
|
'--tw-prose-quote-borders': 'var(--offbase)',
|
|
'--tw-prose-captions': 'var(--muted)',
|
|
'--tw-prose-code': 'var(--foreground)',
|
|
'--tw-prose-pre-code': 'var(--foreground)',
|
|
'--tw-prose-pre-bg': 'var(--base)',
|
|
'--tw-prose-th-borders': 'var(--offbase)',
|
|
'--tw-prose-td-borders': 'var(--offbase)',
|
|
},
|
|
},
|
|
},
|
|
screens: {
|
|
xs: '410px', // custom xs breakpoint
|
|
},
|
|
},
|
|
},
|
|
plugins: [typography],
|
|
} satisfies Config;
|