# Islands Dark: a VS Code theme that patches the editor chrome with CSS

> A theme that goes beyond colours, injecting rounded floating panels, glass borders and animations into VS Code, VSCodium and Cursor through a second extension and a set of shell installers.

**bwya77/vscode-dark-islands** — VSCode theme based off the easemate IDE and Jetbrains islands theme

- Repository: https://github.com/bwya77/vscode-dark-islands
- Stars: 8,526 · Forks: 269
- Language: Shell
- License: not declared
- Published: 2026-10-06 · Updated: 2026-10-06 · Language: en
- Canonical page: https://hysenlabs.com/projects/bwya77-vscode-dark-islands

## Why this is more than a colour theme

The README states the design intent plainly: a dark colour theme for VS Code-compatible editors, including VSCodium, inspired by the easemate IDE, featuring floating glass-like panels, rounded corners, smooth animations and a deeply refined UI. The easemate reference is credited with three specific posts on X, covering the editor itself, its navigation and its effects.

What makes it unusual is stated in the installation section: the theme has two parts, a colour theme and CSS customizations that create the floating glass panel look. The repository tree confirms the split. `themes/` holds the theme definition, `animations.css` holds the motion, and `settings.json` and `settings-cursor.json` hold the editor settings each install applies.

The feature list gives the specifics. The canvas is a deep dark `#131217`, panels float above it, and borders simulate directional light with a brighter top and left edge and a subtle bottom and right. Corners are rounded on panels, notifications, the command palette and sidebars. The activity bar is pill-shaped with glass selection indicators, the breadcrumb and status bar dim when not hovered, tab close buttons fade in on hover, and scrollbar thumbs are pill-shaped.

Syntax highlighting is described as warm, with support for JS/TS, Python, Go, Rust, HTML/CSS, JSON, YAML and Markdown, using IBM Plex Mono in the editor and FiraCode Nerd Font Mono in the terminal.

## The installer touches more than the theme

There are several install routes, and they all end up doing the same five things. The scripts install the Islands Dark theme extension, install the Custom UI Style extension, install the Bear Sans UI fonts, back up your existing settings and apply the Islands Dark settings, then reload the editor.

The recommended route on macOS and Linux is a piped script:

```bash
curl -fsSL https://raw.githubusercontent.com/bwya77/vscode-dark-islands/main/bootstrap.sh | bash
```

PowerShell has its own equivalent using `irm` piped into `iex`, and both scripts take a flag for the editor. Passing `--vscodium` through `bash -s --` targets VSCodium, and the Windows form sets an `ISLANDS_DARK_EDITOR` environment variable to `vscodium` before running.

If you would rather see what you are running, the manual route clones the repository and calls a local script:

```bash
git clone https://github.com/bwya77/vscode-dark-islands.git islands-dark
cd islands-dark
./install.sh
```

That distinction matters more than it looks. A piped script makes the trust decision once and invisibly; a clone lets you read `install.sh` before it touches your settings directory. Both write to editor paths and both create a backup, but only the second lets you check.

One manual step survives either way. After the editor reloads, the CSS styling has to be activated once by opening the command palette with `Cmd+Shift+P` on macOS or `Ctrl+Shift+P` elsewhere and running Custom UI Style: Reload. The README says this is a one-time step, or one needed again after editor updates.

## VSCodium, Cursor and the path differences

The VSCodium support is not just a code path, it is a different set of directories. Extensions go to `~/.vscode-oss/extensions/` on macOS and Linux and `%USERPROFILE%\.vscode-oss\extensions\` on Windows. Settings go to `~/Library/Application Support/VSCodium/User/` on macOS, `~/.config/VSCodium/User/` on Linux, and `%APPDATA%\VSCodium\User\` on Windows. The scripts also use the `codium` CLI instead of `code`, which is the sort of detail that silently breaks a theme on a fork.

Cursor, as a VS Code fork, needed more than a path swap. The README explains that the Cursor scripts are a parallel of `install.sh` targeting `~/.cursor/extensions/` and Cursor's own settings directories, using the `cursor` CLI, and applying a `settings-cursor.json` that is identical to `settings.json` plus two changes.

Those two changes are the interesting part, because they are real interop bugs rather than cosmetics. `custom-ui-style.webview.enable` is set to false, because Cursor renders its extension detail panel inside a webview with a stricter Content-Security-Policy than VS Code, and leaving the webview patch on triggers a CSP error and a blank panel. The second is a CSS rule hiding a title bar button: Cursor renders a Toggle Primary Side Bar control at the top left of the title bar that the VS Code layout does not have, and leaving it visible puts a stray control in the themed title bar.

The tree also shows an Antigravity variant with its own bootstrap and install scripts, plus an `issues/` directory and a `tests/` directory, which is more infrastructure than most theme repositories carry.

## The Nix flake bundles the whole setup

If you use Nix, the flake is the tidiest route, because it assembles the theme, the extensions and the fonts into a single command. To try it without installing anything:

```bash
nix run github:bwya77/vscode-dark-islands#vscode
nix run github:bwya77/vscode-dark-islands#vscodium
```

For a configuration-based setup, the flake goes into your inputs and exposes a `vscode` or `vscodium` package per host system:

```nix
{
  inputs.islands-dark.url = "github:bwya77/vscode-dark-islands";

  outputs = { self, nixpkgs, islands-dark, ... }: {
  }
}
```

The README notes that the flake automatically includes the Custom UI Style extension, the Seti Folder icon theme, and the required fonts, naming Bear Sans UI, IBM Plex Mono and FiraCode Nerd Font. It also copies the recommended `settings.json` on the first run.

That font list is worth pausing on, because it is the part people miss. IBM Plex Mono and FiraCode Nerd Font Mono must be installed separately, and the script reminds you. The flake removes that step by bundling them, which is the strongest argument for using it if you already have a Nix setup. For everyone else, the reminder is a real friction point: a theme that specifies two fonts is a theme that renders differently until you install two fonts.

The icon theme matters too. The README says the colour-matched icon glow works best with the Seti Folder icon theme, which is why the flake includes it rather than leaving it to chance.

## What the release history shows about failure modes

There is one tagged release in the repository, v0.0.2, published 2026-02-19, and its changelog is the most informative document here because it is a list of things that broke. The fixes are grouped by symptom rather than by file.

Several are layout failures caused by the CSS approach itself: the explorer pane not showing all items with some cut off, the commit message box cut off, the primary sidebar truncating when moved to the right, and the terminal's border radius not matching the editor and chat. One is a state bug, where explorer items appeared unselected while the file stayed selected. Another is visual, the window controls background colour being incorrect. The sidebar icons were enlarged from 18px to 22px, which is a design change rather than a fix.

The first entry is the most structural: chat window colours broken. Any theme that restyles internal components is at the mercy of those components changing, and the chat panel is exactly the kind of surface that moves between editor versions.

The scripts had their own issues, with the install script called out against two separate reports. Given how much of this project is shell scripts touching an editor's settings directory, that ratio is not surprising. The repository is at version 0.0.2 in `package.json`, MIT licensed, requires VS Code `^1.60.0`, and the last push was on 2026-06-21.

## Who this is for and what it costs

The topic tags are easemate, jetbrains, visual-studio-code, vscode and vscode-theme, and `package.json` describes the theme as inspired by JetBrains Islands Dark, with deep backgrounds, warm syntax highlighting and a clean modern aesthetic. The repository has 8,535 stars, 277 forks and 10 open issues.

The honest assessment is that this is an opinionated aesthetic shipped with real engineering. The install matrix covers four editors across two platforms plus Nix, the scripts back up settings before overwriting, uninstall scripts exist in parallel for each editor, and the Cursor adaptation came with a diagnosis that names the actual mechanism behind a blank panel.

The cost is that the theme works outside VS Code's supported extension API. That is a deliberate trade and it has consequences: editor updates can break the styling until you reload it again, forks need separate maintenance, and a large fraction of the open issue count is layout breakage rather than feature requests. The `.islands_dark_first_run` marker files in the tree suggest the scripts track whether they have run, which is the kind of bookkeeping this approach requires.

If you only want the palette, install the theme extension alone and skip Custom UI Style. If you want the floating panels, this is one of the more complete attempts at them, with the caveats above.

## Conclusion

Islands Dark is a good example of a theme that has outgrown the theme format. The colour palette is one part of it, but the look comes from `animations.css` and the Custom UI Style extension rewriting the workbench DOM, which is why the README spends as much space on install paths and one-time activation steps as on colours. The install scripts back up your settings before applying `settings.json`, and `uninstall.sh` exists alongside `install.sh`, so the risk is lower than piping a script into a shell implies. What to weigh is that this modifies your editor beyond its supported extension surface, which means editor updates can require running Custom UI Style: Reload again, and forks need their own adaptations, as the Cursor scripts show. If you want the floating-panel look and use Nix, the flake bundles the theme, the icon theme, the fonts and the settings in one place, which is the cleanest way to take it. Start with the one-liner, activate the styling once as instructed, and keep the uninstall script path in mind before you commit a customised `settings.json`.

## FAQ

### How do I install the Islands Dark theme on VS Code?

On macOS and Linux, run `curl -fsSL https://raw.githubusercontent.com/bwya77/vscode-dark-islands/main/bootstrap.sh | bash`, or clone the repository and run `./install.sh`. The scripts install the theme extension, the Custom UI Style extension and the Bear Sans UI fonts, back up your settings, then reload the editor.

### Why does the theme need Custom UI Style: Reload after installing?

The floating panel look comes from CSS that patches the editor workbench rather than from the colour theme alone, and that CSS has to be injected once after install. Open the command palette and run Custom UI Style: Reload, and repeat it after editor updates.

### Can I use Islands Dark with VSCodium or Cursor?

Yes, with the editor flag. VSCodium uses `./install.sh --vscodium`, which targets the `.vscode-oss` paths and the `codium` CLI. Cursor has its own scripts and a `settings-cursor.json` that disables the webview patch and hides an extra title bar button Cursor renders.

## Sources

- [bwya77/vscode-dark-islands on GitHub](https://github.com/bwya77/vscode-dark-islands)
- [Issues](https://github.com/bwya77/vscode-dark-islands/issues)
- [README](https://github.com/bwya77/vscode-dark-islands/blob/main/README.md)
- [Releases](https://github.com/bwya77/vscode-dark-islands/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bwya77-vscode-dark-islands
