Teste / DESIGN.md
GuXSs's picture
Deploy Nyra Chat (immersive Gradio chat + ZeroGPU engine)
ccaa1d0 verified
|
Raw
History Blame Contribute Delete
6.16 kB

A newer version of the Gradio SDK is available: 6.20.0

Upgrade

Design System: Nyra Chat

Product: Nyra Chat
Theme name: Void Observatory
Platform: Hugging Face Spaces (Gradio + ZeroGPU)

1. Visual Theme & Atmosphere

Cinematic void with an intelligent glow. The interface feels dense but breathable: deep black canvas, graphite panels, and a single solar-amber spark that marks brand and primary actions. Premium chat product energy — never default Gradio chrome, never generic purple AI gradients.

Mood words: nocturnal, sharp, warm-witty, observatory, glass-over-void.

Signature memory: a floating glass input bar over a slowly drifting amber mesh, with Lucide sparkles as the monogram.

2. Color Palette & Roles

Role Descriptive name Hex / value Functional role
Canvas Void Black #07070A Full-app background
Surface Graphite Night #121218 Sidebar, elevated chrome
Surface raised Smoke Glass #1A1A22 / rgba(255,255,255,0.04) Assistant bubbles, cards
User bubble Ember Glass rgba(245, 166, 35, 0.12) User message fill
Primary accent Solar Amber #F5A623 Send, active states, brand
Accent glow Amber Bloom #FFB84D Focus rings, soft outer glows
Text primary Starlight #F4F4F5 Message body and titles
Text muted Quiet Silver #8B8B96 Hints, timestamps, secondary labels
Border Hairline Mist rgba(255,255,255,0.08) Dividers, input stroke
Danger Soft Crimson #F07178 Stop / errors
Success Mint Pulse #7FD99A Online / ready indicator

3. Typography Rules

Role Family Character
Display / brand Syne Slightly geometric display; used sparingly for “Nyra” and empty-state headline
Body / chat IBM Plex Sans Technical warmth, excellent readability at 15–16px
Code / mono IBM Plex Mono Fenced code and inline ticks

Scale:

  • Chrome / labels: 12–13px, medium weight, Quiet Silver
  • Message body: 15–16px, regular, line-height ~1.55
  • Empty-state headline: 24–28px Syne, Starlight
  • Tagline: 14px, Quiet Silver

Letter-spacing: slightly open on brand wordmark (+0.02em); normal on body.

4. Component Stylings

Buttons

  • Primary: solid Solar Amber, text near-black (#0A0A0B), generously rounded (~12–999px pill for send), soft amber outer glow on hover, press scale ~0.96
  • Ghost / secondary: transparent fill, Hairline Mist border, Starlight text
  • Danger: Soft Crimson outline or fill for stop

Cards / containers

  • Graphite Night surfaces with 1px Hairline Mist edge
  • Whisper-soft multi-layer shadow: 0 8px 32px rgba(0,0,0,0.45)
  • Corner roundness: ~16–20px (bubbles), ~14px (panels), ~20px (input shell)

Inputs / forms

  • Glass shell: rgba(18,18,24,0.72) + backdrop blur ~16px
  • Stroke: Hairline Mist → Amber Bloom on focus
  • Placeholder: Quiet Silver

Chat bubbles

  • Assistant: left-aligned Smoke Glass, optional avatar ring with amber hairline
  • User: right-aligned Ember Glass
  • Enter animation: 8–12px rise + fade, ~200ms ease-out

Sidebar

  • Width 260px, Graphite Night
  • Collapses to drawer on mobile
  • “New chat” as ghost button with Lucide message-square-plus

5. Layout Principles

  • Full-viewport shell; chat column max-width ~820px centered in main pane
  • Top bar ~56px: brand left, utilities right
  • Message stream fills remaining height; input sticky at bottom with safe padding
  • Vertical rhythm 16–24px between messages
  • Suggestion chips in a responsive wrap under empty state
  • Whitespace is intentional: avoid cramming chrome; let the void breathe

Wireframe

┌──────────────────────────────────────────────────────────┐
│ [≡]  ✨ Nyra · Chat                        [lang][gear]  │
├────────────┬─────────────────────────────────────────────┤
│ New chat   │                                             │
│ History…   │     empty hero + chips  OR  message stream  │
│            │                                             │
│            │  ┌─────────────────────────────────────┐    │
│            │  │  input · arrow-up send              │    │
│            │  └─────────────────────────────────────┘    │
└────────────┴─────────────────────────────────────────────┘

6. Motion Language

Moment Behavior
Page load Fade-up brand + main column, 400ms ease-out
Message enter TranslateY(10px) → 0 + opacity, 200ms
Send press Scale 0.96 + amber bloom expand
Typing Three soft pulses (staggered dots)
Ambient mesh 60s slow gradient drift on canvas
Sidebar Width/opacity 250ms

Reduced motion: disable ambient drift and non-essential transitions when prefers-reduced-motion: reduce.

7. Iconography (Lucide)

Action Icon
Brand sparkles
New chat message-square-plus
Send arrow-up
Stop square
Copy copy
Settings settings-2
Menu panel-left
Clear trash-2
Language languages
Chips zap, code-2, globe, lightbulb

Stroke: 1.75–2px, currentColor, size 18–20px chrome / 16px inline.

8. Brand voice in UI copy

  • Product name Nyra only — never Grok / xAI
  • Bilingual PT + EN labels
  • Empty state is a greeting, not a sales pitch
  • Errors explain what happened and what to try next

9. Implementation notes (Gradio)

  • Tokens live in static/app.css as CSS variables
  • Lucide via CDN + static/app.js hydration
  • Skin Gradio with elem_id / elem_classes and aggressive chrome overrides
  • Dark color-scheme forced for the app shell