Files
max-sixty__worktrunk/docs/themes/worktrunk-light.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

275 lines
5.7 KiB
JSON

{
"name": "worktrunk-light",
"displayName": "Worktrunk Light",
"type": "light",
"colors": {
"foreground": "#3d3632",
"background": "#ffffff"
},
"tokenColors": [
{
"settings": {
"foreground": "#3d3632",
"background": "#ffffff"
}
},
{
"name": "Text",
"scope": "variable.parameter.function",
"settings": {
"foreground": "#3d3632"
}
},
{
"name": "Comments",
"scope": "comment, punctuation.definition.comment",
"settings": {
"foreground": "#7a756e",
"fontStyle": "italic"
}
},
{
"name": "String Punctuation",
"scope": "punctuation.definition.string",
"settings": {
"foreground": "#588a10"
}
},
{
"name": "Other Punctuation",
"scope": "punctuation.definition.variable, punctuation.definition.parameters, punctuation.definition.array",
"settings": {
"foreground": "#3d3632"
}
},
{
"name": "Operators",
"scope": "keyword.operator",
"settings": {
"foreground": "#3d3632"
}
},
{
"name": "Keywords",
"scope": "keyword",
"settings": {
"foreground": "#a03c15"
}
},
{
"name": "Variables",
"scope": "variable",
"settings": {
"foreground": "#7a5230"
}
},
{
"name": "Functions",
"scope": "entity.name.function, meta.require, support.function.any-method",
"settings": {
"foreground": "#b07800",
"fontStyle": "bold"
}
},
{
"name": "Classes",
"scope": "support.class, entity.name.class, entity.name.type.class",
"settings": {
"foreground": "#7a5230"
}
},
{
"name": "Methods",
"scope": "keyword.other.special-method",
"settings": {
"foreground": "#b07800"
}
},
{
"name": "Storage",
"scope": "storage",
"settings": {
"foreground": "#a03c15",
"fontStyle": "bold"
}
},
{
"name": "Support",
"scope": "support.function",
"settings": {
"foreground": "#b05a20"
}
},
{
"name": "Strings, Inherited Class",
"scope": "string, constant.other.symbol, entity.other.inherited-class",
"settings": {
"foreground": "#947a00"
}
},
{
"name": "Integers",
"scope": "constant.numeric",
"settings": {
"foreground": "#b05a20"
}
},
{
"name": "Constants",
"scope": "constant",
"settings": {
"foreground": "#b05a20"
}
},
{
"name": "Tags",
"scope": "entity.name.tag",
"settings": {
"foreground": "#b07800"
}
},
{
"name": "Attributes",
"scope": "entity.other.attribute-name",
"settings": {
"foreground": "#7a5230"
}
},
{
"name": "Attribute IDs",
"scope": "entity.other.attribute-name.id, punctuation.definition.entity",
"settings": {
"foreground": "#b07800"
}
},
{
"name": "Selector",
"scope": "meta.selector",
"settings": {
"foreground": "#a03c15"
}
},
{
"name": "Headings",
"scope": "markup.heading punctuation.definition.heading, entity.name.section",
"settings": {
"foreground": "#b07800"
}
},
{
"name": "Units",
"scope": "keyword.other.unit",
"settings": {
"foreground": "#b05a20"
}
},
{
"name": "Bold",
"scope": "markup.bold, punctuation.definition.bold",
"settings": {
"fontStyle": "bold",
"foreground": "#3d3632"
}
},
{
"name": "Italic",
"scope": "markup.italic, punctuation.definition.italic",
"settings": {
"fontStyle": "italic",
"foreground": "#3d3632"
}
},
{
"name": "Code",
"scope": "markup.raw.inline",
"settings": {
"foreground": "#b07800"
}
},
{
"name": "Link Text",
"scope": "string.other.link, punctuation.definition.string.end.markdown",
"settings": {
"foreground": "#a03c15"
}
},
{
"name": "Link Url",
"scope": "meta.link",
"settings": {
"foreground": "#b07800"
}
},
{
"name": "Lists",
"scope": "markup.list",
"settings": {
"foreground": "#7a5230"
}
},
{
"name": "Quotes",
"scope": "markup.quote",
"settings": {
"foreground": "#4d5a20"
}
},
{
"name": "Separator",
"scope": "meta.separator",
"settings": {
"foreground": "#3d3632"
}
},
{
"name": "Inserted",
"scope": "markup.inserted",
"settings": {
"foreground": "#4d5a20"
}
},
{
"name": "Deleted",
"scope": "markup.deleted",
"settings": {
"foreground": "#a03c15"
}
},
{
"name": "Changed",
"scope": "markup.changed",
"settings": {
"foreground": "#b07800"
}
},
{
"name": "Regular Expressions",
"scope": "string.regexp",
"settings": {
"foreground": "#b05a20"
}
},
{
"name": "Escape Characters",
"scope": "constant.character.escape",
"settings": {
"foreground": "#b05a20"
}
},
{
"name": "Embedded",
"scope": "punctuation.section.embedded, variable.interpolation",
"settings": {
"foreground": "#7a5230"
}
},
{
"name": "Invalid",
"scope": "invalid.illegal, invalid.broken, invalid.deprecated, invalid.unimplemented",
"settings": {
"foreground": "#a03c15"
}
}
]
}