A modern, accessible Spicetify extension providing a floating CSS editor with syntax highlighting, live preview, and an enhanced color picker with OKLCH support.
β¨ Live CSS Editing
- Edit your Spotify theme CSS in real-time with instant preview
- Floating, draggable, and resizable editor window
- Minimize/maximize functionality that follows window resizing
π¨ Advanced Editor
- Syntax highlighting powered by Ace Editor
- Auto-completion and intelligent code suggestions
- Customizable font size and tab spacing
- Line numbers and code folding
- Multiple color themes for the editor
π Advanced Color Picker
- ace-colorpicker with HEX, RGB, HSL
- OKLCH supported in conversion
- Previous-color swatch and full hue slider
- Scrollbar Hidden by default in the color picker - appears on hover or while scrolling
βοΈ Smart Features
- Auto-save option to persist changes automatically
- Word wrap for better readability
- Configurable hotkey to quickly open/close the editor
- Position memory - remembers where you placed it
π― Seamless Integration
- Native Spotify settings integration
- Follows Spotify's design language
- Properly aligned controls and spacing
- Install Spicetify
- Install Spicetify Marketplace
- Search for "ReDesign" in the Extensions tab
- Click Install
- Download the latest release from the Releases page
- Copy
redesign.jsto your Spicetify extensions folder:- Windows:
%APPDATA%\spicetify\Extensions - Linux/macOS:
~/.config/spicetify/Extensions
- Windows:
- Run the following commands:
spicetify config extensions redesign.js spicetify apply
- Clone this repository:
git clone https://github.com/kalashnikxvxiii/redesign cd redesign - Install dependencies:
npm install
- Build the extension:
npm run build
- The compiled extension will be automatically placed in your Spicetify extensions folder
- Apply the extension:
spicetify apply
- Open the Editor: Use your configured hotkey (default:
Ctrl+Shift+E) or access it from Spotify's settings - Edit CSS: Type your CSS code in the editor
- See Changes Live: Changes are applied immediately as you type
- Save: Enable auto-save in settings, or your changes persist automatically
- Customize: Access settings in Spotify's settings page under "ReDesign" section
Access settings in Spotify Settings > ReDesign:
- Hotkey to open/close editor: Customize the keyboard shortcut
- Editor font size: Adjust font size for better readability
- Tab size: Set the number of spaces for tabs
- Enable Auto-save: Automatically save changes
- Show Line Numbers: Toggle line numbers visibility
- Enable word wrap: Wrap long lines for better viewing
- Editor color theme: Choose from multiple color schemes
- Save editor position: Remember editor position between sessions
- Restore default CSS: Reset to original Spotify CSS
| Shortcut | Action |
|---|---|
Ctrl+Shift+E |
Toggle editor (customizable) |
Ctrl+S |
Save CSS (when auto-save is disabled) |
Ctrl+F |
Find in editor |
Ctrl+H |
Find and replace |
Ctrl+/ |
Toggle comment |
Ctrl+Z |
Undo |
Ctrl+Y |
Redo |
src/
βββ app.tsx # Main extension component
βββ css-editor-iframe.tsx # Editor UI and state management
βββ lib/
βββ color-converter.ts # Color format conversions
βββ colorpicker-manager.ts # Color picker state machine
βββ colorpicker-enhanced.css # Modern color picker styles
βββ ace-colorpicker.min.js # Color picker library
βββ settingsSection.tsx # Settings UI component
βββ settings.module.css # Settings styles
βββ types/ # TypeScript definitions (e.g. settings-field.ts)
scripts/
βββ build.mjs # Build with esbuild
βββ deploy.js # Deploy to Spicetify
βββ test.js # Run test suite
βββ verify.js # Verify deployment
docs/
βββ DEVELOPMENT.md # Development guide
| Command | Description |
|---|---|
npm run build |
Build extension |
npm run watch |
Build with file watching |
npm test |
Run test suite |
npm run deploy |
Full deployment pipeline |
npm run deploy:quick |
Quick deploy (skip tests) |
npm run verify |
Verify installation |
The color picker supports:
- HEX:
#FF5733,#FF5733FF(with alpha) - RGB:
rgb(255, 87, 51),rgba(255, 87, 51, 0.8) - HSL:
hsl(9, 100%, 60%),hsla(9, 100%, 60%, 0.8) - OKLCH:
oklch(0.620 0.220 29.0)(modern, perceptually uniform)
- β WCAG AA contrast compliance checking
- β Keyboard navigation support
- β Focus indicators
- β Screen reader compatible
- β High contrast mode support
- β Reduced motion support
Run the comprehensive test suite:
npm testTests cover:
- File structure validation
- Color conversion accuracy
- Accessibility compliance
- CSS validation
- Performance benchmarks
- Font Size: Adjust editor font size
- UI Theme: Dark or Light mode (affects which editor palettes are available)
- Editor Palette: Syntax highlighting theme; options are filtered by UI theme (18 dark and 18 light palettes)
- Auto-save: Enable/disable automatic saving
- Line Numbers: Show/hide line numbers
- Word Wrap: Enable/disable text wrapping
- Tab Size: Set indentation size
Default: F12 - Customize in Spotify Preferences
| Metric | Target | Status |
|---|---|---|
| Bundle Size | < 50KB | β ~37KB |
| Load Time | < 200ms | β ~150ms |
| Color Conversion | < 10ms | β ~5ms |
| Accessibility | WCAG AA | β Compliant |
- Verify Spicetify is installed:
spicetify status - Check hotkey in Spotify Preferences
- Restart Spotify
- This is normal behavior - it closes when you move the mouse away
- Click the color preview again to reopen
- Check CSS syntax (use browser DevTools)
- Ensure selectors are specific enough
- Try adding
!importantif needed
- Different color spaces render differently
- Use OKLCH for perceptually uniform colors
- Check your monitor's color profile
For development setup and contribution guidelines, see DEVELOPMENT.md.
MIT License - See LICENSE file for details
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
- Original project forked from Spotify CSS Editor
- Heavily modified and enhanced by me :)
- Built for Spicetify
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have suggestions, please open an issue on GitHub.
Made with β€οΈ for the Spicetify community