Bike 2’s editor styles allow for a very large amount of customization. They are also difficult to make if you don’t already know javascript/typescript programming.
Bike 2’s settings panes are easy to use, but allow for a minimal amount of customization. Mostly just font and some line spacing.
I’m considering adding “Themes” as a middle ground. For 2.0 themes would be JSON formatted files. They would be “geeky” but not require a build step, or that you setup a development environment. The theme would allow you to set colors and font “adjustments” for various row types.
Here’s an example of what that file might look like:
{
"metadata": {
"name": "Example Theme",
"version": "1.0.0"
},
"colors": {
"foreground": "#2c3e50",
"foreground-dark": "#ecf0f1",
"background": "windowBackground",
"background-dark": "#1e2124"
},
"rows": {
"heading": {
"fontAdjust": 2,
"fontWeight": "semibold",
"fontTraits": ["bold"]
}
},
"runs": {
"strong": {
"fontTraits": ["bold"]
},
"emphasis": {
"fontTraits": ["italic"]
},
"code": {
"color": "#e74c3c",
"fontTraits": ["monospace"]
},
"link": {
"color": "link",
"color-dark": "systemTeal"
}
}
}
The users (in Setting panel) font is used everywhere by default. But the theme can override various aspects (adjust size, change weight, etc) based on item or run type.
The theme values would then be passed into the editor style functions where the style could use as it sees fit… generally the editor style “should” use everywhere.
Longer term it wouldn’t be too hard to build UI to edit theme files, but I don’t expect that for 2.0. I did spent last week building one using SwiftUI, then I threw it away in anger as it was too darn slow! So I expect just a JSON file UI for now.
Thoughts?


