I believe we’re all largely conscious of named colours in CSS:
I suppose you’d simply name these “named colours” in CSS.
These aren’t the one form of named colours there are although. A few of them are a bit extra fluid. Jim Nielsen was blowin’ minds the opposite day when he blogged about System Colours.
What I would like is a approach to say “hey browser, for my dropdown, use the identical black (or white if in gentle mode) that you simply’re utilizing for the background colour of the doc”. I would like entry to a variable of types that references the precise “black” the browser is utilizing.
Then, by way of Thomas Steiner, I found there are actually CSS system colours. These aren’t colours which can be (or not less than try to be) the identical throughout all browsers, however they’re allowed to be set by “decisions made by the consumer, the browser, or the OS.” So for instance, Canvas is the “background of utility content material or paperwork.” Working example: the background-color for darkish mode is #1e1e1e in Safari and #121212 in Chrome. In the event you like that, that means you’re leaning into what the browser thinks is an efficient colour for issues, then now you can entry it by that Canvas key phrase.
System colours! There are a bunch of them.
Not solely do they alter throughout browsers, they alter when toggling between darkish and light-weight mode so long as you could have CSS in place to help them…
color-scheme: gentle darkish;
You’ll see them change when modes change. And also you don’t have to make use of them for what they had been designed for, I suppose:
So these are the system colours, however you may see proper in that Pen that I’ve additionally used a system font: system-ui. Similar vibe! It’s purposely fluid. It’s not going to be the identical typeface throughout browsers and working methods. Jim additionally coated this some time again. We used to copy the thought with a giant lengthy stack of named fonts, however now CSS helps with it (in supporting browsers).
There are a bunch of them specced:
Assist appears scattered. For instance, I might set this:
font-family: ui-monospace, system-ui, fantasy;
On my Mac, in Safari, I’d get SF Mono (ui-monospace). However in Chrome, ui-monospace doesn’t work so it will fall again to SF Professional (system-ui). In Firefox neither ui-monospace or system-ui work and I’d get Papyrus (fantasy). So font stacks are nonetheless vital. It’s simply humorous to consider as a result of these new system font key phrases are virtually like font stacks in and of themselves.
So there are system colours and system fonts — doesn’t that beg the query of what different system issues there are?
Nicely, there are named font weights — like how font-weight: daring; is similar as 700, and bolder is simply a bit extra daring than the mum or dad. However that doesn’t really feel like a system-level factor the place the system would wish to clutch that and do various things. However hey, perhaps.
There are additionally named font sizes, like font-size: xx-small;. I might see methods desirous to get their arms on these values and regulate them to sizes that make sense contextually, however in a fast look (evaluating Chrome and iOS Safari), they compute to the identical sizes.
These named font dimension values don’t journey, both. I can’t do margin: giant;. Nicely, I can, but it surely doesn’t do something. So no actual common system sizes.
What about system icons? We do kinda have these within the type of emoji! We use the emoji understanding that completely different methods will render it in another way and are typically fantastic with that as we all know it is going to look in keeping with that consumer’s platform.
The “Blue Ebook” emoji (by way of Emojipedia)
We might form of consider inputs as “system inputs.” We all know completely different browsers and platforms render enter controls in very alternative ways, and that’s how the spec intends it. To every their very own.