vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
Add Catppuccin, Nord, and Solarized as built-in themes
0584bb700c0b144752ddc29764d697551234f862 · Keenan Nemetz · 1d ago · parent c980fe53
Add Catppuccin, Nord, and Solarized as built-in themes Ship four more Appearance choices: Catppuccin Mocha, Catppuccin Latte, Nord, and Solarized Light. Each is a token block in static/palettes.css, scoped to its data-theme value and loaded after Everforest, before instance theme packs and profile/custom.css. The ids join theme.js's allowlist and the account picker, and the instance repository's reserved-name check now covers nord and the catppuccin-/solarized- prefixes so a theme pack cannot shadow a built-in. NOTICE and three MIT license files record the palettes.
server/web/static/theme.js +9−5
| @@ -1,8 +1,8 @@ | |||
| 1 | // Everforest is built in, and the instance repository may add theme packs of | ||
| 2 | // its own. The account page also carries a text-size preset. All of it is a | ||
| 3 | // browser preference: a saved choice wins; with no saved theme, the medium | ||
| 4 | // Everforest variant follows the operating system. This runs before the | ||
| 5 | // stylesheet links in the document head so neither choice flashes. | ||
| 1 | // Everforest and a few named palettes are built in, and the instance repository | ||
| 2 | // may add theme packs of its own. The account page also carries a text-size | ||
| 3 | // preset. All of it is a browser preference: a saved choice wins; with no saved | ||
| 4 | // theme, the medium Everforest variant follows the operating system. This runs | ||
| 5 | // before the stylesheet links in the document head so neither choice flashes. | ||
| 6 | 6 | (() => { | |
| 7 | 7 | const root = document.documentElement; | |
| 8 | 8 | const themeKey = 'vole-theme'; | |
| @@ -17,6 +17,10 @@ | |||
| 17 | 17 | 'everforest-light-hard', | |
| 18 | 18 | 'everforest-light-medium', | |
| 19 | 19 | 'everforest-light-soft', | |
| 20 | 'catppuccin-mocha', | ||
| 21 | 'catppuccin-latte', | ||
| 22 | 'nord', | ||
| 23 | 'solarized-light', | ||
| 20 | 24 | ...(root.dataset.themes || '').split(',').filter(Boolean), | |
| 21 | 25 | ]); | |
| 22 | 26 | const scales = new Set(['small', 'medium', 'large']); | |