Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
# Changelog

## Unreleased
## 1.1.0

- Renamed extension branding and theme variants from `Forest Night` to `Everforest Night`.
- Renamed configuration keys from `forestNight.*` to `everforestNight.*` (intentional breaking change before first publish).
- Updated package/repository identifiers for `everforest-night-vscode`.
- Added light theme variants: `Everforest Night Light Medium`, `Everforest Night Light Hard`, and `Everforest Night Light Soft`.

## 0.1.0
## 1.0.0

- Initial release of Forest Night dark theme. Supports selectable dark variants: Forest Night Soft, Medium and Hard.
104 changes: 59 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,29 @@

A green-based theme for Visual Studio Code, designed to stay warm and readable during long coding sessions

### Everforest Night Hard
### Everforest Night Soft

![Everforest Night Hard](screenshots/everforest-night-hard.jpeg)
![Everforest Night Soft](screenshots/everforest-night-soft.jpeg)

### Everforest Night Medium

![Everforest Night Medium](screenshots/everforest-night-medium.jpeg)

### Everforest Night Soft
### Everforest Night Hard

![Everforest Night Soft](screenshots/everforest-night-soft.jpeg)
![Everforest Night Hard](screenshots/everforest-night-hard.jpeg)

### Everforest Night Light Soft

![Everforest Night Light Soft](screenshots/everforest-night-light-soft.jpeg)

### Everforest Night Light Medium

![Everforest Night Light Medium](screenshots/everforest-night-light-medium.jpeg)

### Everforest Night Light Hard

![Everforest Night Light Hard](screenshots/everforest-night-light-hard.jpeg)

Supports both VS Code Desktop and VS Code for the Web.

Expand All @@ -29,19 +41,23 @@ Supports both VS Code Desktop and VS Code for the Web.
3. Click **Install**
4. Open **Preferences: Color Theme**
5. Select one of the built-in variants:
`Everforest Night Medium`, `Everforest Night Hard` or `Everforest Night Soft`
`Everforest Night Light Soft`, `Everforest Night Light Medium`, `Everforest Night Light Hard`,
`Everforest Night Soft`, `Everforest Night Medium` or `Everforest Night Hard`

## Theme Variants

| Variant | Main Background (`editor.background`) | Description |
| ----------------------------- | ------------------------------------- | ---------------------------------- |
| Everforest Night Hard | `#2a3339` | Highest contrast in the dark range |
| Everforest Night Medium (default) | `#323d43` | Balanced default contrast |
| Everforest Night Soft | `#3c474d` | Softest dark background |
| Variant | Main Background (`editor.background`) | Description |
| ------------------------------------- | ------------------------------------- | ----------------------------------- |
| Everforest Night Hard | `#2a3339` | Highest contrast in the dark range |
| Everforest Night Medium | `#323d43` | Balanced dark contrast |
| Everforest Night Soft | `#3c474d` | Softest dark background |
| Everforest Night Light Hard | `#f3ebd2` | Highest contrast in the light range |
| Everforest Night Light Medium | `#f9f3df` | Balanced light contrast |
| Everforest Night Light Soft | `#fff9e8` | Softest light background |

## Color Palette

### Main Colors
### Dark Main Colors

| Color | Hex | Preview |
| ---------- | --------- | ------------------------------------------------------------- |
Expand All @@ -55,52 +71,42 @@ Supports both VS Code Desktop and VS Code for the Web.
| Blue | `#86bfb7` | ![](https://img.shields.io/badge/-_-86bfb7?style=flat-square) |
| Purple | `#dba5bf` | ![](https://img.shields.io/badge/-_-dba5bf?style=flat-square) |

### Background Contrast Variants
### Dark Background Contrast Variants

| Variant | Hex | Preview |
| ---------------- | --------- | ------------------------------------------------------------- |
| Hard | `#2a3339` | ![](https://img.shields.io/badge/-_-2a3339?style=flat-square) |
| Medium (default) | `#323d43` | ![](https://img.shields.io/badge/-_-323d43?style=flat-square) |
| Soft | `#3c474d` | ![](https://img.shields.io/badge/-_-3c474d?style=flat-square) |

## Customization

Everforest Night supports real `everforestNight.*` settings.
These settings are applied automatically for all three Everforest Night variants in both VS Code Desktop and VS Code for the Web.
### Light Main Colors

| Setting | Values | Default |
| ------------------------------------------- | ---------------------------------------------------------- | ---------- |
| `everforestNight.contrast` | `theme`, `hard`, `medium`, `soft` | `theme` |
| `everforestNight.workbench` | `material`, `flat`, `high-contrast` | `material` |
| `everforestNight.selection` | `grey`, `red`, `orange`, `yellow`, `green`, `aqua`, `blue`, `purple` | `grey` |
| `everforestNight.cursor` | `white`, `red`, `orange`, `yellow`, `green`, `aqua`, `blue`, `purple` | `white` |
| `everforestNight.diagnosticTextBackgroundOpacity` | `0%`, `12.5%`, `25%`, `37.5%`, `50%` | `0%` |
| `everforestNight.italicKeywords` | `true`, `false` | `false` |
| `everforestNight.italicComments` | `true`, `false` | `true` |
| `everforestNight.highContrast` | `true`, `false` | `false` |

`everforestNight.contrast = "theme"` keeps each selected variant's native contrast (`Hard`, `Medium`, `Soft`).
| Color | Hex | Preview |
| ---------- | --------- | ------------------------------------------------------------- |
| Background | `#f9f3df` | ![](https://img.shields.io/badge/-_-f9f3df?style=flat-square) |
| Foreground | `#4f5b62` | ![](https://img.shields.io/badge/-_-4f5b62?style=flat-square) |
| Red | `#ad3b4a` | ![](https://img.shields.io/badge/-_-ad3b4a?style=flat-square) |
| Orange | `#9a5200` | ![](https://img.shields.io/badge/-_-9a5200?style=flat-square) |
| Yellow | `#8c5a00` | ![](https://img.shields.io/badge/-_-8c5a00?style=flat-square) |
| Green | `#47661b` | ![](https://img.shields.io/badge/-_-47661b?style=flat-square) |
| Aqua | `#2c7459` | ![](https://img.shields.io/badge/-_-2c7459?style=flat-square) |
| Blue | `#2e7099` | ![](https://img.shields.io/badge/-_-2e7099?style=flat-square) |
| Purple | `#8f537f` | ![](https://img.shields.io/badge/-_-8f537f?style=flat-square) |

### Light Background Contrast Variants

### Extension settings example
| Variant | Hex | Preview |
| ---------------- | --------- | ------------------------------------------------------------- |
| Hard | `#f3ebd2` | ![](https://img.shields.io/badge/-_-f3ebd2?style=flat-square) |
| Medium (default) | `#f9f3df` | ![](https://img.shields.io/badge/-_-f9f3df?style=flat-square) |
| Soft | `#fff9e8` | ![](https://img.shields.io/badge/-_-fff9e8?style=flat-square) |

```jsonc
{
"workbench.colorTheme": "Everforest Night Medium",
"everforestNight.contrast": "theme",
"everforestNight.workbench": "material",
"everforestNight.selection": "aqua",
"everforestNight.cursor": "green",
"everforestNight.diagnosticTextBackgroundOpacity": "25%",
"everforestNight.italicKeywords": true,
"everforestNight.italicComments": true,
"everforestNight.highContrast": false
}
```
## Customization

### Optional manual overrides
Everforest Night uses static theme files and does not auto-generate large override blocks in `settings.json`.
To customize colors, use VS Code's built-in per-theme override keys.

You can still add extra VS Code overrides in `settings.json` using the theme name keys.
Prefer using `everforestNight.*` for managed palette behavior and use manual overrides for additional tweaks.
### Manual overrides example

```jsonc
{
Expand All @@ -121,6 +127,14 @@ Prefer using `everforestNight.*` for managed palette behavior and use manual ove
"comments": "#aeb6b0",
},
},
"editor.semanticTokenColorCustomizations": {
"[Everforest Night Medium]": {
"enabled": true,
"rules": {
"enumMember:typescript": "#86bfb7"
}
}
}
}
```

Expand Down
135 changes: 23 additions & 112 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "everforest-night-vscode",
"displayName": "Everforest Night",
"version": "0.1.0",
"version": "1.1.0",
"description": "Everforest Night color theme for Visual Studio Code",
"categories": [
"Themes"
Expand All @@ -24,8 +24,6 @@
"url": "https://github.com/jarith/everforest-night-vscode.git"
},
"publisher": "jarith",
"main": "./build/extension.js",
"browser": "./build/extension.js",
"scripts": {
"ts:compile": "tsc -p tsconfig.json",
"ts:check": "tsc -p tsconfig.json --noEmit",
Expand All @@ -36,9 +34,9 @@
"generate:themes": "tsx src/scripts/generateThemes.ts",
"vscode:prepublish": "yarn clean && yarn ts:compile && yarn generate:themes",
"audit:a11y": "tsx src/scripts/a11y-contrast-audit.ts",
"package": "yarn clean && vsce package --yarn --no-dependencies -o build/everforest-night-vscode.vsix",
"package": "yarn clean && yarn vscode:prepublish && vsce package --yarn --no-dependencies -o build/everforest-night-vscode.vsix",
"release:vsce": "vsce publish --yarn --no-dependencies",
"publish:ovsx": "ovsx publish --yarn build/everforest-night-vscode.vsix"
"publish:ovsx": "ovsx publish build/everforest-night-vscode.vsix"
},
"devDependencies": {
"@types/node": "25.2.3",
Expand All @@ -52,106 +50,27 @@
"typescript": "5.9.3"
},
"contributes": {
"configuration": {
"title": "Everforest Night",
"properties": {
"everforestNight.contrast": {
"type": "string",
"enum": [
"theme",
"hard",
"medium",
"soft"
],
"default": "theme",
"scope": "application",
"description": "Controls contrast for Everforest Night variants. 'theme' keeps each selected variant's native contrast.",
"order": 1
},
"everforestNight.workbench": {
"type": "string",
"enum": [
"material",
"flat",
"high-contrast"
],
"default": "material",
"scope": "application",
"description": "Workbench style preset.",
"order": 2
},
"everforestNight.selection": {
"type": "string",
"enum": [
"grey",
"red",
"orange",
"yellow",
"green",
"aqua",
"blue",
"purple"
],
"default": "grey",
"scope": "application",
"description": "Selection highlight color family.",
"order": 3
},
"everforestNight.cursor": {
"type": "string",
"enum": [
"white",
"red",
"orange",
"yellow",
"green",
"aqua",
"blue",
"purple"
],
"default": "white",
"scope": "application",
"description": "Editor cursor color.",
"order": 4
},
"everforestNight.diagnosticTextBackgroundOpacity": {
"type": "string",
"enum": [
"0%",
"12.5%",
"25%",
"37.5%",
"50%"
],
"default": "0%",
"scope": "application",
"description": "Opacity used for diagnostic text backgrounds.",
"order": 5
},
"everforestNight.italicKeywords": {
"type": "boolean",
"default": false,
"scope": "application",
"description": "Render keywords with italic style.",
"order": 6
},
"everforestNight.italicComments": {
"type": "boolean",
"default": true,
"scope": "application",
"description": "Render comments with italic style.",
"order": 7
},
"everforestNight.highContrast": {
"type": "boolean",
"default": false,
"scope": "application",
"description": "Enable high-contrast workbench overrides.",
"order": 8
}
}
},
"themes": [
{
"label": "Everforest Night Light Soft",
"uiTheme": "vs",
"path": "./themes/everforest-night-light-soft.json"
},
{
"label": "Everforest Night Light Medium",
"uiTheme": "vs",
"path": "./themes/everforest-night-light-medium.json"
},
{
"label": "Everforest Night Light Hard",
"uiTheme": "vs",
"path": "./themes/everforest-night-light-hard.json"
},
{
"label": "Everforest Night Soft",
"uiTheme": "vs-dark",
"path": "./themes/everforest-night-dark-soft.json"
},
{
"label": "Everforest Night Medium",
"uiTheme": "vs-dark",
Expand All @@ -161,17 +80,9 @@
"label": "Everforest Night Hard",
"uiTheme": "vs-dark",
"path": "./themes/everforest-night-dark-hard.json"
},
{
"label": "Everforest Night Soft",
"uiTheme": "vs-dark",
"path": "./themes/everforest-night-dark-soft.json"
}
]
},
"activationEvents": [
"onStartupFinished"
],
"icon": "./icon/everforest-night.png",
"galleryBanner": {
"color": "#323d43",
Expand Down
Binary file added screenshots/everforest-night-light-hard.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/everforest-night-light-medium.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/everforest-night-light-soft.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading