Pixel-identical port of the React marketing site: Tailwind config, HSL theme tokens, fonts (Plus Jakarta Sans / Space Grotesk) and custom utilities copied verbatim; shadcn-vue (reka-ui) components; all 33 routes ported. Served at www.gigafibre.ca/next (noindex) behind nginx, ahead of replacing the React site. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
168 lines
3.9 KiB
TypeScript
168 lines
3.9 KiB
TypeScript
import type { Config } from "tailwindcss";
|
|
import animate from "tailwindcss-animate";
|
|
|
|
// Copié VERBATIM du site React (apps/website) pour un rendu pixel-identique.
|
|
export default {
|
|
darkMode: ["class"],
|
|
content: [
|
|
"./index.html",
|
|
"./src/**/*.{ts,tsx,vue}",
|
|
],
|
|
prefix: "",
|
|
theme: {
|
|
container: {
|
|
center: true,
|
|
padding: '2rem',
|
|
screens: {
|
|
'2xl': '1400px'
|
|
}
|
|
},
|
|
extend: {
|
|
fontFamily: {
|
|
sans: [
|
|
'Plus Jakarta Sans',
|
|
'system-ui',
|
|
'sans-serif'
|
|
],
|
|
display: [
|
|
'Space Grotesk',
|
|
'system-ui',
|
|
'sans-serif'
|
|
]
|
|
},
|
|
colors: {
|
|
'targo-green': {
|
|
DEFAULT: '#00C853',
|
|
light: '#69F0AE',
|
|
dark: '#005026'
|
|
},
|
|
'targo-gray': '#64748B',
|
|
'targo-dark': '#1C1E26',
|
|
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))'
|
|
},
|
|
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'
|
|
}
|
|
},
|
|
'pulse-glow': {
|
|
'0%, 100%': {
|
|
opacity: '0.5',
|
|
transform: 'scale(1)'
|
|
},
|
|
'50%': {
|
|
opacity: '1',
|
|
transform: 'scale(1.05)'
|
|
}
|
|
},
|
|
'slide-up': {
|
|
from: {
|
|
transform: 'translateY(20px)',
|
|
opacity: '0'
|
|
},
|
|
to: {
|
|
transform: 'translateY(0)',
|
|
opacity: '1'
|
|
}
|
|
},
|
|
'fade-in': {
|
|
from: {
|
|
opacity: '0'
|
|
},
|
|
to: {
|
|
opacity: '1'
|
|
}
|
|
},
|
|
'accordion-down': {
|
|
from: {
|
|
height: '0'
|
|
},
|
|
to: {
|
|
height: 'var(--reka-accordion-content-height)'
|
|
}
|
|
},
|
|
'accordion-up': {
|
|
from: {
|
|
height: 'var(--reka-accordion-content-height)'
|
|
},
|
|
to: {
|
|
height: '0'
|
|
}
|
|
}
|
|
},
|
|
animation: {
|
|
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
'pulse-glow': 'pulse-glow 3s ease-in-out infinite',
|
|
'slide-up': 'slide-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards',
|
|
'fade-in': 'fade-in 0.5s ease-out forwards',
|
|
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
'accordion-up': 'accordion-up 0.2s ease-out'
|
|
},
|
|
backgroundImage: {
|
|
'glass-gradient': 'linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))'
|
|
}
|
|
}
|
|
},
|
|
plugins: [animate],
|
|
} satisfies Config;
|