CSS has evolved significantly lately, introducing features such as :is
, :where
, @layer
, :has
, color-mix
, and others that could enhance the base theme of TiddlyWiki, making it cleaner and more streamlined. These improvements could also enhance accessibility, for example, by utilizing color-mix
with OKLCH
as demonstrated here to improve color palette and ensure WCAG 3.0 APCA compliance: Thinking on ways to solve color palettes.
Furthermore, media queries like prefers-reduced-motion
, which are not supported by Internet Explorer as shown here, offer additional opportunities for improvement for users with motion sickness.
Features such as @layer
could enable users without in-depth knowledge of TiddlyWiki’s core to easily adapt TiddlyWiki for their own purposes, as illustrated in my work in progress at minimal-css.tiddlyhost.com. This is achieved by eliminating the need for lengthy and complex CSS selectors that are tiddlywiki specific. This css specificity issue happens often, here’s a recent example: How do I standardize font size in my table of contents? : r/TiddlyWiki5 (reddit.com)
The solution that was given was to use this:
.tc-table-of-contents li li li li, .tc-table-of-contents li li li, .tc-table-of-contents li li , .tc-table-of-contents li
{font-size: 1em;
font-weight: normal;
}
In my opinion, this is not a solution that is easy to find for someone without a very good understanding of CSS AND tiddlywiki. :where()
and @layer
would improve the user experience by a lot (see: Specificity - CSS: Cascading Style Sheets | MDN (mozilla.org)).
There are also some css features that could be used as progressive enhancement, improving the experience of compatible browsers without compromising the experience of users on older browser, such as text-wrap: balance
( CSS text-wrap: balance | CSS and UI | Chrome for Developers).
As we can see, maintaining backward compatibility for obsolete browsers, such as Internet Explorer, ultimately compromises user experience if careful compromises are not made. I am eager to contribute more to TiddlyWiki’s development, especially in the area of CSS, so I need to know exactly where the line is (currently) drawn.
I searched for explicit guidelines on tiddlywiki.com but was not able to find any (my apologies if they exist!). Same goes for javascript features, I’ve recently learned that there are discussions on to use ECMAscript standard 2018 or 2019 for the TW core, but as far as I know, nothing official yet.
The Mozilla documentation now includes a concept called “baseline,” as discussed in Introducing Baseline | Blog | web.dev. Baseline features should be safe to use in all up-to-date browsers. Are we allowed to use baseline features ? @jermolene ?