Novosti v CSS-u
Kaj prinašajo nove specifikacije?
CSS spremenljivke
CSS custom properties
-
ideja iz predprocesorjev – SASS ($) in LESS (@)
-
spreminjanje med izvajanjem
(preko JS ali @media pravil)
Lokalna uporaba spremenljivk
section.hero {
--main-color: orange;
}
p {
color: var(--main-color);
}
Privzeta vrednost
section.hero {
--main-color: orange;
}
p {
color: var(--main-color, red);
}
Globalna uporaba spremenljivk
:root {
--main-color: orange;
}
p {
color: var(--main-color);
}
Definiranje s @property
syntax values – vrednosti tipi
Uporaba znotraj JS
-
imena so občutljiva na velike in male črke
-
uporabljene so lahko samo kot vrednosti
-
ne moremo jih uporabiti pri imenovanju
lastnosti, selektorjih, definiranju medijskih poizvedb (@media),
poizvedb o vsebniku (@container)
...
-
ne moremo jih uporabiti za interpolacijo, kot pri SASS
ali LESS
#{$variable}
.icon-#{$size} { width: $size; }
Zakaj bi uporabljali spremenljivke?
CSS gnezdenje
CSS Nesting
Dosedanja praksa
descendent selector
Gnezdenje
z uporabo operatorja &
Gnezdenje brez operatorja &
Obvezna uporaba &
Pripenjanje ugnezdenih selektorjev
appended nesting selector
Ugnezdena @ pravila
@media, @support, @container ...
Zakaj bi uporabljali gnezdenje?
Poizvedbe o vsebniku
container queries
Ne moremo spreminjati lastnosti, ki jo merimo oz. na podlagi česar
pogojujemo dizajn.
Imenovanje vsebnika
Imenovanje vsebnika
container-type
-
size: poizvedba na podlagi inline in block dimenzij
(širine in višine)
širina in višina vsebnika sta neodvisni od ugnezdenih
otrok
-
inline-size: poizvedba na podlagi inline dimenzije
(širine)
širina vsebnika je neodvisna od ugnezdenih otrok
-
normal:
vsebnik pri katerem poizvedba ne bo na podlagi njegove velikosti
Zakaj bi uporabljali poizvedbe o vsebniku?
Kaskadne plasti
Cascade Layers
@layer theme
@layer components
@layer normalizemain.css
Kaskadne plasti
Kaskada
-
Izvor slogov in pomembnost
- Specifičnost selektorjev
-
Položaj oz. vrstni red pravil
-
Kaskadne plasti
Kakšne barve sem?
Kakšne barve sem?
Pravilo @layer
Deklaracija @layer
Funkcija layer()
Slogi izven plasti
Ugnezdene plasti
Plasti & !important
|
Lokacija |
Pomembnost |
| 1 |
stili znotraj plasti |
normal |
| 2 |
stili izven plasti |
normal |
| 3 |
inline stili |
normal |
| 4 |
animations |
|
| 5 |
stili izven plasti |
!important |
| 6 |
stili znotraj plasti |
!important |
| 7 |
inline stili |
!important |
| 8 |
transitions |
|
Zakaj bi uporabljali kaskadne plasti?
CSS barve
CSS Colors
Nova sintaksa
Neodvisni barvni prostori
Funkcija color()
Izbira barvnih prostorov
Funkcija color()
Izbira barvnih prostorov
Relativne barve
Relativne barve
Mešanje barv
color-mix()
Barvne sheme
podpora barvnih tem – color-scheme
Barvne sheme
pogojno oblikovanje z medijskimi poizvedbami
Barvne sheme
pogojno oblikovanje s funkcijo light-dark()
keynote.weingerl.com
Hvala za pozornost