docs: add visual system planning contract
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# Focus Seed Visual System v1.0.2
|
||||
|
||||
Status: planning contract. Do not treat this document as an implementation diff.
|
||||
|
||||
## Product Thesis
|
||||
|
||||
Focus Seed is an offline-first personal focus companion. It helps users choose one important thing, complete focused sessions, keep daily habits, write a short reflection, and review visible progress.
|
||||
|
||||
The product should not be plant-only. "Seed" means intention, momentum, craft, discipline, and progress. Plant visuals are allowed only as one mature motif, mostly for growth, empty states, or reward moments.
|
||||
|
||||
## Recommended Direction
|
||||
|
||||
Use a hybrid direction:
|
||||
|
||||
- Base: Editorial Focus Companion.
|
||||
- Structure: Soft Bento Productivity.
|
||||
- Focus mode: Precision Dark as an optional immersive screen language.
|
||||
- Warmth: Light editorial or tactile illustration for empty states, rewards, and growth.
|
||||
|
||||
Working name: Calm Modular Editorial.
|
||||
|
||||
This direction is global-friendly, feasible in Flutter, serious enough for productivity users, warm enough for retention, and flexible enough for future subscription features.
|
||||
|
||||
## Primary Product Loop
|
||||
|
||||
1. Pick today's main focus.
|
||||
2. Start or continue a focus session.
|
||||
3. Complete daily habits.
|
||||
4. Write one short reflection.
|
||||
5. Review growth and adjust tomorrow.
|
||||
|
||||
## Target App Structure
|
||||
|
||||
Preferred primary navigation:
|
||||
|
||||
- Today: daily action hub.
|
||||
- Focus: immersive timer and active session.
|
||||
- Habits: habit list, completion, weekly rhythm.
|
||||
- Growth: reflection, history, trends, milestones.
|
||||
|
||||
Settings should move behind a top-right profile/settings entry or a More sheet. It should not compete with the daily loop unless account, billing, or preferences become a core product surface.
|
||||
|
||||
## Screen Hierarchy
|
||||
|
||||
| Screen | User goal | First visible content | Primary action | Secondary content | Scroll behavior |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| Today | Know what to do now | Date, greeting, main focus | Start focus or set focus | Habit summary, reflection prompt, small growth cue | Natural vertical scroll; P0 remains near top |
|
||||
| Focus | Stay in one session | Current task and timer | Pause/complete/start | Duration, mode, next break, session stats | Minimal scroll; controls stable |
|
||||
| Habits | Complete and manage habits | Today progress and filters | Toggle habit / add habit | Weekly dots, streaks, edit/reorder | Dense list; sticky section controls optional |
|
||||
| Growth | Understand progress | Reflection entry or weekly summary | Reflect today / view timeline | Sessions, habits, records, trend charts | Timeline + cards; history can go to detail |
|
||||
| Settings | Adjust app and privacy | Local data, appearance, language | Change preference | Privacy, clear data, version | Compact grouped list |
|
||||
|
||||
## Visual System
|
||||
|
||||
Palette:
|
||||
|
||||
- Primary: mature green or teal for progress and focus.
|
||||
- Secondary: restrained blue/violet for reflection or insight.
|
||||
- Warm neutral surfaces instead of pure white where appropriate.
|
||||
- Semantic colors for success, warning, destructive, disabled, offline.
|
||||
- Dark mode must be designed, not inverted.
|
||||
|
||||
Typography:
|
||||
|
||||
- Use highly readable system UI for body and dense data.
|
||||
- Optional expressive display style only for brand/page title, not dense content.
|
||||
- Timer and stats need tabular, stable numeric rendering.
|
||||
|
||||
Spacing and surfaces:
|
||||
|
||||
- Use an 8 px base rhythm with 4 px fine adjustments.
|
||||
- Cards should have roles: hero, action, stat, list container, warning, reward.
|
||||
- Avoid stacking identical large rounded cards.
|
||||
- Prefer compact rows for dense data.
|
||||
|
||||
Motifs:
|
||||
|
||||
- Focus ring, anchor point, path, window/light, notebook, timeline, gentle growth.
|
||||
- Use illustration in empty states, onboarding, growth, and rewards.
|
||||
- Do not decorate every card.
|
||||
|
||||
## Interaction And Motion
|
||||
|
||||
Motion budget:
|
||||
|
||||
- 80% functional feedback: press, select, save, toggle.
|
||||
- 15% spatial motion: tab/page/sheet/list transitions.
|
||||
- 5% reward: session complete, streak, milestone.
|
||||
|
||||
Required behavior:
|
||||
|
||||
- Tap feedback within 100 ms.
|
||||
- Page transitions preserve direction.
|
||||
- Timer updates must not rebuild entire pages.
|
||||
- Completion should be rewarding but non-blocking.
|
||||
- Reduced motion must disable decorative effects.
|
||||
- Bottom tabs preserve state and scroll position.
|
||||
|
||||
## Component System
|
||||
|
||||
Create or consolidate:
|
||||
|
||||
- AppScaffold and AppTopBar.
|
||||
- AppNavigation.
|
||||
- AppButton variants.
|
||||
- AppCard role variants.
|
||||
- SectionHeader.
|
||||
- CompactStatCard.
|
||||
- DenseListRow.
|
||||
- HabitRow.
|
||||
- TimelineItem.
|
||||
- EditableTextCard.
|
||||
- EmptyState and ErrorState.
|
||||
- OfflineBadge and SaveStateIndicator.
|
||||
- AnimatedNumber, AnimatedProgressBar, AnimatedProgressRing.
|
||||
- RewardMoment.
|
||||
|
||||
## Content Rules
|
||||
|
||||
- English-first for release; Chinese supported for development/testing.
|
||||
- Visible text must be user-facing, not developer-facing.
|
||||
- Avoid words like JSON, debug, select result, internal, export/import unless a real user feature needs them.
|
||||
- Empty states should guide one action.
|
||||
- Destructive actions must state impact clearly.
|
||||
|
||||
## Flutter Execution Plan
|
||||
|
||||
1. Create design, component, and motion foundations.
|
||||
2. Prototype Today and Focus first; review screenshots and interaction.
|
||||
3. Add the Habits screen as a real first-class surface.
|
||||
4. Rework Growth into reflection plus progress timeline.
|
||||
5. Move Settings out of primary navigation or make it compact.
|
||||
6. Add empty/dense/error/offline/restored states.
|
||||
7. Verify light/dark, English/Chinese, small phone, large text.
|
||||
8. Build and test Android release after each large module.
|
||||
|
||||
## Risk Notes
|
||||
|
||||
- Navigation changes can affect user familiarity; do it on a development branch, not the already submitted release.
|
||||
- More visual richness can reduce performance if blur/shadow/ambient animation is overused.
|
||||
- Too much plant imagery may feel childish or narrow.
|
||||
- Too much bento/card structure may look generic.
|
||||
- Too much dark precision may feel cold.
|
||||
|
||||
## Decision For v1.0.2
|
||||
|
||||
Use Calm Modular Editorial unless the user chooses a stronger expressive direction. Start with Today and Focus because they define whether the product feels real.
|
||||
Reference in New Issue
Block a user