Less is Great. A theme family so syntax colors stay put when you switch tools.
If you highlight everything, you highlighted nothing. So with great restraint, LiG uses only green, blue, orange, and a neutral scale.
Note
Still settling after a refactor. Some rough spots remain.
Each role has a job:
Four variants:
light, dark, light-paper, dark-paper.
The only authored source is core/spec.json.
All ports are based on it.
Anyway, they share the idea instead of being exactly the same,
due to differences in editors.
Neovim uses Tree-sitter,
VS Code uses TextMate,
and the grammars do not classify the same way.
Important
LiG is a color theme. Critique the taste if you want. Don't open issues to steer it toward another design. Notes on color, readability, emphasis, and editor UI are welcome.
Install an editor port from its own repository.
| Port | Where |
|---|---|
| Neovim | lig.nvim |
| VS Code | vscode-theme-LiG |
| Zed | zed-theme-LiG |
| Ghostty, fzf, Zellij, tmux, Starship, bat, eza | lightweight ports |
Editor stores can lag behind GitHub. Follow the install notes in each distribution.
pnpm install --frozen-lockfile
pnpm dev
pnpm tokens:generate
pnpm tokens:check
pnpm ports:generate
pnpm ports:checkChange colors in core/spec.json, then regenerate.
Do not edit core/generated/ or palette/generated/ by hand
unless you know what you're doing.
tokens:check and ports:check fail when generated files drift from the spec.
The color contract is in core/README.md.
The port compiler is in ports/README.md.
Open an issue for a color, readability, emphasis, or editor-UI problem, and include the variant and the port.
For a code change:
- Edit the source here.
Distribution repositories are generated output.
A fix in
lig.nvim,vscode-theme-LiG, orzed-theme-LiGwill be overwritten. - Keep one change to one concern.
- Run the check that covers what you touched:
pnpm tokens:checkfor colors,pnpm ports:checkfor ports.
Issues that ask LiG to become a different theme will be closed.
Email: sayhola@froq.me GitHub: @0froq
- OKLab and OKLCH by Björn Ottosson. Palette coordinates are written in OKLCH and mixed in OKLab.
- Vitesse Theme by Anthony Fu, itself based on Primer. The VS Code workbench bindings come from there.
- nvim-treesitter for the highlight queries used by the syntax demo.
- Geist by Vercel, and Instrument Serif, for the site. Both are SIL OFL 1.1.
- Allura and EMS Allure for the handwriting strokes. Sheldon B. Michaels made EMS Allure, Windell H. Oskay converted it to SVG, and Rob Leuschke designed Allura. SIL OFL 1.1.
The site is built with Nuxt and Vue.
shared/site.ts keeps document URLs on lig.froq.me and share images on the Worker host.
Localized canonical, hreflang and Open Graph locale tags are emitted by app.vue.
pnpm generate writes dist/sitemap.xml and dist/robots.txt from rendered canonical
URLs. Redirects, errors and noindex pages are excluded. Untitled content and docs,
and a changelog without titled releases, remain accessible but are not indexed.
Adding their content enables indexing on the next build.
LiG's own code is released under the MIT License.
These parts keep their own licenses:
- Handwriting strokes in
vendor/ui/src/core/signature/are SIL OFL 1.1. Copyright 2010 The Allura Project Authors. The notice is inNOTICE.mdandOFL.txt. - Highlight queries in
syntax/queries/are unmodified nvim-treesitter snapshots: Apache-2.0, and MIT for the Python query (Copyright 2016 Max Brunsfeld). - Generated Neovim, Zed, VS Code, and lightweight ports use this same MIT license. The VS Code package also keeps the Primer (2020) and Anthony Fu (2021) notice in
ports/licenses/MIT-vscode.txt. Earlier lig.nvim releases stay Apache-2.0 until they are published again. - Geist and Instrument Serif are SIL OFL 1.1 dependencies. They are not part of this MIT grant.



