dream-customs / DESIGN.md
ADJCJH's picture
Deploy Dream Customs dream QA refactor (#16)
19c5492
|
Raw
History Blame Contribute Delete
8.63 kB

A newer version of the Gradio SDK is available: 6.20.0

Upgrade
metadata
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.