Files
indee-demo/.cursor/rules/visual-design-system.mdc
Dorian 0bb1bcc5f9 Initial commit: IndeeHub decentralized streaming platform
Built a complete Netflix-style streaming interface for IndeeHub's decentralized media platform with real film content.

Features:
- Vue 3 + TypeScript + Vite setup with hot module reloading
- Netflix-inspired UI with hero section and horizontal scrolling content rows
- Glass morphism design system with custom Tailwind configuration
- 20+ real IndeeHub films organized into 6 categories (Bitcoin, Documentaries, Drama, etc.)
- Full-featured video player component with custom controls
- Mobile-responsive design with bottom navigation
- Nostr integration ready (nostr-tools, relay pool, NIP-71 support)
- Pinia state management for content
- MCP tools configured (Filesystem, Memory, Nostr, Puppeteer)

Components:
- Browse.vue: Main streaming interface with hero and content rows
- ContentRow.vue: Horizontal scrolling film cards with navigation arrows
- VideoPlayer.vue: Custom video player with play/pause, seek, volume, fullscreen
- MobileNav.vue: Bottom tab navigation for mobile devices

Tech Stack:
- Frontend: Vue 3 (Composition API), TypeScript
- Build: Vite 7
- Styling: Tailwind CSS with custom theme
- State: Pinia 3
- Router: Vue Router 4.6
- Protocol: Nostr (nostr-tools 2.22)

Design:
- 4px grid spacing system
- Glass morphism UI components
- Netflix-style hero section with featured content
- Smooth animations and hover effects
- Mobile-first responsive breakpoints
- Dark theme with custom color palette

Content:
- 20+ IndeeHub films with titles, descriptions, categories
- Bitcoin documentaries: God Bless Bitcoin, Dirty Coin, Searching for Satoshi
- Independent films and documentaries
- Working Unsplash CDN images for thumbnails and backdrops

Ready for deployment to Umbrel, Start9, and Archy nodes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:19:47 +00:00

167 lines
3.0 KiB
Plaintext

---
description:
alwaysApply: true
---
# Visual Design System Principles
## Typography Philosophy
### Bold, Statement Typography
Large, confident typography that dominates visual hierarchy. Text is a design element, not just content.
**Scale Guidelines**:
- Hero Text: 6-9rem (96-144px)
- Page Titles: 3-4rem (48-64px)
- Section Headers: 2-3rem (32-48px)
- Body Text: 1-1.125rem (16-18px)
- Small Text: 0.875rem (14px)
```css
.hero-text {
font-size: clamp(4rem, 10vw, 9rem);
font-weight: 700;
line-height: 1.1;
}
```
## Gradient-Based Visual Hierarchy
Use gradients strategically to create visual interest without clutter.
```css
/* Text gradient */
.gradient-heading {
background: linear-gradient(to right, #ffffff, #9ca3af);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
```
## Glass Morphism
Create depth through semi-transparent layers with backdrop blur.
```css
.glass-card {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
```
### Usage Guidelines
- ✅ Cards and containers over complex backgrounds
- ✅ Navigation bars with fixed positioning
- ✅ Modal overlays and dialogs
- ❌ Body text containers (readability issues)
- ❌ Form inputs (confusing UX)
## Color System Architecture
**Semantic Color Tokens** - Define colors by purpose, not appearance:
```javascript
const colors = {
brand: {
primary: '#F7931A',
secondary: '#8E44AD',
},
neutral: {
50: '#FAFAFA',
900: '#171717',
},
semantic: {
success: '#22C55E',
error: '#EF4444',
},
};
```
## Shadow & Glow Systems
Use shadows sparingly for depth perception:
```css
.shadow-card {
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.glow-on-hover:hover {
box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}
```
## Spacing System
**8px Base Grid** - All spacing follows 8px increments:
```javascript
const spacing = {
1: '0.25rem', // 4px
2: '0.5rem', // 8px
4: '1rem', // 16px
8: '2rem', // 32px
16: '4rem', // 64px
32: '8rem', // 128px
};
```
## Border Radius System
```css
rounded-lg /* 8px - buttons */
rounded-2xl /* 16px - cards */
rounded-3xl /* 24px - modals */
rounded-full /* 9999px - circles/pills */
```
## Responsive Breakpoints
Mobile-first progressive enhancement:
```javascript
const breakpoints = {
sm: '640px', // Mobile landscape
md: '768px', // Tablets
lg: '1024px', // Laptop
xl: '1280px', // Desktop
};
```
## Dark Mode
Design with both modes from the start:
```css
:root {
--bg-primary: #ffffff;
--text-primary: #171717;
}
[data-theme="dark"] {
--bg-primary: #171717;
--text-primary: #fafafa;
}
```
## Hover State Patterns
All interactive elements provide immediate feedback:
```css
.interactive {
transition: all 0.3s ease;
}
.interactive:hover {
transform: translateY(-2px);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}
```