mirror of
https://github.com/JezzWTF/vibepod.git
synced 2026-06-01 15:22:14 +00:00
194 lines
9.6 KiB
Markdown
194 lines
9.6 KiB
Markdown
---
|
|
name: VibePod Dark Developer
|
|
colors:
|
|
background: "#0d1117"
|
|
foreground: "#e2e8f0"
|
|
card-bg: "#161b22"
|
|
border: "#21262d"
|
|
accent-teal: "#2dd4bf"
|
|
accent-violet: "#a78bfa"
|
|
accent-teal-dim: "#0d9488"
|
|
accent-violet-dim: "#7c3aed"
|
|
muted: "#64748b"
|
|
success: "#22c55e"
|
|
error: "#ef4444"
|
|
status-checking: "#eab308"
|
|
status-loading: "#60a5fa"
|
|
status-downloading: "#38bdf8"
|
|
status-online: "#22c55e"
|
|
status-error: "#f97316"
|
|
status-offline: "#ef4444"
|
|
gradient-primary: "linear-gradient(135deg, #2dd4bf, #a78bfa)"
|
|
gradient-primary-dim: "linear-gradient(135deg, #0d9488, #7c3aed)"
|
|
gradient-progress: "linear-gradient(90deg, #2dd4bf, #a78bfa)"
|
|
gradient-download: "linear-gradient(90deg, #60a5fa, #2dd4bf)"
|
|
gradient-loading: "linear-gradient(90deg, #fbbf24, #2dd4bf)"
|
|
typography:
|
|
display:
|
|
fontFamily: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
fontSize: 20px
|
|
fontWeight: "700"
|
|
letterSpacing: "-0.015em"
|
|
headline:
|
|
fontFamily: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
fontSize: 14px
|
|
fontWeight: "600"
|
|
letterSpacing: "0.05em"
|
|
textTransform: "uppercase"
|
|
body:
|
|
fontFamily: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
fontSize: 14px
|
|
fontWeight: "400"
|
|
lineHeight: "1.625"
|
|
label:
|
|
fontFamily: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
fontSize: 12px
|
|
fontWeight: "500"
|
|
mono:
|
|
fontFamily: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace'
|
|
fontSize: 12px
|
|
fontWeight: "400"
|
|
rounded:
|
|
sm: 0.125rem
|
|
DEFAULT: 0.25rem
|
|
md: 0.375rem
|
|
lg: 0.5rem
|
|
xl: 0.75rem
|
|
full: 9999px
|
|
spacing:
|
|
base: 4px
|
|
xs: 6px
|
|
sm: 8px
|
|
md: 12px
|
|
lg: 16px
|
|
xl: 20px
|
|
2xl: 24px
|
|
container: 1152px
|
|
shadows:
|
|
glow-teal: "0 0 6px rgba(45, 212, 191, 0.4)"
|
|
glow-teal-strong: "0 0 10px rgba(45, 212, 191, 0.7)"
|
|
glow-teal-button: "0 4px 15px rgba(45, 212, 191, 0.2)"
|
|
glow-teal-player: "0 4px 12px rgba(45, 212, 191, 0.3)"
|
|
components:
|
|
card:
|
|
backgroundColor: "{colors.card-bg}"
|
|
borderColor: "{colors.border}"
|
|
borderWidth: "1px"
|
|
rounded: "{rounded.xl}"
|
|
padding: "{spacing.xl}"
|
|
button-primary:
|
|
background: "{colors.gradient-primary-dim}"
|
|
textColor: "#ffffff"
|
|
rounded: "{rounded.xl}"
|
|
padding: "{spacing.md}"
|
|
boxShadow: "{shadows.glow-teal-button}"
|
|
fontWeight: "600"
|
|
fontSize: 14px
|
|
button-ghost:
|
|
backgroundColor: "transparent"
|
|
borderColor: "{colors.border}"
|
|
textColor: "{colors.muted}"
|
|
rounded: "{rounded.lg}"
|
|
padding: "{spacing.xs} {spacing.md}"
|
|
fontSize: 12px
|
|
input-textarea:
|
|
backgroundColor: "{colors.background}"
|
|
borderColor: "{colors.border}"
|
|
textColor: "{colors.foreground}"
|
|
rounded: "{rounded.lg}"
|
|
padding: "{spacing.lg}"
|
|
fontSize: 14px
|
|
badge-status:
|
|
backgroundColor: "{colors.background}"
|
|
borderColor: "{colors.border}"
|
|
textColor: "{colors.foreground}"
|
|
rounded: "{rounded.full}"
|
|
padding: "{spacing.xs} {spacing.md}"
|
|
fontSize: 12px
|
|
log-panel:
|
|
backgroundColor: "{colors.background}"
|
|
borderColor: "{colors.border}"
|
|
rounded: "{rounded.lg}"
|
|
padding: "{spacing.lg}"
|
|
typography: "{typography.mono}"
|
|
progress-bar-track:
|
|
backgroundColor: "{colors.border}"
|
|
height: "6px"
|
|
rounded: "{rounded.full}"
|
|
slider-thumb:
|
|
backgroundColor: "{colors.accent-teal}"
|
|
width: "16px"
|
|
height: "16px"
|
|
rounded: "{rounded.full}"
|
|
boxShadow: "{shadows.glow-teal}"
|
|
---
|
|
|
|
## Brand & Style
|
|
|
|
The VibePod design system embraces a **Cyber-Dark / Developer-First** aesthetic. The visual language is engineered for focused creation, prioritizing high contrast, clear data hierarchy, and technical precision. The UI evokes the feel of a modern IDE or a pro-audio software tool, rather than a consumer social app.
|
|
|
|
The emotional tone is powerful, precise, and cutting-edge. It utilizes deeply saturated background tones to reduce eye strain during long sessions, punctuated by vibrant, synthetic neon accents that guide the user's attention and signal system status.
|
|
|
|
## Colors
|
|
|
|
The color palette is strictly dark-mode-first, relying on nuanced grays with subtle cool undertones to create depth, contrasted against highly saturated "cyber" accents.
|
|
|
|
- **Background Layers:** The base background is a deep, near-black slate (`#0d1117`), while interactive cards and panels float slightly higher with a marginally lighter, cool-tinted gray (`#161b22`).
|
|
- **Accents:** The primary brand colors are Teal (`#2dd4bf`) and Violet (`#a78bfa`). These are used sparingly as solid colors for small interactive elements (like range thumbs) but frequently combined into dynamic linear gradients for primary actions and active states.
|
|
- **Typography:** Text relies on high-contrast silver/white (`#e2e8f0`) for primary readability, stepping down to a cool, slate-gray muted tone (`#64748b`) for secondary metadata and unselected states.
|
|
- **System Status:** A robust set of semantic colors communicates the complex state of the generative AI model, utilizing recognizable traffic-light paradigms (Green for online, Red for offline) alongside descriptive states like Sky Blue for downloading.
|
|
|
|
## Typography
|
|
|
|
The typographic system is built entirely on native system fonts, ensuring zero latency, maximum crispness on any display, and an immediate sense of familiarity across operating systems.
|
|
|
|
- **Hierarchy:** Headers utilize uppercase styling with generous letter spacing to act as clear section dividers without requiring massive font sizes.
|
|
- **Utility:** A monospace stack is rigorously applied to technical data, including timestamps, duration markers, server status logs, and numerical readouts, reinforcing the "pro-tool" aesthetic.
|
|
- **Reading Comfort:** The primary script input utilizes a relaxed line height (`1.625`) to ensure long-form text remains highly legible during the editing and recording process.
|
|
|
|
## Layout & Spacing
|
|
|
|
The layout is highly structured, utilizing a modular, dashboard-like grid that keeps all controls immediately accessible without scrolling.
|
|
|
|
- **Grid System:** A responsive 3-column grid serves as the foundation. The primary creative space (script input and audio playback) commands 2/3 of the width, while the technical controls and system logs are confined to a 1/3 sidebar column.
|
|
- **Containment:** Elements are strictly containerized within defined cards. This strong bordering approach (`1px solid var(--border)`) clearly delineates different functional areas of the application.
|
|
- **Rhythm:** Spacing follows a tight 4px baseline grid. Padding within cards is generous (`20px`), while the gaps between related structural elements are kept relatively tight to maintain a cohesive control-panel feel.
|
|
|
|
## Elevation, Depth & Glow
|
|
|
|
Traditional drop shadows are abandoned in favor of **Neon Glow** to create depth and indicate interactivity.
|
|
|
|
- **Flat Surfaces:** Cards and panels do not use shadows to lift off the background; they rely solely on subtle background color shifts and crisp 1px borders.
|
|
- **Interactive Glow:** Key interactive elements, such as the primary generation button and the audio playback controls, utilize a colored, diffused box-shadow (e.g., `rgba(45, 212, 191, 0.2)`) that matches their gradient background, making them appear to emit light.
|
|
- **Range Sliders:** Custom range input thumbs feature a concentrated teal glow that intensifies on hover, providing tactile visual feedback reminiscent of physical mixing consoles.
|
|
|
|
## Shapes
|
|
|
|
The shape language is a hybrid of structural precision and tactile softness.
|
|
|
|
- **Containers:** Large structural elements like cards and the main text area use a moderate `0.75rem` (12px) radius, softening the rigid grid.
|
|
- **Interactive Elements:** Primary action buttons are fully rounded (`rounded-xl` or `rounded-full` for play buttons), creating a clear visual distinction between "containers of information" and "things you click."
|
|
- **Progress:** All progress bars, slider tracks, and status indicator dots utilize fully rounded pill shapes (`9999px`) to maintain a fluid, continuous feel during generation and playback.
|
|
|
|
## Components
|
|
|
|
### Card Containers
|
|
|
|
The fundamental building block of the UI. Every distinct section (Script, Player, Controls, Logs) is housed in a card featuring the `card-bg`, a 1px `border`, and `rounded-xl` corners. The internal layout always features an uppercase teal header for immediate section identification.
|
|
|
|
### Primary Action Buttons
|
|
|
|
Used for high-leverage actions like "Generate Audio" and "Play/Pause." These buttons utilize the `gradient-primary-dim` background, bold white text, and emit a soft teal glow to draw the eye and signify their importance.
|
|
|
|
### Range Sliders
|
|
|
|
Custom-styled input ranges replace default browser styles. The tracks are muted and slim, while the thumbs are bright teal, fully rounded, and emit a glow that intensifies on hover, providing a premium, tactile scrubbing experience.
|
|
|
|
### Status Indicators & Logs
|
|
|
|
A critical component of the application. Status badges utilize a minimalist pill shape with a pulsing ring animation to indicate active server processing. The log panel explicitly uses monospace typography and color-codes messages (green for success, red for error, white for neutral) to provide a terminal-like readout of the backend systems.
|
|
|
|
### Gradients
|
|
|
|
Gradients are used purposefully to indicate progress, activity, or brand presence. The primary gradient (`135deg` from teal to violet) is used for branding (the logo icon and text) and primary buttons. Horizontal gradients (`90deg`) are used dynamically in progress bars to represent the flow of data over time (e.g., loading, downloading, and audio generation).
|