And what time of day?
(reviewing humans or chatbots?)




You can’t make a web that’s world-wide, by saying it works on my machine, and everyone else is an edge-case.


It is required that HTML be a common language between all platforms…

Web for all. Web on everything.













It is required that HTML be a common language between all platforms…


…This implies no device-specific markup…
[DEMO]


It is required that HTML be a common language between all platforms…
…This implies no device-specific markup, or anything which requires control over fonts or colors.







The fact we can control a paper page is really a limitation of that medium.
@media
min-width
@media
prefers-reduced-motion
@media
hover
@supports
container-type: inline-size






Graphic design of unknown content with unknown collaborators, on an infinite and unknowable canvas, across operating systems, interfaces, languages, and writing modes…
HTML totally eliminates any visual creativity that a document’s designer might have.




The web would have become a giant fax machine where pictures of text would be passed along.


(HEAD,BODY fontSize=normal
BGColor=white
FGColor=black
(H1 fontSize=largest
BGColor=red
FGColor=white)
(H2 fontSize=large)
(A FGColor=red)
(CMD,KBD,SCREEN,LISTING,EXAMPLE fontFamily=fixed)
(BOLD,EMPH,STRONG fontWeight=bold)
)
@DEFAULT fo(fa=ti,sp=pr,si=14,we=me,sl=ro,fo=in,bo=in,li=no,nu=1,fn='')
ju(st=le,hy=0,ke=0) co(nu=1,wi=80) br(lo=af,ob=it)
li(lo=in,ma=no,li=un,nu=1,be=no,af=no,hi=0)
@UL in(le=5)
@LI ma(pr=ro,be=4) in(le=10,ri=10)
:rootfo() function[Times] is not meant as a font name, per se. Rather it is a suggestion of a particular style of character representation.
times font-familyStyles are suggestions or hints about behavior, not rules…
A set of HINTS or SUGGESTIONS to the renderer which might be used…
Specified attributes are taken as “hints” that will degrade in a controlled way depending on the level of support… in the operating environment.

…Allow the author to attach style hints.

Provide hints that the browser may or may not use.

Provide authors and publishers with stylistic influence without resorting to page description languages.
Content should be viewable and accessible by default.
overflow is visible![InDesign is [+]](/img/rhqYG1iQfc-640.jpeg)



This proposal tries to soften the tension between the author and the reader.

While the author (or publisher) often wants to give the documents a distinct look and feel…

…the user will set preferences to make all documents appear more similar.


The proposed scheme is balanced in the sense that it provides author and reader with the same notation for specifying style.
/* a 'declaration' */
property: value;
color: blue;
/* a selector, with attached declarations… */
/* a 'style rule' (or 'rule set') */
p {
background: white;
color: mediumVioletRed;
}
<!-- link a style sheet -->
<link rel="stylesheet" href="styles.css">
/* import another style sheet */
@import url('more-styles.css');

An ordered list (cascade) of style sheets.

The cascade exists to ensure there’s balance in the ecosystem –

… allow the author to attach style hints.
We can allow authors to attach styles, by treating those styles as hints.
Like HTML, CSS fails silently, protecting the content, and ignoring unrecognized styles.

Web for all. Web on everything.
That’s how we ensure a web that works on everything.

If conflicts arise the user should have the last word…
And if conflicts arise between the author and user, then the user gets the last word.

Web for all. Web on everything.
So the web also works for everyone.
width: 500px;
text-wrap: pretty;
width: 500px;

content-box model
border-box modelwidth we care about at all,Which might change depending on our writing mode.
inline-size: 500px;
We can express that by using logical properties.
width: min-content; width: max-content; width: fit-content;
Or maybe the pixels represent something else we can express more clearly, like the intrinsic size of our content
inline-size: 60ch;
width: 100%; width: 90vw; width: 80cqi;
flex: 1
inline-size: min(45em, 100%);

16px != 1em
These are all different hints that we can provide to the browser – not just about what we want, but why we want it.
Sometimes 1em is equal to 16px
but not always,
because they mean different things.
1em is relative to the current font size,
and (I don’t want to shock you, but)
1px is relative to the length of someone’s arm
and your assumed distance from the screen.
Specs can get weird sometimes.
inline-size:
min(34ch, 100%);
In CSS, the most useful declaration is the one that communicates our intent the most clearly.
Sometimes that requires a combination of units,
width: auto;

So that the browser has as much information and flexibility as we can provide when adapting our rules to a range of different situations.
text-wrap: pretty;
16px != 1em
1em is sometimes 16pxflex != grid

The fact we can control a paper page is really a limitation of that medium.

Provide hints that the browser may or may not use.
To me, this meme perfectly captures what is actually awesome about CSS – and how we can go wrong by taking too much control without considering the consequences.
Maybe the size of that box is based on the size of the browser, and the overflow is caused by a small screen.
Maybe the user increased their font size.

Graphic design of unknown content with unknown collaborators, on an infinite and unknowable canvas, across operating systems, interfaces, languages, and writing modes…
This is the problem that CSS is actually trying to solve – and it’s a complex problem.
We’re not just doing graphic design, we’re designing for the unknown…



If a trade-off needs to be made, always put user needs above all.



Web for all. Web on everything.
Our job is to ensure that this really is a web that can work everywhere, and a web that works for everyone.
Always put user needs above all.