feat: complete NutriScan redesign
This commit is contained in:
1 parent
c1fe4af997
commit
f71cd167b3
163 files changed
+30802
-14169
No files matched your search
+136
-78
@@ -8,84 +8,142 @@ const config: Config = {
|
||||
"./app/**/*.{js,ts,jsx,tsx,mdx}",
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
fontFamily: {
|
||||
display: [
|
||||
'Poppins',
|
||||
'sans-serif'
|
||||
]
|
||||
},
|
||||
colors: {
|
||||
background: 'hsl(var(--background))',
|
||||
foreground: 'hsl(var(--foreground))',
|
||||
card: {
|
||||
DEFAULT: 'hsl(var(--card))',
|
||||
foreground: 'hsl(var(--card-foreground))'
|
||||
},
|
||||
popover: {
|
||||
DEFAULT: 'hsl(var(--popover))',
|
||||
foreground: 'hsl(var(--popover-foreground))'
|
||||
},
|
||||
primary: {
|
||||
DEFAULT: 'hsl(var(--primary))',
|
||||
foreground: 'hsl(var(--primary-foreground))'
|
||||
},
|
||||
secondary: {
|
||||
DEFAULT: 'hsl(var(--secondary))',
|
||||
foreground: 'hsl(var(--secondary-foreground))'
|
||||
},
|
||||
muted: {
|
||||
DEFAULT: 'hsl(var(--muted))',
|
||||
foreground: 'hsl(var(--muted-foreground))'
|
||||
},
|
||||
accent: {
|
||||
DEFAULT: 'hsl(var(--accent))',
|
||||
foreground: 'hsl(var(--accent-foreground))'
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: 'hsl(var(--destructive))',
|
||||
foreground: 'hsl(var(--destructive-foreground))'
|
||||
},
|
||||
border: 'hsl(var(--border))',
|
||||
input: 'hsl(var(--input))',
|
||||
ring: 'hsl(var(--ring))',
|
||||
chart: {
|
||||
'1': 'hsl(var(--chart-1))',
|
||||
'2': 'hsl(var(--chart-2))',
|
||||
'3': 'hsl(var(--chart-3))',
|
||||
'4': 'hsl(var(--chart-4))',
|
||||
'5': 'hsl(var(--chart-5))'
|
||||
}
|
||||
},
|
||||
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'
|
||||
}
|
||||
}
|
||||
},
|
||||
animation: {
|
||||
'accordion-down': 'accordion-down 0.2s ease-out',
|
||||
'accordion-up': 'accordion-up 0.2s ease-out'
|
||||
}
|
||||
}
|
||||
},
|
||||
extend: {
|
||||
fontFamily: {
|
||||
display: ["var(--font-display)", "Georgia", "serif"],
|
||||
sans: ["var(--font-inter)", "system-ui", "sans-serif"],
|
||||
mono: ["'JetBrains Mono'", "'Fira Code'", "monospace"],
|
||||
},
|
||||
colors: {
|
||||
// Design System: Warm Neutral palette + single accent green
|
||||
warm: {
|
||||
50: "#faf8f5",
|
||||
100: "#f4f0e8",
|
||||
200: "#e8e0d0",
|
||||
300: "#d4c8b0",
|
||||
400: "#b8a88a",
|
||||
500: "#9a8870",
|
||||
600: "#7c6a54",
|
||||
700: "#5e4e3c",
|
||||
800: "#3e3228",
|
||||
900: "#1e1810",
|
||||
950: "#0e0c08",
|
||||
},
|
||||
// Single accent: editorial green
|
||||
accent: {
|
||||
DEFAULT: "oklch(52% 0.11 155)",
|
||||
light: "oklch(72% 0.10 155)",
|
||||
dark: "oklch(38% 0.10 155)",
|
||||
muted: "oklch(92% 0.04 155)",
|
||||
"muted-dark": "oklch(22% 0.06 155)",
|
||||
},
|
||||
// Semantic aliases → CSS vars
|
||||
background: "hsl(var(--background))",
|
||||
foreground: "hsl(var(--foreground))",
|
||||
card: {
|
||||
DEFAULT: "hsl(var(--card))",
|
||||
foreground: "hsl(var(--card-foreground))",
|
||||
},
|
||||
popover: {
|
||||
DEFAULT: "hsl(var(--popover))",
|
||||
foreground: "hsl(var(--popover-foreground))",
|
||||
},
|
||||
primary: {
|
||||
DEFAULT: "hsl(var(--primary))",
|
||||
foreground: "hsl(var(--primary-foreground))",
|
||||
},
|
||||
secondary: {
|
||||
DEFAULT: "hsl(var(--secondary))",
|
||||
foreground: "hsl(var(--secondary-foreground))",
|
||||
},
|
||||
muted: {
|
||||
DEFAULT: "hsl(var(--muted))",
|
||||
foreground: "hsl(var(--muted-foreground))",
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: "hsl(var(--destructive))",
|
||||
foreground: "hsl(var(--destructive-foreground))",
|
||||
},
|
||||
border: "hsl(var(--border))",
|
||||
input: "hsl(var(--input))",
|
||||
ring: "hsl(var(--ring))",
|
||||
chart: {
|
||||
"1": "hsl(var(--chart-1))",
|
||||
"2": "hsl(var(--chart-2))",
|
||||
"3": "hsl(var(--chart-3))",
|
||||
"4": "hsl(var(--chart-4))",
|
||||
"5": "hsl(var(--chart-5))",
|
||||
},
|
||||
},
|
||||
borderRadius: {
|
||||
lg: "var(--radius)",
|
||||
md: "calc(var(--radius) - 2px)",
|
||||
sm: "calc(var(--radius) - 4px)",
|
||||
},
|
||||
spacing: {
|
||||
"18": "4.5rem",
|
||||
"22": "5.5rem",
|
||||
"30": "7.5rem",
|
||||
"section": "7rem",
|
||||
},
|
||||
maxWidth: {
|
||||
"prose-wide": "75ch",
|
||||
"editorial": "1120px",
|
||||
},
|
||||
fontSize: {
|
||||
// Fluid editorial scale
|
||||
"display-xl": ["clamp(3rem, 8vw, 7rem)", { lineHeight: "0.88", letterSpacing: "-0.03em" }],
|
||||
"display-lg": ["clamp(2.25rem, 5vw, 4.5rem)", { lineHeight: "0.92", letterSpacing: "-0.025em" }],
|
||||
"display-md": ["clamp(1.75rem, 3.5vw, 3rem)", { lineHeight: "1", letterSpacing: "-0.02em" }],
|
||||
"display-sm": ["clamp(1.375rem, 2.5vw, 2rem)", { lineHeight: "1.1", letterSpacing: "-0.015em" }],
|
||||
"label": ["0.6875rem", { lineHeight: "1", letterSpacing: "0.12em" }],
|
||||
"label-lg": ["0.75rem", { lineHeight: "1", letterSpacing: "0.1em" }],
|
||||
},
|
||||
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" },
|
||||
},
|
||||
"fade-up": {
|
||||
from: { opacity: "0", transform: "translateY(1.5rem)" },
|
||||
to: { opacity: "1", transform: "translateY(0)" },
|
||||
},
|
||||
"fade-in": {
|
||||
from: { opacity: "0" },
|
||||
to: { opacity: "1" },
|
||||
},
|
||||
"stagger-in": {
|
||||
from: { opacity: "0", transform: "translateY(0.75rem)" },
|
||||
to: { opacity: "1", transform: "translateY(0)" },
|
||||
},
|
||||
"line-grow": {
|
||||
from: { transform: "scaleX(0)", transformOrigin: "left" },
|
||||
to: { transform: "scaleX(1)", transformOrigin: "left" },
|
||||
},
|
||||
"score-reveal": {
|
||||
from: { transform: "scale(0.6)", opacity: "0" },
|
||||
to: { transform: "scale(1)", opacity: "1" },
|
||||
},
|
||||
},
|
||||
animation: {
|
||||
"accordion-down": "accordion-down 0.2s ease-out",
|
||||
"accordion-up": "accordion-up 0.2s ease-out",
|
||||
"fade-up": "fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards",
|
||||
"fade-in": "fade-in 0.5s ease forwards",
|
||||
"stagger-in": "stagger-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards",
|
||||
"line-grow": "line-grow 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards",
|
||||
"score-reveal": "score-reveal 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards",
|
||||
},
|
||||
transitionTimingFunction: {
|
||||
"editorial": "cubic-bezier(0.16, 1, 0.3, 1)",
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [require("tailwindcss-animate")],
|
||||
};
|
||||
|
||||
export default config;
|
||||
Reference in new issue
Block a user