5.8 KiB
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
- Pick today's main focus.
- Start or continue a focus session.
- Complete daily habits.
- Write one short reflection.
- 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
- Create design, component, and motion foundations.
- Prototype Today and Focus first; review screenshots and interaction.
- Add the Habits screen as a real first-class surface.
- Rework Growth into reflection plus progress timeline.
- Move Settings out of primary navigation or make it compact.
- Add empty/dense/error/offline/restored states.
- Verify light/dark, English/Chinese, small phone, large text.
- 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.