Most theming is variables. When a variable doesn’t cover what you want, you can style elements directly. These are the selectors SilverBullet promises to keep. Any other class, id or DOM structure is internal and may change in any release without notice.
A selector here is stable when it is safe to build on, experimental when the feature it belongs to may still change, or deprecated when it still works but has a replacement. Since is the first release that had it, or edge for the edge builds.
${query[[ from s = index.objects("theme-selector") select template.new[==[* `${selector}`: ${description} _Since ${since}${stability ~= "stable" and (", " .. stability) or ""}._ ]==](s) ]]}
#sb-main .cm-editor so they don’t leak into panels and widgets.html[data-sb-theme] or html[data-sb-scheme], see Customizing on top of a theme.The list above is a query over the #theme-selector objects on Theming/Selectors/Data.