# Themes Themes define colors and text style, but not glyphs. ## Complete Built-in Theme Catalog The module includes 90 themes: - `DefaultDark` - `DefaultLight` - `NoColor` - `Dracula` - `Nord` - `GruvboxDark` - `GruvboxLight` - `CatppuccinMocha` - `CatppuccinLatte` - `TokyoNight` - `SolarizedDark` - `SolarizedLight` - `CatppuccinFrappe` - `CatppuccinMacchiato` - `RosePine` - `RosePineMoon` - `RosePineDawn` - `TokyoNightStorm` - `TokyoNightMoon` - `TokyoNightDay` - `KanagawaWave` - `KanagawaDragon` - `KanagawaLotus` - `EverforestDark` - `EverforestLight` - `OneDark` - `OneLight` - `OneDarkPro` - `GitHubDark` - `GitHubLight` - `GitHubDimmed` - `GitHubHighContrast` - `VSCodeDarkPlus` - `VSCodeLightPlus` - `VSCodeHighContrast` - `JetBrainsDarcula` - `Monokai` - `MonokaiPro` - `Molokai` - `MaterialDark` - `MaterialLight` - `MaterialPalenight` - `MaterialOcean` - `Palenight` - `AyuDark` - `AyuLight` - `AyuMirage` - `NightOwl` - `LightOwl` - `Cobalt2` - `SynthWave84` - `ShadesOfPurple` - `Horizon` - `Omni` - `NoctisDark` - `NoctisLight` - `Andromeda` - `Aura` - `EvaDark` - `EvaLight` - `CityLights` - `Jellybeans` - `PaperColorDark` - `PaperColorLight` - `OceanicNext` - `Sonokai` - `EdgeDark` - `EdgeLight` - `Nightfox` - `Dayfox` - `Dawnfox` - `Nordfox` - `Carbonfox` - `FlexokiDark` - `FlexokiLight` - `SerendipityDark` - `SerendipityLight` - `IcebergDark` - `IcebergLight` - `Srcery` - `Apprentice` - `Deus` - `VitesseDark` - `VitesseLight` - `Poimandres` - `Spacegray` - `Gotham` - `Flatland` - `ParaisoDark` - `ParaisoLight` The built-in palettes are adapted for file-system output. Source projects retain their own names, licenses, and distribution terms. ## Palette Sources | `gly` themes | Source | | --- | --- | | `DefaultDark`, `DefaultLight`, `NoColor` | `gly` project palette | | `SolarizedDark`, `SolarizedLight` | [altercation/solarized](https://github.com/altercation/solarized) | | `Dracula` | [dracula/dracula-theme](https://github.com/dracula/dracula-theme) | | `Nord` | [nordtheme/nord](https://github.com/nordtheme/nord) | | `GruvboxDark`, `GruvboxLight` | [morhetz/gruvbox](https://github.com/morhetz/gruvbox) | | `CatppuccinLatte`, `CatppuccinFrappe`, `CatppuccinMacchiato`, `CatppuccinMocha` | [catppuccin/catppuccin](https://github.com/catppuccin/catppuccin) | | `RosePine`, `RosePineMoon`, `RosePineDawn` | [rose-pine/rose-pine-theme](https://github.com/rose-pine/rose-pine-theme) | | `TokyoNight`, `TokyoNightStorm`, `TokyoNightDay`, `TokyoNightMoon` | [folke/tokyonight.nvim](https://github.com/folke/tokyonight.nvim) | | `KanagawaWave`, `KanagawaDragon`, `KanagawaLotus` | [rebelot/kanagawa.nvim](https://github.com/rebelot/kanagawa.nvim) | | `EverforestDark`, `EverforestLight` | [sainnhe/everforest](https://github.com/sainnhe/everforest) | | `OneDark` | [atom/one-dark-syntax](https://github.com/atom/one-dark-syntax) | | `OneLight` | [atom/one-light-syntax](https://github.com/atom/one-light-syntax) | | `OneDarkPro` | [Binaryify/OneDark-Pro](https://github.com/Binaryify/OneDark-Pro) | | `GitHubDark`, `GitHubLight`, `GitHubDimmed`, `GitHubHighContrast` | [primer/github-vscode-theme](https://github.com/primer/github-vscode-theme) | | `VSCodeDarkPlus`, `VSCodeLightPlus`, `VSCodeHighContrast` | [microsoft/vscode theme-defaults](https://github.com/microsoft/vscode/tree/main/extensions/theme-defaults) | | `JetBrainsDarcula` | [JetBrains/intellij-community themes](https://github.com/JetBrains/intellij-community/tree/master/platform/platform-resources/src/themes) | | `Monokai` | [microsoft/vscode theme-monokai](https://github.com/microsoft/vscode/tree/main/extensions/theme-monokai) | | `MonokaiPro` | [monokai.pro](https://monokai.pro/) | | `Molokai` | [tomasr/molokai](https://github.com/tomasr/molokai) | | `MaterialDark`, `MaterialLight`, `MaterialPalenight`, `MaterialOcean` | [material-theme/vsc-material-theme](https://github.com/material-theme/vsc-material-theme) | | `Palenight` | [whizkydee/vscode-material-palenight-theme](https://github.com/whizkydee/vscode-material-palenight-theme) | | `AyuDark`, `AyuLight`, `AyuMirage` | [ayu-theme/ayu-vim](https://github.com/ayu-theme/ayu-vim) | | `NightOwl`, `LightOwl` | [sdras/night-owl-vscode-theme](https://github.com/sdras/night-owl-vscode-theme) | | `Cobalt2` | [wesbos/cobalt2-vscode](https://github.com/wesbos/cobalt2-vscode) | | `SynthWave84` | [robb0wen/synthwave-vscode](https://github.com/robb0wen/synthwave-vscode) | | `ShadesOfPurple` | [ahmadawais/shades-of-purple-vscode](https://github.com/ahmadawais/shades-of-purple-vscode) | | `Horizon` | [jolaleye/horizon-theme-vscode](https://github.com/jolaleye/horizon-theme-vscode) | | `Omni` | [getomni/vscode](https://github.com/getomni/vscode) | | `NoctisDark`, `NoctisLight` | [liviuschera/noctis](https://github.com/liviuschera/noctis) | | `Andromeda` | [EliverLara/Andromeda](https://github.com/EliverLara/Andromeda) | | `Aura` | [daltonmenezes/aura-theme](https://github.com/daltonmenezes/aura-theme) | | `EvaDark`, `EvaLight` | [fisheva/Eva-Theme](https://github.com/fisheva/Eva-Theme) | | `CityLights` | [Yummygum/city-lights-syntax-vsc](https://github.com/Yummygum/city-lights-syntax-vsc) | | `Jellybeans` | [nanotech/jellybeans.vim](https://github.com/nanotech/jellybeans.vim) | | `PaperColorDark`, `PaperColorLight` | [NLKNguyen/papercolor-theme](https://github.com/NLKNguyen/papercolor-theme) | | `OceanicNext` | [voronianski/oceanic-next-color-scheme](https://github.com/voronianski/oceanic-next-color-scheme) | | `Sonokai` | [sainnhe/sonokai](https://github.com/sainnhe/sonokai) | | `EdgeDark`, `EdgeLight` | [sainnhe/edge](https://github.com/sainnhe/edge) | | `Nightfox`, `Dayfox`, `Dawnfox`, `Nordfox`, `Carbonfox` | [EdenEast/nightfox.nvim](https://github.com/EdenEast/nightfox.nvim) | | `FlexokiDark`, `FlexokiLight` | [kepano/flexoki](https://github.com/kepano/flexoki) | | `SerendipityDark`, `SerendipityLight` | [serendipity-theme/serendipity](https://github.com/serendipity-theme/serendipity) | | `IcebergDark`, `IcebergLight` | [cocopon/iceberg.vim](https://github.com/cocopon/iceberg.vim) | | `Srcery` | [srcery-colors/srcery-vim](https://github.com/srcery-colors/srcery-vim) | | `Apprentice` | [romainl/Apprentice](https://github.com/romainl/Apprentice) | | `Deus` | [ajmwagar/vim-deus](https://github.com/ajmwagar/vim-deus) | | `VitesseDark`, `VitesseLight` | [antfu/vscode-theme-vitesse](https://github.com/antfu/vscode-theme-vitesse) | | `Poimandres` | [drcmda/poimandres-theme](https://github.com/drcmda/poimandres-theme) | | `Spacegray` | [kkga/spacegray](https://github.com/kkga/spacegray) | | `Gotham` | [whatyouhide/vim-gotham](https://github.com/whatyouhide/vim-gotham) | | `Flatland` | [thinkpixellab/flatland](https://github.com/thinkpixellab/flatland) | | `ParaisoDark`, `ParaisoLight` | [idleberg/Paraiso-Color-Scheme](https://github.com/idleberg/Paraiso-Color-Scheme) | List themes: ```powershell Get-GlyTheme ``` Select a theme: ```powershell Set-GlyTheme DefaultLight ``` Preview every color matcher without changing the active theme: ```powershell Show-GlyThemeColor DefaultLight ``` See [Theme and glyph previews](previews.md) for combined previews and pipeline behavior. ## Essential Color Rules Built-in color themes intentionally use only five filesystem-oriented rules. This keeps output readable and avoids assigning arbitrary colors to every recognized extension or well-known name: | Palette group | Selectors | | --- | --- | | File | Unknown files and fallback. | | Directory | Directories. | | Symlink | Symbolic links and junctions. | | Hidden | Items with the `Hidden` attribute. | | ReadOnly | Items with the `ReadOnly` attribute. | Recognized extensions, specialized directories, and well-known filenames use the default file color. `NoColor` is the exception: it has no rules, and its default style does not set a foreground or background. ## Strongly Typed Structure `Get-GlyTheme` and `Copy-GlyTheme` return `GlyTheme`. Nested objects use `GlyStyle`, `GlyThemeRule`, and `GlySelector`. `Register-GlyTheme` also accepts a hashtable or `pscustomobject` and converts it to the typed model after validation: ```powershell @{ Name = 'MyTheme' BuiltIn = $false Default = @{ Foreground = '#d4d4d4' Background = $null Bold = $false Italic = $false Underline = $false } Rules = @( @{ Selector = @{ Kind = 'Directory' } Style = @{ Foreground = '#8ec07c'; Bold = $true } } ) } ``` Supported color values: - `#RRGGBB` - `$null` ## Rule Selectors Themes use the shared [selector model](selectors.md), which documents fields, matching behavior, and rule precedence. ## Custom Theme Built-in themes are immutable. Copy a theme, edit the copy, and register it under a new name: ```powershell $theme = Copy-GlyTheme DefaultDark MyDark $theme.Rules += @{ Selector = @{ Extension = '.log' } Style = @{ Foreground = '#d79921' Background = $null Bold = $false Italic = $false Underline = $false } } Register-GlyTheme $theme Set-GlyTheme MyDark ``` Built-in themes cannot be overwritten. Theme imports from `.json`, `.yaml`, `.psd1`, and `.ps1` files are outside the MVP.