feat: Add Section layout component and refactor page.tsx with updated styling and new Button variants.

This commit is contained in:
1elle1
2026-01-30 16:05:22 +01:00
parent f1cb4ef2cc
commit ef983e0b79
6 changed files with 219 additions and 175 deletions

View File

@@ -10,89 +10,137 @@
@theme {
/* Colors */
--color-primary: #000000;
--color-secondary: #FFFFFF;
--color-accent: #d6d6d6;
--color-neutral: #F5F5F5;
--color-background: #FFFFFF;
--color-foreground: #000000;
--color-muted: #B0B0B0;
--color-muted-foreground: #ffffff;
--color-border: #E0E0E0;
--color-success: #4CAF50;
--color-warning: #FF9800;
--color-error: #F44336;
--color-primary: var(--color-primary);
--color-secondary: var(--color-secondary);
--color-accent: var(--color-accent);
--color-neutral: var(--color-neutral);
--color-background: var(--color-background);
--color-foreground: var(--color-foreground);
--color-muted: var(--color-muted);
--color-muted-foreground: var(--color-muted-foreground);
--color-border: var(--color-border);
--color-success: var(--color-success);
--color-warning: var(--color-warning);
--color-error: var(--color-error);
/* Fonts */
--font-heading: 'Inter', sans-serif;
--font-body: 'Inter', sans-serif;
--font-heading: var(--font-heading);
--font-body: var(--font-body);
/* Typography Scale override Tailwind defaults to match design tokens */
--text-xl: 1.5rem;
--text-xl--line-height: 2rem;
--text-2xl: 1.75rem;
--text-2xl--line-height: 2.25rem;
--text-3xl: 2rem;
--text-3xl--line-height: 2.5rem;
--text-4xl: 2.5rem;
--text-4xl--line-height: 2.75rem;
--text-5xl: 3rem;
--text-5xl--line-height: 1.1;
--text-6xl: 3.75rem;
--text-6xl--line-height: 1.1;
/* Typography Scale */
--text-xs: var(--text-xs);
--text-xs--line-height: var(--text-xs-line-height);
--text-sm: var(--text-sm);
--text-sm--line-height: var(--text-sm-line-height);
--text-base: var(--text-base);
--text-base--line-height: var(--text-base-line-height);
--text-lg: var(--text-lg);
--text-lg--line-height: var(--text-lg-line-height);
--text-xl: var(--text-xl);
--text-xl--line-height: var(--text-xl-line-height);
--text-2xl: var(--text-2xl);
--text-2xl--line-height: var(--text-2xl-line-height);
--text-3xl: var(--text-3xl);
--text-3xl--line-height: var(--text-3xl-line-height);
--text-4xl: var(--text-4xl);
--text-4xl--line-height: var(--text-4xl-line-height);
--text-5xl: var(--text-5xl);
--text-5xl--line-height: var(--text-5xl-line-height);
--text-6xl: var(--text-6xl);
--text-6xl--line-height: var(--text-6xl-line-height);
/* Spacing */
--spacing-container: var(--spacing-container);
--spacing-container-padding: var(--spacing-container-padding);
}
/* ── Font Override (connect next/font to CSS vars) ──── */
/* --font-inter is injected by next/font/google on <html> */
/* ── Base Layer ────────────────────────────────────── */
html {
--font-heading: var(--font-inter, 'Inter', sans-serif);
--font-body: var(--font-inter, 'Inter', sans-serif);
}
@layer base {
/* ── Base Resets ───────────────────────────────────── */
*,
*::before,
*::after {
box-sizing: border-box;
border-color: var(--color-border);
}
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
font-family: var(--font-body);
font-weight: var(--font-body-weight);
color: var(--color-foreground);
background-color: var(--color-background);
line-height: var(--text-base-line-height);
font-size: var(--text-base);
}
body {
font-family: var(--font-body);
font-weight: var(--font-body-weight);
color: var(--color-foreground);
background-color: var(--color-background);
line-height: var(--text-base-line-height);
font-size: var(--text-base);
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-heading);
font-weight: var(--font-heading-weight);
color: var(--color-primary);
line-height: 1.2;
margin-bottom: 0.5em;
/* reasonable default */
}
/* ── Headings ─────────────────────────────────────── */
h1 {
font-size: var(--text-4xl);
letter-spacing: -0.025em;
}
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-heading);
font-weight: var(--font-heading-weight);
}
h2 {
font-size: var(--text-3xl);
letter-spacing: -0.02em;
}
/* ── Links ───────────────────────────────────────── */
h3 {
font-size: var(--text-2xl);
letter-spacing: -0.015em;
}
a {
color: inherit;
text-decoration: none;
}
h4 {
font-size: var(--text-xl);
letter-spacing: -0.01em;
}
/* ── Images ──────────────────────────────────────── */
h5 {
font-size: var(--text-lg);
}
img, video, svg {
display: block;
max-width: 100%;
height: auto;
h6 {
font-size: var(--text-base);
}
p {
margin-bottom: 1em;
max-width: 65ch;
/* readability */
}
a {
color: inherit;
text-decoration: none;
transition: opacity 0.2s;
}
img,
video,
svg {
display: block;
max-width: 100%;
height: auto;
}
}
/* ── Focus ───────────────────────────────────────── */
@@ -107,16 +155,4 @@ img, video, svg {
::selection {
background-color: var(--color-primary);
color: var(--color-background);
}
/* ── Reduced Motion ─────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
}