首次远程推送
This commit is contained in:
@@ -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 |
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user