Files
j_kedzierski/DESIGN.md
T

75 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Design System
### Kolor
| Token | Jasny motyw | Ciemny motyw | Użycie |
|---|---|---|---|
| `--bg-color` | `#F7F5F1` (ciepły papier) | `#17140F` | tło strony |
| `--fg-color` | `#1C1B1A` (atrament) | `#F5F1E8` | tekst podstawowy |
| `--card-color` | `#FFFFFF` | `#1F1B14` | karty, panele |
| `--border-color` | `#E2DDD3` | `#332C21` | linie, obramowania |
| `--accent-color` | `#A13D2C` (pieczęć) | `#D4634A` | CTA, linki, akcenty |
| `--accent-hover-color` | `#8A3324` | `#E17B62` | hover na akcencie |
Zasada: **maksymalnie jeden akcent** (pieczęć-czerwień). Żadnych dodatkowych
kolorów „na szybko" (niebieski link, zielony success) bez dopisania do
`DESIGN.md` — to jeden z 4 checków „Your design system" w Impeccable.
- **Wyjątek WhatsApp**: Kolor markowy WhatsApp (`#25D366`) jest używany *wyłącznie* na pływającym przycisku kontaktowym w rogu ekranu, ze względów rozpoznawalności UX. By nie tworzyć „trzeciego” koloru, unikamy używania go na tłach innych niż neutralne (np. w czerwonym FinalCTA przycisk zostaje biały).
### Typografia
| Token | Wartość | Użycie |
|---|---|---|
| `--font-heading` | Fraunces (serif, wariant *opsz* wysoki dla nagłówków display) | H1–H3, cytaty |
| `--font-sans` | Public Sans | body, UI, nawigacja, przyciski |
| Skala | 16px body / 1.6 line-height minimum | patrz `wymagania-projektowe-strony.md` §4 — nie schodzić poniżej |
**Twardy zakaz z katalogu Impeccable:** brak kursywy jako domyślnego stylu
nagłówka display („italic serif display headline" — reguła #1 na liście
anty-slop, patrz sekcja 5). Fraunces ma piękną kursywę i pokusa jest duża —
używać jej WYŁĄCZNIE jako pojedynczego akcentu na jednym słowie w hero (np.
„**po polsku**" pochylone w podtytule), nigdy jako stylu całego H1.
### Kształt i głębia
| Token | Wartość |
|---|---|
| `--radius-button` | 6px (umiarkowane zaokrąglenie — NIE „pill", NIE 20px+ blob) |
| Karty | radius 8–10px, cień delikatny (`box-shadow` 1 warstwa, nie „hairline + wide shadow" — patrz sekcja 5) |
| Obramowania | 1px `--border-color`, nigdy grube kolorowe paski z boku karty |
### Motyw wizualny „dokument urzędowy" (charakter, nie tylko tokeny)
To jest to, co ma odróżnić tę stronę od typowego SaaS-landingu i uzasadnić
prompt „efekty pasujące do biura podatkowego" bez wpadania w kicz:
- **Tekstura papieru**: bardzo subtelny noise/grain na tle sekcji jasnych
(opacity ~2-3%, `mix-blend-mode: multiply` lub SVG `feTurbulence` jako
tło) — sugeruje fakturę papieru, nie plastik. Jeden globalny efekt, nie
per-sekcja.
- **Linie jak w formularzu**: cienkie poziome linie `--border-color` jako
separator sekcji zamiast pełnych kolorowych bloków tła — metafora liniatury
dokumentu podatkowego.
- **Akcent „pieczęci"**: okrągły/owalny kształt w kolorze akcentu, używany
OSZCZĘDNIE — np. jako tło pod floating-stat w hero (już jest w kodzie:
`floatingStat`), jako marker przy cytatach klientów, jako obwódka wokół
liczby „20+" w sekcji Stats. Nie na każdym elemencie.
- **Typografia numeryczna**: liczby (20+, 100%, §4 Nr. 11) w Fraunces, duże,
z lekkim tabular-nums — czytają się jak wpis w rejestrze, nie jak KPI
dashboardu.
- **Zdjęcia**: kolor, nie stockowy błysk korporacyjny — patrz `02-strona-glowna.md`
§Hero i `05-o-nas.md` co do konkretnego kierunku (ciepłe światło, realne
biuro/dokumenty, nie białe tło + uśmiech do kamery w garniturze).
### System motion (spójny, jedna specyfikacja dla całej strony)
| Nazwa wzorca | Efekt | Kiedy używać | Kiedy NIE używać |
|---|---|---|---|
| `reveal-up` | Fade-in + translateY(16–24px), stagger dzieci co ~0.08–0.14s, ease `[0.22,1,0.36,1]` | wejście każdej sekcji przy scrollu (raz, `whileInView`, `viewport={{ once: true }}`) | nie powtarzać animacji przy każdym ponownym scrollu — meczy |
| `parallax-tilt` | Pointer-tracked rotateX/rotateY | WYŁĄCZNIE hero | karty usług, avatary, ikony |
| `count-up` | Liczby liczą się od 0 do docelowej, bez odbicia (`ease-out`, NIE elastic/bounce) | blok Stats na home | gdziekolwiek indziej |
| `line-draw` | Cienka linia „rysuje się" przy wejściu w viewport | separator między sekcjami zamiast twardej krawędzi | pod każdym nagłówkiem z osobna |
| `stamp-in` | Element „pieczęci" pojawia się ze skalą 0.9→1 + rotate -3°→0°, ease-out, BEZ overshoot | floating stat w hero, badge „§4 Nr. 11 StBerG" | przyciski, pola formularza |
| `sticky-progress` | Cienka linia postępu czytania na górze strony | FAQ, Impressum, Datenschutz | strony `Persuade` |