Skip to content

Repository files navigation

torchlight.nvim

Fishing by Torchlight in Kai Province

A cozy colorscheme inspired by the painting "Fishing by Torchlight in Kai Province" by Katsushika Hokusai. Hokusai lived between 1760 and 1849 and likely painted this painting around 1833.

This colorscheme adopts the natural pallette of "Fishing by Torchlight in Kai Province" and thus uses a minimal amount of blue hues. This makes it friendly on the eyes, especially at night.

Plugin support

Supported plugins include nvim-treesitter, lualine.nvim, nvim-tree, neo-tree.nvim, telescope.nvim, nvim-cmp, nvim-notify, lazy.nvim, gitsigns.nvim, neogit, nvim-dap-ui, dashboard-nvim, avante.nvim, and snacks.nvim. Many more will work just fine with the default highlight groups. See lua/torchlight/groups for the plugin-specific highlight definitions.

If you use a plugin that is not supported or looks incorrect when using this colorscheme, please open an issue or pull request.

Usage

Install with your favorite plugin manager. See Variants for the palettes and Contrast for the contrast levels.

  {
    "skylarmb/torchlight.nvim",
    lazy = false,
    priority = 1000,
    opts = {
      contrast = "hard", -- available: soft, medium, hard, stark
      palette = "torchlight", -- available: dusk, torchlight, dawn
    },
  },
LazyVim

LazyVim runs :colorscheme after the plugin is set up, and :colorscheme torchlight selects the default palette. To use a specific palette, you must name it in colorscheme instead of in opts. Contrast is not affected either way and should still be set in opts.

  -- lua/plugins/colorscheme.lua
  {
    "skylarmb/torchlight.nvim",
    lazy = false,
    priority = 1000,
    opts = {
      contrast = "hard", -- available: soft, medium, hard, stark
    },
  },
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = "torchlight", -- available: torchlight-dusk, torchlight, torchlight-dawn
    },
  },
pckr.nvim
  require("pckr").add({
    {
      "skylarmb/torchlight.nvim",
      config = function()
        require("torchlight").setup({
          contrast = "hard", -- available: soft, medium, hard, stark
          palette = "torchlight", -- available: dusk, torchlight, dawn
        })
      end,
    },
  })

Variants

Torchlight has three available color palettes. All palettes stay true to my original goal of providing a low-blue theme that is friendly on the eyes. Dusk and Dawn palettes are deterministically derived using HSLuv color ramps, so they are exact mathematical transforms of the base palette.

Palette :colorscheme Description
torchlight torchlight Cozy, hand-picked colors
dusk torchlight-dusk Deep and warm variant
dawn torchlight-dawn Pale and cool variant

Select one with the palette option in opts or by name:

colorscheme torchlight-dusk

Contrast

Four levels of contrast are available, set via the contrast option. hard is the default.

soft is deprecated. It's contrast is too low to be readable in many scenarios, so I decided to abandon it. It still works and will keep working, but I no longer fix bugs for it or really test it locally when reviewing changes. Use medium for the closest supported look.

Screenshots

Palettes run light to dark left to right, contrast levels light to dark top to bottom.

dawn torchlight dusk
soft (deprecated) dawn default dusk
medium dawn default dusk
hard (default) dawn default dusk
stark dawn default dusk

Extras / ports

The ./extras folder holds ports of the palette for other tools. Current ports cover Alacritty, WezTerm, Ghostty, and Zed. Other ports are welcome. Not every palette and contrast level is ported to every port, but doing so should just be copying a few hex values. PRs welcome.

Credits

Used by

Contributors

Languages