How to define a property
:root {
--button-color: blue;
--align: left;
}
header {
--header-height: 300px;
}
Slide 8
Slide 8 text
Use
var(--your-property, default-value)
Slide 9
Slide 9 text
How to use a variable
button {
background-color: var(--button-color);
}
a {
color: var(--link-color, black);
}
Slide 10
Slide 10 text
Quiz time:
Inherited or
not?
Slide 11
Slide 11 text
Quiz time:
Inherited or
not?
Slide 12
Slide 12 text
VS Preprocessors
Slide 13
Slide 13 text
Link 1Link 2
Inheritance
:root { --link: red }
footer { --link: blue }
a { color: var(--link) }
Link 1Link 2
$link: red
footer { $link: blue }
a { color: $link }
Slide 14
Slide 14 text
Link 1Link 2
Inheritance compiled
:root { --link: red }
footer { --link: blue }
a { color: var(--link) }
Link 1Link 2
$link: red
footer { $link: blue }
a { color: $link red }
Slide 15
Slide 15 text
Link 1Link 2
Inheritance
:root { --link: red }
footer { --link: blue }
a { color: var(--link) }
Link 1Link 2
$link: red
footer { $link: blue }
a { color: $link }
Preprocessors: Nope
Link 1Link 2Link 3
Override variables, not properties
section { --link: green }
a { background: var(--link, red) }
Slide 25
Slide 25 text
Link 1Link 2Link 3
Make Cascade Love, not Specificity War
section { --link: green }
footer { --link: blue }
a { background: var(--link, red) }
Slide 26
Slide 26 text
Old school...
section { --link: green }
footer { --link: blue }
a { background: var(--link, red) }
footer section a { background: green }
footer a { background: blue }
a { background: red }
Link 1Link 2Link 3
Slide 27
Slide 27 text
Old school...
section { --link: green }
footer { --link: blue }
a { background: var(--link, red) }
--------------
footer section a { background: green }
footer a { background: blue }
a { background: red }
Link 1Link 2Link 3
The end of specificity war!