一、④段整套同步(用户选候选 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
38 KiB
Markdown
584 lines
38 KiB
Markdown
# Design System Inspired by Starbucks
|
||
|
||
> Category: E-Commerce & Retail
|
||
> Merek ritel kopi global. Sistem hijau empat tingkat, kanvas krem hangat, tombol full-pill.
|
||
|
||
## 1. Visual Theme & Atmosphere
|
||
|
||
Sistem desain Starbucks adalah **flagship ritel yang hangat dan percaya diri** dengan warna hijau celemek toko yang menyelimuti setiap permukaan. Kanvasnya bergantian antara krem netral-hangat (`#f2f0eb`) dan putih keramik (`#edebe9`) — warna yang merujuk pada material toko sesungguhnya: serbet kertas, dinding kafe, dan finishing kayu — sementara **Starbucks Green** (`#006241`) menjadi jangkar momen merek pada hero band, CTA, dan pengalaman Rewards. Hijau hadir dalam empat nuansa terkalibrasi (Starbucks, Accent, House, Uplift) yang masing-masing dipetakan ke peran permukaan tertentu, dan emas (`#cba258`) hanya muncul di sekitar upacara status Rewards — bukan sebagai aksen umum.
|
||
|
||
Tipografi membawa sebagian besar suara merek. Typeface proprietary **SoDoSans** (kustom untuk Starbucks) hadir di hampir setiap permukaan dengan letter-spacing ketat `-0.16px` — tampilannya percaya diri dan ramah, bukan keras seperti majalah mode. Yang tidak biasa: halaman Rewards beralih ke serif hangat (`"Lander Tall", "Iowan Old Style", Georgia`) untuk momen headline tertentu, secara halus menggemakan nuansa nostalgia papan tulis kafe. Dan halaman Careers menggunakan skrip tulisan tangan (`"Kalam", "Comic Sans MS", cursive`) untuk sentuhan nama di cangkir personal. Tiga typeface, tiga konteks — sistem ini berdisiplin tentang kapan masing-masing muncul.
|
||
|
||
Permukaan bernapas melalui geometri melengkung. Setiap tombol adalah full-pill 50px. Kartu menggunakan persegi panjang dengan sudut membulat 12px. CTA mengambang "Frap" — tombol pemesanan lingkaran 56px dengan warna Green Accent (`#00754A`) — adalah gerakan kedalaman khas produk: mengambang di kanan bawah dengan tumpukan bayangan berlapis (`0 0 6px rgba(0,0,0,0.24)` dasar + `0 8px 12px rgba(0,0,0,0.14)` ambient) dan menyusut via `scale(0.95)` saat ditekan. Elevasi secara keseluruhan sangat terkendali — bayangan kartu tetap pada alpha bisikan `0.14/0.24`, navigasi global mendapat tumpukan bayangan tiga lapisan yang tenang. Keseluruhan sistem terasa seperti papan penanda kafe yang bersih: mudah dibaca, hangat, dan tidak pernah berteriak.
|
||
|
||
**Key Characteristics:**
|
||
- Sistem merek hijau empat tingkat (Starbucks / Accent / House / Uplift) yang masing-masing dipetakan ke peran permukaan berbeda — bukan "hijau merek" tunggal
|
||
- Emas diperuntukkan hanya untuk momen upacara status Rewards; tidak pernah sebagai aksen serba guna
|
||
- Kanvas netral-hangat (`#f2f0eb` / `#edebe9`) alih-alih putih dingin — merujuk pada material kafe
|
||
- Typeface proprietary kustom (SoDoSans) dengan letter-spacing ketat `-0.16px` sebagai suara universal
|
||
- Pergantian jenis huruf sesuai konteks: serif (Lander Tall) untuk Rewards, skrip (Kalam) untuk nama cangkir di Careers
|
||
- Tombol full-pill (`50px` radius) universal, `scale(0.95)` saat ditekan aktif adalah micro-interaction khas
|
||
- CTA lingkaran mengambang "Frap" (`56px`, warna Green Accent, tumpukan bayangan berlapis) — elemen elevasi khas produk
|
||
- Permukaan kartu hadiah dirancang sebagai **produk fisik yang difoto** — setiap kartu adalah foto ilustrasi berbeda, bukan grafis yang dibuat-buat
|
||
- Radius kartu 12px + bayangan lembut bisikan menjaga kartu konten tetap datar-plus-sedikit-terangkat
|
||
- Skala spasi berbasis rem yang berpusat pada 1.6rem (~16px) = `--space-3`, naik hingga 6.4rem (~64px)
|
||
|
||
**Ritme halaman color-block:** Hero krem → Bagian konten putih → Pita fitur hijau gelap (`#1E3932`) dengan teks putih → Zona utilitas krem → Footer hijau gelap (`#1E3932`) dengan teks emas/putih — pengantar seperti espresso gelap mengelilingi isi yang cerah.
|
||
|
||
## 2. Color Palette & Roles
|
||
|
||
**Halaman sumber yang dianalisis:** beranda, rewards, kartu hadiah, detail produk (Pink Energy Drink), nutrisi produk (Cold Brew).
|
||
|
||
### Primary
|
||
|
||
- **Starbucks Green** (`#006241`): Hijau merek bersejarah. Digunakan pada heading h1, header bagian utama di halaman Rewards, dan sebagai sinyal merek utama di mana pun satu warna dominan diperlukan.
|
||
- **Green Accent** (`#00754A`): Hijau yang sedikit lebih cerah dan bercahaya. Warna CTA terisi utama ("Explore our afternoon menu", "See the spring menu") dan isian tombol lingkaran Frap mengambang.
|
||
- **House Green** (`#1E3932`): Hijau merek hampir hitam yang dalam. Permukaan footer, latar belakang feature-band, permukaan gelap status reward, dan hero band headline "Free coffee is just the beginning" di Rewards.
|
||
- **Green Uplift** (`#2b5148`): Hijau sedang-gelap sekunder yang digunakan dengan hemat pada aksen dekoratif dan momen gradien gelap.
|
||
- **Green Light** (`#d4e9e2`): Sentuhan mint pucat yang digunakan untuk tint state form-valid dan permukaan utilitas hijau terang.
|
||
|
||
### Secondary & Accent
|
||
|
||
- **Gold** (`#cba258`): Dicadangkan hampir eksklusif untuk upacara status Rewards — callout tingkatan Gold, lencana kemitraan (SkyMiles, Bonvoy), dan aksen bernuansa premium. Tidak pernah sebagai warna merek serba guna.
|
||
- **Gold Light** (`#dfc49d`): Emas lebih lembut untuk lapisan latar belakang pada bagian tingkatan emas.
|
||
- **Gold Lightest** (`#faf6ee`): Lapisan permukaan halaman krem-emas yang digunakan di bawah bagian kemitraan pada halaman Rewards — menghubungkan aksen emas kembali ke sistem netral hangat.
|
||
|
||
### Surface & Background
|
||
|
||
- **White** (`#ffffff`): Permukaan kartu dan modal utama. Juga isian kartu pada ubin kartu hadiah.
|
||
- **Neutral Cool** (`#f9f9f9`): Permukaan abu-abu dingin halus yang digunakan pada menu dropdown ("Account" dropdown), pembungkus form-card, dan kontainer utilitas tenang.
|
||
- **Neutral Warm** (`#f2f0eb`): Krem hangat sebagai **kanvas halaman utama** untuk zona utilitas Rewards dan hero band.
|
||
- **Ceramic** (`#edebe9`): Krem yang sedikit lebih hangat/gelap untuk pemisah zona, lapisan lembut bagian halaman, dan pita kemitraan Rewards.
|
||
- **Black** (`#000000`): Tinta gelap yang dicadangkan untuk strip CTA di bagian atas halaman ("Join now") dan tombol sign-in navigasi atas kontras tinggi.
|
||
|
||
### Neutrals & Text
|
||
|
||
- **Text Black** (`rgba(0, 0, 0, 0.87)`): Warna heading dan teks isi utama pada permukaan terang. Bukan hitam murni — hitam dengan opasitas 87% yang tampak lebih hangat.
|
||
- **Text Black Soft** (`rgba(0, 0, 0, 0.58)`): Teks sekunder/metadata pada permukaan terang.
|
||
- **Text White** (`rgba(255, 255, 255, 1)`): Heading/teks isi utama pada permukaan hijau gelap.
|
||
- **Text White Soft** (`rgba(255, 255, 255, 0.70)`): Teks sekunder pada permukaan hijau gelap — deskripsi tautan footer, teks keterangan.
|
||
- **Rewards Green** (`#33433d`): Hijau abu-abu kusam khusus yang hanya digunakan pada blok teks halaman Rewards — warna baca yang sedikit lebih "berdebu" dari Text Black yang menandai "permukaan reward" tanpa menggunakan Starbucks Green penuh.
|
||
|
||
### Semantic & Accent
|
||
|
||
- **Red** (`#c82014`): Status error dan destruktif (form tidak valid, tindakan destruktif).
|
||
- **Yellow** (`#fbbc05`): Status peringatan, sentuhan merek lama.
|
||
- **Green Light** (`#d4e9e2` pada opasitas 33% = `hsl(160 32% 87% / 33%)`): Tint latar belakang bidang form yang valid.
|
||
- **Red Tint** (`hsl(4 82% 43% / 5%)`): Tint bidang tidak valid pada form.
|
||
|
||
### Black / White Alpha Ladders
|
||
|
||
Dua skala tembus cahaya paralel untuk overlay dan penggunaan teks sekunder:
|
||
- `rgba(0,0,0,0.06)` hingga `rgba(0,0,0,0.90)` dalam langkah 10% — untuk overlay gelap pada permukaan terang
|
||
- `rgba(255,255,255,0.10)` hingga `rgba(255,255,255,0.90)` dalam langkah 10% — untuk overlay terang pada permukaan gelap
|
||
|
||
### Gradient System
|
||
|
||
Tidak ada token gradien struktural yang ditemukan. Hierarki permukaan menggunakan warna blok solid — sistem mengandalkan palet permukaan krem/hijau lima tingkat daripada gradien.
|
||
|
||
## 3. Typography Rules
|
||
|
||
### Font Family
|
||
|
||
- **Primary:** `SoDoSans, "Helvetica Neue", Helvetica, Arial, sans-serif` — typeface korporat proprietary Starbucks, digunakan di hampir setiap permukaan
|
||
- **Loading Fallback:** `"Helvetica Neue", Helvetica, Arial, sans-serif` — yang dilihat pengguna sebelum SoDoSans termuat
|
||
- **Rewards Serif:** `"Lander Tall", "Iowan Old Style", Georgia, serif` — digunakan pada momen headline halaman Rewards tertentu untuk nuansa editorial hangat
|
||
- **Careers Script:** `"Kalam", "Comic Sans MS", cursive` — digunakan secara eksklusif untuk sentuhan dekoratif "nama cangkir" di halaman Careers, merujuk pada nama tulisan tangan di cangkir Starbucks
|
||
|
||
Tidak ada set stylistik OpenType yang diaktifkan secara eksplisit pada `:root`.
|
||
|
||
### Hierarchy
|
||
|
||
| Role | Size | Weight | Line Height | Letter Spacing | Notes |
|
||
|------|------|--------|-------------|----------------|-------|
|
||
| Display (text-10) | 5.0rem / 80px | 400–600 | 1.2 | -0.16px | Display Rewards/hero terbesar |
|
||
| Jumbo (text-9) | 3.6rem / 58px | 400–600 | 1.2 | -0.16px | Heading hero sekunder |
|
||
| Hero Large (text-8) | 2.8rem / 45px | 400–600 | 1.2–1.5 | -0.16px | Headline bagian landing |
|
||
| H1 | 24px | 600 | 36px | -0.16px | Heading utama Starbucks-Green |
|
||
| H2 | 24px | 400 | 36px | -0.16px | Judul bagian bobot reguler dalam Text Black |
|
||
| Body Large | 19px | 400–600 | 33.25px (~1.75) | -0.16px | Teks pengantar hero, badan feature-band |
|
||
| Body (text-3) | 1.6rem / 16px | 400 | 1.5 (24px) | -0.01em | Teks isi default |
|
||
| Small (text-2) | 1.4rem / ~14px | 400–600 | 1.5 | -0.01em | Label tombol, metadata, label form |
|
||
| Micro (text-1) | 1.3rem / ~13px | 400 | 1.5 | -0.01em | Status float-label aktif, teks keterangan mikro |
|
||
| Button Label | 14–16px | 400–600 | 1.2 | -0.01em | Semua label tombol pill |
|
||
|
||
**Token letter-spacing:**
|
||
- `letterSpacingNormal`: `-0.01em` (default — ketat, khas)
|
||
- `letterSpacingLoose`: `0.1em` (huruf kapital yang ditekankan)
|
||
- `letterSpacingLooser`: `0.15em` (label gaya huruf kapital, penekanan ekstrem)
|
||
|
||
**Token line-height:**
|
||
- `lineHeightNormal`: `1.5` (isi)
|
||
- `lineHeightCompact`: `1.2` (display/tombol)
|
||
|
||
### Principles
|
||
|
||
- **Tracking negatif ketat (`-0.01em`)** diterapkan hampir secara universal — seluruh produk terbaca sedikit terkompresi, yang memberikan SoDoSans kehadiran yang percaya diri tanpa terasa sempit.
|
||
- **Pergeseran bobot membawa hierarki, bukan pergeseran ukuran.** H1 dan H2 berbagi ukuran 24px/36px yang sama; hanya bobot (600 vs 400) dan warna (Starbucks-Green vs Text Black) yang membedakannya.
|
||
- **Token ukuran menggunakan rem, berpusat pada `1rem = 10px`** di situs ini (melalui trik root `font-size: 62.5%`). Jadi `1.6rem` = 16px, `2.4rem` = 24px, dst. Skalanya semantis (textSize-1 hingga textSize-10), bukan nilai piksel sewenang-wenang.
|
||
- **Penggantian typeface sesuai konteks** — serif di Rewards, skrip di Careers — bersifat disengaja dan terlokalisasi. Jangan mencampurnya dengan sans utama dalam permukaan yang sama.
|
||
- **Teks isi tidak pernah murni hitam** — berada pada `rgba(0,0,0,0.87)` untuk menyesuaikan suhu kanvas netral-hangat.
|
||
|
||
### Note on Font Substitutes
|
||
|
||
SoDoSans adalah proprietary Starbucks (berlisensi dari House Industries, tidak tersedia untuk umum). Pengganti open-source yang wajar:
|
||
- **Inter** (Google Fonts) — proporsi geometris humanis serupa, rentang bobot lebar
|
||
- **Manrope** — sedikit lebih bulat, nuansa percaya diri serupa
|
||
- **Nunito Sans** — lebih hangat, baik untuk pengganti merek "kafe"
|
||
|
||
Jika mengganti, verifikasi bahwa tracking ketat `-0.01em` / `-0.16px` masih terbaca baik; beberapa font open-source memerlukan `-0.005em` sebagai gantinya.
|
||
|
||
Lander Tall (serif Rewards) adalah kustom — pengganti open-source: **Iowan Old Style** (sudah ada di fallback), **Lora**, atau **Source Serif Pro**. Kalam (skrip Careers) tersedia langsung di Google Fonts.
|
||
|
||
## 4. Component Stylings
|
||
|
||
### Buttons
|
||
|
||
**1. Primary Filled — "Explore our afternoon menu / Sign up for free"**
|
||
- Background: `#00754A` (Green Accent)
|
||
- Text: `#ffffff`
|
||
- Border: `1px solid #00754A`
|
||
- Radius: `50px` (full pill)
|
||
- Padding: `7px 16px`
|
||
- Font: SoDoSans, 16px, weight 600, letter-spacing `-0.01em`
|
||
- Active state: `transform: scale(0.95)` via `--buttonActiveScale`
|
||
- Transition: `all 0.2s ease`
|
||
|
||
**2. Primary Outlined — "Give them a try / Start an order"**
|
||
- Background: transparent
|
||
- Text: `#00754A` (Green Accent)
|
||
- Border: `1px solid #00754A`
|
||
- Radius/padding/aktif/transisi sama dengan Primary Filled
|
||
|
||
**3. Black Filled — "Join now"**
|
||
- Background: `#000000`
|
||
- Text: `#ffffff`
|
||
- Border: `1px solid #000000`
|
||
- Radius: `50px`, Padding: `7px 16px`
|
||
- Font: 14px, weight 600
|
||
- Digunakan pada strip join di bagian atas halaman dan momen konversi serupa
|
||
|
||
**4. Dark Outlined — "Sign in"**
|
||
- Background: transparent
|
||
- Text: `rgba(0, 0, 0, 0.87)` (Text Black)
|
||
- Border: `1px solid rgba(0, 0, 0, 0.87)`
|
||
- Radius: `50px`, Padding: `7px 16px`
|
||
- Font: 14px, weight 600
|
||
|
||
**5. Green-on-Green Inverted — "See the spring menu"**
|
||
- Background: `#ffffff`
|
||
- Text: `#00754A`
|
||
- Border: `1px solid #ffffff`
|
||
- Digunakan ketika permukaan di belakang tombol adalah pita House Green gelap — tombol putih dengan teks hijau alih-alih pil hijau terisi pada latar hijau
|
||
|
||
**6. Outlined on Dark — "Learn more / Order now"**
|
||
- Background: transparent
|
||
- Text: `#ffffff`
|
||
- Border: `1px solid #ffffff`
|
||
- Digunakan pada feature band hijau gelap untuk tindakan sekunder yang dipasangkan dengan CTA terisi putih
|
||
|
||
**7. Consent Agree (varian hijau gelap)**
|
||
- Background: `rgb(0, 130, 72)` (varian hijau spesifik yang digunakan dalam modul persetujuan cookie)
|
||
- Text: `#ffffff`
|
||
- Tidak ada border, radius `50px`, padding `7px 16px`, 14px / weight 400
|
||
- Sedikit lebih cerah dari Green Accent — dicadangkan untuk tindakan Agree pada banner persetujuan
|
||
|
||
**8. Frap — Floating Circular Order Button**
|
||
- Background: `#00754A` (Green Accent)
|
||
- Icon: `#ffffff`
|
||
- Size: `5.6rem / 56px` (standar), `4rem / 40px` (varian mini)
|
||
- Radius: `50%` (lingkaran penuh)
|
||
- Posisi tetap kanan bawah, offset sentuh `-0.8rem` untuk kenyamanan ketukan ekstra
|
||
- Tumpukan bayangan: dasar `0 0 6px rgba(0,0,0,0.24)` + ambient `0 8px 12px rgba(0,0,0,0.14)`
|
||
- Active state: bayangan ambient memudar ke `0 8px 12px rgba(0,0,0,0)`
|
||
- Ini adalah elemen elevasi khas produk — mengambang di atas setiap permukaan yang digulir
|
||
|
||
**9. Full-width Feedback Tab — "Provide feedback"**
|
||
- Background: `#00754A`
|
||
- Text: `#ffffff`
|
||
- Radius: `12px 12px 0px 0px` (hanya bagian atas melengkung)
|
||
- Padding: `8px 16px`
|
||
- Font: 14px, weight 400
|
||
- Diposisikan tetap di kanan bawah dalam, menempel pada tepi viewport
|
||
|
||
### Cards & Containers
|
||
|
||
**Content Card (default)**
|
||
- Background: `#ffffff` (`--cardBackgroundColor`)
|
||
- Radius: `12px` (`--cardBorderRadius`)
|
||
- Shadow: `0px 0px .5px 0px rgba(0,0,0,0.14), 0px 1px 1px 0px rgba(0,0,0,0.24)` (`--cardBoxShadow`)
|
||
- Digunakan untuk: kartu fitur, ubin item menu, panel status reward
|
||
|
||
**Gift Card Tile**
|
||
- Background: foto ilustrasi mengisi kartu (tidak ada latar solid)
|
||
- Radius: serupa dengan kartu (`~12px`, sudut sedikit lebih ketat)
|
||
- Shadow: lebih ringan dari kartu default — ini diperlakukan seperti kartu fisik yang diletakkan di atas kanvas
|
||
- Diberi label berdasarkan kategori di atas grid kartu (Spring, Thank You, Birthday, Celebration, Mother's Day, Appreciation, Encouragement, Milestones, Anytime)
|
||
|
||
**Rewards Status Cards (khas halaman Rewards)**
|
||
- Grid tiga kolom: Bronze / Gold / Silver-ish — masing-masing panel hijau gelap (`#1E3932`) dengan:
|
||
- Cincin header gradien/warna berwarna
|
||
- Lencana "Level" bernomor
|
||
- Judul status dalam SoDoSans besar weight 600
|
||
- Daftar bintang/manfaat dalam teks putih/putih-tembus
|
||
- Keterangan progresif "As you earn more stars…" di bagian bawah
|
||
|
||
**Partnership Card (Rewards)**
|
||
- Background: `#faf6ee` (Gold Lightest) permukaan krem-hangat
|
||
- Konten: logo mitra ("SkyMiles", "Bonvoy") di tengah, dengan teks deskriptif di bawah
|
||
- Radius dan bayangan mengikuti spesifikasi kartu default
|
||
|
||
**Dropdown Menu (dropdown Account, top-nav)**
|
||
- Background: `#f9f9f9` (Neutral Cool)
|
||
- Item menu pada `24px / weight 400` dalam Text Black
|
||
- Tidak ada border — hanya pergeseran permukaan latar terhadap nav putih
|
||
|
||
**Modal**
|
||
- Padding: `2.4rem` (`--modalPadding`)
|
||
- Padding atas: `8.8rem` (`--modalTopPadding`) — menyisakan ruang untuk tombol tutup / header
|
||
- Padding vertikal gabungan: `11.2rem`
|
||
- Radius mewarisi dari spesifikasi kartu (`12px`)
|
||
|
||
### Inputs & Forms
|
||
|
||
**Floating Label Input**
|
||
- Label mengambang di atas border input saat difokus/terisi
|
||
- Ukuran font label desktop: default `1.9rem`, beranimasi ke `1.4rem` saat aktif
|
||
- Ukuran font label mobile: default `1.6rem`, beranimasi ke `1.3rem` saat aktif
|
||
- Offset horizontal label: `12px` dari kiri
|
||
- Terjemahan label aktif: naik hingga `-12px` dengan terjemahan Y `-50%`
|
||
- Padding bidang: `12px`
|
||
- Padding horizontal form: `1.6rem`
|
||
- Validasi: bidang valid mendapat tint `rgba(green-light, 0.33)`; bidang tidak valid mendapat tint `rgba(red, 0.05)`
|
||
- Transisi: `0.3s option-label-marker-expansion cubic-bezier(0.32, 2.32, 0.61, 0.27)` pada checked-input
|
||
|
||
**Option Icon (checkbox/radio)**
|
||
- Padding: `3px` dalam
|
||
- Menggunakan animasi cubic-bezier checked-input di atas (kurva overshoot `2.32` yang sedikit "pegas")
|
||
|
||
### Navigation
|
||
|
||
**Global Nav (bar atas)**
|
||
- Posisi tetap dengan tinggi progresif: `64px` xs → `72px` mobile → `83px` tablet → `99px` desktop
|
||
- Tumpukan bayangan: `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)` — tiga lapisan angkat lembut
|
||
- Kiri: logo wordmark Starbucks, digeser `99px` (md) / `131px` (lg) dari tepi kiri
|
||
- Tautan utama inline dalam SoDoSans weight 400–600: Menu · Rewards · Gift Cards
|
||
- Kanan: tautan Find a store + Sign in (outlined) + Join now (black filled)
|
||
|
||
**Sub-nav (bar kedua, mis. internal Rewards)**
|
||
- Tinggi: `53px` (global subnav) / `48px` (internal subnav)
|
||
- Biasanya grup tab horizontal di bawah nav global
|
||
|
||
**Mobile Nav**
|
||
- Menyusut menjadi drawer hamburger di bawah breakpoint tablet
|
||
- Tombol mengambang Frap tetap ada di kanan bawah terlepas dari status nav
|
||
|
||
### Image Treatment
|
||
|
||
- **Hero photography**: Foto produk (minuman dalam gelas bening dengan latar berwarna — koral, sage, amber hangat) menempati ~40vw dari tata letak hero split; teks menempati 60vw lainnya (`--headerCrateProportion: 40vw` / `--contentCrateProportion: 60vw`)
|
||
- **Gift card illustrations**: Setiap kartu adalah foto ilustrasi berbeda (nuansa cat, tampak seperti gambar tangan, palet warna hangat). Tidak pernah menggunakan grafis generik yang dibuat-buat.
|
||
- **Rewards ceremony imagery**: Foto layar Starbucks Rewards App yang dipegang di tangan, komposisi miring — foto produk dalam konteks.
|
||
- **Menu thumbnails**: Foto produk persegi atau 4:3 dengan latar putih/krem bersih, sedikit bayangan jatuh lembut di sekitar gelas.
|
||
- **Image fade-in**: Transisi `opacity 0.3s ease-in` saat gambar dimuat (`--imageFadeTransition`).
|
||
|
||
### Feature Band (strip hero hijau gelap)
|
||
|
||
Pita `#1E3932` (House Green) lebar penuh dengan:
|
||
- Kiri: headline putih + subhead + baris CTA
|
||
- Kanan: foto produk atau ilustrasi
|
||
- Rasio split ~40/60 atau 50/50 tergantung bagian
|
||
- Teks putih di seluruh bagian dengan `rgba(255,255,255,0.70)` untuk teks sekunder
|
||
- CTA mengikuti pasangan Green-on-Green Inverted (terisi putih) + Outlined on Dark (garis putih)
|
||
|
||
### Expander / Accordion
|
||
|
||
- Durasi: `300ms` (`--expanderDuration`)
|
||
- Kurva timing: `cubic-bezier(0.25, 0.46, 0.45, 0.94)` — ease-out yang terukur
|
||
- Digunakan untuk bagian FAQ di Rewards dan halaman hadiah
|
||
|
||
### Cookie Consent Module
|
||
|
||
Kartu modal hijau gelap di bagian atas halaman dengan tombol "Agree" (terisi hijau) dan "Manage preferences" (outlined). Muncul saat kunjungan pertama; dapat ditutup.
|
||
|
||
### Product Detail Components (kluster khas PDP)
|
||
|
||
Kluster komponen berulang yang digunakan pada halaman produk menu (mis., `/menu/product/40498/iced` untuk detail minuman, `/menu/product/.../nutrition` untuk fakta nutrisi). Ini memperluas inventaris komponen tanpa mengubah token.
|
||
|
||
**Size Options Selector**
|
||
- Baris horizontal 4 tombol ikon cangkir (Tall / Grande / Venti / Trenta)
|
||
- Setiap item: ikon siluet cangkir di atas, nama ukuran di bawah (16/700 dalam Starbucks-Green), keterangan ons cairan (13/400 dalam Text Black Soft)
|
||
- Active state: garis luar cincin lingkaran hijau (`2px solid #00754A`) mengelilingi ikon cangkir yang dipilih
|
||
- Tidak aktif: tidak ada cincin, tipografi sama
|
||
- Baris lebar penuh, jarak yang sama
|
||
- Radius kontainer: `12px` atau datar; ikon individual adalah `50%` lingkaran
|
||
- Padding: `16px 24px` internal
|
||
|
||
**Add-in / Milk Select (persegi panjang outlined)**
|
||
- Background: `#ffffff`
|
||
- Border: `1px solid #d6dbde` (Input Border)
|
||
- Radius: `4px`
|
||
- Lebar penuh di kolomnya
|
||
- Label mengambang di atas border atas: "Add-ins" / "Milk" / "Add-ins" — 13/700 dalam Text Black, huruf kapital, letter-spacing `0.325px`
|
||
- Nilai ditampilkan di tengah (mis., "Ice", "Coconut", "Strawberry Fruit Inclusions scoop"): 16/400 Text Black
|
||
- Ikon chevron-bawah di sisi kanan dalam Text Black Soft
|
||
- Fokus: border bergeser ke Green Accent (`#00754A`)
|
||
|
||
**Numeric Stepper**
|
||
- Tertanam di dalam baris Add-in saat diperlukan kuantitas (mis., Strawberry Fruit Inclusions scoop)
|
||
- Tombol `−` minus + nomor hitungan + tombol `+` plus, semua inline di kanan label
|
||
- Tombol: lingkaran `32×32px` dengan border `1px solid #d6dbde`, ikon abu-abu netral
|
||
- Nomor hitungan: 16/700 Text Black di tengah
|
||
|
||
**Customize Button**
|
||
- Background: `#ffffff`
|
||
- Text: `#00754A` (Green Accent)
|
||
- Border: `1.5px solid #00754A`
|
||
- Radius: `50px` (full pill)
|
||
- Padding: `14px 40px` (lebih besar dari pil default — ini adalah tindakan primer sekunder)
|
||
- Label: "Customize" dengan ikon kerlip emas ✨ disisipkan di kiri
|
||
- Digunakan untuk: memasuki alur kustomisasi minuman setelah pemilihan ukuran/susu
|
||
|
||
**Add to Order Button (PDP)**
|
||
- Background: `#00754A` (Green Accent)
|
||
- Text: `#ffffff`
|
||
- Radius: `50px`
|
||
- Padding: `14px 32px`
|
||
- Disematkan di kanan atas kartu produk dan/atau disejajarkan ke kanan dalam pita ketersediaan toko
|
||
- Perilaku aktif scale(0.95) yang sama seperti CTA primer lainnya
|
||
|
||
**Rewards Cost Pill — "200★ item"**
|
||
- Background: transparent
|
||
- Border: `1px solid #cba258` (Gold)
|
||
- Text: `#cba258` (Gold)
|
||
- Radius: `50px` (full pill)
|
||
- Padding: `4px 12px`
|
||
- Konten: "200★ item" di mana `★` adalah simbol bintang terisi kecil — menunjukkan Stars Rewards yang diperlukan untuk menukarkan item ini
|
||
- Font: Proxima Nova 13/700 dengan letter-spacing `0.5px`
|
||
- Hanya digunakan pada produk yang dapat ditukar dengan Rewards
|
||
|
||
**Product Description Band**
|
||
- Pita hijau gelap lebar penuh (`#1E3932` House Green)
|
||
- Berisi dari atas ke bawah:
|
||
1. Rewards Cost Pill (emas) jika berlaku
|
||
2. Teks isi deskripsi produk dalam putih (16/400/1.5)
|
||
3. Ringkasan nutrisi inline ("140 calories, 25g sugar, 2.5g fat") dengan tooltip ikon-info — 14/700 putih
|
||
4. Tombol pil outlined-white-on-green "Full nutrition & ingredients list"
|
||
- Padding: `32px` vertikal
|
||
- Muncul di bawah pita header produk utama
|
||
|
||
**Ingredients / Nutrition Table**
|
||
- Tata letak dua kolom pada halaman Nutrisi
|
||
- Kolom kiri: header "Ingredients" + daftar atau blok teks placeholder "Not available for this item" dengan paragraf penjelasan dalam Text Black Soft 14/400
|
||
- Kolom kanan: header "Nutrition" + baris label/nilai
|
||
- Setiap baris: label nutrisi (Proxima Nova 14/400) di kiri, nilai (mis., "140 calories", "25g", "205 mg**") di kanan, dipisahkan oleh garis rambut `1px solid #e7e7e7` di bawah
|
||
- Catatan kaki untuk penanda kafein/asterisk dalam 13/400 Text Black Soft di bagian bawah
|
||
- Pola yang dapat digunakan kembali untuk tabel fakta nutrisi yang sesuai regulasi
|
||
|
||
**Store Availability Selector**
|
||
- Muncul pada feature band hijau gelap di atas baris opsi ukuran
|
||
- Persegi panjang melengkung lebar penuh dengan interior putih tembus
|
||
- Text: "For item availability, choose a store" dalam putih, 14/400
|
||
- Sisi kanan: keterjangkauan chevron-bawah + ikon SVG tas belanja bergaris putih
|
||
- Radius: `4px`
|
||
- Tinggi: ~48px
|
||
|
||
**PDP Breadcrumb**
|
||
- Jalur "Menu / Refreshers / Pink Energy Drink" di atas judul produk
|
||
- Pemisah: karakter `/` garis miring dalam Text Black Soft
|
||
- Halaman saat ini tidak ditautkan, halaman sebelumnya adalah tautan bergaris bawah hijau-aksen
|
||
- Font: 14/400 Proxima Nova
|
||
- Muncul di semua halaman PDP
|
||
|
||
**Back Chevron Link (sub-halaman nutrisi PDP / detail)**
|
||
- Tautan teks "← Back" di atas heading bagian pada halaman nutrisi
|
||
- Teks dalam Green Accent (`#00754A`) 14/700 Proxima Nova
|
||
- Chevron kiri `<` dalam warna hijau yang sama
|
||
- Alternatif untuk breadcrumb penuh pada sub-halaman yang dalam
|
||
|
||
## 5. Layout Principles
|
||
|
||
### Spacing System
|
||
|
||
Skala semantis berbasis rem (berpusat `1rem = 10px`):
|
||
|
||
| Token | Rem | Pixels | Typical Use |
|
||
|-------|-----|--------|-------------|
|
||
| `--space-1` | `0.4rem` | 4px | Padding inline paling ketat |
|
||
| `--space-2` | `0.8rem` | 8px | Jarak kecil, padding vertikal tombol |
|
||
| `--space-3` | `1.6rem` | 16px | Default — padding kartu, gutter luar xs |
|
||
| `--space-4` | `2.4rem` | 24px | Spasi dalam bagian, gutter luar md |
|
||
| `--space-5` | `3.2rem` | 32px | Spasi utama antar bagian |
|
||
| `--space-6` | `4rem` | 40px | Jarak besar, gutter luar lg, header crate |
|
||
| `--space-7` | `4.8rem` | 48px | Spasi bagian ke bagian |
|
||
| `--space-8` | `5.6rem` | 56px | Napas sangat besar — tinggi Frap |
|
||
| `--space-9` | `6.4rem` | 64px | Padding bagian terlebar |
|
||
|
||
**Token gutter:**
|
||
- `--outerGutter: 1.6rem` (16px, default / mobile)
|
||
- `--outerGutterMedium: 2.4rem` (24px, tablet)
|
||
- `--outerGutterLarge: 4.0rem` (40px, desktop)
|
||
|
||
**Konstanta ritme universal:** `1.6rem` (16px) muncul di setiap halaman sebagai gutter luar default, baseline padding kartu, dan ukuran teks 3 tubuh — unit spasi yang paling sering digunakan dalam sistem.
|
||
|
||
### Grid & Container
|
||
|
||
- Skala lebar kolom: `--columnWidthSmall: 343px` / `Medium: 500px` / `Large: 720px` / `XLarge: 1440px`
|
||
- Grid kartu hadiah menggunakan grid responsif 3-5-up dari ubin `~343px`
|
||
- Bagian status Rewards: 3 panel hijau gelap pada breakpoint `lg+`
|
||
- Hero: split asimetris 40% (gambar) / 60% (konten) via `--headerCrateProportion` / `--contentCrateProportion`
|
||
|
||
### Whitespace Philosophy
|
||
|
||
Ruang putih membawa perasaan "banyak ruang di kafe." Padding bagian cenderung boros (40–64px). Blok konten dipisahkan oleh ruang putih, bukan pembagi. Kanvas krem (`#f2f0eb`) sendiri adalah napas visual antara kartu putih dan feature band hijau.
|
||
|
||
### Border Radius Scale
|
||
|
||
| Value | Use |
|
||
|-------|-----|
|
||
| `12px` | Kartu, modal, ubin item menu (`--cardBorderRadius`) |
|
||
| `12px 12px 0 0` | Tab umpan balik lebar penuh (hanya bagian atas melengkung) |
|
||
| `50px` | Semua tombol — radius full-pill (`--buttonBorderRadius`) |
|
||
| `50%` | Ikon lingkaran, tombol mengambang Frap, thumbnail avatar |
|
||
| Specialty | `3.3333%/5.298%` elips untuk mockup Starbucks-Visa-Card (`--svcRoundedCorners`) |
|
||
|
||
## 6. Depth & Elevation
|
||
|
||
| Level | Treatment | Use |
|
||
|-------|-----------|-----|
|
||
| Card | `0 0 0.5px rgba(0,0,0,0.14), 0 1px 1px rgba(0,0,0,0.24)` | Kartu konten default — bayangan ganda bisikan lembut |
|
||
| Global Nav | `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)` | Angkat lembut tiga lapisan pada bar atas tetap |
|
||
| Frap Base | `0 0 6px rgba(0,0,0,0.24)` | Halo dasar di sekitar CTA lingkaran mengambang |
|
||
| Frap Ambient | `0 8px 12px rgba(0,0,0,0.14)` | Ambient terarah bertumpuk — mengambangkan Frap ke depan |
|
||
| Gift Card | Bayangan jatuh ringan di sekitar foto ilustrasi | Nuansa kartu fisik untuk ubin hadiah |
|
||
| 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))` | Bayangan jatuh SVG bertumpuk untuk visual Starbucks Card |
|
||
|
||
**Filosofi bayangan:** Bisikan lembut, berlapis di atas solid — sistem ini tidak pernah menggunakan bayangan jatuh berat tunggal. Sebaliknya, menumpuk 2–3 bayangan alpha rendah dengan offset berbeda untuk mensimulasikan pencahayaan ambient + langsung dunia nyata. Tombol Frap adalah elemen paling tinggi di halaman mana pun.
|
||
|
||
### Decorative Depth
|
||
|
||
- **Tidak ada sistem gradien** — permukaan menggunakan warna blok solid
|
||
- **Penataan color-block** membawa kedalaman yang dirasakan (pita hijau gelap terbaca sebagai "zona fitur tersembunyi" antara bagian isi krem/putih)
|
||
- **Filter shadow SVG** pada visual Starbucks-Card menambahkan sedikit fisikalitas 3D tanpa box-shadow
|
||
|
||
## 7. Do's and Don'ts
|
||
|
||
### Do
|
||
- Gunakan Neutral Warm (`#f2f0eb`) atau Ceramic (`#edebe9`) sebagai kanvas halaman alih-alih putih murni — krem hangat adalah tanda tangan
|
||
- Petakan tingkatan hijau ke peran permukaan yang dimaksud — Starbucks Green untuk heading, Green Accent untuk CTA, House Green untuk pita dalam, Uplift untuk dekoratif
|
||
- Pertahankan tracking ketat `-0.01em` / `-0.16px` pada SoDoSans di seluruh sistem
|
||
- Gunakan radius full-pill 50px pada setiap tombol tanpa pengecualian
|
||
- Terapkan `transform: scale(0.95)` sebagai state aktif tombol universal
|
||
- Cadangkan Gold hanya untuk momen upacara status Rewards
|
||
- Gunakan SoDoSans untuk hampir segalanya; beralih ke serif Lander Tall hanya untuk headline editorial Rewards; cadangkan skrip Kalam untuk momen "nama cangkir" di Careers
|
||
- Tumpuk 2–3 bayangan alpha rendah alih-alih satu bayangan jatuh yang lebih berat untuk elevasi
|
||
- Gunakan CTA lingkaran Frap sebagai entri pemesanan mengambang yang persisten di setiap permukaan belanja
|
||
- Biarkan kanvas krem bernapas di antara kartu konten — gunakan ruang putih, bukan pembagi
|
||
|
||
### Don't
|
||
- Jangan gunakan putih murni sebagai kanvas halaman — suhu krem hangat adalah elemen penting
|
||
- Jangan pilih "satu hijau merek" — sistem empat-hijau adalah disengaja; menggunakan hanya `#006241` di mana-mana akan meratakan merek
|
||
- Jangan gunakan Gold sebagai aksen serba guna — itu hanya sinyal Rewards
|
||
- Jangan membuat sudut tombol menjadi persegi — pil 50px adalah universal
|
||
- Jangan tambahkan isian gradien — sistem menggunakan color-block di seluruhnya
|
||
- Jangan bedakan h1 dan h2 dengan kontras bobot berdasarkan ukuran — hierarki berasal dari bobot + warna (600 Starbucks-Green vs 400 Text Black)
|
||
- Jangan gunakan hitam murni untuk teks isi — `rgba(0,0,0,0.87)` sesuai dengan suhu kanvas hangat
|
||
- Jangan lewatkan umpan balik aktif `scale(0.95)` pada tombol — itu adalah micro-interaction khas
|
||
- Jangan tumpuk bayangan berat tunggal; selalu tumpuk 2–3 bayangan alpha rendah
|
||
- Jangan tambahkan serif atau skrip ke dalam alur belanja utama — keduanya hanya untuk konteks Rewards dan Careers
|
||
|
||
## 8. Responsive Behavior
|
||
|
||
### Breakpoints
|
||
|
||
Disimpulkan dari token lebar komponen dan tinggi nav yang progresif:
|
||
|
||
| Name | Width | Key Changes |
|
||
|------|-------|-------------|
|
||
| xs | < 480px | Nav global 64px; menu hamburger; tata letak satu kolom; tombol pil lebar penuh |
|
||
| Mobile | 480–767px | Nav global 72px; grid kartu hadiah 2-up; padding kartu mengetat |
|
||
| Tablet | 768–1023px | Nav global 83px; grid kartu hadiah 3-up; split hero mulai muncul |
|
||
| Desktop | 1024–1439px | Nav global 99px; grid kartu hadiah 4-up; hero asimetris penuh 40/60 |
|
||
| XLarge | 1440px+ | Konten dibatasi pada `--columnWidthXLarge`; grid kartu hadiah 5-up; margin krem ekstra |
|
||
|
||
### Touch Targets
|
||
|
||
- Tombol pil dengan padding `7px 16px` mengukur ~32px tinggi — di bawah minimum WCAG AAA 44px untuk permukaan sentuh saja. Pada mobile, padding tombol mungkin diperluas secara visual untuk memenuhi minimum.
|
||
- Tombol lingkaran mengambang Frap pada `56px` jauh di atas minimum.
|
||
- Frap menggunakan `--frapTouchOffset: calc(-1 * .8rem)` untuk memperluas area ketukan 8px melampaui tepi visual.
|
||
- Input float-label form memperbesar ukuran font labelnya di mobile (dasar 1.6rem vs 1.9rem desktop) — lebih mudah diketuk dan dibaca dari jarak jauh.
|
||
|
||
### Collapsing Strategy
|
||
|
||
- **Tinggi nav global berskala progresif**: 64 → 72 → 83 → 99px di berbagai breakpoint, bukan nilai tunggal
|
||
- **Split hero menyusut**: split asimetris 40/60 → bertumpuk (gambar di atas, konten di bawah) pada mobile
|
||
- **Grid kartu hadiah**: 5-up → 4-up → 3-up → 2-up → 1-up di berbagai breakpoint dengan lebar kartu yang disesuaikan
|
||
- **Feature band**: Tetap lebar penuh tetapi teks + gambar bertumpuk secara vertikal pada mobile
|
||
- **Skala gutter luar**: 16px → 24px → 40px seiring viewport membesar
|
||
- **Panel status 3 kolom Rewards**: Bertumpuk ke satu kolom pada mobile
|
||
|
||
### Image Behavior
|
||
|
||
- Foto produk hero memotong lebih ketat secara vertikal pada mobile; konten menjadi jangkar visual
|
||
- Ilustrasi kartu hadiah mempertahankan rasio aspek; grid kartu mengalir ulang
|
||
- Transisi fade-in `opacity 0.3s ease-in` saat gambar dimuat (mencegah pop-in yang mengagetkan)
|
||
- Foto aplikasi-dalam-tangan Rewards berskala proporsional; tidak pernah meregang
|
||
|
||
## 9. Agent Prompt Guide
|
||
|
||
### Quick Color Reference
|
||
|
||
- Primary CTA: "Green Accent (`#00754A`)"
|
||
- Primary CTA text: "White (`#ffffff`)"
|
||
- Brand heading: "Starbucks Green (`#006241`)"
|
||
- Feature band / footer: "House Green (`#1E3932`)"
|
||
- Page canvas: "Neutral Warm (`#f2f0eb`)"
|
||
- Card canvas: "White (`#ffffff`)"
|
||
- Heading text on light: "Text Black (`rgba(0,0,0,0.87)`)"
|
||
- Body text on light: "Text Black Soft (`rgba(0,0,0,0.58)`)"
|
||
- Body text on dark-green: "Text White Soft (`rgba(255,255,255,0.70)`)"
|
||
- Rewards accent: "Gold (`#cba258`)"
|
||
- Rewards text: "Rewards Green (`#33433d`)"
|
||
- Destructive: "Red (`#c82014`)"
|
||
|
||
### Example Component Prompts
|
||
|
||
1. "Create a primary Starbucks CTA pill button with Green Accent (`#00754A`) background, white text 'Explore our afternoon menu', SoDoSans font at 16px weight 600 with `-0.01em` letter-spacing, `50px` border-radius (full pill), `7px 16px` padding. Apply `transform: scale(0.95)` as the active state with a `0.2s ease` transition."
|
||
|
||
2. "Design a content card with White (`#ffffff`) background at `12px` border-radius, layered shadow `0 0 0.5px rgba(0,0,0,0.14), 0 1px 1px rgba(0,0,0,0.24)`. Pad contents `16–24px` (`--space-3` to `--space-4`). Place on a Neutral Warm (`#f2f0eb`) page canvas with `16px` gap to siblings."
|
||
|
||
3. "Build the Frap floating circular order button — `56px` diameter, Green Accent (`#00754A`) fill, white shopping-bag icon centered. Layered shadow: `0 0 6px rgba(0,0,0,0.24)` + `0 8px 12px rgba(0,0,0,0.14)`. Fixed position bottom-right with `-0.8rem` touch offset. Active state collapses the ambient shadow to `0 8px 12px rgba(0,0,0,0)` with `scale(0.95)`."
|
||
|
||
4. "Build a dark-green feature band — full-width section with House Green (`#1E3932`) background. Left column: white SoDoSans h2 at 24px weight 600, followed by a Text White Soft (`rgba(255,255,255,0.70)`) body paragraph and a CTA row with two buttons (White-filled with Green Accent text for primary, Outlined-on-Dark white border for secondary). Right column: product photography. Split ratio 40/60, stacked vertically below `768px`."
|
||
|
||
5. "Create a Rewards status card — House Green (`#1E3932`) panel with `12px` border-radius, colored gradient top stripe (Bronze/Silver/Gold tier). Title in SoDoSans 24px weight 600 in white. Benefits list as white bullets with `rgba(255,255,255,0.70)` secondary captions. Bottom progression text in Text White Soft. Stack 3 panels in a grid at `lg+`, single column on mobile."
|
||
|
||
6. "Design a gift-card tile — card radius matches `12px`, fills with an illustrated photograph (hand-drawn watercolor-painted feel) as the entire surface. Subtle drop shadow makes it feel like a physical card on the cream canvas. Group under a category label ('Spring', 'Thank You', 'Birthday') in SoDoSans 24px weight 400 above the grid."
|
||
|
||
7. "Create a Starbucks product-detail header — House Green (`#1E3932`) band with breadcrumb 'Menu / Refreshers / Pink Energy Drink' in 14/400 white above the product title in SoDoSans 32/700 uppercase white. Product photograph centered below title. Below photo: a 4-up size selector row — each cup-icon button shows a vertical cup silhouette, size name ('Tall' / 'Grande' / 'Venti' / 'Trenta') in 16/700 white, and fluid-ounce in 13/400 Text White Soft. Selected size wraps the cup icon in a `2px solid #00754A` circular ring."
|
||
|
||
8. "Build a Starbucks customize flow — under the size selector, 3 stacked outlined-rectangle input rows (white bg, `1px solid #d6dbde` border, `4px` radius). Each has a floating label ('Add-ins', 'Milk', 'Add-ins') above the top border in 13/700 Text Black uppercase. Value centered (e.g., 'Ice', 'Coconut'). Right side: chevron-down in Text Black Soft. For the scoop row, embed a numeric stepper (`−` `1` `+` with circular `32px` outlined buttons). Below all three fields: outlined green 'Customize' pill with gold sparkle icon, `50px` radius, `14px 40px` padding. Pair with a Green Accent filled 'Add to Order' pill in the same row."
|
||
|
||
9. "Design a Starbucks product description band — full-width House Green (`#1E3932`) below product header. Top: a gold-outlined '200★ item' Rewards Cost Pill (`50px` radius, `4px 12px` padding, gold `#cba258` border and text). Below: product description in white 16/400/1.5. Nutritional inline summary in white 14/700 ('140 calories, 25g sugar, 2.5g fat') with info-icon tooltip. Outlined-white-on-green pill button 'Full nutrition & ingredients list'. 32px vertical padding."
|
||
|
||
10. "Create a Starbucks nutrition facts table — two-column layout inside a White card. Left column: 'Ingredients' header (24/400 Text Black), followed by ingredient list or 'Not available for this item' placeholder paragraph in 14/400 Text Black Soft. Right column: 'Nutrition' header, then label/value rows (nutrient name left, value right) separated by `1px solid #e7e7e7` hairlines. Typography: labels in 14/400 Text Black, values in 14/700 Text Black right-aligned. Footnote asterisk markers in 13/400 Text Black Soft at the bottom."
|
||
|
||
### Iteration Guide
|
||
|
||
Saat menyempurnakan layar yang sudah ada yang dibuat dengan sistem desain ini:
|
||
1. Fokus pada SATU komponen dalam satu waktu
|
||
2. Referensikan nama warna dan kode hex spesifik dari dokumen ini
|
||
3. Gunakan deskripsi bahasa alami ("kanvas krem hangat", "sistem hijau empat tingkat") bersama nilai yang tepat
|
||
4. Pertahankan pil 50px + state aktif `scale(0.95)` secara universal
|
||
5. Periksa bahwa hijau dipetakan ke peran yang tepat (Green Accent untuk CTA, Starbucks Green untuk heading, House Green untuk pita)
|
||
6. Jangan tambahkan isian gradien — sistem menggunakan color-block
|
||
7. Pertahankan tracking SoDoSans pada `-0.01em` / `-0.16px` di seluruh
|
||
|
||
### Known Gaps
|
||
|
||
- SoDoSans adalah typeface proprietary yang tidak tersedia di Google Fonts — saat mengimplementasikan secara publik, gunakan Inter atau Manrope sebagai pengganti dan dokumentasikan peralihannya
|
||
- Lander Tall (serif Rewards) juga kustom — gantikan dengan Iowan Old Style, Lora, atau Source Serif Pro
|
||
- Timing animasi per komponen spesifik di luar beberapa yang terdokumentasi (`--duration: 0.4s`, `--iconTransition: all ease-out 0.2s`, `--expanderDuration: 300ms`) tidak ditangkap untuk setiap permukaan interaktif
|
||
- Gaya state error penuh form (bobot border merah, penempatan ikon) terlihat pada token tint tetapi tidak diekstrak secara lengkap
|
||
- Komponen spesifik halaman Careers (kartu nama cangkir, grid radio pencarian) dirujuk dalam nama token tetapi tidak dicakup oleh ekstraksi ini
|
||
- Spesifikasi mockup detail Starbucks Visa Card / Starbucks-Card (SVC) ditunjukkan oleh token `--svcRoundedCorners` dan `--svcShadowFilter` tetapi tidak sepenuhnya terdokumentasi
|