Chat prose read looser than the rest of the app: 15px body with a single line-height for everything, headings barely larger than the text, list bullets drawn as dashes with a 2em gutter, no vertical rhythm for lists or quotes, and inline code that took a syntax colour from the theme. Body text is 14px with a whole-pixel line height (22.75px rounded to 23px so baselines stay on the pixel grid). Every block carries the same 0.65rem margin on both sides, so any two neighbours are one spacing apart and the outer blocks add nothing. Headings step 20/18/16/14px at weight 600 with more air above than below. Lists use native markers that cycle by depth with a 1.25rem gutter and 0.25rem between items; task-list checkboxes replace the marker. Blockquotes get their left rule back. Headings, list markers and inline code render in the text colour; inline code is a muted chip one step smaller than the prose. The inlineCode theme tokens are removed from the built-in themes, the generator and the VS Code adapter; custom themes that still carry them are simply ignored. The remaining semantic sizes shrink by the same step (code 12px, labels and meta 13px, settings title 17px), in VS Code proportionally. Text selection in chat used the browser default in dark themes while the comment overlay painted the theme's row-selection token, so the colour changed the moment Comment was clicked; that token is also nearly the page background in several light themes and opaque in monokai, where the overlay hid the text. Native selection, file-preview selection and the overlay now share one translucent accent tint (primary at 30%), which stays visible over every built-in theme's background. Testing: ui type-check and lint; all theme JSON re-parsed; screenshots of prose, lists and the selection/comment states in headless Chrome; contrast of the new selection tint computed against every theme's background and text.
179 lines
4.9 KiB
JSON
179 lines
4.9 KiB
JSON
{
|
|
"metadata": {
|
|
"id": "flexoki-light",
|
|
"name": "Flexoki",
|
|
"description": "An inky color scheme for prose and code - light variant",
|
|
"version": "1.0.0",
|
|
"variant": "light",
|
|
"tags": [
|
|
"light",
|
|
"warm",
|
|
"natural",
|
|
"paper"
|
|
]
|
|
},
|
|
"colors": {
|
|
"primary": {
|
|
"base": "#BC5215",
|
|
"hover": "#F9AE77",
|
|
"active": "#DA702C",
|
|
"foreground": "#fffdf4",
|
|
"muted": "#BC521580",
|
|
"emphasis": "#F9AE77"
|
|
},
|
|
"surface": {
|
|
"background": "#fffdf4",
|
|
"foreground": "#100F0F",
|
|
"muted": "#f6f5ee",
|
|
"mutedForeground": "#686663",
|
|
"elevated": "#fbfaf2",
|
|
"elevatedForeground": "#100F0F",
|
|
"overlay": "#100F0F20",
|
|
"subtle": "#f7f4ec"
|
|
},
|
|
"interactive": {
|
|
"border": "#e6e4db",
|
|
"borderHover": "#CECDC3",
|
|
"borderFocus": "#BC5215",
|
|
"selection": "#76736f30",
|
|
"selectionForeground": "#100F0F",
|
|
"focus": "#BC5215",
|
|
"focusRing": "#BC521540",
|
|
"cursor": "#100F0F",
|
|
"hover": "#76736f20",
|
|
"active": "#76736f20"
|
|
},
|
|
"status": {
|
|
"error": "#AF3029",
|
|
"errorForeground": "#fffdf4",
|
|
"errorBackground": "#D14D4120",
|
|
"errorBorder": "#D14D4150",
|
|
"warning": "#BC5215",
|
|
"warningForeground": "#fffdf4",
|
|
"warningBackground": "#DA702C20",
|
|
"warningBorder": "#DA702C50",
|
|
"success": "#66800B",
|
|
"successForeground": "#fffdf4",
|
|
"successBackground": "#879A3920",
|
|
"successBorder": "#879A3950",
|
|
"info": "#205EA6",
|
|
"infoForeground": "#fffdf4",
|
|
"infoBackground": "#4385BE20",
|
|
"infoBorder": "#4385BE50"
|
|
},
|
|
"pr": {
|
|
"open": "#66800B",
|
|
"draft": "#6F6E69",
|
|
"blocked": "#BC5215",
|
|
"merged": "#5E409D",
|
|
"closed": "#AF3029"
|
|
},
|
|
"syntax": {
|
|
"base": {
|
|
"background": "#f6f5ee",
|
|
"foreground": "#100F0F",
|
|
"comment": "#6F6E69",
|
|
"keyword": "#205EA6",
|
|
"string": "#24837B",
|
|
"number": "#5E409D",
|
|
"function": "#BC5215",
|
|
"variable": "#100F0F",
|
|
"type": "#AD8301",
|
|
"operator": "#AF3029"
|
|
},
|
|
"tokens": {
|
|
"commentDoc": "#B7B5AC",
|
|
"stringEscape": "#100F0F",
|
|
"keywordImport": "#AF3029",
|
|
"storageModifier": "#205EA6",
|
|
"functionCall": "#BC5215",
|
|
"method": "#66800B",
|
|
"variableProperty": "#205EA6",
|
|
"variableOther": "#66800B",
|
|
"variableGlobal": "#A02F6F",
|
|
"variableLocal": "#E6E4D9",
|
|
"parameter": "#100F0F",
|
|
"constant": "#100F0F",
|
|
"class": "#BC5215",
|
|
"className": "#BC5215",
|
|
"interface": "#AD8301",
|
|
"struct": "#BC5215",
|
|
"enum": "#BC5215",
|
|
"typeParameter": "#BC5215",
|
|
"namespace": "#AD8301",
|
|
"module": "#AF3029",
|
|
"tag": "#205EA6",
|
|
"jsxTag": "#A02F6F",
|
|
"tagAttribute": "#AD8301",
|
|
"tagAttributeValue": "#24837B",
|
|
"boolean": "#AD8301",
|
|
"decorator": "#AD8301",
|
|
"label": "#A02F6F",
|
|
"punctuation": "#6F6E69",
|
|
"macro": "#205EA6",
|
|
"preprocessor": "#A02F6F",
|
|
"regex": "#24837B",
|
|
"url": "#205EA6",
|
|
"key": "#BC5215",
|
|
"exception": "#A02F6F"
|
|
},
|
|
"highlights": {
|
|
"diffAdded": "#66800B",
|
|
"diffAddedBackground": "#879A3920",
|
|
"diffRemoved": "#AF3029",
|
|
"diffRemovedBackground": "#D14D4120",
|
|
"diffModified": "#205EA6",
|
|
"diffModifiedBackground": "#4385BE20",
|
|
"lineNumber": "#CECDC3",
|
|
"lineNumberActive": "#100F0F"
|
|
}
|
|
},
|
|
"markdown": {
|
|
"heading1": "#100F0F",
|
|
"heading2": "#100F0F",
|
|
"heading3": "#100F0F",
|
|
"heading4": "#100F0F",
|
|
"link": "#205EA6",
|
|
"linkHover": "#4385BE",
|
|
"blockquote": "#6F6E69",
|
|
"blockquoteBorder": "#DAD8CE",
|
|
"listMarker": "#AD830199"
|
|
},
|
|
"chat": {
|
|
"userMessage": "#100F0F",
|
|
"userMessageBackground": "#f7f4ec",
|
|
"assistantMessage": "#100F0F",
|
|
"assistantMessageBackground": "#fffdf4",
|
|
"timestamp": "#6F6E69",
|
|
"divider": "#DAD8CE"
|
|
},
|
|
"tools": {
|
|
"background": "#f6f5ee50",
|
|
"border": "#b4b2a980",
|
|
"headerHover": "#DAD8CE",
|
|
"icon": "#6F6E69",
|
|
"title": "#100F0F",
|
|
"description": "#6F6E69",
|
|
"edit": {
|
|
"added": "#66800B",
|
|
"addedBackground": "#66800B25",
|
|
"removed": "#AF3029",
|
|
"removedBackground": "#AF302925",
|
|
"lineNumber": "#CECDC3"
|
|
}
|
|
}
|
|
},
|
|
"config": {
|
|
"fonts": {
|
|
"sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
|
|
"mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
|
|
"heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
|
|
},
|
|
"transitions": {
|
|
"fast": "150ms ease",
|
|
"normal": "250ms ease",
|
|
"slow": "350ms ease"
|
|
}
|
|
}
|
|
}
|