Let’s do this…




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

Web for all. Web on everything.




Web for all. Web on everything.

[DEMO]
across devices, and over time


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
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.


…Allow the author to attach style hints.
Styles are suggestions or hints about behavior, not rules…

Provide hints that the browser may or may not use.
A set of HINTS or SUGGESTIONS to the renderer which might be used…

Provide authors and publishers with stylistic influence without resorting to page description languages.





The CHSS proposal is explicitly designed around this collaboration

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

The user/browser specifies initial preferences and hands the remaining influence over to the document [authors].
/* a 'declaration' */
property: value;
/* a 'declaration' */
color: blue;
/* a 'declaration' */
color: blue 64%;
36% of the influence/* a 'declaration' */
color: blue !important;
/* a 'declaration' */
color: blue;
/* a 'block' */
{
background: white;
color: mediumVioletRed;
}
<!-- 'inline' (or 'element attached') styles -->
<p style="
background: white;
color: mediumVioletRed;
">…</p>
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>

…A simple mapping between HTML elements and presentation hints.
/* a selector, with attached declarations… */
/* a 'style rule' (or 'rule set') */
p {
background: white;
color: mediumVioletRed;
}
<p>This is a short paragraph</p>
p { … }
<!-- a 'style sheet' -->
<link rel="stylesheet" href="styles.css">
/* another 'style sheet' */
@import url('styles.css');


An ordered list (cascade) of style sheets.
<button type="submit" id="send" class="action">
button { background: gray; }
.action { background: darkBlue; }
[type="submit"] { background: darkGreen;
background: var(--submit, black); }
#send { background: maroon; }
#484d63
/* a 'declaration' */
color: blue 64%;

* including Editor’s Draft proposals
<button> Needs
One Background-Color Color Padding-Left Margin-Inline-End color,padding-left,margin-inline-end, etc.{
"known": "source:css-cascade",
"note": "- They're important parts of the process\n- The spec that defines all of this is called\n- 'Cascading & Inheritance'\n"
}







/* a 'declaration' */
property: value;



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

The user/browser specifies initial preferences…

demo:
/* initial values */
display: inline;
background: transparent;
color: CanvasText;
font-style: normal;
flex-basis: auto;
/* etc. */
display:inline, even on divs…html { display: block; }
body { display: block; }
p { display: block; }
div { display: block; }
article, aside, footer, header, hgroup,
main, nav, search, section { display: block }
address { display: block; }
blockquote { display: block; }
/* etc etc */
display:blockbody { margin: 8px; }
a:link {
color: blue;
text-decoration: underline; }
h1, h2, h3, h4 /* etc */ {
font-weight: bold;
font-size: something big I dunno; }
8px margin on the bodyresource://gre-resources/Establish desired preferences

[CSS] provides author and reader with the same notation…


Settings / Advanced / Style sheet…about:preferenceschrome://settings/appearance
all of us read other people’s web sites



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

If conflicts arise the user should have the last word…

!important to a declaration…
!important mirror universeresource://gre-resources/demo:

!important behaviorWith our own colleagues and libraries
From higher origins breaking important things




in transitions and animations
hotPink
»
teal
hotPink
rgb(93 138 220)
?!
teal
rgb(93 138 220)button {
background: plum;
transition: background 1s;
}
button:hover { background: pink; }
:target { animation: bg-change 3s ease-in both; }
@keyframes bg-change {
from { background: pink; }
to { background: cyan; }
}
animation property cascades!important keyframes: present, debug!important, and then it’s reversedstyling web components
Context in the cascadesimilar to user agent origin
and reverses priority
cascade-layers
@layer settings { … }
@layer tools { … }
@layer generic { … }
@layer elements { … }
@layer objects { … }
@layer components { … }
@layer overrides { … }
!important

-> Layers -> Importance
@layer reset {
[hidden] { display: none !important; }
}
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>
<p style="color: mediumVioletRed;">…</p>



Web for all. Web on everything.



Graphic design of unknown content with unknown collaborators, on an infinite and unknowable canvas, across operating systems, interfaces, languages, and writing modes…

A Jedi uses the [Cascade] for knowledge and defense, never for attack.