oh-my-design-cli 1.8.2 → 1.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.ja.md +5 -5
  2. package/README.ko.md +7 -7
  3. package/README.md +7 -7
  4. package/README.zh-TW.md +5 -5
  5. package/agents/omd-master.md +1 -1
  6. package/data/reference-fingerprints.json +964 -4
  7. package/package.json +3 -1
  8. package/skills/omd-feel/SKILL.md +152 -0
  9. package/skills/omd-feel/provenance.md +233 -0
  10. package/skills/omd-feel/reference.md +254 -0
  11. package/skills/omd-harness/SKILL.md +1 -1
  12. package/skills/omd-init/SKILL.md +1 -1
  13. package/skills/omd-reference-capture/SKILL.md +1 -1
  14. package/web/references/591/DESIGN.md +460 -0
  15. package/web/references/asana/DESIGN.md +485 -0
  16. package/web/references/asos/DESIGN.md +475 -0
  17. package/web/references/bahamut/DESIGN.md +416 -0
  18. package/web/references/bbc/DESIGN.md +439 -0
  19. package/web/references/chunghwa/DESIGN.md +419 -0
  20. package/web/references/databricks/DESIGN.md +467 -0
  21. package/web/references/deliveroo/DESIGN.md +458 -0
  22. package/web/references/doordash/DESIGN.md +429 -0
  23. package/web/references/easywallet/DESIGN.md +449 -0
  24. package/web/references/esunbank/DESIGN.md +445 -0
  25. package/web/references/farfetch/DESIGN.md +436 -0
  26. package/web/references/fubon/DESIGN.md +438 -0
  27. package/web/references/govuk/DESIGN.md +450 -0
  28. package/web/references/hana/DESIGN.md +439 -0
  29. package/web/references/hubspot/DESIGN.md +485 -0
  30. package/web/references/hyundai/DESIGN.md +468 -0
  31. package/web/references/icook/DESIGN.md +432 -0
  32. package/web/references/instacart/DESIGN.md +439 -0
  33. package/web/references/ipassmoney/DESIGN.md +407 -0
  34. package/web/references/kakaopage/DESIGN.md +439 -0
  35. package/web/references/kbpay/DESIGN.md +442 -0
  36. package/web/references/kia/DESIGN.md +411 -0
  37. package/web/references/liner/DESIGN.md +465 -0
  38. package/web/references/monzo/DESIGN.md +461 -0
  39. package/web/references/naverpay/DESIGN.md +478 -0
  40. package/web/references/octopusenergy/DESIGN.md +436 -0
  41. package/web/references/openpoint/DESIGN.md +431 -0
  42. package/web/references/paypal/DESIGN.md +459 -0
  43. package/web/references/reddit/DESIGN.md +537 -0
  44. package/web/references/samsung/DESIGN.md +465 -0
  45. package/web/references/shinhanbank/DESIGN.md +429 -0
  46. package/web/references/skyscanner/DESIGN.md +563 -0
  47. package/web/references/snapchat/DESIGN.md +460 -0
  48. package/web/references/squarespace/DESIGN.md +454 -0
  49. package/web/references/ssg/DESIGN.md +439 -0
  50. package/web/references/starling/DESIGN.md +404 -0
  51. package/web/references/taiwanmobile/DESIGN.md +445 -0
  52. package/web/references/trainline/DESIGN.md +454 -0
  53. package/web/references/zoom/DESIGN.md +457 -0
@@ -0,0 +1,431 @@
1
+ ---
2
+ id: openpoint
3
+ name: OPENPOINT
4
+ country: TW
5
+ category: consumer-tech
6
+ homepage: "https://www.openpoint.com.tw"
7
+ primary_color: "#8081ff"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.openpoint.com.tw/cdn/images/openpoint-logo.png"
11
+ verified: "2026-06-22"
12
+ added: "2026-06-22"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: live-extract
16
+ extracted: "2026-06-22"
17
+ note: "primary = brand purple (#8081ff) used for CTAs, links, borders; teal (#0abbb5) for dates/accent underlines; lavender (#cf7ffa) for premium gradient; 7-ELEVEN red (#e60012) for cookie/alert banner. White (#ffffff) canvas, light-grey (#f3f3f3) card text areas."
18
+ colors:
19
+ primary: "#8081ff"
20
+ teal: "#0abbb5"
21
+ lavender: "#cf7ffa"
22
+ lavender-mid: "#a77bca"
23
+ muted-purple: "#9696ad"
24
+ dark-navy: "#48484e"
25
+ error-red: "#e60012"
26
+ canvas: "#ffffff"
27
+ surface: "#f3f3f3"
28
+ surface-light: "#eeeef5"
29
+ surface-lavender: "#f5f2ff"
30
+ on-primary: "#ffffff"
31
+ ink: "#000000"
32
+ placeholder: "#cccccc"
33
+ typography:
34
+ family: { display: "Noto Sans TC", body: "微軟正黑體, 新細明體, 蘋果儷黑體, Arial, Helvetica" }
35
+ h1: { size: 28.8, weight: 700, lineHeight: 1.5, use: "Page-level heading, OPENPOINT優惠活動" }
36
+ h2: { size: 22.4, weight: 700, lineHeight: 1.5, use: "Section headings, OPENPOINT推薦/累積點數" }
37
+ h3: { size: 19.2, weight: 700, lineHeight: 1.5, use: "Sub-section headings" }
38
+ body: { size: 16, weight: 400, lineHeight: 1.5, use: "Body text, event cards, nav items" }
39
+ label: { size: 16, weight: 900, lineHeight: 1, use: "Navigation labels, CTA, event-btn" }
40
+ small: { size: 12, weight: 400, use: "Metadata, captions" }
41
+ spacing: { xs: 8, sm: 16, md: 24, base: 16, lg: 40, xl: 48, section: 64 }
42
+ rounded: { sm: 0, md: 8, lg: 50, full: 9999 }
43
+ shadow:
44
+ card: "rgba(0, 0, 0, 0.16) 2px 2px 5px 0px"
45
+ card-hover: "rgba(0, 0, 0, 0.2) 4px 4px 8px 0px"
46
+ components:
47
+ button-primary: { type: button, bg: "#8081ff", fg: "#ffffff", radius: "8px", padding: "10px 15px", font: "16px / 900 Noto Sans TC", use: "Primary CTA in nav dropdown" }
48
+ button-cta: { type: button, fg: "#000000", radius: "0px", padding: "8px 24px", font: "16px / 900 微軟正黑體", use: "Event section see-more link" }
49
+ event-card: { type: card, bg: "#ffffff", radius: "0px", shadow: "rgba(0, 0, 0, 0.16) 2px 2px 5px 0px", use: "Promotion/event listing card" }
50
+ card-text: { type: card, bg: "#f3f3f3", radius: "0px", padding: "16px", use: "Event date+description text area below image" }
51
+ badge-teal: { type: badge, fg: "#0abbb5", radius: "0px", font: "16px / 900 微軟正黑體", use: "Event date labels (.date class)" }
52
+ nav-link: { type: tab, fg: "#000000", font: "16px / 900 微軟正黑體", use: "Top nav category link", active: "text #8081ff underline" }
53
+ dropdown-item: { type: listItem, fg: "#ffffff", radius: "8px", padding: "10px 15px", font: "16px / 900 Noto Sans TC", use: "Nav dropdown sub-menu links" }
54
+ input-default: { type: input, fg: "#000000", border: "1px solid #8081ff", radius: "8px", font: "16px 微軟正黑體", use: "Member center form fields", focus: "border #8081ff" }
55
+ gradient-badge: { type: badge, bg: "linear-gradient(to right, #cf7ffa, #8081ff)", fg: "#ffffff", radius: "0px", use: "Premium/points gradient accent" }
56
+ components_harvested: true
57
+ ---
58
+
59
+ # Design System Inspiration of OPENPOINT
60
+
61
+ ## 1. Visual Theme & Atmosphere
62
+
63
+ OPENPOINT (統一超商紅利點數平台) is Taiwan's dominant retail loyalty and payment ecosystem, operated by President Chain Store (統一超商股份有限公司), the parent company of Taiwan's 7-ELEVEN network. Its web presence lands in a clean white (`#ffffff`) canvas with a signature dual-tone palette of electric purple (`#8081ff`) and warm lavender (`#cf7ffa`) that together define a cheerful, accessible loyalty-program aesthetic — one that says "earn and redeem" rather than "premium fintech." The teal accent (`#0abbb5`) punctuates dates and key dividers, adding a fresh, approachable warmth.
64
+
65
+ The typeface stack leads with **Noto Sans TC** for input/interactive elements (set at `font-family: "Noto Sans TC", "Open Sans", Arial, "Microsoft JhengHei"` in the stylesheet) and falls back to the traditional Taiwanese web stack: 微軟正黑體 (Microsoft JhengHei), 新細明體, 蘋果儷黑體 — reflecting a broad-compatibility, Traditional Chinese–first approach. Body text runs at a comfortable 16px / weight 400 with 1.5× line height. Navigation and CTA labels use weight 900 for strong, punchy micro-copy.
66
+
67
+ What makes OPENPOINT's design identity distinctive is the **purple–lavender gradient** (`#cf7ffa` → `#8081ff`) used across interactive states, member features, and premium tiers. This gradient doesn't appear in the physical 7-ELEVEN brand (which uses orange-and-green) but is the OPENPOINT app-native identity — a deliberate visual separation between the points platform and the convenience-store parent. The loyalty surface feels lighter, more app-first. Cards use a subtle drop-shadow (`rgba(0,0,0,0.16) 2px 2px 5px`) rather than flat tints for event separation, and the layout leans heavily on image-led promotion cards.
68
+
69
+ **Key Characteristics:**
70
+ - Purple-to-lavender gradient (`#cf7ffa` → `#8081ff`) as the primary brand axis
71
+ - Teal (`#0abbb5`) for date labels and accent underlines — energetic, calendar-forward
72
+ - White canvas with light grey (`#f3f3f3`) for card text areas — clean, informational
73
+ - Noto Sans TC / 微軟正黑體 — Traditional Chinese–first font stack
74
+ - Weight 900 for all interactive labels (nav, CTAs) — bold, accessible, tap-friendly
75
+ - Drop-shadow cards (not flat tints) for event and promotion listings
76
+ - 7-ELEVEN red (`#e60012`) strictly limited to compliance banners and alerts
77
+ - Dropdown navigation reveals lavender-to-purple sub-menus on hover
78
+
79
+ ## 2. Color Palette & Roles
80
+
81
+ ### Primary Brand
82
+ - **OPENPOINT Purple** (`#8081ff`): Primary brand color, CTA buttons, links, active nav states, borders, form field focus rings. The core interactive color throughout the platform.
83
+ - **Gradient Start (Lavender)** (`#cf7ffa`): Left/top of the purple-lavender gradient. Used in premium points features, gradient badges, selected-state highlights.
84
+ - **Gradient Mid** (`#a77bca`): Mid-range purple used for gradient backgrounds and disabled-state overlays.
85
+
86
+ ### Accent & Status
87
+ - **OPENPOINT Teal** (`#0abbb5`): Event date labels (`.date` class) and accent underlines (`.event_page .description` bottom border). A fresh counterpoint to the purple primary.
88
+ - **7-ELEVEN Red** (`#e60012`): Cookie-consent banner background, alert and warning indicators. Parent brand heritage color — intentionally quarantined from the rewards UI.
89
+ - **Muted Purple** (`#9696ad`): Disabled button states, secondary interactive elements.
90
+
91
+ ### Neutral & Surface
92
+ - **Pure White** (`#ffffff`): Page canvas, card faces, text on dark/purple backgrounds.
93
+ - **Light Grey** (`#f3f3f3`): Event card text area background (`.event-text`). Also the footer.
94
+ - **Surface Light** (`#eeeef5`): Faint purple-tinted surface used in member forms.
95
+ - **Surface Lavender** (`#f5f2ff`): Lightest lavender tint for subtle section highlights.
96
+ - **Dark Navy** (`#48484e`): Applied to overlay backgrounds and secondary UI chrome.
97
+ - **Ink Black** (`#000000`): Primary text, headings, event-btn label.
98
+ - **Placeholder** (`#cccccc`): Form input placeholder text.
99
+
100
+ ## 3. Typography Rules
101
+
102
+ ### Font Family
103
+ - **Primary (Traditional Chinese + Latin)**: `"Noto Sans TC", "Open Sans", Arial, "Microsoft JhengHei", "Apple LiGothic Medium", sans-serif` — applied to input/button/select elements.
104
+ - **Body default**: `微軟正黑體 (Microsoft JhengHei), 新細明體, 蘋果儷黑體, Arial, Helvetica, sans-serif` — broad Taiwanese Windows/macOS compatibility.
105
+
106
+ ### Hierarchy
107
+
108
+ | Role | Family | Size | Weight | Line Height | Notes |
109
+ |------|--------|------|--------|-------------|-------|
110
+ | H1 (Page) | 微軟正黑體 | 28.8px (1.8em) | 700 | 1.5 | Hero section headings |
111
+ | H2 (Section) | 微軟正黑體 | 22.4px (1.4em) | 700 | 1.5 | Event category titles |
112
+ | H3 | 微軟正黑體 | 19.2px (1.2em) | 700 | 1.5 | Sub-section heads |
113
+ | Body | 微軟正黑體 | 16px | 400 | 1.5 | Card descriptions, metadata |
114
+ | Nav / CTA Label | 微軟正黑體 | 16px | 900 | 1 | Navigation items, event-btn |
115
+ | Caption | 微軟正黑體 | 12px | 400 | — | Fine print, legal |
116
+
117
+ ### Principles
118
+ - **Weight 900 for action text**: Nav, CTAs, and event-btn links all run at font-weight 900 — visually declaring tap zones in a dense, touch-first layout.
119
+ - **Traditional Chinese–first stack**: The web falls back gracefully from Noto Sans TC to 微軟正黑體, ensuring correct rendering on both modern and legacy Taiwanese devices.
120
+ - **Body is functional**: No display fonts, no tight tracking. Copy is meant to be read quickly — a loyalty platform where users scan promotions, not read essays.
121
+ - **Size stays conservative**: H1 at 28.8px, H2 at 22.4px — modest at desktop, comfortable on mobile.
122
+
123
+ ## 4. Component Stylings
124
+
125
+ ### Buttons
126
+
127
+ **Primary (Nav Dropdown CTA)**
128
+ - Background: `#8081ff`
129
+ - Text: `#ffffff`
130
+ - Radius: 8px
131
+ - Padding: 10px 15px
132
+ - Font: 16px / 900 Noto Sans TC
133
+ - Height: 38px
134
+ - Use: Sub-navigation items displayed as pill-like anchor buttons
135
+
136
+ **Event See-More Link**
137
+ - Text: `#000000`
138
+ - Padding: 8px 24px
139
+ - Font: 16px / 900 微軟正黑體
140
+ - Height: 33px
141
+ - Use: "查看更多優惠" (See more promotions) link-styled CTA
142
+
143
+ **Disabled / Secondary (Muted Purple)**
144
+ - Background: `#9696ad`
145
+ - Text: `#ffffff`
146
+ - Use: Disabled or deactivated action states
147
+
148
+ **Gradient Button (Premium)**
149
+ - Background: linear-gradient(to right, `#cf7ffa`, `#8081ff`)
150
+ - Text: `#ffffff`
151
+ - Use: Premium feature access buttons, member upgrade CTAs
152
+
153
+ ### Cards & Containers
154
+
155
+ **Event Card**
156
+ - Background: `#ffffff`
157
+ - Shadow: `rgba(0, 0, 0, 0.16) 2px 2px 5px 0px`
158
+ - Hover Shadow: `rgba(0, 0, 0, 0.2) 4px 4px 8px 0px`
159
+ - Radius: 0px (sharp corners)
160
+ - Use: Promotion/event listing cards; image fills 48% height, text area below
161
+
162
+ **Event Text Area**
163
+ - Background: `#f3f3f3`
164
+ - Padding: 16px
165
+ - Use: Below event card image — shows date + title + description
166
+
167
+ **Member Form Surface**
168
+ - Background: `#eeeef5`
169
+ - Use: Read-only field backgrounds, faint purple-tinted input areas
170
+
171
+ ### Inputs & Forms
172
+
173
+ **Default**
174
+ - Border: 1px solid `#8081ff`
175
+ - Radius: 8px
176
+ - Text: `#000000`
177
+ - Placeholder: `#cccccc`
178
+ - Font: 16px 微軟正黑體 / Noto Sans TC
179
+ - Focus: border `#8081ff` (maintained, no shift)
180
+ - Use: Member center login/register forms
181
+
182
+ ### Badges & Tags
183
+
184
+ **Date Badge (Teal)**
185
+ - Text: `#0abbb5`
186
+ - Font: 16px / 900 微軟正黑體
187
+ - Use: Event dates in card listings, e.g. "活動時間:2026/01/01–06/30"
188
+
189
+ **Gradient Accent Badge**
190
+ - Background: linear-gradient(to right, `#cf7ffa`, `#8081ff`)
191
+ - Text: `#ffffff`
192
+ - Use: Points highlights and premium feature labels
193
+
194
+ **Muted Badge**
195
+ - Background: `#9696ad`
196
+ - Text: `#ffffff`
197
+ - Use: Neutral/inactive status indicators
198
+
199
+ ### Navigation
200
+
201
+ **Top Nav Category Link**
202
+ - Text: `#000000`
203
+ - Font: 16px / 900 微軟正黑體
204
+ - Active: `#8081ff` text
205
+ - Use: Horizontal nav top-level items ("優惠活動", "點數交換", "旅遊集點護照")
206
+
207
+ **Dropdown Sub-Item**
208
+ - Text: `#ffffff`
209
+ - Radius: 8px
210
+ - Padding: 10px 15px
211
+ - Font: 16px / 900 Noto Sans TC
212
+ - Use: Dropdown menu items on hover ("OPENPOINT推薦", "累積點數", "兌換點數")
213
+
214
+ ---
215
+
216
+ **Verified:** 2026-06-22 (omd:add-reference CREATE — Tier 1 live inspect)
217
+ **Tier 1 sources:** https://www.openpoint.com.tw, https://www.openpoint.com.tw/cdn/css/style.css
218
+ **Tier 2 sources:** getdesign.md/openpoint (404 — not listed) | styles.refero.design/?q=openpoint (0 matches)
219
+ **Conflicts unresolved:** none
220
+
221
+ ## 5. Layout Principles
222
+
223
+ ### Spacing System
224
+ - Base unit: 16px
225
+ - Scale: 8px, 16px, 24px, 40px, 48px, 64px
226
+ - Event cards padded at 16px; event-btn at 8px 24px
227
+ - Section titles use 40px vertical margin
228
+
229
+ ### Grid & Container
230
+ - Max-width 1200px centered container
231
+ - Homepage uses a full-width hero carousel (slick-slider) with 0.3 opacity on non-active slides
232
+ - Event cards arranged in 3-column grid at desktop (≥1200px); single column on mobile
233
+ - Footer: centered single-column, `#f3f3f3` background, 147px height
234
+
235
+ ### Whitespace Philosophy
236
+ - **Generous section spacing**: 40px margins around event-title banners
237
+ - **Tight cards**: event cards pack image + text compactly with minimal internal whitespace
238
+ - **Full-width bands**: hero carousel and event-title banners span the full viewport
239
+ - **No padding on carousel list**: `padding: 0px 150px` on desktop gives the panoramic parallax feel
240
+
241
+ ### Border Radius Scale
242
+ - Zero (0px): event cards, image containers, most content blocks — blunt, functional
243
+ - Small (8px): nav dropdown items, form inputs — the primary interactive radius
244
+ - Large (50px+): rarely used decorative elements
245
+
246
+ ## 6. Depth & Elevation
247
+
248
+ | Level | Treatment | Use |
249
+ |-------|-----------|-----|
250
+ | Flat (0) | No shadow | Page canvas, nav header, footers |
251
+ | Card (1) | `rgba(0,0,0,0.16) 2px 2px 5px` | Event and promotion listing cards |
252
+ | Card Hover (2) | `rgba(0,0,0,0.20) 4px 4px 8px` | Card hover state — subtle lift |
253
+ | Overlay | `rgba(0,0,0,0.8–0.9)` | Modal overlays, loading screen |
254
+
255
+ **Shadow Philosophy**: OPENPOINT uses light drop-shadows (not flat tints) on cards, giving the event listings a magazine-like raised quality. The shadow is warm-neutral (black, not blue-tinted), keeping the feel casual and approachable. Loading states use a near-opaque black overlay (`rgba(0,0,0,0.9)`) with an SVG spinner — keeping the experience clean while content loads.
256
+
257
+ ## 7. Do's and Don'ts
258
+
259
+ ### Do
260
+ - Use purple (`#8081ff`) for all primary CTAs, links, and active states
261
+ - Apply teal (`#0abbb5`) for date labels and fresh accent underlines
262
+ - Use the lavender-to-purple gradient (`#cf7ffa` → `#8081ff`) for premium features
263
+ - Set nav and CTA labels at font-weight 900 for clear tap targets
264
+ - Keep card corners sharp (0px radius) to maintain the magazine-grid aesthetic
265
+ - Use `#f3f3f3` for card text area backgrounds — soft, readable separation
266
+ - Limit red (`#e60012`) to system alerts and compliance banners only
267
+
268
+ ### Don't
269
+ - Spread 7-ELEVEN red (`#e60012`) into brand UI — it belongs to alerts only
270
+ - Use drop shadows heavier than the card-standard `2px 2px 5px` on content
271
+ - Apply Noto Sans TC at weights below 400 — the TC hinting requires standard weight
272
+ - Mix orange or green (7-ELEVEN store palette) into the OPENPOINT digital surface
273
+ - Round card corners — the sharp edge is part of the information-dense grid language
274
+ - Use the gradient on text — only as a background fill
275
+ - Replace teal with generic grey for dates — teal is the calendar/time signal
276
+
277
+ ## 8. Responsive Behavior
278
+
279
+ ### Breakpoints
280
+ | Name | Width | Key Changes |
281
+ |------|-------|-------------|
282
+ | Mobile | <1199.98px | Single-column event cards, carousel fills full width (no 150px padding), font-size 16px base |
283
+ | Desktop | ≥1200px | 3-column event grid, carousel with 150px side padding creating parallax, 1200px max-width container |
284
+
285
+ ### Touch Targets
286
+ - Dropdown nav items at 38px height, 8px radius — comfortable thumb targets
287
+ - Event-btn at 33px height with 24px horizontal padding
288
+ - Event cards at 247px height — generous touch/click area
289
+
290
+ ### Collapsing Strategy
291
+ - Hero carousel: full-width on both sizes; padding removed on mobile
292
+ - Event cards: 3-up desktop → stacked single-column mobile
293
+ - Navigation: horizontal nav hidden; replaced by hamburger/mobile nav menu (m-btn class)
294
+
295
+ ## 9. Agent Prompt Guide
296
+
297
+ ### Quick Color Reference
298
+ - Primary CTA: OPENPOINT Purple (`#8081ff`)
299
+ - Gradient left: Lavender (`#cf7ffa`)
300
+ - Date / Accent: Teal (`#0abbb5`)
301
+ - Text Primary: Ink Black (`#000000`)
302
+ - Card Background: Pure White (`#ffffff`)
303
+ - Card Text Area: Light Grey (`#f3f3f3`)
304
+ - Muted / Disabled: `#9696ad`
305
+ - Alert / 7-ELEVEN: Red (`#e60012`)
306
+
307
+ ### Example Component Prompts
308
+ - "Build a promotion card: white background, no border-radius, shadow `rgba(0,0,0,0.16) 2px 2px 5px`. Image at 48% height, fills full width. Below: #f3f3f3 text area, 16px padding. Date in #0abbb5, weight 900. Title in black #000000, weight 900, 2-line ellipsis."
309
+ - "Create a nav dropdown: dark overlay background. Items as `<a>` with #8081ff background, white text, 8px radius, 10px 15px padding, weight 900. Stack vertically with 4px gap."
310
+ - "Design a gradient accent badge: background `linear-gradient(to right, #cf7ffa, #8081ff)`, white text, weight 700. Use for 'OPENPOINT優惠' labels."
311
+ - "Style a form input: 1px solid #8081ff border, 8px radius, #000 text, Noto Sans TC 16px, placeholder #ccc."
312
+
313
+ ### Iteration Guide
314
+ 1. Purple (`#8081ff`) owns all interactions — CTAs, borders, active nav, focus rings
315
+ 2. Teal (`#0abbb5`) marks time — date labels and timeline underlines only
316
+ 3. Gradient (`#cf7ffa` → `#8081ff`) signals premium or selected states
317
+ 4. Cards use sharp corners and gentle shadows — lean into the information-grid feel
318
+ 5. All label/button text at weight 900 — boldness = accessibility at small size
319
+ 6. Keep red (`#e60012`) for alerts; never use orange/green (store palette)
320
+
321
+ ---
322
+
323
+ ## 10. Voice & Tone
324
+
325
+ OPENPOINT's voice is **friendly, reward-focused, and transactional** — the communication style of a loyalty programme that wants users to feel like they're winning every day. The copy is predominantly Traditional Chinese (繁體中文), concise, and action-oriented. Service names like 「OPENPOINT推薦」, 「累積點數」, 「兌換點數」 are plain category labels with zero jargon — the UX copy doesn't try to be clever, it tries to be clear and fast.
326
+
327
+ | Context | Tone |
328
+ |---|---|
329
+ | Nav categories | Factual, minimal: 「優惠活動」 / 「點數交換」 / 「旅遊集點護照」 |
330
+ | Event titles | Specific and time-bracketed: 「活動時間:2026/01/01–06/30」 + product name |
331
+ | CTAs | Direct imperative: 「查看更多優惠」 (See more promotions), 「登入」 (Login) |
332
+ | Footer legal | Compact formality: 「OPENPOINT為統一超商股份有限公司發行之紅利點數業務」 |
333
+ | App download prompts | Benefit-first: highlights points-earning, payment, membership |
334
+
335
+ **Voice samples (verbatim from live homepage 2026-06-22):**
336
+ - "OPENPOINT優惠活動" — page H1 title (clarity over cleverness). *(verified live 2026-06-22)*
337
+ - "查看更多優惠" — event section CTA (direct, lowest-friction). *(verified live 2026-06-22)*
338
+ - "OPENPOINT為統一超商股份有限公司發行之紅利點數業務" — footer brand disclosure. *(verified live 2026-06-22)*
339
+
340
+ **Forbidden register**: hype language, urgency countdown pressure, English mixed into core navigation (aside from brand names like "OPENPOINT" and "icash"), emojis in body copy.
341
+
342
+ ## 11. Brand Narrative
343
+
344
+ OPENPOINT (統一超商紅利點數) was launched by **President Chain Store Corporation (統一超商股份有限公司)** — Taiwan's largest convenience-store operator, running over 6,800 7-ELEVEN locations — as the digital loyalty and payment platform that bridges Taiwan's physical retail-first economy into an app-native consumer experience. The platform unifies in-store point earning (at 7-ELEVEN), payment via icash and icash Pay, and redemption partnerships with airlines, banks, and international loyalty schemes (Japan's Ponta, the Philippines' CLiQQ, Thailand's ALL member).
345
+
346
+ The brand name "OPENPOINT" signals openness — an open ecosystem where points flow beyond a single store chain to partner merchants, credit cards, and travel networks. The OPEN! mascot character (shared with 7-ELEVEN Taiwan's broader brand expression) carries a playful, orange-and-green character identity in physical retail, but OPENPOINT's own digital surface deliberately adopts a distinct purple identity — separating the loyalty app from the store brand, creating a more tech-forward, "smart wallet" perception.
347
+
348
+ The product targets Taiwan's mobile-first consumer who shops at 7-ELEVEN multiple times per week and wants to maximise everyday-spend rewards without friction — a context where the platform's dense information hierarchy and promotions-first homepage make perfect sense.
349
+
350
+ ## 12. Principles
351
+
352
+ 1. **Every visit is a earning opportunity.** OPENPOINT homepage surfaces active promotions before any account features. *UI implication:* promotions carousel is above the fold, member login is secondary; teal dates signal freshness.
353
+ 2. **Open ecosystem, closed visual identity.** The purple-lavender palette is platform-native — distinct from the 7-ELEVEN orange-green store brand. *UI implication:* never import 7-ELEVEN's brand orange into the OPENPOINT UI.
354
+ 3. **Clarity over elegance.** The navigation is a flat category list with no mega-menu or editorial photography. *UI implication:* nav labels are noun-only, no taglines; copy is short and informational.
355
+ 4. **Rewards are visible, not buried.** Points balance, earning events, and redemption options are top-level navigation categories. *UI implication:* 累積點數 / 兌換點數 / 優惠 are first-level nav, not nested in a profile dropdown.
356
+ 5. **Taiwan-first, Asia-connected.** International exchange features (Ponta, CLiQQ, ALL member) are prominent nav items reflecting Taiwan's outbound-travel culture. *UI implication:* travel and exchange features get dedicated nav real estate, not buried in settings.
357
+
358
+ ## 13. Personas
359
+
360
+ *Personas below are fictional archetypes informed by publicly observable OPENPOINT user patterns and Taiwan 7-ELEVEN consumer behaviour, not individual people.*
361
+
362
+ **林雅婷, 32, 台北市.** Office worker who visits 7-ELEVEN two or three times daily. Uses OPENPOINT to earn and track points from every purchase, periodically redeeming for gift certificates or icash top-ups. Values the one-app convenience of seeing balance, recent transactions, and active promotions without needing to log in to multiple systems.
363
+
364
+ **陳建宇, 45, 台中市.** A small business owner who uses icash Pay for supplier transactions and collects points passively. Attracted to the bank-points exchange feature — consolidates points from credit cards into OPENPOINT for travel redemption. Sees the platform as a financial tool, not just a loyalty card.
365
+
366
+ **黃小芸, 22, 高雄市.** University student and frequent traveller. Primarily interested in the Japan Ponta and airline miles exchange features. Uses OPENPOINT's uniopen PRIMA subscription for enhanced earning rates. Engages most with the travel and partner-exchange sections of the app.
367
+
368
+ ## 14. States
369
+
370
+ | State | Treatment |
371
+ |---|---|
372
+ | **Empty (no active promotions)** | White canvas with placeholder text in `#000000`; `#0abbb5` teal date label absent. Section titles still render; single CTA to browse categories. |
373
+ | **Empty (no points balance)** | Member centre shows 0 balance in black ink; prompt to earn displayed in `#8081ff` purple CTA. |
374
+ | **Loading** | Full-viewport overlay `rgba(0,0,0,0.9)` with SVG circle spinner (`.loading-circle`). Fades out with `.loading.fade` class (opacity 0, z-index -1 transition). |
375
+ | **Loading (section data)** | Section title and card grid render; card image areas show background-color placeholder until images load. |
376
+ | **Error (service unavailable)** | Alert banner in `#e60012` red (cookie/system banner pattern), white text. Describes issue and prompts retry — matches the cookie-consent banner component. |
377
+ | **Error (form validation)** | Border shifts to `#e60012` red; placeholder / field-level message below input. Uses Noto Sans TC for readability in Traditional Chinese. |
378
+ | **Success (points earned)** | Points balance increments with brief inline confirmation. Teal (`#0abbb5`) used as positive signal. No celebratory animation — transactional confirmation. |
379
+ | **Skeleton** | Background-color placeholder at card dimensions; no shimmer (static grey `#f3f3f3` blocks). |
380
+ | **Disabled** | Muted purple `#9696ad` background replaces purple `#8081ff`; white text maintained. |
381
+ | **Read-only field** | Background `#ebebе4` (light warm-grey `rgb(235,235,228)`) — distinct from editable `#eeeef5`. |
382
+
383
+ ## 15. Motion & Easing
384
+
385
+ **Durations**:
386
+
387
+ | Token | Value | Use |
388
+ |---|---|---|
389
+ | `motion-fast` | 150ms | Hover states (event-btn arrow, dropdown reveal) |
390
+ | `motion-standard` | 250ms | Card hover shadow transition (`transition: box-shadow 0.25s`) |
391
+ | `motion-image` | 300ms | Event card image scale on hover (`transition: 0.3s ease-out`) |
392
+ | `motion-cookie` | 2000ms | Cookie banner slide (2s cubic-bezier reveal) |
393
+
394
+ **Easings**:
395
+
396
+ | Token | Curve | Use |
397
+ |---|---|---|
398
+ | `ease-image` | `ease-out` | Event card image zoom on hover (`0.3s ease-out`) |
399
+ | `ease-cookie` | `cubic-bezier(0.23, 1, 0.32, 1)` | Cookie consent slide — quick exit, smooth deceleration |
400
+ | `ease-loading-fade` | implicit transition | Loading overlay fade-out with opacity + z-index collapse |
401
+
402
+ **Motion rules**: Motion is conservative and functional. The event card hover uses a scale(1.2) image zoom (`0.3s ease-out`) paired with an elevated shadow — a standard e-commerce pattern that communicates interactivity without distraction. The cookie banner entrance uses a heavy ease-in/out curve, reflecting the legal-compliance character of that surface. Under `prefers-reduced-motion`, image scale transforms should collapse; shadow transitions are safe to retain at reduced magnitude.
403
+
404
+ <!--
405
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
406
+
407
+ Tier 1 live inspect (2026-06-22) via playwright getComputedStyle on https://www.openpoint.com.tw:
408
+ - H1 "OPENPOINT優惠活動": font-family 微軟正黑體; font-size 28.8px; font-weight 700; color rgb(0,0,0)
409
+ - H2 "OPENPOINT推薦": font-size 22.4px; font-weight 700; color rgb(255,255,255) [on bg-image title-bar]
410
+ - Event card date ".date": color rgb(10,187,181) = #0abbb5; font-weight 900
411
+ - Nav dropdown item: color rgb(255,255,255); radius 8px; padding 10px 15px; font 16px weight 900
412
+ - Event-btn "查看更多優惠": color rgb(0,0,0); padding 8px 24px; font-weight 900; height 33px
413
+ - Event card (event-item): bg rgb(255,255,255); shadow rgba(0,0,0,0.16) 2px 2px 5px
414
+ - Event text area (event-text): bg rgb(243,243,243); padding 16px
415
+ - Header: bg rgb(255,255,255); color rgb(0,0,0); height 100px
416
+ - Footer: bg rgb(243,243,243); height 147px
417
+ - CSS: primary #8081ff; lavender #cf7ffa; teal #0abbb5; red #e60012; muted-purple #9696ad
418
+ - CSS: gradient linear-gradient(to right, #cf7ffa, #8081ff) for premium features
419
+ - body font-family: 微軟正黑體, 新細明體, 蘋果儷黑體, Arial, Helvetica, sans-serif
420
+ - input/button font-family: "Noto Sans TC", "Open Sans", Arial, "Microsoft JhengHei"
421
+ - box-shadow card: rgba(0, 0, 0, 0.16) 2px 2px 5px 0px
422
+ - Footer copyright text: "© 2026 UNI-President Chain Store Corporation. All rights reserved."
423
+
424
+ Voice samples (§10) are verbatim from live page innerText (2026-06-22).
425
+
426
+ Brand narrative (§11): President Chain Store Corporation / 統一超商股份有限公司 is the publicly-traded Taiwanese entity operating 7-ELEVEN Taiwan — widely documented public facts.
427
+
428
+ Personas (§13) are fictional archetypes informed by publicly observable OPENPOINT usage patterns (Taiwan 7-ELEVEN loyalty programme customers). Names are illustrative and do not refer to real people.
429
+
430
+ Interpretive claims ("open ecosystem", "purple as digital-native identity") are editorial readings of the brand's observed design choices vs the 7-ELEVEN physical brand palette.
431
+ -->