Files
max-sixty__worktrunk/docs/themes/base16-ocean-dark.json
Maximilian Roos 1d85de945f Migrate docs syntax highlighting to giallo with warm theme (#1080)
## Summary

- Migrate from static CSS syntax highlighting to Zola's giallo engine
with custom `worktrunk-light.json` theme
- Replace hardcoded `syntax-light.css` / `syntax-dark.css` with
theme-based class generation
- Design a warm "sunlit workshop" palette: amber commands, gold strings,
chartreuse quoted strings, rusty constants
- Add CSS sibling selector to differentiate quoted from bare strings
(giallo tokenizes both as `z-string`)

## Test plan

- [ ] Verify syntax colors on `/switch/` (bash: commands, flags,
strings, quoted strings)
- [ ] Verify TOML blocks on `/config/` (section headers, keys, values)
- [ ] Verify dark mode is unaffected (quoted string CSS rule scoped to
`prefers-color-scheme: light`)
- [ ] Check all tests pass (`cargo test`)

> _This was written by Claude Code on behalf of @max-sixty_

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-17 11:32:21 -08:00

300 lines
6.1 KiB
JSON

{
"name": "base16-ocean-dark",
"displayName": "Base16 Ocean Dark",
"type": "dark",
"colors": {
"foreground": "#c0c5ce",
"background": "#2b303b"
},
"tokenColors": [
{
"settings": {
"foreground": "#c0c5ce",
"background": "#2b303b"
}
},
{
"name": "Text",
"scope": "variable.parameter.function",
"settings": {
"foreground": "#c0c5ce"
}
},
{
"name": "Comments",
"scope": "comment, punctuation.definition.comment",
"settings": {
"foreground": "#65737e"
}
},
{
"name": "Punctuation",
"scope": "punctuation.definition.string, punctuation.definition.variable, punctuation.definition.parameters, punctuation.definition.array",
"settings": {
"foreground": "#c0c5ce"
}
},
{
"name": "Operators",
"scope": "keyword.operator",
"settings": {
"foreground": "#c0c5ce"
}
},
{
"name": "Keywords",
"scope": "keyword",
"settings": {
"foreground": "#b48ead"
}
},
{
"name": "Variables",
"scope": "variable",
"settings": {
"foreground": "#bf616a"
}
},
{
"name": "Functions",
"scope": "entity.name.function, meta.require, support.function.any-method",
"settings": {
"foreground": "#8fa1b3"
}
},
{
"name": "Classes",
"scope": "support.class, entity.name.class, entity.name.type.class",
"settings": {
"foreground": "#ebcb8b"
}
},
{
"name": "Classes",
"scope": "meta.class",
"settings": {
"foreground": "#eff1f5"
}
},
{
"name": "Methods",
"scope": "keyword.other.special-method",
"settings": {
"foreground": "#8fa1b3"
}
},
{
"name": "Storage",
"scope": "storage",
"settings": {
"foreground": "#b48ead"
}
},
{
"name": "Support",
"scope": "support.function",
"settings": {
"foreground": "#96b5b4"
}
},
{
"name": "Strings, Inherited Class",
"scope": "string, constant.other.symbol, entity.other.inherited-class",
"settings": {
"foreground": "#a3be8c"
}
},
{
"name": "Integers",
"scope": "constant.numeric",
"settings": {
"foreground": "#d08770"
}
},
{
"name": "Constants",
"scope": "constant",
"settings": {
"foreground": "#d08770"
}
},
{
"name": "Tags",
"scope": "entity.name.tag",
"settings": {
"foreground": "#bf616a"
}
},
{
"name": "Attributes",
"scope": "entity.other.attribute-name",
"settings": {
"foreground": "#d08770"
}
},
{
"name": "Attribute IDs",
"scope": "entity.other.attribute-name.id, punctuation.definition.entity",
"settings": {
"foreground": "#8fa1b3"
}
},
{
"name": "Selector",
"scope": "meta.selector",
"settings": {
"foreground": "#b48ead"
}
},
{
"name": "Headings",
"scope": "markup.heading punctuation.definition.heading, entity.name.section",
"settings": {
"foreground": "#8fa1b3"
}
},
{
"name": "Units",
"scope": "keyword.other.unit",
"settings": {
"foreground": "#d08770"
}
},
{
"name": "Bold",
"scope": "markup.bold, punctuation.definition.bold",
"settings": {
"fontStyle": "bold",
"foreground": "#ebcb8b"
}
},
{
"name": "Italic",
"scope": "markup.italic, punctuation.definition.italic",
"settings": {
"fontStyle": "italic",
"foreground": "#b48ead"
}
},
{
"name": "Code",
"scope": "markup.raw.inline",
"settings": {
"foreground": "#a3be8c"
}
},
{
"name": "Link Text",
"scope": "string.other.link, punctuation.definition.string.end.markdown",
"settings": {
"foreground": "#bf616a"
}
},
{
"name": "Link Url",
"scope": "meta.link",
"settings": {
"foreground": "#d08770"
}
},
{
"name": "Lists",
"scope": "markup.list",
"settings": {
"foreground": "#bf616a"
}
},
{
"name": "Quotes",
"scope": "markup.quote",
"settings": {
"foreground": "#d08770"
}
},
{
"name": "Separator",
"scope": "meta.separator",
"settings": {
"foreground": "#c0c5ce"
}
},
{
"name": "Inserted",
"scope": "markup.inserted",
"settings": {
"foreground": "#a3be8c"
}
},
{
"name": "Deleted",
"scope": "markup.deleted",
"settings": {
"foreground": "#bf616a"
}
},
{
"name": "Changed",
"scope": "markup.changed",
"settings": {
"foreground": "#b48ead"
}
},
{
"name": "Colors",
"scope": "constant.other.color",
"settings": {
"foreground": "#96b5b4"
}
},
{
"name": "Regular Expressions",
"scope": "string.regexp",
"settings": {
"foreground": "#96b5b4"
}
},
{
"name": "Escape Characters",
"scope": "constant.character.escape",
"settings": {
"foreground": "#96b5b4"
}
},
{
"name": "Embedded",
"scope": "punctuation.section.embedded, variable.interpolation",
"settings": {
"foreground": "#ab7967"
}
},
{
"name": "Illegal",
"scope": "invalid.illegal",
"settings": {
"foreground": "#eff1f5"
}
},
{
"name": "Broken",
"scope": "invalid.broken",
"settings": {
"foreground": "#2b303b"
}
},
{
"name": "Deprecated",
"scope": "invalid.deprecated",
"settings": {
"foreground": "#eff1f5"
}
},
{
"name": "Unimplemented",
"scope": "invalid.unimplemented",
"settings": {
"foreground": "#eff1f5"
}
}
]
}