first commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
import type { Config } from 'tailwindcss';
|
||||
|
||||
const config: Config = {
|
||||
content: [
|
||||
'./app/**/*.{ts,tsx}',
|
||||
'./components/**/*.{ts,tsx}',
|
||||
'./lib/**/*.{ts,tsx}',
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
// Deep space base
|
||||
base: {
|
||||
DEFAULT: '#020510',
|
||||
900: '#020510',
|
||||
800: '#050a1a',
|
||||
700: '#0a1224',
|
||||
600: '#0f1b33',
|
||||
500: '#1a2747',
|
||||
},
|
||||
// Brand accents per spec
|
||||
electric: '#38bdf8', // primary
|
||||
violet: '#818cf8', // secondary
|
||||
magenta: '#e879f9', // AI / LLM highlight
|
||||
emerald: '#34d399', // infra / success
|
||||
cyan: '#22d3ee', // Google Stack
|
||||
// Surface / borders
|
||||
glass: 'rgba(255, 255, 255, 0.03)',
|
||||
hairline: 'rgba(56, 189, 248, 0.12)',
|
||||
},
|
||||
fontFamily: {
|
||||
// Wired in via next/font/local CSS variables in layout.tsx.
|
||||
// Vazirmatn is split Arabic + Latin — list Arabic first so Persian
|
||||
// glyphs win and Latin chars fall through.
|
||||
sans: ['var(--font-vaz-ar)', 'var(--font-vaz-lat)', 'var(--font-syne)', 'system-ui', 'sans-serif'],
|
||||
display: ['var(--font-syne)', 'var(--font-vaz-ar)', 'var(--font-vaz-lat)', 'sans-serif'],
|
||||
fa: ['var(--font-vaz-ar)', 'var(--font-vaz-lat)', 'sans-serif'],
|
||||
en: ['var(--font-syne)', 'sans-serif'],
|
||||
mono: ['var(--font-space-mono)', 'ui-monospace', 'SFMono-Regular', 'monospace'],
|
||||
},
|
||||
backgroundImage: {
|
||||
'grid-faint':
|
||||
'linear-gradient(rgba(56,189,248,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(56,189,248,0.05) 1px, transparent 1px)',
|
||||
'radial-aurora':
|
||||
'radial-gradient(ellipse 80% 50% at 50% -20%, rgba(56,189,248,0.18), transparent 60%), radial-gradient(ellipse 60% 40% at 80% 10%, rgba(232,121,249,0.10), transparent 60%), radial-gradient(ellipse 60% 40% at 10% 30%, rgba(129,140,248,0.10), transparent 60%)',
|
||||
'brand-gradient':
|
||||
'linear-gradient(135deg, #38bdf8 0%, #818cf8 45%, #e879f9 100%)',
|
||||
},
|
||||
backgroundSize: {
|
||||
grid: '64px 64px',
|
||||
},
|
||||
boxShadow: {
|
||||
'glow-electric': '0 0 40px -8px rgba(56,189,248,0.55)',
|
||||
'glow-magenta': '0 0 40px -8px rgba(232,121,249,0.55)',
|
||||
'glow-violet': '0 0 40px -8px rgba(129,140,248,0.55)',
|
||||
'glow-emerald': '0 0 40px -8px rgba(52,211,153,0.55)',
|
||||
'glass-inner': 'inset 0 1px 0 0 rgba(255,255,255,0.06)',
|
||||
},
|
||||
keyframes: {
|
||||
'pulse-dot': {
|
||||
'0%, 100%': { opacity: '1', transform: 'scale(1)' },
|
||||
'50%': { opacity: '0.6', transform: 'scale(1.4)' },
|
||||
},
|
||||
'gradient-pan': {
|
||||
'0%, 100%': { backgroundPosition: '0% 50%' },
|
||||
'50%': { backgroundPosition: '100% 50%' },
|
||||
},
|
||||
'caret-blink': {
|
||||
'0%, 49%': { opacity: '1' },
|
||||
'50%, 100%': { opacity: '0' },
|
||||
},
|
||||
'float-y': {
|
||||
'0%, 100%': { transform: 'translateY(0)' },
|
||||
'50%': { transform: 'translateY(-6px)' },
|
||||
},
|
||||
'flow-dash': {
|
||||
'0%': { strokeDashoffset: '0' },
|
||||
'100%': { strokeDashoffset: '-66' },
|
||||
},
|
||||
},
|
||||
animation: {
|
||||
'pulse-dot': 'pulse-dot 1.8s ease-in-out infinite',
|
||||
'gradient-pan': 'gradient-pan 8s ease-in-out infinite',
|
||||
'caret-blink': 'caret-blink 1s steps(2) infinite',
|
||||
'float-y': 'float-y 4s ease-in-out infinite',
|
||||
'flow-dash': 'flow-dash 1.1s linear infinite',
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
};
|
||||
|
||||
export default config;
|
||||
Reference in New Issue
Block a user