48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# Onboarding Welcome Specification
|
|
|
|
## Purpose
|
|
|
|
A first-run welcome surface in the new visual language, explicitly
|
|
monetization-free. Traceable to WU17.
|
|
|
|
## Requirements
|
|
|
|
### Requirement: Full-Screen Welcome Route
|
|
|
|
The welcome screen MUST render as a full-screen route (not a modal
|
|
dialog), containing: logo mark, headline, body copy, exactly 3 feature
|
|
bullets, and exactly one primary call-to-action ("Empezar a escuchar").
|
|
|
|
#### Scenario: All elements render, one CTA
|
|
|
|
- GIVEN the app launches for the first time
|
|
- WHEN the welcome screen renders
|
|
- THEN a logo, headline, body copy, and 3 feature bullets are visible
|
|
- AND exactly 1 primary CTA is present
|
|
|
|
### Requirement: No Monetization Content (First-Class, Binding)
|
|
|
|
The welcome screen MUST NOT render a PRO pill, any trial-duration text
|
|
(e.g. a day count), any price, or a secondary "free version" link. This
|
|
follows the binding no-monetization decision for this change.
|
|
|
|
#### Scenario: Rendered content contains no monetization strings
|
|
|
|
- GIVEN the welcome screen is rendered
|
|
- WHEN its widget tree's text content is scanned
|
|
- THEN it contains none of: the substring "PRO", a currency amount, or a day-count trial phrase
|
|
- AND no secondary "free version" link is present
|
|
|
|
### Requirement: CTA Dismisses to Escuchar
|
|
|
|
Tapping the primary CTA MUST dismiss the welcome screen and land on the
|
|
Escuchar tab (index 0), with the welcome route removed from the
|
|
navigation stack.
|
|
|
|
#### Scenario: CTA navigates to Escuchar
|
|
|
|
- GIVEN the welcome screen is showing
|
|
- WHEN the user taps "Empezar a escuchar"
|
|
- THEN the app shows the Escuchar tab
|
|
- AND the welcome route is no longer on the back stack
|