2026-03-13 14:10:13 +08:00
|
|
|
|
# Visual Design Language for Flutter Mobile App
|
|
|
|
|
|
|
|
|
|
|
|
This document defines the **visual design language** for the mobile app.
|
|
|
|
|
|
It is intended to guide AI agents, designers, and developers toward a **consistent, premium, mobile-native product experience**.
|
|
|
|
|
|
|
|
|
|
|
|
This file focuses on **visual style, surface hierarchy, interaction feel, motion tone, and design intent**.
|
|
|
|
|
|
Implementation constraints such as token usage, component reuse, testing, and protocol requirements remain defined elsewhere.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 0) Scope and Role (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
- This file applies to all mobile UI work under `apps/**`.
|
|
|
|
|
|
- This file defines the **design intent** and **visual system**.
|
|
|
|
|
|
- This file does **not** replace implementation constraints; it complements them.
|
|
|
|
|
|
- If implementation and visual intent conflict, prefer the stricter rule while preserving as much visual intent as possible.
|
|
|
|
|
|
- The agent **MUST** treat this file as the source of truth for:
|
|
|
|
|
|
- visual tone
|
|
|
|
|
|
- aesthetic direction
|
|
|
|
|
|
- surface hierarchy
|
|
|
|
|
|
- perceived product quality
|
|
|
|
|
|
- motion feel
|
|
|
|
|
|
- assistant-product identity
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 1) Product Design Goal (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The app is a **personal assistant mobile app**.
|
|
|
|
|
|
Its UI must feel like a **premium consumer product**, not a wireframe, dashboard, admin console, or document page.
|
|
|
|
|
|
|
|
|
|
|
|
The overall product impression must be:
|
|
|
|
|
|
|
|
|
|
|
|
- calm
|
|
|
|
|
|
- intelligent
|
|
|
|
|
|
- trustworthy
|
|
|
|
|
|
- soft
|
|
|
|
|
|
- polished
|
|
|
|
|
|
- mobile-native
|
|
|
|
|
|
- slightly futuristic
|
|
|
|
|
|
- assistant-oriented
|
|
|
|
|
|
|
|
|
|
|
|
The UI must communicate:
|
|
|
|
|
|
|
|
|
|
|
|
- clarity without coldness
|
|
|
|
|
|
- capability without heaviness
|
|
|
|
|
|
- elegance without visual noise
|
|
|
|
|
|
- structure without rigidity
|
|
|
|
|
|
|
|
|
|
|
|
The visual result must feel closer to a refined consumer app than to a productivity back office tool.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 2) Core Style Direction (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The app’s visual design language is based on the following style blend:
|
|
|
|
|
|
|
|
|
|
|
|
- **soft blue brand atmosphere**
|
|
|
|
|
|
- **layered card-based interface**
|
|
|
|
|
|
- **subtle depth and hierarchy**
|
|
|
|
|
|
- **selective soft neumorphic influence**
|
|
|
|
|
|
- **light glassmorphism accents where appropriate**
|
|
|
|
|
|
- **modern iOS-inspired spacing and composition**
|
|
|
|
|
|
- **premium startup-product polish**
|
|
|
|
|
|
|
|
|
|
|
|
The UI should feel:
|
|
|
|
|
|
|
|
|
|
|
|
- soft, not blunt
|
|
|
|
|
|
- layered, not flat
|
|
|
|
|
|
- tactile, not decorative
|
|
|
|
|
|
- modern, not trendy for its own sake
|
|
|
|
|
|
- structured, not mechanical
|
|
|
|
|
|
|
|
|
|
|
|
The visual system must avoid extremes:
|
|
|
|
|
|
- not overly flat
|
|
|
|
|
|
- not heavily skeuomorphic
|
|
|
|
|
|
- not toy-like
|
|
|
|
|
|
- not enterprise-heavy
|
|
|
|
|
|
- not overly ornamental
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 3) Brand Mood (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The brand mood is:
|
|
|
|
|
|
|
|
|
|
|
|
- soft blue
|
|
|
|
|
|
- airy
|
|
|
|
|
|
- supportive
|
|
|
|
|
|
- composed
|
|
|
|
|
|
- focused
|
|
|
|
|
|
- warm-tech
|
|
|
|
|
|
- light but capable
|
|
|
|
|
|
|
|
|
|
|
|
The assistant should feel like:
|
|
|
|
|
|
|
|
|
|
|
|
- a calm expert
|
|
|
|
|
|
- a thoughtful companion
|
|
|
|
|
|
- a reliable digital helper
|
|
|
|
|
|
|
|
|
|
|
|
The assistant should **not** feel like:
|
|
|
|
|
|
|
|
|
|
|
|
- a chatbot demo
|
|
|
|
|
|
- a mechanical enterprise workflow engine
|
|
|
|
|
|
- a gaming interface
|
|
|
|
|
|
- a childish mascot product
|
|
|
|
|
|
- a harsh cyberpunk system
|
|
|
|
|
|
|
|
|
|
|
|
Avoid visual moods that are:
|
|
|
|
|
|
- overly playful
|
|
|
|
|
|
- overly sharp
|
|
|
|
|
|
- overly dark and oppressive
|
|
|
|
|
|
- sterile and lifeless
|
|
|
|
|
|
- loud or attention-seeking
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 4) Visual Hierarchy Principles (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
Every screen must present a clear and intentional visual hierarchy.
|
|
|
|
|
|
|
|
|
|
|
|
The hierarchy should generally be readable as:
|
|
|
|
|
|
|
|
|
|
|
|
1. page background / spatial field
|
|
|
|
|
|
2. primary surfaces
|
|
|
|
|
|
3. grouped secondary surfaces
|
|
|
|
|
|
4. highlighted interactive elements
|
|
|
|
|
|
5. text and status accents
|
|
|
|
|
|
6. transient states and feedback
|
|
|
|
|
|
|
|
|
|
|
|
The UI must always help the user understand:
|
|
|
|
|
|
|
|
|
|
|
|
- what is primary
|
|
|
|
|
|
- what is grouped
|
|
|
|
|
|
- what is interactive
|
|
|
|
|
|
- what is informational
|
|
|
|
|
|
- what is temporary
|
|
|
|
|
|
- what is currently changing
|
|
|
|
|
|
|
|
|
|
|
|
Hierarchy must not rely on color alone.
|
|
|
|
|
|
It should also be expressed through:
|
|
|
|
|
|
|
|
|
|
|
|
- spacing
|
|
|
|
|
|
- surface grouping
|
|
|
|
|
|
- radius
|
|
|
|
|
|
- depth
|
|
|
|
|
|
- density
|
|
|
|
|
|
- contrast
|
|
|
|
|
|
- scale
|
|
|
|
|
|
- motion
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 5) Surface Model (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The app must be designed as a **surface-based system**, not as a collection of raw containers.
|
|
|
|
|
|
|
|
|
|
|
|
Every major screen should define at least these conceptual surface layers:
|
|
|
|
|
|
|
|
|
|
|
|
- **Background Surface**
|
|
|
|
|
|
The calm spatial field behind all content.
|
|
|
|
|
|
|
|
|
|
|
|
- **Primary Content Surface**
|
|
|
|
|
|
The main assistant response area, key card, major module, or central interaction container.
|
|
|
|
|
|
|
|
|
|
|
|
- **Secondary Grouped Surfaces**
|
|
|
|
|
|
Supporting cards, grouped actions, metadata blocks, previews, summaries, or widgets.
|
|
|
|
|
|
|
|
|
|
|
|
- **Interactive Emphasis Surface**
|
|
|
|
|
|
Elements that deserve stronger presence, such as quick actions, active cards, selected states, or focused modules.
|
|
|
|
|
|
|
|
|
|
|
|
Surfaces must feel intentional and product-grade.
|
|
|
|
|
|
A surface should never read as “just another box”.
|
|
|
|
|
|
|
|
|
|
|
|
Surfaces should feel:
|
|
|
|
|
|
- softly separated
|
|
|
|
|
|
- visually organized
|
|
|
|
|
|
- breathable
|
|
|
|
|
|
- cohesive with surrounding layers
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 6) Depth and Elevation Language (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The UI must use depth carefully and consistently.
|
|
|
|
|
|
|
|
|
|
|
|
Depth should be expressed through:
|
|
|
|
|
|
- layered surfaces
|
|
|
|
|
|
- subtle shadows
|
|
|
|
|
|
- gentle highlights
|
|
|
|
|
|
- tonal contrast
|
|
|
|
|
|
- grouped spacing
|
|
|
|
|
|
- controlled overlap when appropriate
|
|
|
|
|
|
|
|
|
|
|
|
Depth is used to:
|
|
|
|
|
|
- separate surfaces from background
|
|
|
|
|
|
- indicate focus
|
|
|
|
|
|
- elevate important actions
|
|
|
|
|
|
- support tactile feel
|
|
|
|
|
|
- avoid paper-flat layouts
|
|
|
|
|
|
|
|
|
|
|
|
Depth must **not** be used as random decoration.
|
|
|
|
|
|
|
|
|
|
|
|
The app must avoid:
|
|
|
|
|
|
- harsh shadow stacks
|
|
|
|
|
|
- muddy over-layering
|
|
|
|
|
|
- fake 3D gimmicks
|
|
|
|
|
|
- heavy embossed skeuomorphism
|
|
|
|
|
|
- noisy glow effects
|
|
|
|
|
|
|
|
|
|
|
|
The preferred depth quality is:
|
|
|
|
|
|
- soft
|
|
|
|
|
|
- understated
|
|
|
|
|
|
- calm
|
|
|
|
|
|
- premium
|
|
|
|
|
|
- readable
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 7) Shape Language (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The shape language should feel soft, modern, and coherent.
|
|
|
|
|
|
|
|
|
|
|
|
Shapes should communicate:
|
|
|
|
|
|
- friendliness
|
|
|
|
|
|
- calmness
|
|
|
|
|
|
- safety
|
|
|
|
|
|
- clarity
|
|
|
|
|
|
|
|
|
|
|
|
Preferred characteristics:
|
|
|
|
|
|
- rounded corners
|
|
|
|
|
|
- smooth modules
|
|
|
|
|
|
- softened containers
|
|
|
|
|
|
- pill-like or capsule-like actions where appropriate
|
|
|
|
|
|
- continuous visual flow across adjacent surfaces
|
|
|
|
|
|
|
|
|
|
|
|
Avoid:
|
|
|
|
|
|
- sharp aggressive geometry as default
|
|
|
|
|
|
- inconsistent corner treatments
|
|
|
|
|
|
- randomly mixing square and rounded systems
|
|
|
|
|
|
- highly ornamental silhouettes
|
|
|
|
|
|
|
|
|
|
|
|
Shape consistency is important to product polish.
|
|
|
|
|
|
If a screen mixes too many shape styles, it will feel unrefined.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 8) Composition Style (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The app must use **layered modular composition** rather than flat linear stacking wherever reasonable.
|
|
|
|
|
|
|
|
|
|
|
|
Preferred composition patterns:
|
|
|
|
|
|
- grouped cards
|
|
|
|
|
|
- floating modules
|
|
|
|
|
|
- segmented content blocks
|
|
|
|
|
|
- clearly separated information zones
|
|
|
|
|
|
- visually anchored action regions
|
|
|
|
|
|
- progressive disclosure sections
|
|
|
|
|
|
|
|
|
|
|
|
The screen should feel like a composed product surface, not a long sheet of stacked rectangles.
|
|
|
|
|
|
|
|
|
|
|
|
The design should avoid:
|
|
|
|
|
|
- full-screen blank white slabs
|
|
|
|
|
|
- ungrouped content dumps
|
|
|
|
|
|
- evenly weighted sections with no focal point
|
|
|
|
|
|
- spreadsheet-like layouts
|
|
|
|
|
|
- dashboard density unless explicitly needed
|
|
|
|
|
|
|
|
|
|
|
|
Content layout should guide the eye through the screen in a deliberate way.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 9) Spacing Rhythm (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
Spacing must create visual rhythm, hierarchy, and calmness.
|
|
|
|
|
|
|
|
|
|
|
|
Spacing should:
|
|
|
|
|
|
- separate conceptual groups clearly
|
|
|
|
|
|
- keep related content close enough to feel connected
|
|
|
|
|
|
- create a breathable reading experience
|
|
|
|
|
|
- support scanning within a few seconds
|
|
|
|
|
|
|
|
|
|
|
|
The app should feel:
|
|
|
|
|
|
- compact enough to be useful
|
|
|
|
|
|
- spacious enough to feel premium
|
|
|
|
|
|
|
|
|
|
|
|
Avoid both:
|
|
|
|
|
|
- cramped layouts
|
|
|
|
|
|
- excessively empty layouts
|
|
|
|
|
|
|
|
|
|
|
|
Spacing rhythm should create a sense of:
|
|
|
|
|
|
- confidence
|
|
|
|
|
|
- order
|
|
|
|
|
|
- softness
|
|
|
|
|
|
- ease of use
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 10) Color Usage Philosophy (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The app uses a **soft blue-centered palette**, but blue must be used strategically.
|
|
|
|
|
|
|
|
|
|
|
|
Blue is a brand signal, not a paint bucket.
|
|
|
|
|
|
|
|
|
|
|
|
Use brand color to:
|
|
|
|
|
|
- anchor important actions
|
|
|
|
|
|
- signal focus
|
|
|
|
|
|
- support assistant identity
|
|
|
|
|
|
- reinforce important states
|
|
|
|
|
|
- create premium calmness
|
|
|
|
|
|
|
|
|
|
|
|
Do not use blue by flooding all surfaces equally.
|
|
|
|
|
|
|
|
|
|
|
|
Color distribution must preserve:
|
|
|
|
|
|
- hierarchy
|
|
|
|
|
|
- readability
|
|
|
|
|
|
- tonal balance
|
|
|
|
|
|
- calmness
|
|
|
|
|
|
|
|
|
|
|
|
Preferred color impression:
|
|
|
|
|
|
- light
|
|
|
|
|
|
- trustworthy
|
|
|
|
|
|
- airy
|
|
|
|
|
|
- intelligent
|
|
|
|
|
|
- non-aggressive
|
|
|
|
|
|
|
|
|
|
|
|
Avoid:
|
|
|
|
|
|
- oversaturated color blocks
|
|
|
|
|
|
- excessive accent competition
|
|
|
|
|
|
- flat monochrome sameness
|
|
|
|
|
|
- harsh enterprise-blue overuse
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 11) Typography Feel (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
Typography should feel:
|
|
|
|
|
|
|
|
|
|
|
|
- clean
|
|
|
|
|
|
- modern
|
|
|
|
|
|
- readable
|
|
|
|
|
|
- calm
|
|
|
|
|
|
- product-grade
|
|
|
|
|
|
|
|
|
|
|
|
Text hierarchy must be immediately understandable.
|
|
|
|
|
|
|
|
|
|
|
|
The text system should communicate:
|
|
|
|
|
|
- primary focus
|
|
|
|
|
|
- supportive explanation
|
|
|
|
|
|
- metadata
|
|
|
|
|
|
- actionability
|
|
|
|
|
|
- transient status
|
|
|
|
|
|
|
|
|
|
|
|
Avoid:
|
|
|
|
|
|
- text-heavy document appearance
|
|
|
|
|
|
- dense paragraph dumps
|
|
|
|
|
|
- weak heading contrast
|
|
|
|
|
|
- decorative typography
|
|
|
|
|
|
- oversized headline drama unless intentionally needed
|
|
|
|
|
|
|
|
|
|
|
|
Typography should support assistant use cases:
|
|
|
|
|
|
- fast scanning
|
|
|
|
|
|
- digestible summaries
|
|
|
|
|
|
- calm reading
|
|
|
|
|
|
- structured conversation
|
|
|
|
|
|
- confidence in results
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 12) Information Density (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
The product is a personal assistant, so information density must be carefully balanced.
|
|
|
|
|
|
|
|
|
|
|
|
The UI must avoid:
|
|
|
|
|
|
- toy-like under-information
|
|
|
|
|
|
- enterprise-dashboard over-information
|
|
|
|
|
|
|
|
|
|
|
|
The ideal density is:
|
|
|
|
|
|
- compact but breathable
|
|
|
|
|
|
- rich but organized
|
|
|
|
|
|
- helpful without overwhelming
|
|
|
|
|
|
|
|
|
|
|
|
Assistant outputs should be:
|
|
|
|
|
|
- quickly scannable
|
|
|
|
|
|
- clearly grouped
|
|
|
|
|
|
- progressively explorable
|
|
|
|
|
|
- structured for decision support
|
|
|
|
|
|
|
|
|
|
|
|
When complexity increases, use:
|
|
|
|
|
|
- grouping
|
|
|
|
|
|
- folding
|
|
|
|
|
|
- summarization
|
|
|
|
|
|
- layered detail reveal
|
|
|
|
|
|
|
|
|
|
|
|
Do not dump all content at the same visual weight.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 13) Interaction Feel (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
Interactions must feel:
|
|
|
|
|
|
- responsive
|
|
|
|
|
|
- soft
|
|
|
|
|
|
- clear
|
|
|
|
|
|
- premium
|
|
|
|
|
|
- mobile-native
|
|
|
|
|
|
|
|
|
|
|
|
The UI should feel alive, but not noisy.
|
|
|
|
|
|
|
|
|
|
|
|
Interaction feedback should reinforce:
|
|
|
|
|
|
- user action
|
|
|
|
|
|
- state transition
|
|
|
|
|
|
- focus shift
|
|
|
|
|
|
- hierarchy change
|
|
|
|
|
|
- successful completion
|
|
|
|
|
|
- temporary waiting
|
|
|
|
|
|
|
|
|
|
|
|
The product should feel smooth and intentional under touch.
|
|
|
|
|
|
|
|
|
|
|
|
Avoid interaction feel that is:
|
|
|
|
|
|
- abrupt
|
|
|
|
|
|
- dead
|
|
|
|
|
|
- jittery
|
|
|
|
|
|
- overly animated
|
|
|
|
|
|
- flashy for its own sake
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 14) Motion Language (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
Motion is part of the product language and must be treated as meaningful.
|
|
|
|
|
|
|
|
|
|
|
|
Motion should communicate:
|
|
|
|
|
|
- causality
|
|
|
|
|
|
- continuity
|
|
|
|
|
|
- spatial relationship
|
|
|
|
|
|
- emphasis
|
|
|
|
|
|
- system responsiveness
|
|
|
|
|
|
|
|
|
|
|
|
Preferred motion patterns:
|
|
|
|
|
|
- soft press feedback
|
|
|
|
|
|
- gentle surface transition
|
|
|
|
|
|
- smooth card expand/collapse
|
|
|
|
|
|
- subtle content entrance
|
|
|
|
|
|
- assistant response reveal continuity
|
|
|
|
|
|
- calm loading transitions
|
|
|
|
|
|
- state changes that feel connected rather than replaced
|
|
|
|
|
|
|
|
|
|
|
|
Motion must not feel:
|
|
|
|
|
|
- bouncy in a toy-like way
|
|
|
|
|
|
- abrupt and mechanical
|
|
|
|
|
|
- dramatic and distracting
|
|
|
|
|
|
- overloaded with simultaneous effects
|
|
|
|
|
|
|
|
|
|
|
|
The best motion is:
|
|
|
|
|
|
- noticeable enough to feel polished
|
|
|
|
|
|
- restrained enough to remain calm
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 15) Assistant-Specific UI Tone (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
This is not a generic CRUD app.
|
|
|
|
|
|
It is an assistant product.
|
|
|
|
|
|
|
|
|
|
|
|
Therefore, the UI must visually support:
|
|
|
|
|
|
- conversation
|
|
|
|
|
|
- guidance
|
|
|
|
|
|
- summaries
|
|
|
|
|
|
- suggestions
|
|
|
|
|
|
- action handoff
|
|
|
|
|
|
- confidence-building
|
|
|
|
|
|
- clarity of next steps
|
|
|
|
|
|
|
|
|
|
|
|
Assistant screens should feel:
|
|
|
|
|
|
- structured but conversational
|
|
|
|
|
|
- intelligent but approachable
|
|
|
|
|
|
- helpful rather than commanding
|
|
|
|
|
|
|
|
|
|
|
|
Key assistant outputs should feel like:
|
|
|
|
|
|
- curated result modules
|
|
|
|
|
|
- decision-support surfaces
|
|
|
|
|
|
- intelligent summaries
|
|
|
|
|
|
- actionable insight cards
|
|
|
|
|
|
|
|
|
|
|
|
They should not feel like:
|
|
|
|
|
|
- raw logs
|
|
|
|
|
|
- plain transcript dumps
|
|
|
|
|
|
- developer console output
|
|
|
|
|
|
- generic list rows only
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 16) Visual Anti-Patterns (MUST NOT)
|
|
|
|
|
|
|
|
|
|
|
|
The UI must not look like any of the following:
|
|
|
|
|
|
|
|
|
|
|
|
- a plain document page
|
|
|
|
|
|
- a white sheet with blue buttons
|
|
|
|
|
|
- a spreadsheet-like admin panel
|
|
|
|
|
|
- a low-fidelity wireframe
|
|
|
|
|
|
- a default Flutter demo app
|
|
|
|
|
|
- an over-glowing concept shot that is not implementable
|
|
|
|
|
|
- a generic template marketplace screen
|
|
|
|
|
|
- a visually noisy Dribbble-style mockup without product discipline
|
|
|
|
|
|
|
|
|
|
|
|
Specifically avoid:
|
|
|
|
|
|
- full-screen flat white blocks with little hierarchy
|
|
|
|
|
|
- arbitrary shadow usage
|
|
|
|
|
|
- inconsistent card treatments
|
|
|
|
|
|
- too many competing accent colors
|
|
|
|
|
|
- overly dense content without grouping
|
|
|
|
|
|
- equally weighted sections with no focus
|
|
|
|
|
|
- raw container stacking with no surface semantics
|
|
|
|
|
|
- excessive decorative gradients
|
|
|
|
|
|
- empty “pretty” layouts with weak usability
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 17) Preferred Inspirations (SHOULD)
|
|
|
|
|
|
|
|
|
|
|
|
The product should loosely evoke qualities found in:
|
|
|
|
|
|
|
|
|
|
|
|
- modern iOS app composition
|
|
|
|
|
|
- premium startup productivity apps
|
|
|
|
|
|
- calm AI-native product interfaces
|
|
|
|
|
|
- refined card-based mobile layouts
|
|
|
|
|
|
- soft glass / soft depth surface systems
|
|
|
|
|
|
|
|
|
|
|
|
Useful inspiration qualities include:
|
|
|
|
|
|
- compositional discipline
|
|
|
|
|
|
- strong spacing rhythm
|
|
|
|
|
|
- excellent hierarchy
|
|
|
|
|
|
- restrained polish
|
|
|
|
|
|
- tactile clarity
|
|
|
|
|
|
- premium consumer feel
|
|
|
|
|
|
|
|
|
|
|
|
Inspiration must be translated into this product’s identity, not copied literally.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 18) Screen-Level Decision Rules (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
When generating or refining a screen, the agent must decide in this order:
|
|
|
|
|
|
|
|
|
|
|
|
1. What is the primary focus of the screen?
|
|
|
|
|
|
2. What is the surface hierarchy?
|
|
|
|
|
|
3. What needs strongest emphasis?
|
|
|
|
|
|
4. What should be grouped together?
|
|
|
|
|
|
5. What should remain lightweight or secondary?
|
|
|
|
|
|
6. Where should motion reinforce understanding?
|
|
|
|
|
|
7. How can the result feel more like a premium assistant app and less like a document page?
|
|
|
|
|
|
|
|
|
|
|
|
When multiple valid layouts exist, prefer the one that:
|
|
|
|
|
|
- has clearer hierarchy
|
|
|
|
|
|
- feels more mobile-native
|
|
|
|
|
|
- has stronger surface semantics
|
|
|
|
|
|
- feels calmer and more polished
|
|
|
|
|
|
- better supports future micro-interactions
|
|
|
|
|
|
- better matches the assistant-product identity
|
|
|
|
|
|
|
2026-03-16 19:04:54 +08:00
|
|
|
|
For top navigation and title areas:
|
|
|
|
|
|
- prefer concise, high-signal header titles to communicate page identity
|
|
|
|
|
|
- avoid repeating equivalent helper text in the first body section when it does not add new actionable meaning
|
|
|
|
|
|
- use body copy only for new context, constraints, or decision guidance
|
|
|
|
|
|
|
2026-03-13 14:10:13 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 19) AI Generation Guidance (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
When an AI agent generates UI, it must think in terms of:
|
|
|
|
|
|
|
|
|
|
|
|
- visual hierarchy
|
|
|
|
|
|
- surface system
|
|
|
|
|
|
- product polish
|
|
|
|
|
|
- interaction states
|
|
|
|
|
|
- motion readiness
|
|
|
|
|
|
- assistant identity
|
|
|
|
|
|
- premium mobile composition
|
|
|
|
|
|
|
|
|
|
|
|
It must not think in terms of:
|
|
|
|
|
|
|
|
|
|
|
|
- raw widget stacking only
|
|
|
|
|
|
- “just make it functional”
|
|
|
|
|
|
- generic default mobile layouts
|
|
|
|
|
|
- admin or dashboard templates
|
|
|
|
|
|
- flat page sections without depth
|
|
|
|
|
|
- a document-first visual model
|
|
|
|
|
|
|
|
|
|
|
|
Before finalizing a UI, the agent should mentally verify:
|
|
|
|
|
|
|
|
|
|
|
|
- Does this feel like a product, not a page?
|
|
|
|
|
|
- Is there clear hierarchy?
|
|
|
|
|
|
- Do surfaces feel intentional?
|
|
|
|
|
|
- Does the screen feel calm and premium?
|
|
|
|
|
|
- Is the assistant identity visually present?
|
|
|
|
|
|
- Would this look plausible in a polished shipping app?
|
|
|
|
|
|
|
|
|
|
|
|
If the answer is no, the UI is not finished.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 20) Relationship with Design Tokens (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
This document defines **what the UI should feel like**.
|
|
|
|
|
|
Implementation files define **how those values are encoded**.
|
|
|
|
|
|
|
|
|
|
|
|
Therefore:
|
|
|
|
|
|
|
|
|
|
|
|
- the visual language must be realized through the project’s design token system
|
|
|
|
|
|
- any missing visual semantics should be added to tokens or shared theme primitives
|
|
|
|
|
|
- the agent must not bypass the design system to approximate the visual intent locally
|
|
|
|
|
|
|
|
|
|
|
|
The correct workflow is:
|
|
|
|
|
|
|
|
|
|
|
|
1. understand desired visual effect
|
|
|
|
|
|
2. map it into shared tokens / shared components
|
|
|
|
|
|
3. implement consistently
|
|
|
|
|
|
4. preserve future reusability
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 21) Final Design Standard (MUST)
|
|
|
|
|
|
|
|
|
|
|
|
Every shipped screen should aim to satisfy all of the following:
|
|
|
|
|
|
|
|
|
|
|
|
- visually coherent
|
|
|
|
|
|
- recognizably premium
|
|
|
|
|
|
- mobile-native
|
|
|
|
|
|
- calm and intelligent
|
|
|
|
|
|
- structurally clear
|
|
|
|
|
|
- not flat
|
|
|
|
|
|
- not noisy
|
|
|
|
|
|
- clearly assistant-oriented
|
|
|
|
|
|
- implementation-realistic
|
|
|
|
|
|
- design-system-compatible
|
|
|
|
|
|
|
|
|
|
|
|
The final bar is not merely:
|
|
|
|
|
|
- “works”
|
|
|
|
|
|
- “renders”
|
|
|
|
|
|
- “uses tokens”
|
|
|
|
|
|
- “passes lint”
|
|
|
|
|
|
|
|
|
|
|
|
The final bar is:
|
|
|
|
|
|
- **feels like a polished personal assistant product**
|