Skip to content

🌡 A collection of 18 desert-inspired Neovim colorschemes. Let there be light in the desert and dark in the oasis.

License

Notifications You must be signed in to change notification settings

uhs-robert/oasis.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Oasis emoji

Oasis.nvim

A collection of 18 desert-inspired Neovim colorschemes; warm, readable, and configurable.

πŸŒ… Overview

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.

Night
Night
Purple Night Sky
Midnight
Midnight
Off Black
Abyss
Abyss
Black
Starlight
Starlight
Black Vivid
Desert
Desert
Grey
Sol
Sol
Red
Canyon
Canyon
Orange
Dune
Dune
Yellow
Cactus
Cactus
Green
Mirage
Mirage
Teal
Lagoon
Lagoon (Default Dark)
Blue
Twilight
Twilight
Purple
Rose
Rose
Pink
Dawn
Dawn
Beige
Dawnlight
Dawnlight
Golden Beige
Day
Day (Default Light)
Gold
Dusk
Dusk
Peach Gold
Dust
Dust
Golden Sand

Tip

Click any card above to view the full preview and syntax sample.

↓ Click here to view all full previews

✨ Features

  • 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
πŸ’ͺ Supported Plugins
Plugin
fzf-lua
gitsigns.nvim
snacks.nvim
which-key.nvim
🍭 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.

πŸ“¦ Installation

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
}

πŸš€ Usage

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

LazyVim

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",
  },
},

Lualine

To include automatic Lualine theme integration:

require("lualine").setup {
  options = {
    theme = "oasis"  -- Automatically matches your current Oasis style
  }
}

Tabby (Tab Bar)

To include tab bar theme integration:

require("tabby").setup({
  theme = "oasis" -- Automatically matches your current Oasis style
})

βš™οΈ Configuration

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
})

πŸŒ— Automatic Light/Dark Mode Switching

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 theme

Tip

You may use any style for light or dark mode. No restrictions apply.

πŸ•ΆοΈ Choosing a Light Theme

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

πŸͺ“ Overriding Colors & Highlight Groups

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
  }
})

πŸ—³οΈ Vote for Your Favorite Style

Want to help shape Oasis.nvim? πŸ‘‰ Join the Discussion and Vote Here

πŸ‘€ View All Theme Styles

All styles (click to collapse)

Night (Purple Night Sky)

Deep desert night sky with purple-indigo undertones, a deeper purple than twilight for those who prefer soft darkness

night-dashboard night-code

↑ Back to Overview

Midnight (Off Black)

Deep slate and navy tones of the desert at midnight, a tinted-black lighter than abyss

midnight-dashboard midnight-code

↑ Back to Overview

Abyss (Black)

Deep, dark style with mysterious depths

abyss-dashboard abyss-code

↑ Back to Overview

Starlight (Black Vivid)

Desert abyss illuminated by brilliant starlight with vivid accent colors

starlight-dashboard starlight-code

↑ Back to Overview

Desert (Grey)

The original inspiration, the classic vim desert theme reborn with neutral sand and earth tones

desert-dashboard desert-code

↑ Back to Overview

Sol (Red)

Hot, scorching desert sun with intense red tones

sol-dashboard sol-code

↑ Back to Overview

Canyon (Orange)

Rich oranges of desert canyon walls

canyon-dashboard canyon-code

↑ Back to Overview

Dune (Yellow)

Sandy beiges and warm yellow earth tones

dune-dashboard dune-code

↑ Back to Overview

Cactus (Green)

Fresh greens of desert vegetation

cactus-dashboard cactus-code

↑ Back to Overview

Mirage (Teal)

Cool teals of shimmering desert mirages

mirage-dashboard mirage-code

↑ Back to Overview

Lagoon (Blue)

The original Oasis theme and default dark style, featuring cool blues of the oasis lagoon

lagoon-dashboard lagoon-code

↑ Back to Overview

Twilight (Purple)

Evening desert with purple and indigo hues

twilight-dashboard twilight-code

↑ Back to Overview

Rose (Pink)

Soft pinks of the warm desert rose

rose-dashboard rose-code

↑ Back to Overview

Dawn (Beige)

Ah, the morning sun. Don't forget your sunglasses! (Lightness = 91)

dawn-dashboard dawn-code

↑ Back to Overview

Dawnlight (Golden Beige)

Slightly warmer than dawn, a golden morning glow (Lightness = 88)

dawnlight-dashboard dawnlight-code

↑ Back to Overview

Day (Gold)

Full daylight warmth with rich golden saturation - the default light style (Lightness = 85)

day-dashboard day-code

↑ Back to Overview

Dusk (Peach Gold)

Warm sky at sunset, peachy-golden tones for extended coding sessions (Lightness = 77)

dusk-dashboard dusk-code

↑ Back to Overview

Dust (Golden Sand)

Warm peachy-golden tones for extended coding sessions (Lightness = 70)

dust-dashboard dust-code

↑ Back to Overview

About

🌡 A collection of 18 desert-inspired Neovim colorschemes. Let there be light in the desert and dark in the oasis.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published