Naomi's VSCode Themes
Naomi’s VSCode Themes (hereinafter the “Application”) is a Visual Studio Code extension that provides a curated collection of custom colour themes designed to enhance the coding experience with aesthetically pleasing colour schemes. The Application currently offers four distinct themes: Ocean Breeze, Sakura Dreams, Sakura Dreams (Dark), and Trans Pride.
1. User Documentation
Section titled “1. User Documentation”This section is for those interacting with a live instance of the Application.
1.1. Overview
Section titled “1.1. Overview”Naomi’s Themes is a VSCode extension that provides custom colour themes for your code editor. Each theme has been carefully crafted with specific colour palettes to create visually appealing and comfortable coding environments.
1.2. Available Themes
Section titled “1.2. Available Themes”The Application includes the following themes:
- Ocean Breeze: A dark theme featuring soothing teal and cyan colours reminiscent of ocean waves, designed for extended coding sessions with reduced eye strain
- Sakura Dreams: A light theme inspired by cherry blossoms with soft, pastel colours
- Sakura Dreams (Dark): A dark variant of the Sakura Dreams theme, maintaining the cherry blossom aesthetic while providing a darker background
- Trans Pride: A light theme celebrating trans pride with a carefully selected colour palette
1.3. Installation
Section titled “1.3. Installation”- Open Visual Studio Code
- Navigate to the Extensions view (Ctrl+Shift+X / Cmd+Shift+X)
- Search for “Naomi’s Themes” by SpellWare
- Click “Install”
1.4. Activating a Theme
Section titled “1.4. Activating a Theme”After installation:
- Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
- Type “Preferences: Color Theme”
- Select your desired theme from the list:
- Ocean Breeze
- Sakura Dreams
- Sakura Dreams (Dark)
- Trans Pride
1.5. Requirements
Section titled “1.5. Requirements”- Visual Studio Code version 1.96.4 or higher
1.6. Support and Feedback
Section titled “1.6. Support and Feedback”If you encounter any issues or have feedback:
- Post in the #bug-reports or #feature-requests forum channels on our Discord community
- Contact via Chat Server: https://chat.spellware.dev
- Email: [email protected]
2. Technical Documentation
Section titled “2. Technical Documentation”This section is for those interested in running their own instance of the Application.
2.1. Architecture
Section titled “2.1. Architecture”The Application is structured as a standard VSCode extension with the following components:
- Theme Definitions: JSON files located in the
themes/directory, each defining colour schemes for UI elements and syntax highlighting - Extension Manifest:
package.jsoncontaining metadata and theme contributions - Assets:
icon.pngfor the extension icon
2.2. Project Structure
Section titled “2.2. Project Structure”vscode-themes/├── themes/│ ├── ocean-breeze.json│ ├── sakura-dreams.json│ ├── sakura-dreams-dark.json│ └── trans-pride.json├── package.json├── icon.png├── README.md├── LICENSE.md├── CONTRIBUTING.md├── CODE_OF_CONDUCT.md├── PRIVACY.md├── TERMS.md└── SECURITY.md2.3. Local Development Setup
Section titled “2.3. Local Development Setup”Prerequisites
Section titled “Prerequisites”- Node.js and npm installed
- Visual Studio Code installed
- vsce (Visual Studio Code Extension Manager) installed globally
Setup Steps
Section titled “Setup Steps”-
Clone the repository:
Terminal window git clone https://github.com/spellware/vscode-themes.gitcd vscode-themes -
Install vsce if not already installed:
Terminal window npm install -g @vscode/vsce -
Package the extension:
Terminal window npm run package -
Install the packaged extension in VSCode:
- Open VSCode
- Go to Extensions view
- Click the ”…” menu
- Select “Install from VSIX…”
- Choose the generated
.vsixfile
2.4. Creating a Theme
Section titled “2.4. Creating a Theme”Each theme is defined in a JSON file with the following structure:
{ "name": "Theme Name", "type": "dark" or "light", "colours": { // UI element colours }, "tokenColors": [ // Syntax highlighting rules ]}Key sections:
- colours: Defines colours for editor UI elements (background, foreground, sidebar, statusbar, etc.)
- tokenColors: Array of rules defining syntax highlighting colours based on TextMate scopes
For example, see themes/ocean-breeze.json at lines 1-373.
2.5. Building and Packaging
Section titled “2.5. Building and Packaging”The package script is configured in package.json at lines 38-39:
npm run packageThis command:
- Packages the extension into a
.vsixfile - Sets the base content and images URLs to the repository
2.6. Publishing
Section titled “2.6. Publishing”The extension is published by SpellWare to the VSCode Marketplace. The publisher configuration is defined in package.json at line 10.
2.7. Version Management
Section titled “2.7. Version Management”Current version: 2.3.0 (as defined in package.json at line 5)
Version history (from git commits):
- 2.2.0: Current release
- 2.1.0: Added dark mode and updated source links
- 2.0.0: Major version update
3. Legal Documentation
Section titled “3. Legal Documentation”This section is for expansions to our legal policies specific to the Application.
3.1. License
Section titled “3.1. License”The Application is licensed under Naomi Carrigan’s global software licence, available at: https://docs.spellware.dev/#/license
Copyright is held by Naomi Carrigan.
Reference: LICENSE.md at lines 1-5
3.2. Privacy Policy
Section titled “3.2. Privacy Policy”The Application adheres to the privacy policy documented at: https://docs.spellware.dev/#/privacy
As a VSCode theme extension, the Application:
- Does not collect any user data
- Does not transmit any information externally
- Operates entirely locally within VSCode
Reference: PRIVACY.md at lines 1-3
3.3. Terms of Service
Section titled “3.3. Terms of Service”The Application is governed by the Terms of Service available at: https://docs.spellware.dev/#/terms
Reference: TERMS.md at lines 1-3
3.4. Security Policy
Section titled “3.4. Security Policy”Security policies and vulnerability reporting procedures are documented in SECURITY.md.
3.5. Intellectual Property
Section titled “3.5. Intellectual Property”All themes, colour schemes, and design elements are copyright of Naomi Carrigan. The theme names “Ocean Breeze,” “Sakura Dreams,” and “Trans Pride” are part of this intellectual property.
4. Contributing Documentation
Section titled “4. Contributing Documentation”This section is for documentation related to contributing to the Application’s codebase.
4.1. Contributing Guidelines
Section titled “4.1. Contributing Guidelines”Complete contributing guidelines are available at: https://docs.spellware.dev/#/contributing
Reference: CONTRIBUTING.md at lines 1-3
4.2. Code of Conduct
Section titled “4.2. Code of Conduct”Before participating in the project, please review the Code of Conduct at: https://github.com/spellware/vscode-themes/blob/main/CODE_OF_CONDUCT.md
The project maintains a welcoming and inclusive environment for all contributors.
Reference: README.md at lines 13-15
4.3. How to Contribute
Section titled “4.3. How to Contribute”Reporting Issues
Section titled “Reporting Issues”- Check existing posts in the #bug-reports or #feature-requests forum channels on our Discord community
- Post in the appropriate forum channel with:
- Clear description of the problem or suggestion
- Steps to reproduce (for bugs)
- Expected vs. actual behaviour
- VSCode version and operating system
Submitting Pull Requests
Section titled “Submitting Pull Requests”- Fork the repository
- Create a feature branch from
main - Make your changes:
- For new themes: Add a new JSON file in
themes/directory - For theme modifications: Edit the respective JSON file
- Update
package.jsonif adding a new theme
- For new themes: Add a new JSON file in
- Test your changes locally by packaging and installing the extension
- Commit your changes with clear, descriptive commit messages
- Submit a pull request to the
mainbranch - Await review from the maintainers
Theme Contribution Guidelines
Section titled “Theme Contribution Guidelines”When contributing a new theme:
- Ensure the theme has a unique name and aesthetic
- Define both
coloursandtokenColorssections comprehensively - Test the theme with multiple programming languages
- Ensure sufficient contrast for accessibility
- Add the theme entry to
package.jsonundercontributes.themes - Specify the correct
uiThemebase (“vs” for light, “vs-dark” for dark)
Example theme entry in package.json:
{ "label": "Your Theme Name", "uiTheme": "vs-dark", "path": "./themes/your-theme-name.json"}Reference: package.json at lines 14-36
4.4. Development Standards
Section titled “4.4. Development Standards”File Naming Conventions
Section titled “File Naming Conventions”- Theme files: Use kebab-case (e.g.,
ocean-breeze.json,sakura-dreams-dark.json) - Theme files should be placed in the
themes/directory
JSON Formatting
Section titled “JSON Formatting”- Use 2-space indentation
- Ensure valid JSON syntax
- Include all required theme properties
Color Guidelines
Section titled “Color Guidelines”- Use hex colour codes (e.g.,
#012a22) - Consider accessibility and contrast ratios
- Test colours in both day and night lighting conditions
- Document colour inspiration or theme concept if applicable
4.5. Testing
Section titled “4.5. Testing”Before submitting:
- Package the extension locally using
npm run package - Install the VSIX file in a clean VSCode instance
- Test the theme with multiple file types:
- JavaScript/TypeScript
- Python
- Rust
- HTML/CSS
- Markdown
- Verify UI elements (sidebar, statusbar, tabs, etc.) are properly styled
- Check for colour contrast issues
4.6. Release Process
Section titled “4.6. Release Process”Releases are managed by the project maintainer (Naomi Carrigan). The typical release process:
- Update version in
package.json - Commit version changes
- Create a git tag for the version
- Run
npm run packageto generate the VSIX file - Publish to VSCode Marketplace (maintainer only)
Recent release pattern (from git history):
- Version bumps follow semantic versioning
- Releases are tagged in git
- Each release includes descriptive commit messages
4.7. Community and Communication
Section titled “4.7. Community and Communication”- Issues and discussions: Post in the #bug-reports or #feature-requests forum channels on our Discord community
- Chat Server: https://chat.spellware.dev
- Email: [email protected]
- Homepage: https://spellware.dev
4.8. Recognition
Section titled “4.8. Recognition”Contributors are valued members of the project. Significant contributions may be recognised in release notes or project documentation.