Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

πŸ€–πŸ’€ High-contrast, Futuristic & Vibrant Neovim Colorscheme

License

Notifications You must be signed in to change notification settings

scottmckendry/cyberdream.nvim

Repository files navigation

A high-contrast, futuristic & vibrant theme for neovim

Issues License stars


πŸš€ Features

  • Transparency-first design - all design decisions are made with transparency in mind.
  • High contrast - Colours have been carefully chosen to be cohesive and easy on the eyes while still being easy to distinguish.
  • Terminal Support - Several included terminal themes to enhance your cyberdream experience.
  • Extensions - Support for a variety of popular plugins out of the box. Can be toggled on or off to maximise performance.
Supported Plugins/Extensions
Plugin Highlights
alpha-nvim alpha
blink.cmp blinkcmp
dashboard-nvim dashboard
nvim-dap-ui dapui
fzf-lua fzflua
gitsigns.nvim gitsigns
gitpad.nvim gitpad
grapple.nvim grapple
grug-far.nvim grugfar
heirline-components.nvim heirline
helpview.nvim helpview
hop.nvim hop
indent-blankline.nvim indentblankline
kubectl.nvim kubectl
lazy.nvim lazy
leap.nvim leap
lualine.nvim lualine
markview.nvim markview
mini.nvim mini
noice.nvim noice
nvim-cmp cmp
nvim-notify notify
nvim-treesitter treesitter
nvim-treesitter-context treesittercontext
rainbow-delimiters.nvim rainbow_delimiters
render-markdown.nvim markdown
telescope.nvim telescope
trouble.nvim trouble
which-key.nvim whichkey

πŸ“¦ Installation

Lazy1:

{
 "scottmckendry/cyberdream.nvim",
 lazy = false,
 priority = 1000,
}

Packer:

use { "scottmckendry/cyberdream.nvim" }

Lualine (optional):

{
 require("lualine").setup({
 -- ... other config
 options = {
 theme = "auto", -- "auto" will set the theme dynamically based on the colorscheme
 },
 -- ... other config
 })
}

See my personal lualine config here for an example.

πŸš€ Usage

vim.cmd("colorscheme cyberdream")

βš™οΈ Configuring

Calling setup is optional, but allows you to configure the theme to your liking. Below is an example of all the available configuration options with their default values:

require("cyberdream").setup({
 -- Set light or dark variant
 variant = "default", -- use "light" for the light variant. Also accepts "auto" to set dark or light colors based on the current value of `vim.o.background`
 -- Enable transparent background
 transparent = false,
 -- Reduce the overall saturation of colours for a more muted look
 saturation = 1, -- accepts a value between 0 and 1. 0 will be fully desaturated (greyscale) and 1 will be the full color (default)
 -- Enable italics comments
 italic_comments = false,
 -- Replace all fillchars with ' ' for the ultimate clean look
 hide_fillchars = false,
 -- Apply a modern borderless look to pickers like Telescope, Snacks Picker & Fzf-Lua
 borderless_pickers = false,
 -- Set terminal colors used in `:terminal`
 terminal_colors = true,
 -- Improve start up time by caching highlights. Generate cache with :CyberdreamBuildCache and clear with :CyberdreamClearCache
 cache = false,
 -- Override highlight groups with your own colour values
 highlights = {
 -- Highlight groups to override, adding new groups is also possible
 -- See `:h highlight-groups` for a list of highlight groups or run `:hi` to see all groups and their current values
 -- Example:
 Comment = { fg = "#696969", bg = "NONE", italic = true },
 -- More examples can be found in `lua/cyberdream/extensions/*.lua`
 },
 -- Override a highlight group entirely using the built-in colour palette
 overrides = function(colors) -- NOTE: This function nullifies the `highlights` option
 -- Example:
 return {
 Comment = { fg = colors.green, bg = "NONE", italic = true },
 ["@property"] = { fg = colors.magenta, bold = true },
 }
 end,
 -- Override colors
 colors = {
 -- For a list of colors see `lua/cyberdream/colours.lua`
 -- Override colors for both light and dark variants
 bg = "#000000",
 green = "#00ff00",
 -- If you want to override colors for light or dark variants only, use the following format:
 dark = {
 magenta = "#ff00ff",
 fg = "#eeeeee",
 },
 light = {
 red = "#ff5c57",
 cyan = "#5ef1ff",
 },
 },
 -- Disable or enable colorscheme extensions
 extensions = {
 telescope = true,
 notify = true,
 mini = true,
 ...
 },
})

Note

For a complete list of extensions, see the table in config.lua.

🎁 Extras

We've cooked up some wonderful extras to enhance your cyberdream experience. Mostly terminal themes and a few other goodies!

terminal

πŸ§‘β€πŸ³ Recipes

Include these alongside the setup function to add additional functionality to the theme.

Map a key to toggle between light and dark mode

-- Add a custom keybinding to toggle the colorscheme
vim.api.nvim_set_keymap("n", "<leader>tt", ":CyberdreamToggleMode<CR>", { noremap = true, silent = true })

Create an autocmd to hook into the toggle event and run custom code

-- The event data property will contain a string with either "default" or "light" respectively
vim.api.nvim_create_autocmd("User", {
 pattern = "CyberdreamToggleMode",
 callback = function(event)
 -- Your custom code here!
 -- For example, notify the user that the colorscheme has been toggled
 print("Switched to " .. event.data .. " mode!")
 end,
})

image

🎨 Palette

Dark
πŸ–Œ Hex Color
#16181a #16181a bg
#1e2124 #1e2124 bg_alt
#3c4048 #3c4048 bg_highlight
#ffffff #ffffff fg
#7b8496 #7b8496 grey
#5ea1ff #5ea1ff blue
#5eff6c #5eff6c green
#5ef1ff #5ef1ff cyan
#ff6e5e #ff6e5e red
#f1ff5e #f1ff5e yellow
#ff5ef1 #ff5ef1 magenta
#ff5ea0 #ff5ea0 pink
#ffbd5e #ffbd5e orange
#bd5eff #bd5eff purple
Light
πŸ–Œ Hex Color
#ffffff #ffffff bg
#eaeaea #eaeaea bg_alt
#acacac #acacac bg_highlight
#16181a #16181a fg
#7b8496 #7b8496 grey
#0057d1 #0057d1 blue
#008b0c #008b0c green
#008c99 #008c99 cyan
#d11500 #d11500 red
#997b00 #997b00 yellow
#d100bf #d100bf magenta
#f40064 #f40064 pink
#d17c00 #d17c00 orange
#a018ff #a018ff purple

🀝 Contributing

Contributions are welcome! Please read the contributing guidelines to get started.


1. For Lazyvim users, refer to the LazyVim docs for specific instructions.

Sponsor this project

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /