/karma

A dark theme for VSCode with focus on your code inspired by Lucy, Ayu and Andromeda

Primary LanguageTypeScriptMIT LicenseMIT

Karma — a colorful VSCode theme

A colorful mix of Ayu, Lucy and Andromeda themes.


Examples

React

Karma theme screenshot for React

Karma Light theme screenshot for React

Elixir

Karma theme screenshot for Elixir

Karma Light theme screenshot for Elixir

More examples

CSS

Karma theme screenshot for CSS Karma Light theme screenshot for CSS

Go

Karma theme screenshot for Go Karma Light theme screenshot for Go

Phoenix

Karma theme screenshot for Phoenix Karma Light theme screenshot for Phoenix

Python

Karma theme screenshot for Python Karma Light theme screenshot for Python

Rust

Karma theme screenshot for Rust Karma Light theme screenshot for Rust

Svelte

Karma theme screenshot for Svelte Karma Light theme screenshot for Svelte

TypeScript

Karma theme screenshot for TypeScript Karma Light theme screenshot for TypeScript

Vue

Karma theme screenshot for Vue Karma Light theme screenshot for Vue

Install

Via the VS Code Marketplace

  • Go to the marketplace.
  • Click on the Install button.
  • Wait for the extension to be installed.
  • Select a variant: Dark (default) or Light. Alternatively, you can also use VS Code's autoDetectColorScheme to enable theme switch based on your OS color scheme by adding the following snippet to your settings.json:
    "window.autoDetectColorScheme": true,
    "workbench.preferredDarkColorTheme": "Karma",
    "workbench.preferredLightColorTheme": "Karma Light",
    "workbench.colorTheme": "Karma",

From within VS Code

  • Go to Preferences > Color Theme.
  • Search for Karma or Karma Light.

Alternatively:

  • Go to the "Extensions" view, via Preferences > Extensions.
  • Search for Karma.

If you want the "legacy" Karma theme, it's available as Karma Legacy 🙂



Recommended setup

For the best, recommended experience use the following:

  • Iosevka font
  • with the settings (you can paste these in your settings.json):
    {
    	"breadcrumbs.enabled": true,
    	"editor.bracketPairColorization.enabled": true,
    	"editor.cursorStyle": "block",
    	"editor.fontFamily": "'Iosevka', monospace",
    	"editor.fontLigatures": true,
    	"editor.fontSize": 13,
    	"editor.guides.bracketPairs": true,
    	"editor.guides.bracketPairsHorizontal": "active",
    	"editor.minimap.enabled": false, // disable minimap
    	"editor.renderLineHighlight": "all",
    	"git.mergeEditor": false,
    	"terminal.integrated.fontFamily": "'Iosevka Term'",
    	"terminal.integrated.fontSize": 13,
    	"workbench.activityBar.visible": false, // hide activity bar
    	"workbench.colorCustomizations": {
    		"[Karma]": {
    			"editorLineNumber.foreground": "#333333"
    		}
    	},
    	"window.autoDetectColorScheme": true, // to enable auto theme switch based on OS color scheme
    	"workbench.preferredDarkColorTheme": "Karma",
    	"workbench.preferredLightColorTheme": "Karma Light",
    	"workbench.colorTheme": "Karma",
    	"workbench.panel.defaultLocation": "right", // place the default panel (terminal etc.) on the right
    	"workbench.settings.editor": "json",
    	"workbench.sideBar.location": "right", // place the sidebar on the right
    	"terminal.integrated.minimumContrastRatio": 1 // on certain themes, the color gets altered by VS Code for contrast, disable this to use Karma colors
    }

Overrides

To override this theme in your personal config file, please follow the guide in the VS Code color theme documentation. You could do something like this:

// settings.json
{
	"workbench.colorCustomizations": {
		// So that this change is only for the Karma theme
		"[Karma]": {
			"editorLineNumber.foreground": "#333333"
		}
	}
},

Issues

Terminal colors look weird!

This is because the integrated terminal in VS Code has a minimum contrast ratio which dynamically changes the foreground color. This causes some foreground colors in Karma Light to be shown differently. You can add the following to your settings.json to override this:

	"terminal.integrated.minimumContrastRatio": 1

Development

Wanna try out customizing and contributing to Karma? Thanks! Here's how:

  • Fork and clone this repository
  • This project uses pnpm—make sure you've installed and set it up correctly!
  • Install all the dependencies—these allow us to "hot reload" the theme during development.
    pnpm i
  • Run the following command to start the dev script
    pnpm run dev
  • Open this project in VS Code, and then go to Run > Start Bebugging or simply hit F5.

This opens up another instance of VS Code, with the "dev" version of Karma! You can edit the color tokens in src/tokens.ts or change individual theme color variables in src/generateTheme.ts. Please make sure to use the VS Code Theme Color reference!

Credits

Karma is inspired by a mix of Ayu, Lucy and Andromeda themes. In addition, while starting work on the v3 release and on the lookout for a way to generate complimentary themes with tokens, I took heavy inspiration from GitHub's VS Code themes.

The font used in all screenshots is Iosevka. If you're interested in knowing more about my setup/what I use, head on over to sreetamdas.com/uses!

If you like Karma, thanks a lot! It truly means a lot to me. A 🌟star on the repository would be super cool! :)