首次远程推送

This commit is contained in:
2026-09-27 23:40:22 +08:00
parent 2e0bf3c784
commit 8afa47952a
70 changed files with 8603 additions and 4502 deletions
+2
View File
@@ -1,5 +1,7 @@
# Focus Seed 1.0.1 Architecture
Status: historical reference. The current architecture and navigation contract lives in `../../launch/architecture.md` and `../product-current-baseline.md`.
## Decision
Keep the app offline-first and SDK-light. Flutter renders all product UI. `shared_preferences` remains the persistence adapter because the current dataset is one small versioned document and does not require relational queries, pagination, joins, or concurrent writers.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

+32 -14
View File
@@ -1,6 +1,6 @@
# Focus Seed Visual System v1.0.2
Status: planning contract. Do not treat this document as an implementation diff.
Status: visual direction reference. Current product scope is defined in `../product-current-baseline.md`.
## Product Thesis
@@ -31,14 +31,14 @@ This direction is global-friendly, feasible in Flutter, serious enough for produ
## Target App Structure
Preferred primary navigation:
Current V1 primary navigation:
- Today: daily action hub.
- Focus: immersive timer and active session.
- Habits: habit list, completion, weekly rhythm.
- Growth: reflection, history, trends, milestones.
- Records: focus sessions and reflection history.
- Me: preferences, privacy, and local data controls.
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.
Habits and Growth are not current primary tabs. They can be promoted later only when habit management, trend review, and detail pages are real product surfaces rather than thin wrappers.
## Screen Hierarchy
@@ -46,18 +46,22 @@ Settings should move behind a top-right profile/settings entry or a More sheet.
| --- | --- | --- | --- | --- | --- |
| 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 |
| Records | Review saved work | Focus/reflection history switch | Open Today when empty | Sessions, notes, simple trends | Timeline/list; detail pages are V2 |
| Me | Adjust app and privacy | Local data summary | Change preference | Privacy, clear data, language | Compact grouped list |
## Visual System
Palette:
- Primary: mature green or teal for progress and focus.
- Secondary: restrained blue/violet for reflection or insight.
- Brand: deep ink for identity, headings, and logo text. Do not use brand as a catch-all accent.
- Action: blue for primary buttons, navigation selection, and forward movement.
- Focus: blue family for timer and active-session controls.
- Habit: amber or warm accent for small repeatable actions.
- Reflection: violet for notes, review, and insight.
- Success: green for completion, checkmarks, and finished progress.
- Privacy/local: green-teal for on-device trust indicators only.
- Warm neutral surfaces instead of pure white where appropriate.
- Semantic colors for success, warning, destructive, disabled, offline.
- Warning/destructive/disabled/offline must remain separate semantic colors.
- Dark mode must be designed, not inverted.
Typography:
@@ -79,6 +83,14 @@ Motifs:
- Use illustration in empty states, onboarding, growth, and rewards.
- Do not decorate every card.
Asset ambition:
- Be more expressive with the logo, app icon, key illustration set, reward visuals, and store screenshots. These are allowed to carry stronger identity than the everyday UI.
- Do not rely only on the plant metaphor. Explore sharper symbols such as focus rings, marked paths, light windows, paper cuts, modular tiles, timeline traces, and crafted seed/anchor hybrids.
- Navigation and utility icons should stay readable and consistent, but they may use a custom symbolic grammar after the structure passes.
- Illustrations should feel complete and production-worthy at their real display size. Avoid rough placeholder line art in polished previews.
- Dense task surfaces stay restrained; onboarding, empty states, milestones, completion moments, and launch assets can be bolder.
## Interaction And Motion
Motion budget:
@@ -87,6 +99,12 @@ Motion budget:
- 15% spatial motion: tab/page/sheet/list transitions.
- 5% reward: session complete, streak, milestone.
Motion ambition:
- Reward moments may be more memorable than the base UI: focus ring bloom, path lighting, notebook mark, seed-to-signal transition, or timeline pulse.
- Keep bold motion rare, interruptible, and non-blocking. It should celebrate completion or clarify state, not decorate every tap.
- Use Flutter-safe primitives first. Escalate to Rive/Lottie only for a signature reward or onboarding moment with a static fallback and reduced-motion behavior.
Required behavior:
- Tap feedback within 100 ms.
@@ -127,9 +145,9 @@ Create or consolidate:
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.
3. Keep Records and Me honest until Habits/Growth have enough product depth to become primary tabs.
4. Add detail pages only when they have data writes, navigation targets, and clear user outcomes.
5. Keep Settings compact and user-facing; avoid developer-tool language.
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.
-117
View File
@@ -1,117 +0,0 @@
# Focus Seed Visual Direction 1.0.1
## Decision
Use an editorial botanical interface with premium Soft 3D growth objects and state-driven Material Expressive motion.
The interface remains a mature productivity product. Illustration and 3D are reserved for progress, state, onboarding, empty states, and completion feedback rather than ordinary controls.
## Product Expression
- Core metaphor: intention plants a seed; focus, habits, and reflection grow it.
- Navigation: Today, Journey, Me.
- Today expands the current next action and compresses completed or future stages.
- Journey shows the relationship between daily actions and growth rather than a generic statistics dashboard.
- Ordinary lists, forms, dialogs, and settings stay compact and familiar.
## Visual Balance
- 72% functional editorial UI
- 18% Soft 3D state objects
- 10% botanical illustration, semantic accent, and motion
## Foundation Tokens
- Porcelain: `#F7F8F5`
- Ink: `#17211C`
- Leaf: `#4D8B63`
- Mint: `#A9E8B5`
- Ultramarine: `#4E63D8`
- Coral: `#EA725E`
- Radii: `8`, `12`, `16`
- Spacing: four-point base with an eight-point layout rhythm
- Elevation: two restrained levels plus hairline separators
- Body type: 14-16 logical pixels with compact headings
## Growth States
- Seed: no intention
- Sprout: intention saved
- Leaves: focus and habit progress
- Flower: reflection complete
Every state needs a non-color cue. Reduced-motion mode replaces growth animation with crossfade and an immediate state swap.
## Living Ambience System
Use stable structure with slowly changing ambience. Time must never move controls, change navigation, alter semantic meaning, or reduce contrast.
### Local Time Modes
- Dawn, `05:00-09:59`: cool porcelain, pale sky-mint surface tint, low-stimulation entrance, dew highlight on seed or sprout.
- Day, `10:00-16:59`: clean porcelain, highest information clarity, leaf and ultramarine accents.
- Dusk, `17:00-20:59`: restrained coral-lilac tint, softer localized shadows, reflection receives more visual priority when pending.
- Night, `21:00-04:59`: warm graphite, off-white text, mint primary, muted violet reflection accent, no bright glow.
Determine the mode from the device clock. Do not request location or network access. Re-evaluate on launch, resume, and the next time boundary; never run a background polling loop.
### Priority Order
1. Accessibility and contrast requirements
2. Explicit user Light, Dark, or System appearance preference
3. Platform reduced-motion and high-contrast settings
4. Time ambience within the selected appearance
5. Product growth state
If the user forces Light or Dark, preserve that appearance and vary only compatible neutral tints and object lighting. System appearance always wins over an automatic day/night surface switch.
### Week And Season
- Weekday/weekend may adjust optional greeting copy and recommended session length, but must not rearrange the interface.
- Do not infer physical season from month alone for a global audience because hemispheres differ.
- Offer optional Growth Seasons as cosmetic progression chapters. They are driven by product progress or an explicit user choice, not location.
- Avoid weather, religious, national, and holiday imagery unless the user explicitly enables a localized pack.
## Motion Contract
- Press response: `120ms`
- Ordinary state transition: `180-240ms`
- Growth transformation: `360-480ms`
- One-time completion celebration: no more than `700ms`
- Page transition: preserve spatial continuity and remain under `300ms`
Motion events:
- Intention saved: seed rises, settles, and becomes a sprout.
- Focus starts: progress begins; plant movement is nearly imperceptible.
- Habit completes: checkbox morphs to a leaf and one leaf unfolds.
- Reflection saves: flower opens once, then remains still.
- Background restoration: timer and plant immediately snap to correct data, followed by a short confirmation.
Never run continuous decorative motion. Pause nonessential animation when the app is inactive, during scrolling, under battery-saving conditions, or when reduced motion is enabled. Reduced motion uses crossfade, opacity, and immediate state replacement.
## Variation Budget
- Structure and navigation: `0%` time-based variation
- Semantic colors and action meaning: `0%` variation
- Neutral surfaces and background tint: subtle variation only
- Plant state: driven by real user progress
- Illustration: reserved for onboarding, empty states, milestones, and completion
- Copy: may vary by time while preserving the same meaning and action
The goal is recognition with freshness, not novelty on every launch.
## Guardrails
- No childish faces or mascot behavior.
- No oversized 3D hero or giant timer.
- No card-per-section dashboard.
- No decorative illustration without state meaning.
- No animation that delays input or hides status.
- Validate long localization, 200% text, dense lists, keyboard, offline restoration, loading, and recoverable errors.
## Visual Reference
See `focus-seed-visual-direction-v1.0.1.png` in this directory.
See `focus-seed-living-ambience-v1.0.1.png` for time modes and motion behavior.
@@ -1,5 +1,7 @@
# Focus Seed 1.0.2 Local Database Product Loop
Status: historical implementation/reference plan. Superseded for active product direction by `../product-current-baseline.md`.
## Decision Header
- Objective: move Focus Seed from a simple local MVP into a richer offline-first product with durable history, user-facing settings, and basic retention feedback.