Skins Overview¶
Customize r0astr's visual appearance with themes.
In Development
The skins system is partially implemented. Full theming support coming in v1.0.
What Are Skins?¶
Skins allow you to customize r0astr's visual appearance without modifying core code. Change colors, borders, and styling to match your preferences or performance setup.
Use Cases¶
- Dark mode enthusiasts - Pure black OLED themes
- Accessibility - High contrast themes
- Branding - Match your performance aesthetic
- Creativity - Express your style
What Can Be Customized¶
Currently Supported¶
| Element | Customizable |
|---|---|
| Background colors | Yes |
| Text colors | Yes |
| Accent colors | Yes |
| Panel styling | Yes |
| Borders | Yes |
| Button colors | Yes |
Coming in v1.0¶
- Custom fonts and typography
- Layout variations
- Custom icons
- Animation preferences
- Component-level theming
CSS Variables¶
r0astr uses CSS custom properties for theming. Override these in your skin:
Color Palette¶
:root {
/* Background colors */
--r0astr-bg-primary: #1a1a2e; /* Main background */
--r0astr-bg-secondary: #16213e; /* Secondary background */
--r0astr-bg-tertiary: #0f0f23; /* Tertiary background */
/* Text colors */
--r0astr-text-primary: #eee; /* Main text */
--r0astr-text-secondary: #aaa; /* Secondary text */
--r0astr-text-muted: #666; /* Muted text */
/* Accent colors */
--r0astr-accent: #6366f1; /* Primary accent */
--r0astr-accent-hover: #818cf8; /* Accent hover state */
--r0astr-accent-active: #4f46e5; /* Accent active state */
/* Status colors */
--r0astr-success: #22c55e; /* Success/playing */
--r0astr-warning: #f59e0b; /* Warning states */
--r0astr-error: #ef4444; /* Error states */
}
Panel Styling¶
:root {
/* Panel container */
--r0astr-panel-bg: #0f0f23;
--r0astr-panel-border: #333;
--r0astr-panel-radius: 8px;
--r0astr-panel-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
/* Panel header */
--r0astr-header-bg: #16213e;
--r0astr-header-border: #333;
}
Buttons and Controls¶
:root {
/* Buttons */
--r0astr-button-bg: #333;
--r0astr-button-hover: #444;
--r0astr-button-active: #555;
--r0astr-button-text: #eee;
--r0astr-button-radius: 4px;
/* Sliders */
--r0astr-slider-track: #333;
--r0astr-slider-thumb: #6366f1;
--r0astr-slider-fill: #4f46e5;
}
Code Editor¶
:root {
/* Editor area */
--r0astr-editor-bg: #0d0d1a;
--r0astr-editor-text: #d4d4d4;
--r0astr-editor-selection: rgba(99, 102, 241, 0.3);
--r0astr-editor-line-numbers: #666;
}
Applying a Skin¶
Method 1: Browser Dev Tools (Testing)¶
- Open r0astr in your browser
- Open Developer Tools (F12 or Cmd+Option+I)
- Go to Elements/Inspector
- Find the
:rootelement - Add or modify CSS variables
- Changes are temporary (refresh to reset)
Method 2: Custom CSS File¶
- Create a
skin.cssfile with your overrides - Add to r0astr's HTML:
- Reload the page
Method 3: Local Development¶
- Clone the r0astr repository
- Modify
src/styles.css - Run
npm run devto preview
Quick Theme Examples¶
Pure Black (OLED)¶
:root {
--r0astr-bg-primary: #000000;
--r0astr-bg-secondary: #0a0a0a;
--r0astr-panel-bg: #000000;
--r0astr-border: #222;
}
High Contrast¶
:root {
--r0astr-bg-primary: #000000;
--r0astr-text-primary: #ffffff;
--r0astr-accent: #00ff00;
--r0astr-border: #ffffff;
}
Warm Tones¶
:root {
--r0astr-bg-primary: #1a1612;
--r0astr-bg-secondary: #2d2520;
--r0astr-accent: #f59e0b;
--r0astr-accent-hover: #fbbf24;
}
Testing Your Skin¶
Checklist¶
- [ ] Text is readable on all backgrounds
- [ ] Buttons are visible and distinct
- [ ] Playing/stopped states are clear
- [ ] Code syntax highlighting is visible
- [ ] Slider controls are usable
- [ ] Works in both fullscreen and windowed modes
Accessibility¶
Consider contrast ratios:
- Text: Minimum 4.5:1 contrast ratio (WCAG AA)
- Large text: Minimum 3:1 contrast ratio
- UI components: Minimum 3:1 contrast ratio
Use tools like WebAIM Contrast Checker to verify.
Next Steps¶
-
Create Your Own
Step-by-step guide to creating a custom skin.
-
Browse Gallery
See community-created themes.
Full theming API documentation coming with v1.0.