一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
· 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
· 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
· 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
横向流程图每步写清页面/功能/操作/完成判据。
· 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
· 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
· 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。
二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。
三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
584 lines
42 KiB
Markdown
584 lines
42 KiB
Markdown
# System Projektowania Inspirowany Starbucks
|
||
|
||
> Category: E-Commerce i Handel Detaliczny
|
||
> Globalna marka kawiarni. Czterostopniowy system zieleni, ciepłe kremowe tło, przyciski w pełni zaokrąglone.
|
||
|
||
## 1. Temat Wizualny i Atmosfera
|
||
|
||
System projektowania Starbucks to **ciepła, pewna siebie wizytówka sieci detalicznej**, w której zieleń fartuchów sklepowych przenika każdy element. Tło naprzemiennie łączy neutralno-ciepły krem (`#f2f0eb`) z ceramiczną bielą (`#edebe9`) — barwy te nawiązują do prawdziwych materiałów użytych w kawiarniach: papierowych serwetek, ścian, wykończeń drewnianych — podczas gdy sygnaturowa **Starbucks Green** (`#006241`) zakotwicza markę w strefach hero, CTA oraz w doświadczeniu Rewards. Zieleń występuje w czterech kalibrowanych odcieniach (Starbucks, Accent, House, Uplift), z których każdy jest przypisany do konkretnej roli powierzchni, a złoto (`#cba258`) pojawia się wyłącznie w ceremoniach statusu Rewards — nie jako ogólny kolor akcentowy.
|
||
|
||
Typografia niesie większość głosu marki. Firmowy krój **SoDoSans** (własność Starbucks) pokrywa niemal każdą powierzchnię z ciasnym odstępem `-0.16px` między literami — czyta się pewnie i przyjaźnie, bez surowości typową dla magazynów modowych. Co ciekawe: strona Rewards przełącza się na ciepły szeryfowy krój (`"Lander Tall", "Iowan Old Style", Georgia`) dla wybranych nagłówków, subtelnie nawiązując do nostalgicznego klimatu tablicy kredowej w kawiarni. Natomiast strony Careers stosują odręczny skrypt (`"Kalam", "Comic Sans MS", cursive`) do personalizowanych dotknięć z nazwą na kubku. Trzy kroje, trzy konteksty — system jest zdyscyplinowany co do tego, kiedy każdy z nich się pojawia.
|
||
|
||
Powierzchnie oddychają dzięki zaokrąglonej geometrii. Każdy przycisk to pełna pigułka o promieniu 50px. Karty mają zaokrąglone prostokąty 12px. Pływający przycisk CTA „Frap" — okrągły przycisk zamówienia o średnicy 56px w kolorze Green Accent (`#00754A`) — to sygnaturowy element głębi produktu: unosi się w prawym dolnym rogu z warstwową stertą cieni (`0 0 6px rgba(0,0,0,0.24)` bazowy + `0 8px 12px rgba(0,0,0,0.14)` otoczenie) i kurczy się przez `scale(0.95)` po naciśnięciu. Poza tym cienie są powściągliwe — cienie kart pozostają przy szeptanej przezroczystości `0.14/0.24`, a globalna nawigacja ma spokojny trójwarstwowy stos cieni. Cały system sprawia wrażenie czystego szyldowania kawiarni: czytelny, ciepły i nigdy nie krzyczący.
|
||
|
||
**Kluczowe Cechy Charakterystyczne:**
|
||
- Czterostopniowy system zieleni marki (Starbucks / Accent / House / Uplift), z których każdy jest przypisany do odrębnej roli powierzchni — nie ma jednej „zieleni marki"
|
||
- Złoto zarezerwowane wyłącznie dla momentów statusu Rewards; nigdy jako ogólny kolor akcentowy
|
||
- Ciepło-neutralne tło (`#f2f0eb` / `#edebe9`) zamiast zimnej bieli — nawiązanie do materiałów kawiarni
|
||
- Firmowy krój (SoDoSans) z ciasnym odstępem `-0.16px` jako powszechny głos
|
||
- Kontekstowe zmiany kroju: szeryfowy (Lander Tall) dla Rewards, skrypt (Kalam) dla nazw na kubkach w Careers
|
||
- Przyciski w pełni zaokrąglone (`50px` promień) wszędzie, `scale(0.95)` przy aktywnym naciśnięciu jako sygnaturowa mikrointerakcja
|
||
- Pływający okrągły przycisk CTA „Frap" (`56px`, wypełnienie Green Accent, warstwowy stos cieni) — sygnaturowy element elewacji produktu
|
||
- Powierzchnie kart podarunkowych zaprojektowane jako **sfotografowany fizyczny produkt** — każda karta to oddzielna ilustrowana fotografia, a nie wygenerowana grafika
|
||
- Promień kart 12px + szeptanie miękkich cieni utrzymują karty płasko z subtelnym uniesieniem
|
||
- Skala odstępów oparta na rem zakotwiczona przy 1.6rem (~16px) = `--space-3`, sięgając do 6.4rem (~64px)
|
||
|
||
**Rytm strony w blokach kolorystycznych:** Kremowe hero → Białe sekcje treści → Ciemnozielony pas (`#1E3932`) z białym tekstem → Kremowa strefa użytkowa → Ciemnozielona stopka (`#1E3932`) ze złotym/białym tekstem — espresso-ciemne obramowanie wokół jasnego korpusu.
|
||
|
||
## 2. Paleta Barw i Role
|
||
|
||
**Analizowane strony źródłowe:** strona główna, rewards, karty podarunkowe, szczegóły produktu (Pink Energy Drink), wartości odżywcze produktu (Cold Brew).
|
||
|
||
### Podstawowe
|
||
|
||
- **Starbucks Green** (`#006241`): Historyczna zieleń marki. Używana w nagłówkach h1, głównych nagłówkach sekcji na stronie Rewards i jako główny sygnał marki wszędzie tam, gdzie potrzebny jest jeden dominujący kolor.
|
||
- **Green Accent** (`#00754A`): Nieco jaśniejsza, bardziej świetlista zieleń. Główny kolor wypełnionych CTA („Explore our afternoon menu", „See the spring menu") oraz wypełnienie pływającego okrągłego przycisku Frap.
|
||
- **House Green** (`#1E3932`): Głęboka, niemal czarna zieleń marki. Powierzchnia stopki, tła pasów funkcji, ciemne powierzchnie statusu reward oraz pas hero z nagłówkiem „Free coffee is just the beginning" na stronie Rewards.
|
||
- **Green Uplift** (`#2b5148`): Pomocnicza ciemnozielona zieleń, stosowana oszczędnie w dekoracyjnych akcentach i momentach ciemnego gradientu.
|
||
- **Green Light** (`#d4e9e2`): Blado-miętowe wypełnienie stosowane do odcieni stanu poprawnego formularza i jasnych zielonych powierzchni użytkowych.
|
||
|
||
### Wtórne i Akcentowe
|
||
|
||
- **Gold** (`#cba258`): Zarezerwowane niemal wyłącznie dla ceremoniałów statusu Rewards — komunikaty poziomu Gold, odznaki partnerów (SkyMiles, Bonvoy) i akcenty premium. Nigdy ogólny kolor marki.
|
||
- **Gold Light** (`#dfc49d`): Delikatniejsze złoto do wypełnień tła w sekcjach złotego poziomu.
|
||
- **Gold Lightest** (`#faf6ee`): Kremowo-złote wypełnienie powierzchni strony pod sekcjami partnerskich na stronie Rewards — łączy złoty akcent z powrotem z ciepłym neutralnym systemem.
|
||
|
||
### Powierzchnie i Tła
|
||
|
||
- **White** (`#ffffff`): Główna powierzchnia kart i modali. Również wypełnienie kart na kafelkach kart podarunkowych.
|
||
- **Neutral Cool** (`#f9f9f9`): Subtelna chłodna szara powierzchnia używana w menu rozwijanych (menu „Account"), opakowaniach kart formularzy i spokojnych kontenerach użytkowych.
|
||
- **Neutral Warm** (`#f2f0eb`): Ciepły krem jako **główne tło strony** dla stref użytkowych Rewards i pasów hero.
|
||
- **Ceramic** (`#edebe9`): Nieco cieplejszy/ciemniejszy krem do separatorów stref, delikatnych wypełnień sekcji i pasa partnerskiego Rewards.
|
||
- **Black** (`#000000`): Głęboki tusz zarezerwowany dla ciemnego pasa CTA na szczycie strony („Join now") i przycisków logowania w górnej nawigacji o wysokim kontraście.
|
||
|
||
### Neutralne i Tekst
|
||
|
||
- **Text Black** (`rgba(0, 0, 0, 0.87)`): Główny kolor nagłówków i tekstu podstawowego na jasnych powierzchniach. Nie czysta czerń — czarny o przezroczystości 87%, który czyta się cieplej.
|
||
- **Text Black Soft** (`rgba(0, 0, 0, 0.58)`): Tekst pomocniczy/metadane na jasnych powierzchniach.
|
||
- **Text White** (`rgba(255, 255, 255, 1)`): Główny kolor nagłówków/tekstu na ciemnozielonych powierzchniach.
|
||
- **Text White Soft** (`rgba(255, 255, 255, 0.70)`): Tekst pomocniczy na ciemnozielonych powierzchniach — opisy linków w stopce, tekst podpisów.
|
||
- **Rewards Green** (`#33433d`): Dedykowana stonowana łupkowo-zielona używana wyłącznie w blokach tekstowych strony Rewards — nieco „zakurzona" barwa do czytania, w odróżnieniu od Text Black, sygnalizująca „powierzchnię reward" bez korzystania z pełnej Starbucks Green.
|
||
|
||
### Semantyczne i Akcentowe
|
||
|
||
- **Red** (`#c82014`): Stan błędu i destrukcyjny (nieprawidłowy formularz, działania destrukcyjne).
|
||
- **Yellow** (`#fbbc05`): Stan ostrzeżenia, historyczny akcent marki.
|
||
- **Green Light** (`#d4e9e2` przy 33% przezroczystości = `hsl(160 32% 87% / 33%)`): Odcień tła dla pola formularza w stanie poprawnym.
|
||
- **Red Tint** (`hsl(4 82% 43% / 5%)`): Odcień pola nieprawidłowego w formularzach.
|
||
|
||
### Drabiny Alpha Czerń/Biel
|
||
|
||
Dwie równoległe półprzezroczyste skale do nakładek i tekstu pomocniczego:
|
||
- `rgba(0,0,0,0.06)` do `rgba(0,0,0,0.90)` krokami co 10% — dla ciemnych nakładek na jasnych powierzchniach
|
||
- `rgba(255,255,255,0.10)` do `rgba(255,255,255,0.90)` krokami co 10% — dla jasnych nakładek na ciemnych powierzchniach
|
||
|
||
### System Gradientów
|
||
|
||
Nie zaobserwowano strukturalnych tokenów gradientu. Hierarchia powierzchni jest przez cały czas oparta na jednolitych blokach kolorystycznych — system opiera się na swojej pięciopoziomowej palecie powierzchni krem/zieleń, a nie na gradientach.
|
||
|
||
## 3. Zasady Typografii
|
||
|
||
### Rodzina Czcionek
|
||
|
||
- **Podstawowa:** `SoDoSans, "Helvetica Neue", Helvetica, Arial, sans-serif` — firmowy krój korporacyjny Starbucks, stosowany niemal na każdej powierzchni
|
||
- **Zastępcza podczas ładowania:** `"Helvetica Neue", Helvetica, Arial, sans-serif` — to, co użytkownicy widzą przed załadowaniem SoDoSans
|
||
- **Szeryfowa Rewards:** `"Lander Tall", "Iowan Old Style", Georgia, serif` — używana w wybranych nagłówkach strony Rewards dla ciepłego, redakcyjnego odczucia
|
||
- **Skrypt Careers:** `"Kalam", "Comic Sans MS", cursive` — używana wyłącznie do dekoracyjnych „nazw na kubku" na stronach Careers, nawiązując do ręcznie pisanych imion na kubkach Starbucks
|
||
|
||
Brak jawnie aktywowanych zestawów stylów OpenType w `:root`.
|
||
|
||
### Hierarchia
|
||
|
||
| Rola | Rozmiar | Grubość | Wysokość linii | Odstęp liter | Uwagi |
|
||
|------|---------|---------|----------------|--------------|-------|
|
||
| Display (text-10) | 5.0rem / 80px | 400–600 | 1.2 | -0.16px | Największy display Rewards/hero |
|
||
| Jumbo (text-9) | 3.6rem / 58px | 400–600 | 1.2 | -0.16px | Pomocnicze nagłówki hero |
|
||
| Hero Large (text-8) | 2.8rem / 45px | 400–600 | 1.2–1.5 | -0.16px | Nagłówki sekcji landing |
|
||
| H1 | 24px | 600 | 36px | -0.16px | Główny nagłówek w kolorze Starbucks Green |
|
||
| H2 | 24px | 400 | 36px | -0.16px | Tytuł sekcji zwykłą grubością w Text Black |
|
||
| Body Large | 19px | 400–600 | 33.25px (~1.75) | -0.16px | Tekst wprowadzający hero, treść pasa funkcji |
|
||
| Body (text-3) | 1.6rem / 16px | 400 | 1.5 (24px) | -0.01em | Domyślny tekst podstawowy |
|
||
| Small (text-2) | 1.4rem / ~14px | 400–600 | 1.5 | -0.01em | Etykieta przycisku, metadane, etykiety formularzy |
|
||
| Micro (text-1) | 1.3rem / ~13px | 400 | 1.5 | -0.01em | Aktywny stan pływającej etykiety, mikrotekst podpisów |
|
||
| Button Label | 14–16px | 400–600 | 1.2 | -0.01em | Wszystkie etykiety przycisków pigułkowych |
|
||
|
||
**Tokeny odstępu liter:**
|
||
- `letterSpacingNormal`: `-0.01em` (domyślny — ciasny, charakterystyczny)
|
||
- `letterSpacingLoose`: `0.1em` (podkreślone wielkie litery)
|
||
- `letterSpacingLooser`: `0.15em` (etykiety w stylu wersalikowym, ekstremalne podkreślenie)
|
||
|
||
**Tokeny wysokości linii:**
|
||
- `lineHeightNormal`: `1.5` (tekst podstawowy)
|
||
- `lineHeightCompact`: `1.2` (display/przyciski)
|
||
|
||
### Zasady
|
||
|
||
- **Ciasne ujemne interlinie (`-0.01em`)** są stosowane niemal powszechnie — cały produkt czyta się nieco skompresowanie, co nadaje SoDoSans pewną obecność bez poczucia ściśnięcia.
|
||
- **Zmiany grubości niosą hierarchię, nie zmiany rozmiaru.** H1 i H2 mają ten sam rozmiar 24px/36px; oddzielają je tylko grubość (600 vs 400) i kolor (Starbucks Green vs Text Black).
|
||
- **Tokeny rozmiaru używają rem, zakotwiczone przy `1rem = 10px`** na tej stronie (za pomocą sztuczki `font-size: 62.5%` na elemencie root). Zatem `1.6rem` = 16px, `2.4rem` = 24px itd. Skala jest semantyczna (textSize-1 do textSize-10), a nie oparta na arbitralnych wartościach pikselowych.
|
||
- **Kontekstowe zamiany kroju** — szeryfowy w Rewards, skrypt w Careers — są celowe i zlokalizowane. Nigdy nie należy mieszać ich z podstawowym bezszeryfowym w tej samej powierzchni.
|
||
- **Tekst podstawowy nigdy nie jest czystą czernią** — ma wartość `rgba(0,0,0,0.87)`, aby dopasować się do temperatury ciepło-neutralnego tła.
|
||
|
||
### Uwaga o Zastępczych Czcionkach
|
||
|
||
SoDoSans jest wyłączną własnością Starbucks (licencja od House Industries, niedostępna publicznie). Rozsądne open-source'owe zamienniki:
|
||
- **Inter** (Google Fonts) — podobne humanistyczne proporcje geometryczne, szeroki zakres grubości
|
||
- **Manrope** — nieco bardziej zaokrąglony, podobne pewne odczucie
|
||
- **Nunito Sans** — cieplejszy, dobry jako zamiennik dla marki w stylu „kawiarni"
|
||
|
||
Przy zastępowaniu należy sprawdzić, czy ciasny tracking `-0.01em` / `-0.16px` nadal dobrze się czyta; niektóre open-source'owe czcionki wymagają zamiast tego `-0.005em`.
|
||
|
||
Lander Tall (szeryfowy Rewards) jest niestandardowy — open-source'owe zamienniki: **Iowan Old Style** (już w zestawie zastępczym), **Lora** lub **Source Serif Pro**. Kalam (skrypt Careers) jest dostępny bezpośrednio na Google Fonts.
|
||
|
||
## 4. Stylizacja Komponentów
|
||
|
||
### Przyciski
|
||
|
||
**1. Wypełniony Podstawowy — „Explore our afternoon menu / Sign up for free"**
|
||
- Tło: `#00754A` (Green Accent)
|
||
- Tekst: `#ffffff`
|
||
- Obramowanie: `1px solid #00754A`
|
||
- Promień: `50px` (pełna pigułka)
|
||
- Padding: `7px 16px`
|
||
- Czcionka: SoDoSans, 16px, grubość 600, odstęp liter `-0.01em`
|
||
- Stan aktywny: `transform: scale(0.95)` przez `--buttonActiveScale`
|
||
- Przejście: `all 0.2s ease`
|
||
|
||
**2. Obrysowany Podstawowy — „Give them a try / Start an order"**
|
||
- Tło: transparent
|
||
- Tekst: `#00754A` (Green Accent)
|
||
- Obramowanie: `1px solid #00754A`
|
||
- Ten sam promień/padding/aktywny/przejście co Wypełniony Podstawowy
|
||
|
||
**3. Czarny Wypełniony — „Join now"**
|
||
- Tło: `#000000`
|
||
- Tekst: `#ffffff`
|
||
- Obramowanie: `1px solid #000000`
|
||
- Promień: `50px`, Padding: `7px 16px`
|
||
- Czcionka: 14px, grubość 600
|
||
- Używany na pasku dołączania u góry strony i podobnych momentach konwersji
|
||
|
||
**4. Ciemny Obrysowany — „Sign in"**
|
||
- Tło: transparent
|
||
- Tekst: `rgba(0, 0, 0, 0.87)` (Text Black)
|
||
- Obramowanie: `1px solid rgba(0, 0, 0, 0.87)`
|
||
- Promień: `50px`, Padding: `7px 16px`
|
||
- Czcionka: 14px, grubość 600
|
||
|
||
**5. Zielony na Zielonym Odwrócony — „See the spring menu"**
|
||
- Tło: `#ffffff`
|
||
- Tekst: `#00754A`
|
||
- Obramowanie: `1px solid #ffffff`
|
||
- Używany gdy powierzchnia za przyciskiem to ciemnozielony pas House Green — biały przycisk z zielonym tekstem zamiast wypełnionej zielonej pigułki na zielonym tle
|
||
|
||
**6. Obrysowany na Ciemnym — „Learn more / Order now"**
|
||
- Tło: transparent
|
||
- Tekst: `#ffffff`
|
||
- Obramowanie: `1px solid #ffffff`
|
||
- Używany na ciemnozielonych pasach funkcji dla akcji drugorzędnej sparowanej z białym wypełnionym CTA
|
||
|
||
**7. Zgoda (ciemnozielony wariant)**
|
||
- Tło: `rgb(0, 130, 72)` (specyficzny wariant zieleni używany w module zgody na cookies)
|
||
- Tekst: `#ffffff`
|
||
- Brak obramowania, promień `50px`, padding `7px 16px`, 14px / grubość 400
|
||
- Nieco jaśniejszy niż Green Accent — zarezerwowany dla akcji Zgody w banerze zgody
|
||
|
||
**8. Frap — Pływający Okrągły Przycisk Zamówienia**
|
||
- Tło: `#00754A` (Green Accent)
|
||
- Ikona: `#ffffff`
|
||
- Rozmiar: `5.6rem / 56px` (standardowy), `4rem / 40px` (wariant mini)
|
||
- Promień: `50%` (pełne koło)
|
||
- Stały dolny prawy, offset dotykowy `-0.8rem` dla dodatkowego komfortu klikania
|
||
- Stos cieni: bazowy `0 0 6px rgba(0,0,0,0.24)` + otoczeniowy `0 8px 12px rgba(0,0,0,0.14)`
|
||
- Stan aktywny: cień otoczeniowy zanika do `0 8px 12px rgba(0,0,0,0)`
|
||
- To sygnaturowy element elewacji produktu — unosi się nad każdą przewijaną powierzchnią
|
||
|
||
**9. Pełnoszerokościowa Zakładka Opinii — „Provide feedback"**
|
||
- Tło: `#00754A`
|
||
- Tekst: `#ffffff`
|
||
- Promień: `12px 12px 0px 0px` (zaokrąglony tylko od góry)
|
||
- Padding: `8px 16px`
|
||
- Czcionka: 14px, grubość 400
|
||
- Pozycjonowany stały dolny-prawy-wewnętrzny, przylegający do krawędzi okna
|
||
|
||
### Karty i Kontenery
|
||
|
||
**Karta Treści (domyślna)**
|
||
- Tło: `#ffffff` (`--cardBackgroundColor`)
|
||
- Promień: `12px` (`--cardBorderRadius`)
|
||
- Cień: `0px 0px .5px 0px rgba(0,0,0,0.14), 0px 1px 1px 0px rgba(0,0,0,0.24)` (`--cardBoxShadow`)
|
||
- Używana dla: kart funkcji, kafelków pozycji menu, paneli statusu reward
|
||
|
||
**Kafelek Karty Podarunkowej**
|
||
- Tło: ilustrowana fotografia wypełnia kartę (bez jednolitego tła)
|
||
- Promień: podobny do kart (`~12px`, nieco mniejszy na narożnikach)
|
||
- Cień: lżejszy niż domyślna karta — są traktowane jak fizyczne karty ułożone na płótnie
|
||
- Oznaczone kategorią nad siatką kart (Spring, Thank You, Birthday, Celebration, Mother's Day, Appreciation, Encouragement, Milestones, Anytime)
|
||
|
||
**Karty Statusu Rewards (sygnatura strony Rewards)**
|
||
- Trzykolumnowa siatka: Bronze / Gold / Silver — każdy ciemnozielony panel (`#1E3932`) z:
|
||
- Kolorowym pierścieniem nagłówka gradientu/koloru
|
||
- Numerowaną odznaką „Level"
|
||
- Tytułem statusu dużą grubością SoDoSans 600
|
||
- Listą gwiazdek/korzyści w białym/półprzezroczystym białym tekście
|
||
- Podpisem postępu „As you earn more stars…" na dole
|
||
|
||
**Karta Partnerska (Rewards)**
|
||
- Tło: `#faf6ee` (Gold Lightest) ciepłokremowa powierzchnia
|
||
- Treść: logo partnerów („SkyMiles", „Bonvoy") wyśrodkowane, z opisowym tekstem poniżej
|
||
- Promień i cień zgodne ze specyfikacją domyślnej karty
|
||
|
||
**Menu Rozwijane (menu Account, górna nawigacja)**
|
||
- Tło: `#f9f9f9` (Neutral Cool)
|
||
- Pozycje menu przy `24px / grubość 400` w Text Black
|
||
- Brak obramowania — tylko zmiana powierzchni tła wobec białej nawigacji
|
||
|
||
**Modal**
|
||
- Padding: `2.4rem` (`--modalPadding`)
|
||
- Padding górny: `8.8rem` (`--modalTopPadding`) — pozostawia miejsce na przycisk zamknięcia / nagłówek
|
||
- Łączny pionowy padding: `11.2rem`
|
||
- Promień dziedziczy ze specyfikacji karty (`12px`)
|
||
|
||
### Inputy i Formularze
|
||
|
||
**Input z Pływającą Etykietą**
|
||
- Etykieta unosi się nad obramowaniem inputu po skupieniu/wypełnieniu
|
||
- Rozmiar czcionki etykiety na desktopie: `1.9rem` domyślny, animuje się do `1.4rem` gdy aktywny
|
||
- Rozmiar czcionki etykiety na urządzeniach mobilnych: `1.6rem` domyślny, animuje się do `1.3rem` gdy aktywny
|
||
- Poziomy offset etykiety: `12px` od lewej
|
||
- Tłumaczenie aktywnej etykiety: w górę do `-12px` z tłumaczeniem Y `-50%`
|
||
- Padding pola: `12px`
|
||
- Poziomy padding formularza: `1.6rem`
|
||
- Walidacja: poprawne pole otrzymuje odcień `rgba(green-light, 0.33)`; nieprawidłowe pole otrzymuje odcień `rgba(red, 0.05)`
|
||
- Przejście: `0.3s option-label-marker-expansion cubic-bezier(0.32, 2.32, 0.61, 0.27)` przy zaznaczonym inpucie
|
||
|
||
**Ikona Opcji (checkbox/radio)**
|
||
- Padding: `3px` wewnętrzny
|
||
- Używa powyższej animacji cubic-bezier dla zaznaczonego inputu (krzywa z lekkim „sprężystym" przebiegnięciem 2.32)
|
||
|
||
### Nawigacja
|
||
|
||
**Globalna Nawigacja (górny pasek)**
|
||
- Stała pozycja z progresywnymi wysokościami: `64px` xs → `72px` mobile → `83px` tablet → `99px` desktop
|
||
- Stos cieni: `0 1px 3px rgba(0,0,0,0.1), 0 2px 2px rgba(0,0,0,0.06), 0 0 2px rgba(0,0,0,0.07)` — trójwarstwowe miękkie uniesienie
|
||
- Lewa: logotyp Starbucks, przesunięty o `99px` (md) / `131px` (lg) od lewej krawędzi
|
||
- Podstawowe linki inline w SoDoSans grubość 400–600: Menu · Rewards · Gift Cards
|
||
- Prawa: Link „Find a store" + „Sign in" (obrysowany) + „Join now" (czarny wypełniony)
|
||
|
||
**Subnavigacja (drugi pasek, np. wewnętrzna Rewards)**
|
||
- Wysokość: `53px` (globalna subnavigacja) / `48px` (wewnętrzna subnavigacja)
|
||
- Zazwyczaj pozioma grupa zakładek poniżej globalnej nawigacji
|
||
|
||
**Nawigacja Mobilna**
|
||
- Zwija się do szuflady hamburgerowej poniżej punktu przełamania tablet
|
||
- Pływający przycisk Frap pozostaje w prawym dolnym rogu niezależnie od stanu nawigacji
|
||
|
||
### Obróbka Obrazów
|
||
|
||
- **Fotografie hero**: Zdjęcia produktów (napoje w przezroczystym szkle z kolorowymi tłami — koralowe, szałwiowe, ciepły bursztyn) zajmują ~40vw układu podzielonego hero; tekst zajmuje pozostałe 60vw (`--headerCrateProportion: 40vw` / `--contentCrateProportion: 60vw`)
|
||
- **Ilustracje kart podarunkowych**: Każda karta to oddzielna ilustrowana fotografia (malowany styl, rysunek ręczny, ciepła paleta barw). Nigdy generyczne grafiki.
|
||
- **Fotografie ceremonii Rewards**: Fotografie ekranów aplikacji Starbucks Rewards trzymanych w dłoni, kompozycje ukośne — fotografia produktu w kontekście.
|
||
- **Miniatury menu**: Kwadratowe lub 4:3 fotografie produktów na czystych białych/kremowych tłach, lekki miękki cień wokół szkła.
|
||
- **Pojawianie się obrazów**: Przejście `opacity 0.3s ease-in` przy ładowaniu obrazu (`--imageFadeTransition`).
|
||
|
||
### Pas Funkcji (ciemnozielony pas hero)
|
||
|
||
Pełnoszerokościowy pas `#1E3932` (House Green) z:
|
||
- Lewa: biały nagłówek + podtytuł + rząd CTA
|
||
- Prawa: fotografia produktu lub ilustracja
|
||
- Proporcja podziału ~40/60 lub 50/50 w zależności od sekcji
|
||
- Biały tekst przez cały czas z `rgba(255,255,255,0.70)` dla tekstu pomocniczego
|
||
- CTA zgodne z parą Zielony na Zielonym Odwrócony (biały wypełniony) + Obrysowany na Ciemnym (biały kontur)
|
||
|
||
### Expander / Akordeon
|
||
|
||
- Czas trwania: `300ms` (`--expanderDuration`)
|
||
- Krzywa czasowa: `cubic-bezier(0.25, 0.46, 0.45, 0.94)` — mierzone ease-out
|
||
- Używany w sekcjach FAQ na stronach Rewards i karty podarunkowej
|
||
|
||
### Moduł Zgody na Cookies
|
||
|
||
Ciemnozielona karta modalu u góry strony z przyciskami „Agree" (zielony wypełniony) i „Manage preferences" (obrysowany). Pojawia się przy pierwszej wizycie; możliwe do odrzucenia.
|
||
|
||
### Komponenty Szczegółów Produktu (sygnaturowy klaster PDP)
|
||
|
||
Powtarzający się klaster komponentów używany na stronach produktów menu (np. `/menu/product/40498/iced` dla szczegółów napoju, `/menu/product/.../nutrition` dla wartości odżywczych). Rozszerzają one inwentarz komponentów bez zmiany tokenów.
|
||
|
||
**Selektor Rozmiarów**
|
||
- Poziomy rząd 4 przycisków-ikon kubków (Tall / Grande / Venti / Trenta)
|
||
- Każda pozycja: sylwetka kubka u góry, nazwa rozmiaru poniżej (16/700 w kolorze Starbucks Green), podpis w uncjach płynnych (13/400 w Text Black Soft)
|
||
- Stan aktywny: zielony okrągły kontur (`2px solid #00754A`) wokół wybranej ikony kubka
|
||
- Nieaktywny: brak konturu, ta sama typografia
|
||
- Pełnoszerokościowy rząd, równe odstępy
|
||
- Promień kontenera: `12px` lub płaski; pojedyncze ikony mają kształt `50%` okrągły
|
||
- Padding: `16px 24px` wewnętrzny
|
||
|
||
**Wybór Dodatku/Mleka (obrysowany prostokąt)**
|
||
- Tło: `#ffffff`
|
||
- Obramowanie: `1px solid #d6dbde` (Input Border)
|
||
- Promień: `4px`
|
||
- Pełnoszerokościowy w swojej kolumnie
|
||
- Pływająca etykieta nad górnym obramowaniem: „Add-ins" / „Milk" / „Add-ins" — 13/700 w Text Black, wielkie litery, odstęp liter `0.325px`
|
||
- Wartość wyświetlona wyśrodkowana (np. „Ice", „Coconut", „Strawberry Fruit Inclusions scoop"): 16/400 Text Black
|
||
- Ikona chevron-down po prawej stronie w Text Black Soft
|
||
- Skupienie: obramowanie zmienia się na Green Accent (`#00754A`)
|
||
|
||
**Numeryczny Stepper**
|
||
- Osadzony wewnątrz wiersza Dodatku gdy wymagana jest ilość (np. porcja Strawberry Fruit Inclusions)
|
||
- Przycisk `−` + liczba + przycisk `+`, wszystkie inline po prawej stronie etykiety
|
||
- Przyciski: okrągłe `32×32px` z obramowaniem `1px solid #d6dbde`, neutralna szara ikona
|
||
- Liczba: 16/700 Text Black wyśrodkowana
|
||
|
||
**Przycisk Dostosowania**
|
||
- Tło: `#ffffff`
|
||
- Tekst: `#00754A` (Green Accent)
|
||
- Obramowanie: `1.5px solid #00754A`
|
||
- Promień: `50px` (pełna pigułka)
|
||
- Padding: `14px 40px` (hojnie większy niż domyślne pigułki — to drugorzędna akcja podstawowa)
|
||
- Etykieta: „Customize" z ikoną złotej iskierki ✨ wstawioną po lewej
|
||
- Używany dla: wejścia w przepływ dostosowywania napoju po wyborze rozmiaru/mleka
|
||
|
||
**Przycisk Dodania do Zamówienia (PDP)**
|
||
- Tło: `#00754A` (Green Accent)
|
||
- Tekst: `#ffffff`
|
||
- Promień: `50px`
|
||
- Padding: `14px 32px`
|
||
- Przypięty w prawym górnym rogu karty produktu i/lub wyrównany do prawej w paśmie dostępności w sklepie
|
||
- Takie samo zachowanie aktywne scale(0.95) jak inne podstawowe CTA
|
||
|
||
**Pigułka Kosztu Rewards — „200★ item"**
|
||
- Tło: transparent
|
||
- Obramowanie: `1px solid #cba258` (Gold)
|
||
- Tekst: `#cba258` (Gold)
|
||
- Promień: `50px` (pełna pigułka)
|
||
- Padding: `4px 12px`
|
||
- Treść: „200★ item" gdzie `★` to mała wypełniona gwiazdka — wskazuje wymaganą liczbę Stars Rewards do realizacji tego produktu
|
||
- Czcionka: Proxima Nova 13/700 z odstępem liter `0.5px`
|
||
- Używana tylko dla produktów realizowalnych z Rewards
|
||
|
||
**Pas Opisu Produktu**
|
||
- Pełnoszerokościowy ciemnozielony pas (`#1E3932` House Green)
|
||
- Zawiera od góry do dołu:
|
||
1. Pigułka Kosztu Rewards (złota) jeśli dotyczy
|
||
2. Opis produktu w białym tekście podstawowym (16/400/1.5)
|
||
3. Podsumowanie wartości odżywczych inline („140 calories, 25g sugar, 2.5g fat") z tooltip ikony informacji — 14/700 biały
|
||
4. Przycisk pigułkowy obrysowany biały na zielonym „Full nutrition & ingredients list"
|
||
- Padding: `32px` pionowy
|
||
- Pojawia się pod głównym pasem nagłówka produktu
|
||
|
||
**Tabela Składników/Wartości Odżywczych**
|
||
- Dwukolumnowy układ na stronie Odżywienia
|
||
- Lewa kolumna: nagłówek „Ingredients" + lista lub tekst zastępczy „Not available for this item" z wyjaśniającym akapitem w Text Black Soft 14/400
|
||
- Prawa kolumna: nagłówek „Nutrition" + wiersze etykieta/wartość
|
||
- Każdy wiersz: etykieta składnika odżywczego (Proxima Nova 14/400) po lewej, wartość (np. „140 calories", „25g", „205 mg**") po prawej, oddzielone linią `1px solid #e7e7e7` poniżej
|
||
- Przypis dla znaczników kofeiny/gwiazdki w 13/400 Text Black Soft na dole
|
||
- Wzorzec wielokrotnego użytku dla tabel wartości odżywczych zgodnych z regulacjami
|
||
|
||
**Selektor Dostępności w Sklepie**
|
||
- Pojawia się na ciemnozielonym paśmie funkcji nad wierszem opcji rozmiarów
|
||
- Pełnoszerokościowy zaokrąglony prostokąt z przezroczysto-białym wnętrzem
|
||
- Tekst: „For item availability, choose a store" w kolorze białym, 14/400
|
||
- Prawa strona: chevron-down + ikona SVG torby zakupów w białym konturze
|
||
- Promień: `4px`
|
||
- Wysokość: ~48px
|
||
|
||
**Ścieżka Nawigacyjna PDP**
|
||
- Ścieżka „Menu / Refreshers / Pink Energy Drink" nad tytułem produktu
|
||
- Separator: `/` ukośnik w kolorze Text Black Soft
|
||
- Bieżąca strona jest nieklikalna, poprzednie strony mają podkreślone zielono-akcentowe linki
|
||
- Czcionka: 14/400 Proxima Nova
|
||
- Pojawia się na wszystkich stronach PDP
|
||
|
||
**Link Wstecz z Chevronem (podstrony PDP z odżywczością/szczegółami)**
|
||
- Link tekstowy „← Back" nad nagłówkami sekcji na stronie odżywczości
|
||
- Tekst w Green Accent (`#00754A`) 14/700 Proxima Nova
|
||
- Lewy chevron `<` w tym samym kolorze zielonym
|
||
- Alternatywa dla pełnej ścieżki nawigacyjnej na głębokich podstronach
|
||
|
||
## 5. Zasady Układu
|
||
|
||
### System Odstępów
|
||
|
||
Semantyczna skala oparta na rem (zakotwiczona `1rem = 10px`):
|
||
|
||
| Token | Rem | Piksele | Typowe zastosowanie |
|
||
|-------|-----|---------|---------------------|
|
||
| `--space-1` | `0.4rem` | 4px | Najciasniejszy padding inline |
|
||
| `--space-2` | `0.8rem` | 8px | Mały odstęp, pionowy padding przycisku |
|
||
| `--space-3` | `1.6rem` | 16px | Domyślny — padding karty, zewnętrzny rynsztok xs |
|
||
| `--space-4` | `2.4rem` | 24px | Wewnętrzne odstępy sekcji, zewnętrzny rynsztok md |
|
||
| `--space-5` | `3.2rem` | 32px | Główne odstępy między sekcjami |
|
||
| `--space-6` | `4rem` | 40px | Duże odstępy, zewnętrzny rynsztok lg, krata nagłówka |
|
||
| `--space-7` | `4.8rem` | 48px | Odstępy między sekcjami |
|
||
| `--space-8` | `5.6rem` | 56px | Bardzo duże oddychanie — wysokość Frap |
|
||
| `--space-9` | `6.4rem` | 64px | Najszerszy padding sekcji |
|
||
|
||
**Tokeny rynsztoka:**
|
||
- `--outerGutter: 1.6rem` (16px, domyślny / mobilny)
|
||
- `--outerGutterMedium: 2.4rem` (24px, tablet)
|
||
- `--outerGutterLarge: 4.0rem` (40px, desktop)
|
||
|
||
**Universalna stała rytmu:** `1.6rem` (16px) pojawia się na każdej stronie jako domyślny zewnętrzny rynsztok, bazowy padding karty i rozmiar tekstu podstawowego 3 — najczęstsza jednostka odstępów systemu.
|
||
|
||
### Siatka i Kontener
|
||
|
||
- Skala szerokości kolumn: `--columnWidthSmall: 343px` / `Medium: 500px` / `Large: 720px` / `XLarge: 1440px`
|
||
- Siatka kart podarunkowych używa responsywnej siatki 3-5-up kafelków `~343px`
|
||
- Sekcja statusu Rewards: 3-up ciemnozielone panele przy punktach przełamania `lg+`
|
||
- Hero: asymetryczny podział 40% (obraz) / 60% (treść) przez `--headerCrateProportion` / `--contentCrateProportion`
|
||
|
||
### Filozofia Białej Przestrzeni
|
||
|
||
Biała przestrzeń niesie poczucie „dużej ilości miejsca w kawiarni". Padding sekcji jest hojny (40–64px). Bloki treści są oddzielone białą przestrzenią zamiast separatorami. Kremowe płótno (`#f2f0eb`) samo w sobie jest wizualnym oddechem między białymi kartami a zielonymi pasami funkcji.
|
||
|
||
### Skala Promieni Obramowania
|
||
|
||
| Wartość | Zastosowanie |
|
||
|---------|--------------|
|
||
| `12px` | Karty, modale, kafelki pozycji menu (`--cardBorderRadius`) |
|
||
| `12px 12px 0 0` | Pełnoszerokościowa zakładka opinii (zaokrąglona tylko od góry) |
|
||
| `50px` | Wszystkie przyciski — pełny promień pigułki (`--buttonBorderRadius`) |
|
||
| `50%` | Okrągłe ikony, pływający przycisk Frap, miniatury awatarów |
|
||
| Specjalny | `3.3333%/5.298%` eliptyczny dla makiet Starbucks-Visa-Card (`--svcRoundedCorners`) |
|
||
|
||
## 6. Głębia i Elewacja
|
||
|
||
| Poziom | Obróbka | Zastosowanie |
|
||
|--------|---------|--------------|
|
||
| Karta | `0 0 0.5px rgba(0,0,0,0.14), 0 1px 1px rgba(0,0,0,0.24)` | Domyślne karty treści — szeptany podwójny cień |
|
||
| Globalna Nawigacja | `0 1px 3px rgba(0,0,0,0.1), 0 2px 2px rgba(0,0,0,0.06), 0 0 2px rgba(0,0,0,0.07)` | Trójwarstwowe miękkie uniesienie na stałym górnym pasku |
|
||
| Frap Bazowy | `0 0 6px rgba(0,0,0,0.24)` | Bazowa aureola wokół pływającego okrągłego CTA |
|
||
| Frap Otoczeniowy | `0 8px 12px rgba(0,0,0,0.14)` | Skierowany otoczeniowy w stosie — unosi Frap ku przodowi |
|
||
| Karta Podarunkowa | Lekki cień na ilustrowanej fotografii | Efekt fizycznej karty dla kafelków podarunkowych |
|
||
| Starbucks Card (SVC) | `drop-shadow(0 4px 1px rgba(0,0,0,0.11)) drop-shadow(0 0 2px rgba(0,0,0,0.24))` | Warstwowe cienie SVG dla wizualizacji Starbucks Card |
|
||
|
||
**Filozofia cieni:** Szeptane i warstwowe na solidnych powierzchniach — system nigdy nie sięga po pojedynczy ciężki cień rzutowany. Zamiast tego układa w stos 2–3 cienie z małą przezroczystością i różnymi offsetami, symulując rzeczywiste oświetlenie otoczeniowe + bezpośrednie. Przycisk Frap jest najwyżej uniesionym elementem na każdej stronie.
|
||
|
||
### Dekoracyjna Głębia
|
||
|
||
- **Brak systemu gradientów** — powierzchnie są jednolitymi blokami kolorów
|
||
- **Kolorowe bloki pasm** niosą postrzeganą głębię (ciemnozielone pasma są odbierane jako „zagłębione strefy funkcji" między kremowymi/białymi sekcjami korpusu)
|
||
- **Cienie filtrów SVG** na wizualizacjach Starbucks Card dodają odrobinę trójwymiarowej fizyczności bez cienia pudełkowego
|
||
|
||
## 7. Zalecenia i Przestrogi
|
||
|
||
### Zalecane
|
||
- Używaj Neutral Warm (`#f2f0eb`) lub Ceramic (`#edebe9`) jako tła strony zamiast czystej bieli — ciepły krem to sygnatura
|
||
- Przypisuj poziomy zieleni do przeznaczonych im ról powierzchniowych — Starbucks Green dla nagłówków, Green Accent dla CTA, House Green dla głębokich pasm, Uplift dla dekoracyjnych akcentów
|
||
- Utrzymuj ciasny tracking przy `-0.01em` / `-0.16px` na SoDoSans przez cały system
|
||
- Używaj pełnego promienia pigułki 50px na każdym przycisku bez wyjątku
|
||
- Stosuj `transform: scale(0.95)` jako powszechny stan aktywny przycisku
|
||
- Rezerwuj Gold wyłącznie dla momentów statusu Rewards
|
||
- Używaj SoDoSans niemal wszędzie; przełączaj się na szeryfowy Lander Tall tylko dla redakcyjnych nagłówków Rewards; rezerwuj skrypt Kalam dla momentów „nazwy na kubku" w Careers
|
||
- Układaj w stos 2–3 cienie z małą przezroczystością zamiast jednego ciężkiego cienia rzutowanego dla elewacji
|
||
- Używaj okrągłego CTA Frap jako stałego pływającego wejścia do zamówień na każdej powierzchni zakupowej
|
||
- Pozwól oddychać kremowemu płótnu między kartami treści — używaj białej przestrzeni, nie separatorów
|
||
|
||
### Niezalecane
|
||
- Nie używaj czystej bieli jako tła strony — temperatura ciepłego kremu jest fundamentalna
|
||
- Nie wybieraj „jednej zieleni marki" — czterozielony system jest zamierzony; używanie tylko `#006241` wszędzie spłaszcza markę
|
||
- Nie używaj Gold jako ogólnego akcentu — to sygnał Rewards
|
||
- Nie zaokrąglaj narożników przycisków kwadratowo — pigułka 50px jest powszechna
|
||
- Nie wprowadzaj gradientowych wypełnień — system jest oparty na jednolitych blokach kolorów przez cały czas
|
||
- Nie różnicuj h1 i h2 rozmiarem — hierarchia wynika z grubości + koloru (600 Starbucks Green vs 400 Text Black)
|
||
- Nie używaj czystej czerni do tekstu podstawowego — `rgba(0,0,0,0.87)` pasuje do ciepłego płótna
|
||
- Nie pomijaj aktywnego feedbacku `scale(0.95)` na przyciskach — to sygnaturowa mikrointerakcja
|
||
- Nie układaj pojedynczych ciężkich cieni; zawsze warstwuj 2–3 cienie z małą przezroczystością
|
||
- Nie wprowadzaj szeryfów ani skryptów do głównego przepływu zakupów — należą odpowiednio do kontekstów Rewards i Careers
|
||
|
||
## 8. Zachowanie Responsywne
|
||
|
||
### Punkty Przełamania
|
||
|
||
Wnioskowane z tokenów szerokości komponentów i progresywnych wysokości nawigacji:
|
||
|
||
| Nazwa | Szerokość | Kluczowe zmiany |
|
||
|-------|-----------|-----------------|
|
||
| xs | < 480px | Globalna nawigacja 64px; menu hamburgerowe; układy jednokolumnowe; przyciski pigułkowe pełnej szerokości |
|
||
| Mobile | 480–767px | Globalna nawigacja 72px; siatka kart podarunkowych 2-up; padding kart się zacieśnia |
|
||
| Tablet | 768–1023px | Globalna nawigacja 83px; siatka kart podarunkowych 3-up; zaczyna pojawiać się podział hero |
|
||
| Desktop | 1024–1439px | Globalna nawigacja 99px; siatka kart podarunkowych 4-up; pełne asymetryczne hero 40/60 |
|
||
| XLarge | 1440px+ | Treść ograniczona przez `--columnWidthXLarge`; siatka kart podarunkowych 5-up; dodatkowy kremowy margines |
|
||
|
||
### Cele Dotykowe
|
||
|
||
- Przyciski pigułkowe z paddingiem `7px 16px` mierzą ~32px wysokości — poniżej minimalnego 44px WCAG AAA dla powierzchni tylko dotykowych. Na urządzeniach mobilnych padding przycisku może być wizualnie rozszerzony do spełnienia minimum.
|
||
- Pływający okrągły przycisk Frap przy `56px` jest zdecydowanie powyżej minimum.
|
||
- Frap używa `--frapTouchOffset: calc(-1 * .8rem)` do rozszerzenia obszaru klikania o 8px poza krawędź wizualną.
|
||
- Inputy z pływającą etykietą zwiększają rozmiar czcionki etykiety na urządzeniach mobilnych (baza 1.6rem vs 1.9rem desktop) — łatwiejsze do kliknięcia i czytania z dystansu.
|
||
|
||
### Strategia Zwijania
|
||
|
||
- **Wysokość globalnej nawigacji skaluje się progresywnie**: 64 → 72 → 83 → 99px między punktami przełamania, nie jest to pojedyncza wartość
|
||
- **Podział hero się zwija**: asymetryczny podział 40/60 → ułożone (obraz na górze, treść poniżej) na urządzeniach mobilnych
|
||
- **Siatka kart podarunkowych**: 5-up → 4-up → 3-up → 2-up → 1-up między punktami przełamania z dostosowanymi szerokościami kart
|
||
- **Pasma funkcji**: pozostają pełnoszerokościowe, ale tekst + obrazy układają się pionowo na urządzeniach mobilnych
|
||
- **Zewnętrzny rynsztok skaluje się**: 16px → 24px → 40px wraz z rozszerzaniem okna
|
||
- **3-kolumnowe panele statusu Rewards**: zwijają się do pojedynczej kolumny na urządzeniach mobilnych
|
||
|
||
### Zachowanie Obrazów
|
||
|
||
- Fotografia produktów hero przycina się ciaśniej pionowo na urządzeniach mobilnych; treść staje się wizualną kotwicą
|
||
- Ilustracje kart podarunkowych zachowują proporcje; siatka kart przepływa
|
||
- Przejście zanikania `opacity 0.3s ease-in` przy ładowaniu obrazu (zapobiega nagłemu pojawieniu się)
|
||
- Fotografia aplikacji Rewards trzymanej w dłoni skaluje się proporcjonalnie; nigdy się nie rozciąga
|
||
|
||
## 9. Przewodnik po Promptach dla Agentów
|
||
|
||
### Szybki Przewodnik po Kolorach
|
||
|
||
- Podstawowy CTA: „Green Accent (`#00754A`)"
|
||
- Tekst podstawowego CTA: „White (`#ffffff`)"
|
||
- Nagłówek marki: „Starbucks Green (`#006241`)"
|
||
- Pas funkcji / stopka: „House Green (`#1E3932`)"
|
||
- Tło strony: „Neutral Warm (`#f2f0eb`)"
|
||
- Tło karty: „White (`#ffffff`)"
|
||
- Tekst nagłówka na jasnym tle: „Text Black (`rgba(0,0,0,0.87)`)"
|
||
- Tekst podstawowy na jasnym tle: „Text Black Soft (`rgba(0,0,0,0.58)`)"
|
||
- Tekst podstawowy na ciemnozielonym tle: „Text White Soft (`rgba(255,255,255,0.70)`)"
|
||
- Akcent Rewards: „Gold (`#cba258`)"
|
||
- Tekst Rewards: „Rewards Green (`#33433d`)"
|
||
- Destrukcyjny: „Red (`#c82014`)"
|
||
|
||
### Przykładowe Prompty dla Komponentów
|
||
|
||
1. „Utwórz podstawowy przycisk pigułkowy CTA Starbucks z tłem Green Accent (`#00754A`), białym tekstem 'Explore our afternoon menu', czcionką SoDoSans 16px grubość 600 z odstępem liter `-0.01em`, `50px` border-radius (pełna pigułka), padding `7px 16px`. Zastosuj `transform: scale(0.95)` jako stan aktywny z przejściem `0.2s ease`."
|
||
|
||
2. „Zaprojektuj kartę treści z tłem White (`#ffffff`) przy `12px` border-radius, warstwowym cieniem `0 0 0.5px rgba(0,0,0,0.14), 0 1px 1px rgba(0,0,0,0.24)`. Wypełnij treść paddingiem `16–24px` (`--space-3` do `--space-4`). Umieść na kremowym płótnie Neutral Warm (`#f2f0eb`) z odstępem `16px` od sąsiednich elementów."
|
||
|
||
3. „Zbuduj pływający okrągły przycisk zamówienia Frap — średnica `56px`, wypełnienie Green Accent (`#00754A`), biała ikona torby zakupów wyśrodkowana. Warstwowy cień: `0 0 6px rgba(0,0,0,0.24)` + `0 8px 12px rgba(0,0,0,0.14)`. Stała pozycja dolna-prawa z offsetem dotykowym `-0.8rem`. Stan aktywny zapada otoczeniowy cień do `0 8px 12px rgba(0,0,0,0)` z `scale(0.95)`."
|
||
|
||
4. „Zbuduj ciemnozielony pas funkcji — sekcja pełnoszerokościowa z tłem House Green (`#1E3932`). Lewa kolumna: biały SoDoSans h2 24px grubość 600, następnie akapit Text White Soft (`rgba(255,255,255,0.70)`) i rząd CTA z dwoma przyciskami (białe wypełnienie z tekstem Green Accent dla podstawowego, Obrysowany na Ciemnym biały kontur dla drugorzędnego). Prawa kolumna: fotografia produktu. Proporcja podziału 40/60, ułożone pionowo poniżej `768px`."
|
||
|
||
5. „Utwórz kartę statusu Rewards — panel House Green (`#1E3932`) z `12px` border-radius, kolorowym gradientowym górnym paskiem (poziomy Bronze/Silver/Gold). Tytuł w SoDoSans 24px grubość 600 w kolorze białym. Lista korzyści jako białe punkty z podpisami pomocniczymi `rgba(255,255,255,0.70)`. Tekst postępu na dole w Text White Soft. Ułóż 3 panele w siatce przy `lg+`, pojedyncza kolumna na urządzeniach mobilnych."
|
||
|
||
6. „Zaprojektuj kafelek karty podarunkowej — promień karty odpowiada `12px`, wypełnij ilustrowaną fotografią (malowany akwarelą styl ręcznie rysowany) jako całą powierzchnię. Subtelny cień sprawia, że wygląda jak fizyczna karta na kremowym płótnie. Zgrupuj pod etykietą kategorii ('Spring', 'Thank You', 'Birthday') w SoDoSans 24px grubość 400 nad siatką."
|
||
|
||
7. „Utwórz nagłówek szczegółów produktu Starbucks — pas House Green (`#1E3932`) ze ścieżką nawigacyjną 'Menu / Refreshers / Pink Energy Drink' w 14/400 białym nad tytułem produktu w SoDoSans 32/700 wielkie litery biały. Fotografia produktu wyśrodkowana poniżej tytułu. Pod zdjęciem: rząd selektora rozmiaru 4-up — każdy przycisk-ikona kubka pokazuje pionową sylwetkę kubka, nazwę rozmiaru ('Tall' / 'Grande' / 'Venti' / 'Trenta') w 16/700 biały i uncje płynne w 13/400 Text White Soft. Wybrany rozmiar otacza ikonę kubka okrągłym pierścieniem `2px solid #00754A`."
|
||
|
||
8. „Zbuduj przepływ dostosowywania Starbucks — pod selektorem rozmiaru, 3 ułożone obrysowane prostokątne wiersze inputów (białe tło, obramowanie `1px solid #d6dbde`, promień `4px`). Każdy ma pływającą etykietę ('Add-ins', 'Milk', 'Add-ins') nad górnym obramowaniem w 13/700 Text Black wielkie litery. Wartość wyśrodkowana (np. 'Ice', 'Coconut'). Prawa strona: chevron-down w Text Black Soft. Dla wiersza porcji, osadź numeryczny stepper (`−` `1` `+` z okrągłymi `32px` obrysowanymi przyciskami). Pod wszystkimi trzema polami: obrysowana zielona pigułka 'Customize' z ikoną złotej iskierki, promień `50px`, padding `14px 40px`. Sparuj z wypełnioną pigułką Green Accent 'Add to Order' w tym samym rzędzie."
|
||
|
||
9. „Zaprojektuj pas opisu produktu Starbucks — pełnoszerokościowy House Green (`#1E3932`) pod nagłówkiem produktu. Na górze: złoto-obrysowana pigułka Kosztu Rewards '200★ item' (promień `50px`, padding `4px 12px`, złote obramowanie `#cba258` i tekst). Poniżej: opis produktu w białym 16/400/1.5. Podsumowanie wartości odżywczych inline w białym 14/700 ('140 calories, 25g sugar, 2.5g fat') z tooltipem ikony informacji. Obrysowana-biała-na-zielonym pigułka 'Full nutrition & ingredients list'. Padding pionowy 32px."
|
||
|
||
10. „Utwórz tabelę wartości odżywczych Starbucks — dwukolumnowy układ wewnątrz białej karty. Lewa kolumna: nagłówek 'Ingredients' (24/400 Text Black), następnie lista składników lub akapit zastępczy 'Not available for this item' w 14/400 Text Black Soft. Prawa kolumna: nagłówek 'Nutrition', następnie wiersze etykieta/wartość (nazwa składnika odżywczego po lewej, wartość po prawej) oddzielone liniami `1px solid #e7e7e7`. Typografia: etykiety w 14/400 Text Black, wartości w 14/700 Text Black wyrównane do prawej. Znaczniki przypisów z gwiazdką w 13/400 Text Black Soft na dole."
|
||
|
||
### Przewodnik po Iteracjach
|
||
|
||
Podczas uściślania istniejących ekranów wygenerowanych przy użyciu tego systemu projektowania:
|
||
1. Skup się na JEDNYM komponencie na raz
|
||
2. Odwołuj się do konkretnych nazw kolorów i kodów hex z tego dokumentu
|
||
3. Używaj opisów w naturalnym języku („ciepłe kremowe płótno", „czterostopniowy system zieleni") obok dokładnych wartości
|
||
4. Zachowaj pigułkę 50px + stan aktywny `scale(0.95)` powszechnie
|
||
5. Sprawdź, czy odcienie zieleni są przypisane do właściwych ról (Green Accent dla CTA, Starbucks Green dla nagłówka, House Green dla pasm)
|
||
6. Nie wprowadzaj gradientów — system jest oparty na jednolitych blokach kolorów
|
||
7. Utrzymuj tracking SoDoSans przy `-0.01em` / `-0.16px` przez cały projekt
|
||
|
||
### Znane Braki
|
||
|
||
- SoDoSans to firmowy krój, niedostępny na Google Fonts — przy implementacji publicznej użyj Inter lub Manrope jako zamiennika i udokumentuj zamianę
|
||
- Lander Tall (szeryfowy Rewards) jest również niestandardowy — zamień na Iowan Old Style, Lora lub Source Serif Pro
|
||
- Szczegółowe czasy animacji dla poszczególnych komponentów poza kilkoma udokumentowanymi (`--duration: 0.4s`, `--iconTransition: all ease-out 0.2s`, `--expanderDuration: 300ms`) nie są wychwycone dla każdej powierzchni interaktywnej
|
||
- Pełna stylizacja stanu błędu formularza (grubość czerwonego obramowania, rozmieszczenie ikon) widoczna w tokenie odcienia, ale nie wyczerpująco wyodrębniona
|
||
- Specyficzne komponenty stron Careers (karta nazwy na kubku, siatka radiowa wyszukiwania) są przywoływane w nazwach tokenów, ale nie są objęte tym wyodrębnieniem
|
||
- Starbucks Visa Card / Starbucks Card (SVC) — szczegółowe specyfikacje makiet są sygnalizowane przez tokeny `--svcRoundedCorners` i `--svcShadowFilter`, ale nie są w pełni udokumentowane
|