oh-my-design-cli 1.0.2 → 1.2.0
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.
- package/README.ja.md +7 -7
- package/README.ko.md +7 -7
- package/README.md +15 -18
- package/README.zh-TW.md +7 -7
- package/agents/omd-ux-writer.md +1 -1
- package/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +189 -0
- package/data/reference-audits/2026-05-13-kr10.md +132 -0
- package/data/reference-fingerprints.json +626 -3
- package/data/reference-tags.md +15 -1
- package/package.json +2 -2
- package/skills/omd-apply/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +3 -3
- package/skills/omd-init/SKILL.md +2 -2
- package/web/AGENTS.md +5 -0
- package/web/references/29cm/DESIGN.md +445 -0
- package/web/references/ably/DESIGN.md +582 -0
- package/{references → web/references}/airbnb/DESIGN.md +158 -19
- package/web/references/airtable/DESIGN.md +241 -0
- package/{references → web/references}/apple/DESIGN.md +131 -76
- package/web/references/baemin/DESIGN.md +470 -0
- package/web/references/banksalad/DESIGN.md +606 -0
- package/{references → web/references}/bmw/DESIGN.md +138 -9
- package/{references → web/references}/cal/DESIGN.md +173 -17
- package/{references → web/references}/claude/DESIGN.md +11 -1
- package/{references → web/references}/clay/DESIGN.md +75 -0
- package/{references → web/references}/clickhouse/DESIGN.md +74 -0
- package/{references → web/references}/cohere/DESIGN.md +75 -0
- package/web/references/coinbase/DESIGN.md +205 -0
- package/{references → web/references}/composio/DESIGN.md +74 -0
- package/web/references/coupang/DESIGN.md +487 -0
- package/{references → web/references}/cursor/DESIGN.md +74 -0
- package/web/references/dcard/DESIGN.md +567 -0
- package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
- package/{references → web/references}/expo/DESIGN.md +72 -0
- package/{references → web/references}/ferrari/DESIGN.md +72 -0
- package/{references → web/references}/figma/DESIGN.md +124 -48
- package/{references → web/references}/framer/DESIGN.md +143 -16
- package/web/references/freee/DESIGN.md +558 -0
- package/web/references/gangnamunni/DESIGN.md +605 -0
- package/{references → web/references}/hashicorp/DESIGN.md +72 -0
- package/{references → web/references}/ibm/DESIGN.md +68 -0
- package/{references → web/references}/intercom/DESIGN.md +73 -0
- package/web/references/kakao/DESIGN.md +490 -0
- package/web/references/kakaobank/DESIGN.md +533 -0
- package/web/references/kakaopay/DESIGN.md +529 -0
- package/web/references/karrot/DESIGN.md +431 -0
- package/web/references/kraken/DESIGN.md +219 -0
- package/web/references/krds/DESIGN.md +982 -0
- package/web/references/kurly/DESIGN.md +574 -0
- package/{references → web/references}/lamborghini/DESIGN.md +74 -0
- package/{references → web/references}/line/DESIGN.md +84 -43
- package/{references → web/references}/linear.app/DESIGN.md +8 -1
- package/{references → web/references}/lovable/DESIGN.md +73 -0
- package/web/references/mercari/DESIGN.md +464 -0
- package/{references → web/references}/minimax/DESIGN.md +72 -0
- package/{references → web/references}/mintlify/DESIGN.md +72 -0
- package/web/references/miro/DESIGN.md +252 -0
- package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
- package/{references → web/references}/mongodb/DESIGN.md +72 -0
- package/web/references/musinsa/DESIGN.md +536 -0
- package/web/references/naver/DESIGN.md +518 -0
- package/{references → web/references}/notion/DESIGN.md +9 -1
- package/web/references/nvidia/DESIGN.md +491 -0
- package/web/references/ohouse/DESIGN.md +570 -0
- package/{references → web/references}/ollama/DESIGN.md +72 -0
- package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
- package/web/references/pinkoi/DESIGN.md +575 -0
- package/{references → web/references}/pinterest/DESIGN.md +73 -0
- package/{references → web/references}/posthog/DESIGN.md +172 -18
- package/web/references/qanda/DESIGN.md +459 -0
- package/{references → web/references}/raycast/DESIGN.md +169 -34
- package/web/references/remember/DESIGN.md +445 -0
- package/{references → web/references}/renault/DESIGN.md +72 -0
- package/{references → web/references}/replicate/DESIGN.md +73 -0
- package/{references → web/references}/resend/DESIGN.md +73 -0
- package/{references → web/references}/revolut/DESIGN.md +74 -0
- package/web/references/ridi/DESIGN.md +517 -0
- package/{references → web/references}/runwayml/DESIGN.md +152 -24
- package/{references → web/references}/sanity/DESIGN.md +72 -0
- package/{references → web/references}/sentry/DESIGN.md +73 -0
- package/web/references/socar/DESIGN.md +370 -0
- package/web/references/spacex/DESIGN.md +379 -0
- package/web/references/spotify/DESIGN.md +426 -0
- package/{references → web/references}/stripe/DESIGN.md +44 -1
- package/{references → web/references}/supabase/DESIGN.md +73 -0
- package/{references → web/references}/superhuman/DESIGN.md +159 -17
- package/{references → web/references}/tesla/DESIGN.md +170 -0
- package/{references → web/references}/together.ai/DESIGN.md +73 -0
- package/{references → web/references}/toss/DESIGN.md +304 -50
- package/{references → web/references}/uber/DESIGN.md +73 -0
- package/{references → web/references}/vercel/DESIGN.md +9 -1
- package/{references → web/references}/voltagent/DESIGN.md +73 -0
- package/web/references/wanted/DESIGN.md +515 -0
- package/{references → web/references}/warp/DESIGN.md +142 -15
- package/web/references/webflow/DESIGN.md +253 -0
- package/{references → web/references}/wise/DESIGN.md +84 -0
- package/{references → web/references}/x.ai/DESIGN.md +85 -0
- package/web/references/yanolja/DESIGN.md +448 -0
- package/web/references/yeogiotte/DESIGN.md +424 -0
- package/{references → web/references}/zapier/DESIGN.md +85 -0
- package/web/references/zigbang/DESIGN.md +457 -0
- package/web/references/zigzag/DESIGN.md +618 -0
- package/references/airtable/DESIGN.md +0 -107
- package/references/baemin/DESIGN.md +0 -260
- package/references/coinbase/DESIGN.md +0 -129
- package/references/dcard/DESIGN.md +0 -302
- package/references/freee/DESIGN.md +0 -308
- package/references/kakao/DESIGN.md +0 -261
- package/references/karrot/DESIGN.md +0 -252
- package/references/kraken/DESIGN.md +0 -146
- package/references/mercari/DESIGN.md +0 -294
- package/references/miro/DESIGN.md +0 -108
- package/references/nvidia/DESIGN.md +0 -308
- package/references/pinkoi/DESIGN.md +0 -309
- package/references/spacex/DESIGN.md +0 -205
- package/references/spotify/DESIGN.md +0 -246
- package/references/webflow/DESIGN.md +0 -109
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
---
|
|
2
|
+
omd: 0.1
|
|
3
|
+
brand: QANDA
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design System Inspiration of QANDA (콴다)
|
|
7
|
+
|
|
8
|
+
## 1. Visual Theme & Atmosphere
|
|
9
|
+
|
|
10
|
+
QANDA's interface is the digital equivalent of a clean study desk lit by a single warm lamp -- focused, friendly, and built for the moment a student stares at a problem they cannot solve. The page opens on a near-white canvas (`#FFFFFF` / `#F9F9F9`) with charcoal headings (`#222222`) and a single saturated **QANDA Orange** (`#FF5500`) that the brand treats as its core energy color. This is not the trustworthy orange of a marketplace; it is the high-energy, attention-pulling orange of a highlighter pen on a math worksheet -- the color a student reaches for when something *matters*.
|
|
11
|
+
|
|
12
|
+
The aesthetic across both consumer (`qanda.ai`) and corporate (`mathpresso.com`) surfaces is **mobile-first edutech minimalism**: a light surface with generous whitespace, a single bold accent, and the iconic camera/upload affordance presented at the center of the conversation. Typography rides on the **Pretendard family** (Pretendard Std on KR, Pretendard JP on JP, Pretendard Variable on web) because the product is multilingual by design -- Korean, Japanese, Vietnamese, Indonesian, Thai, English, and Spanish all need to look native, not translated. Components are pill-shaped (`35px` chip radius, `8px` button radius, `24px` card radius) and lean youthful without becoming cartoonish.
|
|
13
|
+
|
|
14
|
+
**Key Characteristics:**
|
|
15
|
+
- QANDA Orange (`#FF5500`) as the dominant brand accent -- saturated, energetic, never muted
|
|
16
|
+
- Pretendard family across all locales (Pretendard Std / Pretendard JP / Pretendard Variable) for multilingual parity
|
|
17
|
+
- Light-first surfaces (`#FFFFFF` page, `#F9F9F9` chip fill, `#F0F0F0` divider)
|
|
18
|
+
- Charcoal text hierarchy (`#222222` heading → `#5D5D5D` body → `#999999` caption)
|
|
19
|
+
- Camera/image-upload CTA elevated to hero position -- the photo-to-solution loop is the product
|
|
20
|
+
- Pill-and-rounded geometry: `8px` buttons, `24px` cards, `35px` chips, `9999px` avatars
|
|
21
|
+
- 16px base type for all primary actions -- equal-weight friendliness, no aggressive type hierarchy
|
|
22
|
+
- Two canonical surfaces: consumer (cool-gray, conversational) and corporate (warm taupe, narrative)
|
|
23
|
+
|
|
24
|
+
## 2. Color Palette & Roles
|
|
25
|
+
|
|
26
|
+
### Primary
|
|
27
|
+
- **QANDA Orange** (`#FF5500`): Brand solid, hero highlights, badge fills, primary energy mark. Top-occurrence color across both surfaces (269 uses on qanda.ai/ko, 21 on mathpresso.com/ko). The single non-negotiable brand pigment.
|
|
28
|
+
- **Charcoal 900** (`#222222`): Primary heading and body text on light surfaces. Avoids the harshness of pure black while staying authoritative.
|
|
29
|
+
- **Charcoal 700** (`#3D3D3D`): Dark CTA fill ("시작하기" / Get started button) -- the brand uses charcoal, not orange, for its primary action button on consumer surfaces.
|
|
30
|
+
- **Pure White** (`#FFFFFF`): Page background, primary surface.
|
|
31
|
+
|
|
32
|
+
### Neutral Scale (consumer / qanda.ai)
|
|
33
|
+
- **Gray 050** (`#F9F9F9`): Chip fill, secondary card surface.
|
|
34
|
+
- **Gray 100** (`#F0F0F0`): Subtle divider, muted background.
|
|
35
|
+
- **Gray 400** (`#B5B5B5`): Disabled stroke, weakest neutral.
|
|
36
|
+
- **Gray 500** (`#999999`): Inactive nav label, placeholder text.
|
|
37
|
+
- **Gray 700** (`#5D5D5D`): Footer body text, secondary information.
|
|
38
|
+
|
|
39
|
+
### Warm Stone Scale (corporate / mathpresso.com)
|
|
40
|
+
- **Stone Background** (`#F6F4F2`): Corporate page background, warmer than consumer #F9F9F9.
|
|
41
|
+
- **Stone 100** (`#EFEFEF`): Section dividers on corporate surfaces.
|
|
42
|
+
- **Stone 200** (`#D4CECB`): Soft borders in narrative sections.
|
|
43
|
+
- **Stone 600** (`#9A9492`): Secondary corporate body (most-used corporate text color, 113 occurrences).
|
|
44
|
+
- **Stone 700** (`#78716E`): Tertiary metadata.
|
|
45
|
+
- **Stone 800** (`#665C57`): Body text on stone background.
|
|
46
|
+
- **Stone 900** (`#111111`): Corporate near-black headings.
|
|
47
|
+
|
|
48
|
+
### Semantic
|
|
49
|
+
- **Positive Green** (`#0D9974`): Success states, correct-answer indicators on solution review screens.
|
|
50
|
+
- **Positive Tint** (`#ECF7F4`): Success background fill, light affirmation.
|
|
51
|
+
|
|
52
|
+
### Surface & Borders
|
|
53
|
+
- Border default: `#F0F0F0` (consumer) / `#EFEFEF` (corporate)
|
|
54
|
+
- Disabled fill: `#F9F9F9`
|
|
55
|
+
|
|
56
|
+
## 3. Typography Rules
|
|
57
|
+
|
|
58
|
+
### Font Family
|
|
59
|
+
- **Consumer (qanda.ai)**: `"Pretendard Std", "Pretendard JP", Pretendard, system-ui, sans-serif`
|
|
60
|
+
- **Corporate (mathpresso.com)**: `"Pretendard Std Variable", "Pretendard JP Variable", "Pretendard Variable", system-ui, sans-serif`
|
|
61
|
+
- **Design Principle**: Pretendard's regional variants (KR Std, JP) are loaded explicitly so Korean and Japanese surfaces render with locale-correct metrics. The product ships in 7 languages -- typography must look native in each, not transliterated.
|
|
62
|
+
|
|
63
|
+
### Hierarchy
|
|
64
|
+
|
|
65
|
+
| Role | Font | Size | Weight | Notes |
|
|
66
|
+
|------|------|------|--------|-------|
|
|
67
|
+
| Hero Heading | Pretendard | 28-32px | 700 | "전 과목 문제 풀이, 더 쉽고 정확하게" — single-line bold KR statement |
|
|
68
|
+
| Section Heading | Pretendard | 20-24px | 600 | Feature card titles ("풀이 첨삭", "선생님 Q&A") |
|
|
69
|
+
| Body / Primary Action | Pretendard | 16px | 400 | All buttons, nav items, body copy -- equal-weight friendliness |
|
|
70
|
+
| Body Small | Pretendard | 14px | 400 | Footer links, helper copy |
|
|
71
|
+
| Caption | Pretendard | 13px | 400 | Footer regulatory/legal text |
|
|
72
|
+
| Metadata | Pretendard | 12px | 400 | Timestamps, badges |
|
|
73
|
+
|
|
74
|
+
### Principles
|
|
75
|
+
- **16px is the universal floor for interactive text.** Buttons, nav, and primary copy all use 16px regular weight. The brand intentionally avoids tight micro-hierarchy on actions -- everything actionable looks equally tappable.
|
|
76
|
+
- **Three weights only**: Regular (400), Semibold (600), Bold (700). No light or extra-bold.
|
|
77
|
+
- **Korean-first line-height generosity**: Body text uses ~1.5 line-height to accommodate Hangul descenders without crowding.
|
|
78
|
+
- **No display tracking experiments**: Letter-spacing stays at 0em across the system. Korean and CJK glyphs require generous default tracking that custom values would break.
|
|
79
|
+
|
|
80
|
+
## 4. Component Stylings
|
|
81
|
+
|
|
82
|
+
### Buttons
|
|
83
|
+
|
|
84
|
+
**Primary Solid (Charcoal CTA)**
|
|
85
|
+
- Background: `#3D3D3D` (charcoal-700)
|
|
86
|
+
- Text: `#F9F9F9` (off-white)
|
|
87
|
+
- Radius: `8px`
|
|
88
|
+
- Min-height: `36px` (compact) / `40-48px` (standard)
|
|
89
|
+
- Font: 16px weight 400
|
|
90
|
+
- Use: Primary navigation actions ("시작하기", "Get started"). The brand uses charcoal -- not orange -- for its main CTA, reserving orange for highlight/energy moments.
|
|
91
|
+
|
|
92
|
+
**Pill (New question / chip-style action)**
|
|
93
|
+
- Background: `#F9F9F9` (gray-050)
|
|
94
|
+
- Text: `#222222` (charcoal-900)
|
|
95
|
+
- Radius: `35px` (pill)
|
|
96
|
+
- Min-height: `42px`
|
|
97
|
+
- Padding: 16px horizontal
|
|
98
|
+
- Use: Conversation re-entry ("새 질문" / "New question") in the persistent left rail.
|
|
99
|
+
|
|
100
|
+
**Image-Upload / Camera CTA (signature)**
|
|
101
|
+
- Circular icon button anchored to the input row
|
|
102
|
+
- Background: transparent or `#F9F9F9`
|
|
103
|
+
- Icon: camera glyph in `#222222` charcoal
|
|
104
|
+
- Size: 44px hit-target minimum
|
|
105
|
+
- Use: The defining QANDA gesture -- tap to photograph a math problem. This affordance must be visible without scrolling on every surface where students ask questions.
|
|
106
|
+
|
|
107
|
+
**Brand Accent Pill (orange highlight)**
|
|
108
|
+
- Background: `#FF5500` or transparent with `#FF5500` text
|
|
109
|
+
- Radius: `9999px` (pill)
|
|
110
|
+
- Use: Promotional badges, "NEW" markers, premium upsell flags. Sparingly on conversation surfaces.
|
|
111
|
+
|
|
112
|
+
**Tertiary / Text**
|
|
113
|
+
- Background: transparent
|
|
114
|
+
- Text: `#222222` (active) / `#999999` (inactive)
|
|
115
|
+
- Use: Nav links ("홈", "대화 기록", "학습 콘텐츠"). Active state is implied by color contrast, not background fill.
|
|
116
|
+
|
|
117
|
+
### Cards & Containers
|
|
118
|
+
- Background: `#FFFFFF` or `#F9F9F9`
|
|
119
|
+
- Border: `1px solid #F0F0F0` or no border
|
|
120
|
+
- Radius: `24px` for feature cards, `16px` for content blocks, `12px` for compact tiles
|
|
121
|
+
- Shadow: minimal -- `0 1px 4px rgba(0,0,0,0.04)` for floating cards; flat for inline
|
|
122
|
+
|
|
123
|
+
### Chips & Tags
|
|
124
|
+
- Background: `#F9F9F9` (default) or `#FF5500` (brand accent)
|
|
125
|
+
- Text: `#222222` on neutral, `#FFFFFF` on orange
|
|
126
|
+
- Radius: `35px` (full pill)
|
|
127
|
+
- Height: 32-42px
|
|
128
|
+
- Padding: 12-16px horizontal
|
|
129
|
+
|
|
130
|
+
### Inputs & Conversation Bar
|
|
131
|
+
- Background: `#FFFFFF` with `#F0F0F0` border
|
|
132
|
+
- Radius: `24px` (large pill input on the central conversation surface)
|
|
133
|
+
- Padding: 12px 16px
|
|
134
|
+
- Placeholder: `#999999`
|
|
135
|
+
- Right-side affordances: camera (image upload) icon + send button stacked horizontally
|
|
136
|
+
|
|
137
|
+
### Navigation
|
|
138
|
+
- Left rail (web): white background, vertical stack of icon+label rows at 16px regular
|
|
139
|
+
- Active item: `#222222` text, no background fill
|
|
140
|
+
- Inactive item: `#999999` text
|
|
141
|
+
- Top utility row: "Get started" charcoal pill + "Download" pill + Settings icon
|
|
142
|
+
|
|
143
|
+
## 5. Layout Principles
|
|
144
|
+
|
|
145
|
+
### Spacing System
|
|
146
|
+
- Base unit: 4px
|
|
147
|
+
- Scale: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 56px, 80px
|
|
148
|
+
- Conversation panel gutter: 16-24px
|
|
149
|
+
- Section vertical rhythm (corporate): 80-120px between hero blocks
|
|
150
|
+
|
|
151
|
+
### Grid & Container
|
|
152
|
+
- Mobile: full-width with 16px gutter
|
|
153
|
+
- Web conversation: centered column with ~720px max-width on the message stack
|
|
154
|
+
- Corporate landing: 1280px content max-width, 24px outer gutter
|
|
155
|
+
|
|
156
|
+
### Whitespace Philosophy
|
|
157
|
+
- **Calm, not cramped.** A student opening QANDA should feel a tutor's quiet attention, not a feature-stuffed dashboard. Every screen leads with one question, one input, one action.
|
|
158
|
+
- **The camera affordance breathes.** The image-upload button is never visually crowded; it sits in its own gesture zone with at least 16px of clear space on all sides.
|
|
159
|
+
- **Conversation density.** Past chat threads use tighter 12px row gaps; the active question surface uses 24px+ to feel inviting.
|
|
160
|
+
|
|
161
|
+
### Border Radius Scale
|
|
162
|
+
- Compact (`8px`): Buttons, small inputs
|
|
163
|
+
- Standard (`12px`): Inline tiles
|
|
164
|
+
- Comfortable (`16px`): Content cards
|
|
165
|
+
- Card (`24px`): Feature cards, conversation input bar
|
|
166
|
+
- Pill (`35px` or `9999px`): Chips, "새 질문" button, brand badges
|
|
167
|
+
- Circle (`9999px`): Avatars, camera/icon buttons
|
|
168
|
+
|
|
169
|
+
## 6. Depth & Elevation
|
|
170
|
+
|
|
171
|
+
| Level | Treatment | Use |
|
|
172
|
+
|-------|-----------|-----|
|
|
173
|
+
| Flat (Level 0) | No shadow | Page background, inline content, nav items |
|
|
174
|
+
| Subtle (s1) | `0 1px 4px rgba(0,0,0,0.04)` | Floating cards, hovered tiles |
|
|
175
|
+
| Standard (s2) | `0 4px 16px rgba(0,0,0,0.08)` | Conversation input bar, dropdowns |
|
|
176
|
+
| Prominent (s3) | `0 8px 24px rgba(0,0,0,0.12)` | Modals, app-download tooltip |
|
|
177
|
+
|
|
178
|
+
**Shadow Philosophy**: QANDA uses shadows sparingly -- the system is light-first and mostly flat. Where Karrot uses shadows for layering, QANDA uses **soft fills** (`#F9F9F9`, `#F0F0F0`) to suggest depth without elevation. The conversation input bar is the rare exception: it floats with `s2` to signal it as the active gesture surface.
|
|
179
|
+
|
|
180
|
+
## 7. Do's and Don'ts
|
|
181
|
+
|
|
182
|
+
### Do
|
|
183
|
+
- Use QANDA Orange (`#FF5500`) as the energy mark -- highlight badges, brand glyphs, accent strokes
|
|
184
|
+
- Use charcoal `#3D3D3D` for primary CTAs on consumer surfaces -- orange is for energy, charcoal is for action
|
|
185
|
+
- Load Pretendard with the locale-correct sub-family (Std for KR, JP for JP)
|
|
186
|
+
- Default to 16px regular weight for all interactive text -- equal-weight friendliness is the voice
|
|
187
|
+
- Center the camera/image-upload affordance on every question surface
|
|
188
|
+
- Use pill geometry (`35px`, `9999px`) for chips, brand badges, and re-entry buttons
|
|
189
|
+
- Switch to the warm-stone palette (`#F6F4F2`, `#9A9492`, `#78716E`) on corporate / About surfaces
|
|
190
|
+
|
|
191
|
+
### Don't
|
|
192
|
+
- Don't put orange on every CTA -- the brand uses charcoal for its primary action and reserves orange for moments of energy
|
|
193
|
+
- Don't drop below 16px for primary interactive text -- mobile students need tappable scale
|
|
194
|
+
- Don't introduce a secondary brand hue -- one accent (`#FF5500`) is the entire brand color story
|
|
195
|
+
- Don't use heavy shadows -- the system is intentionally light and mostly flat
|
|
196
|
+
- Don't mix the consumer cool-gray and corporate warm-stone palettes on the same surface -- they are two distinct canonical tracks
|
|
197
|
+
- Don't substitute Inter or Roboto for Pretendard -- multilingual rendering requires the Pretendard family
|
|
198
|
+
- Don't bury the camera affordance behind a menu -- the photo-to-solution gesture is the product
|
|
199
|
+
|
|
200
|
+
## 8. Responsive Behavior
|
|
201
|
+
|
|
202
|
+
### Breakpoints
|
|
203
|
+
| Name | Width | Key Changes |
|
|
204
|
+
|------|-------|-------------|
|
|
205
|
+
| Mobile | <480px | Single column, full-width input, bottom nav |
|
|
206
|
+
| Tablet | 480-1024px | Conversation column with collapsed left rail |
|
|
207
|
+
| Desktop | >1024px | Persistent left rail (220px) + centered conversation |
|
|
208
|
+
|
|
209
|
+
### Touch Targets
|
|
210
|
+
- Primary CTA: 36-48px height
|
|
211
|
+
- Camera/upload icon: 44px minimum hit area
|
|
212
|
+
- Nav row: 48px height
|
|
213
|
+
- Pill chip: 42px height
|
|
214
|
+
|
|
215
|
+
### Collapsing Strategy
|
|
216
|
+
- Left rail collapses to bottom tab bar below 1024px
|
|
217
|
+
- App-download QR card hides on mobile (mobile users are already on the app target)
|
|
218
|
+
- Conversation input remains sticky at the bottom on mobile, anchored center on web
|
|
219
|
+
|
|
220
|
+
### Image Behavior
|
|
221
|
+
- User-uploaded math problem photos: edge-to-edge in conversation thread, 16px radius
|
|
222
|
+
- Step-by-step solution illustrations: full-width with 12px radius
|
|
223
|
+
- Persona avatar (QANDA mascot): circular, 40-48px diameter
|
|
224
|
+
|
|
225
|
+
## 9. Agent Prompt Guide
|
|
226
|
+
|
|
227
|
+
### Quick Color Reference
|
|
228
|
+
- Brand accent: QANDA Orange (`#FF5500`)
|
|
229
|
+
- Primary CTA fill: Charcoal (`#3D3D3D`)
|
|
230
|
+
- Heading text: Charcoal 900 (`#222222`)
|
|
231
|
+
- Body text: Gray 700 (`#5D5D5D`)
|
|
232
|
+
- Caption / inactive: Gray 500 (`#999999`)
|
|
233
|
+
- Surface fill: Gray 050 (`#F9F9F9`)
|
|
234
|
+
- Border: Gray 100 (`#F0F0F0`)
|
|
235
|
+
- Success: Green (`#0D9974`)
|
|
236
|
+
- Corporate background: Stone (`#F6F4F2`)
|
|
237
|
+
- Corporate body: Stone 600 (`#9A9492`)
|
|
238
|
+
|
|
239
|
+
### Example Component Prompts
|
|
240
|
+
- "Build a QANDA conversation input: white bg, 1px #F0F0F0 border, 24px radius, 56px height. Left: camera icon button (44px, charcoal #222222). Center: placeholder 'Ask anything to study' in #999999 16px. Right: send button (disabled #F9F9F9, active #3D3D3D fill)."
|
|
241
|
+
- "Create a QANDA primary CTA: #3D3D3D background, #F9F9F9 text, 16px weight 400, 36-40px height, 8px radius. Use for 'Get started' / '시작하기'."
|
|
242
|
+
- "Design a 'New question' pill: #F9F9F9 background, #222222 text, 16px weight 400, 42px height, 35px radius, 16px h-padding. Left icon 20px charcoal."
|
|
243
|
+
- "Build a feature card: white bg, 24px radius, 1px #F0F0F0 border. Icon top-left in #FF5500 orange. Heading 20px weight 600 #222222. Body 14px weight 400 #5D5D5D. 24px inner padding."
|
|
244
|
+
- "Create a step-by-step solution layout: vertical stack of numbered steps. Each step: small circular badge with #FF5500 number + step body text in #222222 16px. 16px gap between steps. Latex/math content rendered inline."
|
|
245
|
+
|
|
246
|
+
### Iteration Guide
|
|
247
|
+
1. The brand color is `#FF5500` -- exactly that value. Do not substitute purple, pink, or a softened tint.
|
|
248
|
+
2. Primary CTAs are charcoal (`#3D3D3D`), not orange. Orange is the highlight mark, not the action mark.
|
|
249
|
+
3. Pretendard family (Std for KR, JP for JP, Variable for web) -- never substitute another sans-serif.
|
|
250
|
+
4. 16px regular is the universal interactive type size. Resist hierarchy temptation on action labels.
|
|
251
|
+
5. The camera/image-upload affordance must be visible on every question surface.
|
|
252
|
+
6. Two canonical palettes exist: consumer cool-gray and corporate warm-stone. Keep them separate.
|
|
253
|
+
7. Pill geometry (`35px`, `9999px`) signals friendly re-entry; `8px` signals action. Don't flip them.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 10. Voice & Tone
|
|
258
|
+
|
|
259
|
+
QANDA speaks like a slightly older sibling who happens to be very good at math: warm, encouraging, low-pressure, and allergic to anything that sounds like a textbook. The voice assumes the student in front of the screen has been stuck on the same problem for ten minutes and is one frustrated tap away from closing the app -- so it leads with calm reassurance (`Hi there! What would you like to study together?`) rather than a feature pitch. Korean surfaces stay in everyday endings (`-어요`, `-해요`) and second-person familiar (`알려주면`), never the formal `-ㅂ니다`. English mirrors that with conversational openings (*"Ask anything to study"*) instead of marketing copy (*"Unlock your study potential"*).
|
|
260
|
+
|
|
261
|
+
| Context | Tone |
|
|
262
|
+
|---|---|
|
|
263
|
+
| CTAs | Verb-first Korean (`시작하기`, `새 질문`, `App 다운로드`) / plain English (`Get started`, `Download`, `New question`) |
|
|
264
|
+
| Hero / first impression | One welcoming question, not a value prop. (`What would you like to study together?` / `모르는 문제를 알려주면 맞춤형 풀이를 제공해요`) |
|
|
265
|
+
| Empty states | Reassuring + actionable. Never `데이터가 없습니다` or `No results`. |
|
|
266
|
+
| Error messages | Specific, blameless. Prefer `사진을 다시 찍어주세요` over `오류가 발생했습니다`. |
|
|
267
|
+
| Success / solution shown | Quiet competence, not celebration. The answer arriving *is* the reward. |
|
|
268
|
+
| Premium upsell | Soft, value-first. Surface what unlocks, not what's locked. |
|
|
269
|
+
| Multilingual surfaces | Locale-native phrasing, not translation. Indonesian, Vietnamese, Thai, Spanish each get a copywriter, not a translator. |
|
|
270
|
+
| Tutor / teacher Q&A | Respectful of both student and teacher. Never positions AI as superior to human tutors. |
|
|
271
|
+
|
|
272
|
+
**Forbidden phrases.** `오류가 발생했습니다`, `데이터가 없습니다`, `잠시만 기다려주세요` (overused -- use specific waits), `혁신적인`, `세계 최초`. English boilerplate: `Oops, something went wrong`, `We're sorry for the inconvenience`, `Unlock premium features`. Marketing-speak bans: `revolutionary`, `world-class`, `next-generation AI`, `cutting-edge`. Never frame AI as replacing teachers -- the brand explicitly partners with `선생님 Q&A` (Teacher Q&A) and `콴다과외` (QANDA Tutoring).
|
|
273
|
+
|
|
274
|
+
**Voice samples.**
|
|
275
|
+
|
|
276
|
+
- `Hi there! What would you like to study together?` — homepage hero, English. <!-- verified: https://qanda.ai/en, 2026-05 -->
|
|
277
|
+
- `Ask anything to study` — input placeholder, English. <!-- verified: https://qanda.ai/en, 2026-05 -->
|
|
278
|
+
- `Study smarter, wherever you are` — app-download CTA. <!-- verified: https://qanda.ai/en, 2026-05 -->
|
|
279
|
+
- `전 과목 문제 풀이, 더 쉽고 정확하게` — homepage hero, KR. <!-- verified: https://qanda.ai/ko, 2026-05 -->
|
|
280
|
+
- `모르는 문제를 알려주면 맞춤형 풀이를 제공해요` — homepage sub-hero, KR. <!-- verified: https://qanda.ai/ko, 2026-05 -->
|
|
281
|
+
- `학습용 AI로 쉬운 풀이, 정확한 답` — value-prop line, KR. <!-- verified: https://qanda.ai/ko, 2026-05 -->
|
|
282
|
+
- `교육 기회의 평등을 기술로 이룩하는 것` — corporate mission, KR. <!-- verified: https://mathpresso.com/ko, 2026-05 -->
|
|
283
|
+
- `가장 효과적인 교육을 전 세계 모두에게` — corporate vision, KR. <!-- verified: https://mathpresso.com/ko, 2026-05 -->
|
|
284
|
+
- `We Rebuild Education` — corporate brand line, EN. <!-- verified: https://mathpresso.com, 2026-05 -->
|
|
285
|
+
|
|
286
|
+
## 11. Brand Narrative
|
|
287
|
+
|
|
288
|
+
QANDA (콴다, short for *Q and A*) launched in **June 2015** as the first product of **Mathpresso, Inc.** (주식회사 매스프레소), founded in Seoul by **Lee Jong-heun (이종헌)** -- then a private math tutor -- and his high school friend **Lee Yong-jae (이용재, "Jake Lee")**, a Seoul National University computer engineering student who had been looking for a startup idea. Two more SNU classmates, **Jung Won-uk (정원욱)** and **Jeong Ho-jae (정호재)**, joined as co-founders. Their founding bet was that the bottleneck in education is not content -- there is more free math content online than any student could watch -- but **friction at the moment of confusion**. A student stuck on a problem at 11pm doesn't need a course; they need someone to look at *this specific problem* and explain it. QANDA's first product solved exactly that: photograph the problem, get a worked solution within seconds. The app was built around an OCR engine trained on math notation -- a much harder optical-recognition problem than reading printed text -- and the founding team treated that engine as the moat ([Wikipedia — QANDA](https://en.wikipedia.org/wiki/QANDA), [Inquirer Technology](https://technology.inquirer.net/100862/startup-mixes-koreas-strongest-areas-math-and-tech)).
|
|
289
|
+
|
|
290
|
+
Ten years later the product has held its shape and scaled across Asia. **Mathpresso reports 97 million cumulative registered users, 8 million monthly active users, and 7.2 billion cumulative searches** across 50+ countries, with 90% of usage now coming from outside Korea -- Japan, Vietnam, Indonesia, and Thailand are major markets, with Spanish and English added to support Latin America and global English-speaking students ([mathpresso.com](https://mathpresso.com/ko)). The company has raised approximately **$130-150M / 153B KRW cumulative**, including a **July 2021 Series C of $50M** led by Yellowdog with **GGV Capital, Goodwater Capital, KDB, SKS Private Equity, SoftBank Ventures Asia, Legend Capital, Mirae Asset Venture Investment, and Smilegate Investment** ([PR Newswire — Series C](https://www.prnewswire.com/news-releases/mathpresso-developer-of-ai-based-learning-app-qanda-secures-50-million-in-series-c-funding-301324099.html), [Crunchbase — Mathpresso](https://www.crunchbase.com/organization/mathpresso)). **Google** and **Samsung Ventures** later joined the cap table; **KT Corporation** (Korean telecom giant) made a strategic investment in 2023 specifically to co-develop a math LLM ([PR Newswire — KT investment](https://www.prnewswire.com/news-releases/google-backed-edtech-company-mathpresso-secures-strategic-investment-from-telecom-giant-kt-301922854.html)).
|
|
291
|
+
|
|
292
|
+
In **January 2024**, Mathpresso, **Upstage** (Korea's leading LLM startup), and **KT** announced **MathGPT**, a math-specialized small language model that **set a new world record on the MATH benchmark, surpassing Microsoft's ToRA-13B and outperforming GPT-4** on high-school math problems ([Korea Herald](https://www.koreaherald.com/article/3299066), [PR Newswire — MathGPT](https://www.prnewswire.com/news-releases/south-koreas-mathgpt-sets-a-new-world-record-in-mathematical-performance-302028223.html)). MathGPT is being integrated across QANDA's surfaces -- the consumer app, B2B/B2G SaaS, and the human-tutor product **콴다과외 (QANDA Tutor)** -- under the umbrella product **Cramify**, a hyper-personalized study tool. **QANDA was named to TIME's inaugural list of the World's Top EdTech Companies in 2024** ([Taiwan News](https://www.taiwannews.com.tw/news/5678819)). The brand refuses two adjacent positionings: it is not a replacement for teachers (the product surfaces `선생님 Q&A` / live human tutoring as a co-equal feature), and it is not a content library competing with Khan Academy or Coursera (the brand stays focused on the per-problem moment-of-stuck loop). The mission, stated on Mathpresso's corporate site, is *"교육 기회의 평등을 기술로 이룩하는 것"* — achieving educational opportunity equality through technology — paired with the vision *"가장 효과적인 교육을 전 세계 모두에게"* (the most effective education for everyone, globally) and the brand line *"We Rebuild Education"* ([mathpresso.com](https://mathpresso.com/ko)).
|
|
293
|
+
|
|
294
|
+
## 12. Principles
|
|
295
|
+
|
|
296
|
+
1. **The camera is the product.** The defining QANDA gesture is photographing a problem and getting a worked solution. Every question surface must surface the camera/image-upload affordance without scrolling, without a menu, and without a hidden state. *UI implication:* if a design hides the camera button behind a "+" menu or relegates it to a settings drawer, the design has drifted off-brand.
|
|
297
|
+
2. **Orange is energy; charcoal is action.** `#FF5500` is the brand's energy mark -- it lights up badges, highlights, and brand glyphs. The primary CTA fill is charcoal `#3D3D3D`. Designs that use orange on every action over-saturate the brand and lose the highlight semantics. *UI implication:* at most one orange-filled element per viewport in a primary flow; primary CTAs default to charcoal.
|
|
298
|
+
3. **16px is the universal floor for actionable text.** Buttons, nav, and primary copy all use 16px regular weight. The brand intentionally avoids tight type hierarchy on actions -- a student under cognitive load should not have to parse which thing is most tappable. *UI implication:* never drop a button label below 16px; never weight one button heavier than another to imply primacy -- use color (charcoal vs neutral pill) instead.
|
|
299
|
+
4. **Pretendard, locale-correct.** Pretendard Std for KR, Pretendard JP for JP, Pretendard Variable for web/EN. The product ships in seven languages; substituting Inter or system-ui breaks Hangul and CJK metrics. *UI implication:* the font stack must explicitly declare the locale variant first; never rely on Pretendard auto-detecting locale.
|
|
300
|
+
5. **Conversation, not catalog.** The home surface is a single greeting + a single input, not a feature grid. Other features (`풀이 첨삭`, `선생님 Q&A`, `퀴즈로 외우기`, `타이머`, `콴다과외`) live one tap away -- they do not crowd the entry moment. *UI implication:* the first-paint of any question surface should have one heading, one input, and the camera affordance -- nothing else competing for attention.
|
|
301
|
+
6. **AI augments, never replaces, teachers.** The product surfaces `선생님 Q&A` (Teacher Q&A) and `콴다과외` (QANDA Tutoring) as co-equal features alongside AI solutions. Brand voice never frames AI as superior to human tutors. *UI implication:* upsell to human tutoring must read as expansion, not escalation. Avoid copy like "Get a real human" that implies AI is lesser.
|
|
302
|
+
7. **Two canonical surfaces, two palettes.** Consumer (`qanda.ai`) uses cool-gray neutrals (`#F9F9F9`, `#F0F0F0`, `#999999`); corporate (`mathpresso.com`) uses warm-stone (`#F6F4F2`, `#9A9492`, `#78716E`). Both share `#FF5500` as the brand mark and Pretendard as the typeface. *UI implication:* never mix palettes within one surface. A pricing page on the consumer app stays cool-gray; a careers page on the corporate site stays warm-stone.
|
|
303
|
+
8. **Multilingual is first-class, not localized.** 90% of QANDA's MAU is outside Korea. Korean is the headquarters language, not the canonical language. *UI implication:* designs should be reviewed at minimum in KR, EN, and one CJK + one Latin SEA locale (e.g., JP and VI/ID) before sign-off. Right-aligned reading order, longer Vietnamese strings, and JP vertical-feeling line-heights are all in scope.
|
|
304
|
+
|
|
305
|
+
## 13. Personas
|
|
306
|
+
|
|
307
|
+
*Personas are fictional archetypes informed by publicly described QANDA user segments, not individual people.*
|
|
308
|
+
|
|
309
|
+
**민준 (Minjun), 16, Seoul.** Korean high school sophomore, 수능 prep track. Uses QANDA 4-5 times a week, almost always at his desk between 9pm and midnight. Photographs a math problem, scans the worked solution, sometimes uses `풀이 첨삭` (Solution Review) when his own attempt was wrong but he can't see why. Treats the AI as a fast tutor for routine problems and saves human-tutor (`콴다과외`) sessions for the hardest 모의고사 questions.
|
|
310
|
+
|
|
311
|
+
**Sari, 17, Jakarta.** Indonesian high school student, science track. Found QANDA through a TikTok study-with-me creator. Uses it primarily on her phone in Bahasa Indonesia for matematika and fisika. Camera-first user: she rarely types a question, almost always photographs a textbook problem. The fact that the app feels native in Indonesian -- not awkwardly translated -- is why she picked QANDA over alternatives.
|
|
312
|
+
|
|
313
|
+
**유키 (Yuki), 15, Osaka.** Japanese junior-high student preparing for 高校受験. Uses QANDA in Japanese, often during commute time on the train. Pretendard JP rendering matters -- she once tried a competitor app where Japanese rendered with Korean glyph metrics and uninstalled it within an hour.
|
|
314
|
+
|
|
315
|
+
**이선생님 (Ms. Lee), 41, Daegu.** Middle school math teacher. Uses QANDA's B2B teacher dashboard to assign practice problems and review which problems her class is collectively struggling with (anonymized). Has a complicated relationship with the consumer app -- some students use it to skip thinking -- but appreciates that QANDA explicitly surfaces human tutoring rather than positioning AI as a teacher replacement.
|
|
316
|
+
|
|
317
|
+
## 14. States
|
|
318
|
+
|
|
319
|
+
| State | Treatment |
|
|
320
|
+
|---|---|
|
|
321
|
+
| **Empty (no chat history)** | Single warm line (`아직 대화가 없어요. 모르는 문제를 사진으로 올려보세요`) + camera/upload icon as the primary affordance. No illustration. Never `데이터가 없습니다`. |
|
|
322
|
+
| **Empty (search no result)** | One-line caption in `#5D5D5D` 14px (`이 문제와 일치하는 풀이를 찾지 못했어요. 사진을 다시 찍어볼까요?`) + retry CTA in charcoal `#3D3D3D`. |
|
|
323
|
+
| **Loading (image-recognizing)** | OCR progress: subtle scanning animation overlaying the uploaded image, `#FF5500` accent line sweeping top-to-bottom over 1.5s. Caption: `문제를 인식하고 있어요`. |
|
|
324
|
+
| **Loading (solution generating)** | Skeleton blocks at `#F0F0F0` matching the final step-by-step layout (3-5 numbered step rows). Shimmer at 1.2s. Camera affordance stays visible but disabled. |
|
|
325
|
+
| **Loading (first paint)** | Ghost of the conversation surface: greeting line at `#F0F0F0`, input bar outline at `#F0F0F0`. No spinner. |
|
|
326
|
+
| **Error (image too blurry)** | Inline below the upload: `#FF5500` 13px helper text (`사진이 흐려서 문제를 읽을 수 없어요. 더 선명하게 다시 찍어주세요`). Camera button highlighted in `#FF5500` to invite re-capture. |
|
|
327
|
+
| **Error (network)** | Toast at bottom of conversation: `#222222` background, white 14px text, 3s auto-dismiss. One actionable sentence (`연결이 끊어졌어요. 다시 시도해주세요`). |
|
|
328
|
+
| **Error (server / blocking)** | Full-screen centered: `#222222` 16px weight 600 heading, `#5D5D5D` 14px subline, retry CTA in charcoal `#3D3D3D`. No illustration. |
|
|
329
|
+
| **Success (solution arrived)** | Step-by-step solution renders top-down with subtle stagger (each step fades + 8px upward translate over 200ms). `#0D9974` checkmark badge appears on the final step. Quiet, not celebratory. |
|
|
330
|
+
| **Success (correct answer in 풀이 첨삭)** | `#0D9974` positive-green inline badge with `정답이에요` label. `#ECF7F4` tint flash behind the answer for 300ms. |
|
|
331
|
+
| **Skeleton** | `#F0F0F0` blocks at exact final dimensions. Shimmer 1.2s with white highlight. Used for solution-generating, search-results, and chat-history loading. |
|
|
332
|
+
| **Disabled (send button before input)** | Button drops to `#F9F9F9` fill with `#B5B5B5` icon. Geometry stays identical so the re-enable is frame-stable. |
|
|
333
|
+
| **Premium-locked feature** | Inline soft block: `#F9F9F9` background card, lock icon in `#999999`, headline `프리미엄으로 더 자세한 풀이를 보세요`, soft `#FF5500` accent on the unlock CTA only. Never a hard paywall over the user's own captured problem. |
|
|
334
|
+
|
|
335
|
+
## 15. Motion & Easing
|
|
336
|
+
|
|
337
|
+
**Durations** (named, not raw milliseconds):
|
|
338
|
+
|
|
339
|
+
| Token | Value | Use |
|
|
340
|
+
|---|---|---|
|
|
341
|
+
| `motion-instant` | 0ms | Toggle flips, send-button enable/disable |
|
|
342
|
+
| `motion-fast` | 150ms | Hover, focus, button press, inline color flashes |
|
|
343
|
+
| `motion-standard` | 250ms | Default — card taps, tab switches, message arrival |
|
|
344
|
+
| `motion-slow` | 400ms | OCR scan sweep, step-by-step staggered reveal |
|
|
345
|
+
| `motion-page` | 300ms | Route transitions, full-screen modal in/out |
|
|
346
|
+
|
|
347
|
+
**Easings:**
|
|
348
|
+
|
|
349
|
+
| Token | Curve | Use |
|
|
350
|
+
|---|---|---|
|
|
351
|
+
| `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Solutions arriving, modals opening, toasts entering |
|
|
352
|
+
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Modals dismissing, toasts auto-closing |
|
|
353
|
+
| `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions, step staggers |
|
|
354
|
+
| `ease-scan` | `cubic-bezier(0.65, 0.0, 0.35, 1)` | OCR scanning sweep — slightly stronger curve to feel deliberate |
|
|
355
|
+
|
|
356
|
+
**Spring stance.** Subtle springs are permitted on the **solution-arrival stagger** (each step settles with a tiny overshoot, ~3% scale rebound) because the moment a stuck student sees their answer is the brand's emotional core -- a touch of life there reinforces *"the answer landed"* without becoming celebratory. Outside of solution arrival and the camera shutter feedback, springs are forbidden. CTAs do not bounce; modals do not overshoot; toasts do not wobble. The brand is built around students under cognitive load -- excess motion reads as noise.
|
|
357
|
+
|
|
358
|
+
**Signature motions.**
|
|
359
|
+
|
|
360
|
+
1. **Camera shutter feedback.** On image upload, a brief `#FFFFFF` flash overlays the camera button + a 96% scale press, releasing on capture (`motion-fast / ease-standard`). Mimics a real camera shutter so the gesture feels confirmed.
|
|
361
|
+
2. **OCR scan sweep.** During problem recognition, a thin `#FF5500` line sweeps top-to-bottom over the uploaded image (`motion-slow / ease-scan`). Loops once per recognition cycle. The orange accent here is one of the few moments orange takes a primary visual role.
|
|
362
|
+
3. **Step-by-step solution reveal.** When the AI solution arrives, each step (1, 2, 3, 4, 5...) fades in with an 8px upward translate, staggered at 80ms intervals (`motion-standard / ease-enter`). The final step gets a soft `#0D9974` checkmark badge with a tiny scale-spring (1.0 → 1.05 → 1.0) over 250ms. This is the brand's signature reveal.
|
|
363
|
+
4. **Conversation message arrival.** New chat messages slide in from the bottom with a 12px translate (`motion-standard / ease-enter`). Older messages stay fixed -- no shifting context.
|
|
364
|
+
5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. The OCR scan-sweep simplifies to a static `#F9F9F9` overlay with a caption. The solution stagger becomes a single fade. The app stays fully functional; just less kinetic.
|
|
365
|
+
|
|
366
|
+
<!--
|
|
367
|
+
OmD v0.1 Sources — Philosophy Layer (sections 10–15)
|
|
368
|
+
|
|
369
|
+
Tier 1 — Direct verification (Playwright + WebFetch, 2026-05):
|
|
370
|
+
- https://qanda.ai/ko — live KR consumer surface. Verified primary brand color
|
|
371
|
+
#FF5500 (269 occurrences, top color rank 1), Pretendard Std/JP/Variable font
|
|
372
|
+
family, charcoal #3D3D3D primary CTA "시작하기" (8px radius, 36px height,
|
|
373
|
+
16px weight 400 white text), pill "새 질문" #F9F9F9 (35px radius, 42px height),
|
|
374
|
+
inactive nav #999999, footer text #5D5D5D, success green #0D9974.
|
|
375
|
+
Hero copy verbatim: "전 과목 문제 풀이, 더 쉽고 정확하게",
|
|
376
|
+
"모르는 문제를 알려주면 맞춤형 풀이를 제공해요",
|
|
377
|
+
"학습용 AI로 쉬운 풀이, 정확한 답". Features: "풀이 첨삭", "선생님 Q&A",
|
|
378
|
+
"퀴즈로 외우기", "타이머", "콴다과외".
|
|
379
|
+
- https://qanda.ai/en — live EN consumer surface. Hero copy verbatim:
|
|
380
|
+
"Hi there! What would you like to study together?", "Ask anything to study",
|
|
381
|
+
"Study smarter, wherever you are". Footer confirms CEOs Yong Jae Lee +
|
|
382
|
+
Jong Heun Lee, Mathpresso, Inc., 218 Teheran-ro Gangnam-gu Seoul.
|
|
383
|
+
- https://mathpresso.com/ko — corporate surface. Confirmed warm-stone palette
|
|
384
|
+
(#F6F4F2 page bg, #9A9492 most-used body 113 occurrences, #78716E secondary,
|
|
385
|
+
#665C57, #111111), shared #FF5500 brand accent (21 occurrences, distinctly
|
|
386
|
+
smaller share than consumer), Pretendard Variable font family. Mission
|
|
387
|
+
"교육 기회의 평등을 기술로 이룩하는 것", vision "가장 효과적인 교육을
|
|
388
|
+
전 세계 모두에게", brand line "We Rebuild Education". Metrics: 97M registered,
|
|
389
|
+
8M MAU, 7.2B cumulative searches, 153B KRW funding, 7 languages.
|
|
390
|
+
|
|
391
|
+
Tier 2 — Design system records (WebFetch, 2026-05):
|
|
392
|
+
- https://getdesign.md/qanda — no record ("No designs found for 'qanda'").
|
|
393
|
+
- https://getdesign.md/mathpresso — no record.
|
|
394
|
+
- https://styles.refero.design — not checked, but consistent absence expected
|
|
395
|
+
given QANDA has not published a public design system.
|
|
396
|
+
|
|
397
|
+
Tier 2 — Press / philosophy (WebSearch, 2026-05):
|
|
398
|
+
- https://en.wikipedia.org/wiki/QANDA — confirms June 2015 Mathpresso founding,
|
|
399
|
+
January 2016 QANDA app launch, OCR-based math problem recognition,
|
|
400
|
+
90M+ registered users across 50 countries.
|
|
401
|
+
- https://technology.inquirer.net/100862/startup-mixes-koreas-strongest-areas-math-and-tech —
|
|
402
|
+
confirms founding story: Lee Jong-heun (private math tutor) + Lee Yong-jae
|
|
403
|
+
(Seoul National University CS student looking for a startup idea), with
|
|
404
|
+
SNU classmates Wonguk Jung and Hojae Jeong joining as co-founders.
|
|
405
|
+
- https://www.prnewswire.com/news-releases/mathpresso-developer-of-ai-based-learning-app-qanda-secures-50-million-in-series-c-funding-301324099.html —
|
|
406
|
+
confirms July 2021 Series C, $50M (NOT the $75-80M cited in original spec),
|
|
407
|
+
led by Yellowdog with GGV Capital, Goodwater Capital, KDB, SKS PE,
|
|
408
|
+
SoftBank Ventures Asia, Legend Capital, Mirae Asset, Smilegate.
|
|
409
|
+
- https://www.prnewswire.com/news-releases/google-backed-edtech-company-mathpresso-secures-strategic-investment-from-telecom-giant-kt-301922854.html —
|
|
410
|
+
confirms KT strategic investment, Google as backer.
|
|
411
|
+
- https://www.koreaherald.com/article/3299066 +
|
|
412
|
+
https://www.prnewswire.com/news-releases/south-koreas-mathgpt-sets-a-new-world-record-in-mathematical-performance-302028223.html —
|
|
413
|
+
confirm January 2024 MathGPT release, co-developed by Mathpresso + Upstage + KT,
|
|
414
|
+
outperformed Microsoft ToRA-13B on MATH benchmark, surpassed GPT-4 on MATH.
|
|
415
|
+
- https://www.taiwannews.com.tw/news/5678819 — confirms TIME World's Top
|
|
416
|
+
EdTech Companies 2024 inclusion.
|
|
417
|
+
- https://www.crunchbase.com/organization/mathpresso — confirms cumulative
|
|
418
|
+
funding ~$130M+ (153B KRW reported on corporate site).
|
|
419
|
+
|
|
420
|
+
Re-verification status:
|
|
421
|
+
- The 97M registered / 8M MAU / 7.2B cumulative searches / 153B KRW figures
|
|
422
|
+
in §11 are carried from mathpresso.com/ko as of 2026-05 retrieval. Numbers
|
|
423
|
+
may drift; re-verify before quoting publicly.
|
|
424
|
+
- The "$75M Series C 2021 + later" claim in the original spec is corrected
|
|
425
|
+
here to $50M Series C July 2021. Total cumulative funding ~$130-150M is
|
|
426
|
+
consistent with both Crunchbase and the corporate site.
|
|
427
|
+
- The original spec suggested "Bright purple/pink primary — verify live
|
|
428
|
+
(could be #7B61FF or #FF008C)". Live verification (Playwright + computed
|
|
429
|
+
styles, 2026-05) shows the actual brand primary is #FF5500 ORANGE, not
|
|
430
|
+
purple/pink. The spec's color hypothesis was incorrect; #FF5500 is
|
|
431
|
+
documented here based on direct measurement (269 occurrences on qanda.ai/ko,
|
|
432
|
+
ranked #1 by frequency among non-trivial colors).
|
|
433
|
+
|
|
434
|
+
Personas (§13) are fictional archetypes informed by publicly described QANDA
|
|
435
|
+
user segments (KR high schooler, ID secondary student, JP middle schooler,
|
|
436
|
+
KR teacher in B2B). Any resemblance to specific individuals is unintended.
|
|
437
|
+
|
|
438
|
+
Interpretive claims (editorial, not documented QANDA statements):
|
|
439
|
+
- "Orange is energy; charcoal is action" framing (§7, §12) — editorial reading
|
|
440
|
+
of the observed pattern (#FF5500 used heavily on highlights/badges but not
|
|
441
|
+
on the primary CTA fill, which is #3D3D3D charcoal). Not a sourced QANDA
|
|
442
|
+
brand statement.
|
|
443
|
+
- "The camera is the product" (§12) — editorial framing of the observed UI
|
|
444
|
+
emphasis on the image-upload affordance. The OCR-based photo-to-solution
|
|
445
|
+
loop is documented as the core feature on Wikipedia and on QANDA's own
|
|
446
|
+
product pages, but the principle phrasing is editorial.
|
|
447
|
+
- The spring-permitted-only-for-solution-arrival stance (§15) — derived from
|
|
448
|
+
the brand posture (students under cognitive load, calm tutor voice).
|
|
449
|
+
Not a documented QANDA motion rule.
|
|
450
|
+
-->
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
**Verified:** 2026-05-08 (omd:add-reference, Apple-tier intent)
|
|
455
|
+
**Tier 1 sources:** qanda.ai/ko (consumer KR — QANDA Orange `#FF5500` 269-occurrence top color, Pretendard Std/JP/Variable, charcoal `#3D3D3D` `8px` `36px·400` Primary + neutral pill `#F9F9F9` `35px` `42px·400` "새 질문" + footer `#5D5D5D` `400`); qanda.ai/en (consumer EN — verified hero microcopy "Hi there! What would you like to study together?" + "Ask anything to study"); mathpresso.com/ko (corporate — warm-stone palette `#F6F4F2`/`#9A9492`/`#78716E` 2nd canonical track, shared `#FF5500` accent at 21 occurrences, Pretendard Variable, mission/vision verbatim).
|
|
456
|
+
**Tier 2 sources:** getdesign.md/qanda + getdesign.md/mathpresso — no record.
|
|
457
|
+
**Tier 2 (Philosophy/founders):** Wikipedia (QANDA), Inquirer Technology (founding story Lee Jong-heun + Jake Lee + SNU co-founders), PR Newswire (Series C $50M July 2021 + KT strategic investment + MathGPT world record), Korea Herald (MathGPT outperforms GPT-4 on MATH benchmark), Taiwan News (TIME Top EdTech 2024), Crunchbase (Mathpresso cumulative funding).
|
|
458
|
+
**Style ref:** `karrot` (KR §4 canonical schema, retained).
|
|
459
|
+
**Conflicts unresolved:** Original spec hypothesized "purple/pink primary `#7B61FF` or `#FF008C`" — corrected to `#FF5500` ORANGE based on live measurement. Original spec cited "Series C ~$75M 2021" — corrected to $50M based on PR Newswire announcement. Both conflicts resolved in favor of measured/sourced values.
|