A collection of 18 desert-inspired Neovim colorschemes; warm, readable, and configurable.
Born from the classic desert.vim, transformed and modernized into something new entirely.
Oasis follows Melange's warm/cool split philosophy (warm = action/flow, cool = structure/data).
Light themes exclusively use warm beige-to-peachy tones to minimize blue light exposure and support eye health during extended coding sessions.
Tip
Click any card above to view the full preview and syntax sample.
- 18 theme styles: A rainbow of desert-inspired options; with an emphasis on warmth and readability.
- Dark/Light Modes: Automatic switching based on your system theme or
vim.o.background. - Comprehensive highlighting - LSP, Tree-sitter, and plugin support
- Fast loading - Direct highlight application for optimal performance based on the plugins in your config
- Zero dependencies - Works out of the box without external plugins
- Modular architecture - Easy to customize and extend
π Extras
All extra configs for other terminal applications or vim related tools.
To use the extras, refer to their respective documentation.
| Tool | Extra |
|---|---|
| Ghostty | extras/ghostty |
| Kitty | extras/kitty |
| TMUX | tmux-oasis |
| Vimium C | extras/vimium-c |
If you'd like an extra config added, raise a feature request and I'll put it together.
Install the theme with your preferred package manager, such as folke/lazy.nvim:
{
"uhs-robert/oasis.nvim",
lazy = false,
priority = 1000,
config = function()
require("oasis").setup() -- (see Configuration below for all customization options)
vim.cmd.colorscheme("oasis") -- After setup, apply theme (or a any style like "oasis-night")
end
}After calling setup(), use :colorscheme to apply or swap styles:
vim.cmd.colorscheme("oasis") -- Use your config settings
vim.cmd.colorscheme("oasis-desert") -- Or load any specific styleποΈ All colorscheme commands
" Uses your config settings
colorscheme oasis
" Or load a specific style - must be prefixed with `oasis-`
colorscheme oasis-night
colorscheme oasis-midnight
colorscheme oasis-abyss
colorscheme oasis-starlight
colorscheme oasis-desert
colorscheme oasis-sol
colorscheme oasis-canyon
colorscheme oasis-dune
colorscheme oasis-cactus
colorscheme oasis-mirage
colorscheme oasis-lagoon
colorscheme oasis-twilight
colorscheme oasis-rose
colorscheme oasis-dawn
colorscheme oasis-dawnlight
colorscheme oasis-day
colorscheme oasis-dusk
colorscheme oasis-dustπ΅ Some plugins may need extra configuration to work
To override the tokyonight default and start fresh in the oasis:
-- No need to apply vim.cmd.colorscheme(), just use this instead.
{
"LazyVim/LazyVim",
opts = {
colorscheme = "oasis",
},
},To include automatic Lualine theme integration:
require("lualine").setup {
options = {
theme = "oasis" -- Automatically matches your current Oasis style
}
}To include tab bar theme integration:
require("tabby").setup({
theme = "oasis" -- Automatically matches your current Oasis style
})Oasis offers many different styles to choose from. Have fun customizing with setup()!
π¦ Default Options
-- Oasis.nvim
-- Styles: "night", "midnight", "abyss", "starlight", "desert", "sol", "canyon", "dune", "cactus", "mirage", "lagoon", "twilight", "rose", "dawn", "dawnlight", "day", "dusk", "dust"
require("oasis").setup({
dark_style = "lagoon", -- Style to use when vim.o.background is "dark"
light_style = "day", -- Style to use when vim.o.background is "light"
style = nil, -- Optional: Set a single style to disable auto-switching (e.g., "lagoon", "desert")
use_legacy_comments = false, -- Uses the legacy comment color from desert.vim for the "desert" style only (a bright sky blue)
-- Text styling - disable individual styles if you like
styles = {
bold = true, -- Enable bold text (keywords, functions, etc.)
italic = true, -- Enable italics (comments, certain keywords)
underline = true, -- Enable underlined text (matching words)
undercurl = true, -- Enable undercurl for diagnostics/spelling
strikethrough = true, -- Enable strikethrough text (deprecations)
},
-- Display options
transparent = false, -- Set to true for transparent backgrounds (bye bye theme backgrounds)
terminal_colors = true, -- Apply Oasis colors to Neovim's built-in terminal
palette_overrides = {}, -- Override colors in specific palettes
highlight_overrides = {}, -- Override specific highlight groups
})Oasis automatically switches between your config's light_style and dark_style based on vim.o.background.
βοΈ Configure Light / Dark Styles
require("oasis").setup({
dark_style = "lagoon", -- Style when background is dark
light_style = "day" -- Style when background is light
})
vim.cmd.colorscheme("oasis") -- Apply the themeTip
You may use any style for light or dark mode. No restrictions apply.
Light styles vary in brightness to adapt to your workspace lighting. The right lightness keeps your eyes comfortable, reduces strain and headaches, and helps maintain focus throughout the day.
- Dawn (91%) - brightest for well-lit spaces
- Dawnlight (88%) - a tad softer with golden tones
- Day (85%) - balanced for everyday use
- Dusk (77%) - warmer for extended sessions
- Dust (70%) - warmest for dim lighting
Thirsty for total control? You can override whatever you like.
Whoever drinketh of the water that I shall give him, shall never thirst...
π¨ Changing Palette Colors for Each Style
palette_overrides - Customize colors in palettes (See Color Palettes for palette structure)
require("oasis").setup({
palette_overrides = {
oasis_lagoon = {
syntax = { func = "#E06C75", comment = "#5C6370" },
ui = { border = "#61AFEF" }
}
}
})π Changing Colors for Highlight Groups
highlight_overrides - Override or add highlight groups (See Theme Generator for highlight groups):
require("oasis").setup({
highlight_overrides = {
Comment = { fg = "#5C6370", italic = true },
Function = { fg = "#E06C75", bold = true },
Identifier = "Function" -- Link to another group
}
})Want to help shape Oasis.nvim? π Join the Discussion and Vote Here
All styles (click to collapse)
Deep desert night sky with purple-indigo undertones, a deeper purple than twilight for those who prefer soft darkness
Deep slate and navy tones of the desert at midnight, a tinted-black lighter than abyss
Deep, dark style with mysterious depths
Desert abyss illuminated by brilliant starlight with vivid accent colors
The original inspiration, the classic vim desert theme reborn with neutral sand and earth tones
Hot, scorching desert sun with intense red tones
Rich oranges of desert canyon walls
Sandy beiges and warm yellow earth tones
Fresh greens of desert vegetation
Cool teals of shimmering desert mirages
The original Oasis theme and default dark style, featuring cool blues of the oasis lagoon
Evening desert with purple and indigo hues
Soft pinks of the warm desert rose
Ah, the morning sun. Don't forget your sunglasses! (Lightness = 91)
Slightly warmer than dawn, a golden morning glow (Lightness = 88)
Full daylight warmth with rich golden saturation - the default light style (Lightness = 85)
Warm sky at sunset, peachy-golden tones for extended coding sessions (Lightness = 77)
Warm peachy-golden tones for extended coding sessions (Lightness = 70)



































