Dance Party
Design System Reference
Apple TV dashboard app that lets businesses display customer dashboards on office TVs. The design system uses a dark-first theme with purple-to-pink gradient accents, pill-shaped buttons, and generous spacing that reads well on large screens.
danceparty.ai · Platform: Static HTML/CSS · Theme: dark-first
Design Principles
Bold gradients on deep black backgrounds. High contrast for TV-distance readability. Generous whitespace with a 120px section rhythm. Pill-shaped interactive elements. Widget-first component philosophy built for ambient display contexts.
Key Tokens
| Primary Purple | #A855F7 |
| Secondary Pink | #EC4899 |
| Brand Gradient | linear-gradient(135deg, #A855F7, #EC4899) |
| Primary BG | #0A0A0A |
| Card BG | #1A1A1A |
| Primary Text | #FFFFFF |
| Font Stack | "Inter", system |
| Button Radius | 9999px (pill) |
Colors
Dance Party uses a deep black foundation with vibrant purple-to-pink gradient accents. The palette is designed for high contrast on TV displays and dark office environments.
Brand Gradient
Brand Colors
Backgrounds
Borders
Text
Semantic
Typography
Dance Party uses Inter across all weights from 400 to 800. The type scale is designed for readability at TV distance, with large display headings and comfortable body text.
Font Family
| Primary | "Inter", -apple-system, BlinkMacSystemFont, sans-serif |
| Monospace | "JetBrains Mono", "SF Mono", ui-monospace |
Font Weights
| Regular | 400 |
| Medium | 500 |
| Semibold | 600 |
| Bold | 700 |
| Extrabold | 800 |
Heading Scale
| Size | 64px |
| Weight | 800 |
| Line Height | 1.1 |
| Letter Spacing | -0.02em |
| Size | 48px |
| Weight | 700 |
| Line Height | 1.2 |
| Letter Spacing | -0.02em |
| Size | 24px |
| Weight | 600 |
| Line Height | 1.3 |
| Letter Spacing | -0.01em |
| Size | 20px |
| Weight | 600 |
| Line Height | 1.4 |
Body Scale
| Size | 16px |
| Weight | 400 |
| Line Height | 1.6 |
| Size | 14px |
| Weight | 400 |
| Line Height | 1.5 |
| Size | 13px |
| Weight | 500 |
| Line Height | 1.4 |
| Size | 12px |
| Weight | 600 |
| Letter Spacing | 0.1em |
| Transform | uppercase |
Spacing
Dance Party uses generous spacing optimized for TV-distance readability. Sections use 120px vertical padding, with a 24px card gap and 1280px container max-width.
Spacing Scale
Layout Measurements
| Section Vertical | 120px |
| Section Vertical (Mobile) | 80px |
| Card Gap | 24px |
| Container Max Width | 1280px |
| Container Padding | 24px |
| Card Padding | 32px |
| Widget Padding | 24px |
Borders & Shadows
Border Radii
Shadows
Shadow Specs
| Card | 0 2px 8px rgba(0,0,0,0.2) |
| Card Hover | 0 8px 24px rgba(0,0,0,0.3) |
| Button | 0 4px 14px rgba(168,85,247,0.3) |
| Button Hover | 0 6px 20px rgba(168,85,247,0.45) |
| Widget | 0 8px 32px rgba(0,0,0,0.4) |
| Glow | 0 0 40px rgba(168,85,247,0.15) |
Hero
The hero section features a centered layout with a gradient glow backdrop, pill badge, large display heading with gradient text, and dual CTA buttons.
Turn your office TV into a culture hub. Announcements, leaderboards, celebrations — all on the big screen.
Hero Specs
| Title Size | 64px (56px in mockup for space) |
| Title Weight | 800 |
| Title Line Height | 1.1 |
| Gradient Text | linear-gradient(135deg, #A855F7, #EC4899) |
| Subtitle Size | 20px |
| Subtitle Color | #9CA3AF |
| Badge BG | rgba(168,85,247,0.1) |
| Badge Border | 1px solid rgba(168,85,247,0.3) |
| Badge Color | #A855F7 |
| CTA Gap | 16px |
| Glow | radial-gradient, purple/pink, 500px diameter |
Feature Cards
Feature cards use the card background with a subtle border that shifts to a purple tint on hover. Each card lifts with a -4px translateY on hover.
Announcements
Share company news, wins, and updates that scroll beautifully on your office TV.
Leaderboards
Gamify your workplace with real-time leaderboards that celebrate top performers.
Live Metrics
Display KPIs, sales numbers, and team goals with beautiful data visualizations.
Card Specs
| Background | #1A1A1A |
| Border | 1px solid #2A2A2A |
| Border Radius | 16px |
| Padding | 32px |
| Hover Border | rgba(168,85,247,0.3) |
| Hover Transform | translateY(-4px) |
| Icon Container | 40×40px, 12px radius, purple/10 bg |
| Transition | all 0.3s ease |
Widget Mockups
Widgets are the core display units on the Apple TV app. They use 20px border radius, heavier shadow, and structured internal layouts for leaderboards, announcements, and metrics.
Widget Specs
| Background | #1A1A1A |
| Border | 1px solid #2A2A2A |
| Border Radius | 20px |
| Padding | 24px |
| Shadow | 0 8px 32px rgba(0,0,0,0.4) |
| Header Title | 14px/600, uppercase, 0.05em tracking |
| Item Divider | 1px solid rgba(255,255,255,0.05) |
| Metric Value | 36px/700, gradient text |
How It Works
The "How It Works" section uses three numbered steps with large semi-transparent step numbers as a visual anchor.
Step Specs
| Number Size | 48px |
| Number Weight | 700 |
| Number Color | rgba(168,85,247,0.2) |
| Title Size | 20px |
| Title Weight | 600 |
| Description Color | #9CA3AF |
| Grid | 3 columns, 32px gap |
CTA Section
The call-to-action section uses a centered layout with a radial purple glow behind the content, creating depth and drawing focus to the action buttons.
Ready to bring your office to life?
Join hundreds of teams using Dance Party to build culture, one screen at a time.
CTA Specs
| Background | #1A1A1A |
| Border Radius | 20px |
| Padding | 64px 40px |
| Title Size | 36px / 700 |
| Subtitle Size | 18px |
| Subtitle Color | #9CA3AF |
| Glow | radial-gradient, purple 15%, 400px radius |
CSS Variables
Copy this block into your project to consume the full Dance Party token set via custom properties.
:root {
/* Backgrounds */
--dp-bg: #0A0A0A;
--dp-card: #1A1A1A;
--dp-card-hover: #222222;
--dp-elevated: #252525;
--dp-panel: #111111;
/* Brand */
--dp-purple: #A855F7;
--dp-pink: #EC4899;
--dp-pink-light: #F472B6;
--dp-blue: #3B82F6;
--dp-gradient: linear-gradient(135deg, #A855F7, #EC4899);
/* Text */
--dp-text-primary: #FFFFFF;
--dp-text-secondary: #9CA3AF;
--dp-text-muted: #6B7280;
/* Borders */
--dp-border: #2A2A2A;
--dp-border-subtle: rgba(255,255,255,0.05);
/* Shadows */
--dp-shadow-card: 0 2px 8px rgba(0,0,0,0.2);
--dp-shadow-button: 0 4px 14px rgba(168,85,247,0.3);
--dp-shadow-widget: 0 8px 32px rgba(0,0,0,0.4);
/* Radii */
--dp-radius-button: 9999px;
--dp-radius-card: 16px;
--dp-radius-icon: 12px;
--dp-radius-widget: 20px;
/* Spacing */
--dp-section-y: 120px;
--dp-card-gap: 24px;
--dp-container: 1280px;
/* Motion */
--dp-transition-fast: all 0.15s ease;
--dp-transition-normal: all 0.2s ease;
--dp-transition-medium: all 0.3s ease;
}
Tailwind Mapping
The paired JSON export includes a tailwind section with theme extensions and component recipes. Use these mappings instead of default Tailwind tokens when recreating this system.
// tailwind.config.js
import designSystem from './design-system.json';
export default {
theme: {
extend: designSystem.tailwind.theme.extend,
},
};
// Component recipes are available at
// designSystem.tailwind.componentRecipes
| Token | Value | Usage |
|---|---|---|
dp-bg | #0A0A0A | Page background |
dp-card | #1A1A1A | Card / widget background |
dp-purple | #A855F7 | Primary brand, labels, links |
dp-pink | #EC4899 | Gradient end, accents |
gradient-brand | 135deg #A855F7→#EC4899 | Buttons, hero text, highlights |
shadow-button | 0 4px 14px purple/30 | Gradient button glow |
rounded-pill | 9999px | Buttons, badges |
rounded-card | 16px | Feature cards |
rounded-widget | 20px | Widget containers |
Component Recipes
| Recipe | Class Pattern | Notes |
|---|---|---|
buttonPrimary |
inline-flex items-center justify-center gap-2 rounded-full bg-gradient-brand text-white shadow-button px-8 py-3.5 font-semibold transition-all hover:shadow-button-hover hover:-translate-y-0.5 |
Gradient pill button with purple glow. |
buttonOutline |
inline-flex items-center justify-center gap-2 rounded-full border border-white/20 text-white bg-transparent px-8 py-3.5 font-semibold transition-all hover:border-white/40 hover:bg-white/5 |
Transparent pill with white border. |
featureCard |
bg-dp-card border border-dp-border rounded-card p-8 transition-all hover:border-dp-purple/30 hover:-translate-y-1 |
Feature card with purple hover border and lift. |
widgetCard |
bg-dp-card border border-dp-border rounded-widget p-6 shadow-widget |
TV display widget container. |
heroBadge |
inline-flex items-center rounded-full bg-dp-purple/10 border border-dp-purple/30 text-dp-purple text-caption px-4 py-1.5 |
Hero section pill badge. |
sectionLabel |
text-label uppercase tracking-widest text-dp-purple font-semibold |
Section heading label in purple uppercase. |