Skip to content

interface

Core TypeScript interfaces shared across the codebase.

To add a new configuration option:

  1. Add the property to package.json under contributes.configuration.properties
  2. Add the property to the Configuration interface below
  3. Add a config.get<T>() call in extensionUtils.getVscodeConfiguration
  4. Add the property to PKG_DEFAULTS in settings.ts

Defined in: interface.ts:36

User-facing configuration options for the theme extension.

Settings are organised along two independent axes:

Temperature (cool | neutral | warm): controls the hue character of the neutral scale. Separate settings for dark and light mode allow mixing — e.g. warm dark with cool light.

Contrast (soft | balanced | crisp): controls how far apart background surface steps are, and the distance between background and foreground. Separate settings for dark and light mode.

All properties are optional — missing values fall back to defaults defined in the extension settings (settings.ts / PKG_DEFAULTS).

optional darkContrast?: "balanced" | "crisp" | "soft"

Defined in: interface.ts:46

Contrast level in dark mode. Controls surface separation and background-to-foreground distance. "soft" has the most air between surfaces; "crisp" is the tightest and most ink-rich.

balanced

optional darkCursor?: string

Defined in: interface.ts:49

Cursor color in dark mode.

optional darkSelection?: string

Defined in: interface.ts:52

Background color of selected text in dark mode.

optional darkTemperature?: "cool" | "neutral" | "warm"

Defined in: interface.ts:61

Color temperature of the neutral scale in dark mode. Controls hue character: "cool" shifts toward blue-grey, "neutral" is the Anthropic warm-brown baseline, "warm" pushes further into amber/ochre.

neutral

optional diagnosticTextBackgroundOpacity?: string

Defined in: interface.ts:66

Opacity of the background wash applied to diagnostic text.

optional italicComments?: boolean

Defined in: interface.ts:69

Whether to render comments in italic.

optional italicKeywords?: boolean

Defined in: interface.ts:72

Whether to render language keywords in italic.

optional lightContrast?: "balanced" | "crisp" | "soft"

Defined in: interface.ts:79

Contrast level in light mode.

balanced

optional lightCursor?: string

Defined in: interface.ts:84

Cursor color in light mode.

optional lightSelection?: string

Defined in: interface.ts:87

Background color of selected text in light mode.

optional lightTemperature?: "cool" | "neutral" | "warm"

Defined in: interface.ts:94

Color temperature of the neutral scale in light mode.

neutral

Defined in: interface.ts:114

Describes a VS Code color theme as declared in package.json.

Used for managing theme registration in the contributes.themes section.

label: string

Defined in: interface.ts:116

Display name shown in the theme picker.

path: string

Defined in: interface.ts:118

Relative path to the generated theme JSON file.

uiTheme: string

Defined in: interface.ts:120

VS Code UI theme base — "vs-dark" or "vs".

Palette = typeof palette

Defined in: interface.ts:105

Palette type derived directly from the palette object.

No manual maintenance needed — adding a color to palette.new.ts automatically extends this type.