A color scheme inspired by GOV.UK colors. Built to be clear, consistent, and something you can stick with long-term.
- Text and information should use colors that are easy to read
- Interface elements can blend more into the background, and this should aid in making the content stand out
ℹ️
vim.o.background = "light"is supported only experimentally. I do not use it and I currently treat it as a second-class citizen.
TypeScript code inside Neovim using Treesitter highlighting.
Debugging a Python test using Neotest.
Error handling built-ins use special colors.
Showcasing Kitty, tmux, FZF, and bat support.
The font in these screenshots is Berkeley Mono.
-- Using lazy.nvim
{
"fnune/standard",
lazy = false,
priority = 1000,
config = function()
require("standard").setup({})
vim.cmd("colorscheme standard")
end,
}require('lualine').setup {
options = {
theme = 'standard'
}
}The following plugins are supported with custom highlight groups:
- Treesitter
- Neorg
- Git (GitGutter, GitSigns)
- Neogit
- Diffview
- Neotest
nvim-dap-ui- Telescope
- Illuminate
- NvimTree
- Dropbar
- Aerial
nvim-scrollbarblink.cmpsnacks.nvim
Support for other plugins may be added in the future. All plugin support is
enabled by default. See highlights.lua for
specifics.
Add to your kitty.conf:
include /path/to/standard/kitty/standard.dark.conf
Add to your tmux.conf:
source-file /path/to/standard/tmux/standard.dark.conf
Source the script:
source /path/to/standard/fzf/standard.dark.shWorks well with the base16 theme in Bat:
export BAT_THEME="base16"Copy ghostty/standard to your $XDG_CONFIG_HOME/ghostty/themes or $PREFIX/share/ghostty/themes directory.
Then, set the theme in your ghostty.conf:
theme = "standard"
There is an LS_COLORS (colors ls output and others) generated using
vivid in
./vivid/standard.zsh. You can source the
contents of that file directly or use vivid on your own with the
provided ./vivid/standard.yml configuration.
To test development changes of this setup, use the provided
./vivid/test.zsh script.
You can contribute to standard in multiple ways:
This project includes a Nix flake for development. If you have Nix with flakes enabled:
- Copy the
.envrc.samplefile to.envrc(or runecho "use flake" > .envrcif you use direnv) - If you use direnv, run
direnv allowto automatically set up your environment - Otherwise, run
nix developto enter the development shell
The Nix environment provides all needed tools:
biomelua-language-serverluachecknodejsstyluayarn
If you're not using Nix, you'll need to install these tools manually:
- Node.js and Yarn for JavaScript tooling
- LuaCheck and Stylua for Lua formatting and linting
- Lua Language Server for Lua language support
After installing the dependencies, you can run:
yarn install
yarn format
yarn lintThe colorscheme is organized around two main concepts:
- Tokens - The raw color values in
palette.lua- These are stored in the
govukandlowcontrasttables - These define the base colors that match the GOV.UK design system, and other derived colors
- These are stored in the
- Decisions - How colors are applied in
M.colors- The
M.colorstable maps tokens to specific UI elements and syntax - This is where the actual colorscheme design happens
- Organized by categories like
interface,intent,diff,syntax, etc.
- The
When contributing, consider whether you're:
- Adding a new token (rare, unless extending the base palette)
- Changing a decision about how an existing token is applied
- Adding support for a new plugin or UI element
Please include screenshots of your changes when applicable.
