| --- |
| name: Dream QA |
| description: A guided dream Q&A interface for turning dream fragments into one grounded today tip. |
| colors: |
| morning-mist: "oklch(0.965 0.014 210)" |
| warm-paper: "oklch(0.985 0.010 82)" |
| soft-ink: "oklch(0.205 0.020 70)" |
| muted-ink: "oklch(0.500 0.030 82)" |
| surface-card: "oklch(0.995 0.006 82)" |
| surface-sage: "oklch(0.930 0.035 145)" |
| primary-sage: "oklch(0.555 0.105 145)" |
| primary-sage-deep: "oklch(0.390 0.095 145)" |
| accent-amber: "oklch(0.820 0.120 78)" |
| accent-coral: "oklch(0.710 0.135 32)" |
| border-soft: "oklch(0.825 0.020 85)" |
| warning: "oklch(0.760 0.150 75)" |
| typography: |
| display: |
| fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" |
| fontSize: "2rem" |
| fontWeight: 760 |
| lineHeight: 1.08 |
| letterSpacing: "0" |
| headline: |
| fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" |
| fontSize: "1.375rem" |
| fontWeight: 720 |
| lineHeight: 1.2 |
| title: |
| fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" |
| fontSize: "1rem" |
| fontWeight: 680 |
| lineHeight: 1.3 |
| body: |
| fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" |
| fontSize: "1rem" |
| fontWeight: 450 |
| lineHeight: 1.55 |
| label: |
| fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" |
| fontSize: "0.8125rem" |
| fontWeight: 650 |
| lineHeight: 1.25 |
| rounded: |
| sm: "6px" |
| md: "8px" |
| lg: "12px" |
| pill: "999px" |
| spacing: |
| xs: "6px" |
| sm: "10px" |
| md: "16px" |
| lg: "24px" |
| xl: "32px" |
| components: |
| button-primary: |
| backgroundColor: "{colors.primary-sage-deep}" |
| textColor: "{colors.warm-paper}" |
| rounded: "{rounded.md}" |
| padding: "12px 16px" |
| button-secondary: |
| backgroundColor: "{colors.surface-card}" |
| textColor: "{colors.primary-sage-deep}" |
| rounded: "{rounded.md}" |
| padding: "12px 16px" |
| input-composer: |
| backgroundColor: "{colors.surface-card}" |
| textColor: "{colors.soft-ink}" |
| rounded: "{rounded.lg}" |
| padding: "14px 16px" |
| --- |
| |
| # Design System: Dream QA |
|
|
| ## 1. Overview |
|
|
| **Creative North Star: "The Morning Question Desk"** |
|
|
| Dream QA should feel like a calm morning workspace for unpacking a dream while it is still fresh. The surface is light, readable, and ordinary-user friendly, with enough dream atmosphere to feel memorable. The interface is a product experience first: the user needs to record, answer, skip, add detail, and receive one today tip without decoding a metaphor-heavy ritual. |
|
|
| The old customs/pact visual language is deprecated for new work. A small `Dream Customs` label may remain for repo/Space continuity, but the primary visible experience should be `梦境问答台 / Dream QA`. |
|
|
| **Key Characteristics:** |
|
|
| - Stepper with four phases: Record, Ask, Interpret, Tip. |
| - Conversation timeline for dream fragments, follow-up questions, answers, and interpretation draft. |
| - Unified multimodal composer for text, image, voice, mood, and primary action. |
| - Right-side desktop panel for interpretation draft and Today Tip preview. |
| - Mobile final screen that prioritizes the Today Tip before optional explanation. |
|
|
| ## 2. Colors |
|
|
| The palette is soft morning product UI: warm white surfaces, charcoal text, sage actions, amber note highlights, and coral used sparingly for warmth or safety. |
|
|
| ### Primary |
|
|
| - **Sage Guide** (`oklch(0.555 0.105 145)`): stepper progress, selected chips, focus accents. |
| - **Deep Sage Guide** (`oklch(0.390 0.095 145)`): primary buttons and active controls. |
|
|
| ### Secondary |
|
|
| - **Amber Note** (`oklch(0.820 0.120 78)`): follow-up question highlight, Today Tip accent, gentle attention. |
| - **Coral Care** (`oklch(0.710 0.135 32)`): caring note, safety edge, and one small emotional highlight per result. |
|
|
| ### Neutral |
|
|
| - **Morning Mist** (`oklch(0.965 0.014 210)`): app background. |
| - **Warm Paper** (`oklch(0.985 0.010 82)`): main reading surface. |
| - **Soft Ink** (`oklch(0.205 0.020 70)`): primary text. |
| - **Muted Ink** (`oklch(0.500 0.030 82)`): secondary labels with readable contrast. |
| - **Soft Border** (`oklch(0.825 0.020 85)`): panel and input borders. |
|
|
| ### Named Rules |
|
|
| **The One Tip Rule.** Visual emphasis should guide the eye to one primary Today Tip. Do not create multiple equally loud recommendation blocks. |
|
|
| **The No Oracle Rule.** Avoid tarot, prophecy, mystic symbols, parchment certificates, and theatrical stamps. |
|
|
| ## 3. Typography |
|
|
| **Display Font:** Inter with system fallbacks. |
|
|
| **Body Font:** Inter with system fallbacks. |
|
|
| **Label/Mono Font:** Use system mono only for debug JSON, model telemetry, or structured IDs. |
|
|
| ### Hierarchy |
|
|
| - **Display** (760, 2rem, 1.08): app title and final Today Tip headline. |
| - **Headline** (720, 1.375rem, 1.2): step titles and result section names. |
| - **Title** (680, 1rem, 1.3): timeline item headers, buttons, and compact panel labels. |
| - **Body** (450, 1rem, 1.55): dream text, questions, interpretations, max 70ch for prose. |
| - **Label** (650, 0.8125rem, 1.25): chips, status text, and small metadata. |
|
|
| ### Named Rules |
|
|
| **The Morning Readability Rule.** The user may be half-awake. Body text, buttons, placeholders, and chips must stay readable on mobile. |
|
|
| ## 4. Elevation |
|
|
| Depth is subtle and functional. Panels should feel placed on a calm desk, not floating in a SaaS layout. |
|
|
| ### Shadow Vocabulary |
|
|
| - **composer-focus** (`0 0 0 1px rgba(65, 115, 78, 0.35), 0 12px 28px rgba(45, 56, 42, 0.14)`): focused composer. |
| - **tip-lift** (`0 10px 24px rgba(45, 56, 42, 0.16)`): final Today Tip card only. |
| - **question-glow** (`0 0 18px rgba(230, 178, 75, 0.22)`): active follow-up question. |
|
|
| ### Named Rules |
|
|
| **The State First Rule.** Shadows communicate focus, hover, or completion. They are not default decoration. |
|
|
| ## 5. Components |
|
|
| ### Buttons |
|
|
| - **Shape:** 8px radius. |
| - **Primary:** Deep Sage Guide fill, Warm Paper text, 12px 16px padding. |
| - **Secondary:** Warm Paper fill, Deep Sage text, full border. |
| - **Care / Safety:** Coral Care only for safety/support actions or caring note markers. |
| - **Hover / Focus:** tonal lift plus visible focus ring. |
|
|
| ### Chips |
|
|
| - **Style:** small rounded pills with icon, label, and state dot. |
| - **Use:** mood, image clue status, voice transcript status, answer/skip choices, and alternate angle request. |
| - **Text:** short labels only. Long explanatory text belongs in timeline or result body. |
|
|
| ### Cards / Containers |
|
|
| - **Corner Style:** 8px to 12px. No oversized rounded blobs. |
| - **Background:** Warm Paper or Surface Card. |
| - **Shadow Strategy:** flat by default, lifted only when active or final. |
| - **Border:** full soft border. |
| - **Internal Padding:** 16px mobile, 24px desktop. |
|
|
| ### Inputs / Fields |
|
|
| - **Style:** unified composer with multiline dream input, attachment controls, mood, and primary action. |
| - **Focus:** sage ring, slightly raised surface, no layout shift. |
| - **Error / Disabled:** inline message below composer, disabled actions stay readable and explain why. |
|
|
| ### Navigation |
|
|
| - **Style:** visible stepper with current phase: Record, Ask, Interpret, Tip. |
| - **Mobile:** stepper collapses to compact segmented steps above the conversation. |
| - **Desktop:** left rail or top rail is acceptable, but it must map to real states. |
|
|
| ### Signature Component: Today Tip Panel |
|
|
| The Today Tip Panel is the final surface. It shows: |
|
|
| - Dream summary. |
| - Main question. |
| - Grounded interpretation. |
| - One primary Today Tip. |
| - Optional tiny action. |
| - Optional caring note. |
| - Safety note only when needed. |
|
|
| The tip should be first-class and easy to screenshot, but it must not look like a diagnosis card or mystical certificate. |
|
|
| ## 6. Do's and Don'ts |
|
|
| ### Do: |
|
|
| - **Do** make the first action obvious on mobile and desktop. |
| - **Do** show the gradual Q&A flow so users understand why the final tip is grounded. |
| - **Do** keep every phase actionable with one clear next step. |
| - **Do** cite concrete dream anchors in the final result. |
| - **Do** preserve a deterministic demo backend while adding a model-backed route. |
| - **Do** verify text fits inside controls at 390px mobile width. |
|
|
| ### Don't: |
|
|
| - **Don't** ship a plain Gradio two-column form as the primary experience. |
| - **Don't** use tarot, parchment, prophecy, medical intake, or generic healing-app aesthetics. |
| - **Don't** expose technical model routes as first-level controls unless the user opens model settings. |
| - **Don't** render navigation-looking text that cannot be clicked. |
| - **Don't** create several competing tips in the final result. |
| - **Don't** let the final advice become generic wellness copy unrelated to the dream. |
|
|