ݺߣ

ݺߣShare a Scribd company logo
CSS
proměnné
Martin Michálek
Frontendisti Praha, 13. 12. 2017
html {
--color: blue;
}
.box {
color: var(--color);
}
https://codepen.io/machal/pen/mBOZZK
Custom Properties
(Nastavitelné vlastnosti)
CSS proměnné (Custom Properties)
:root {
--color: black;
}
@media screen and (max-width: 768px) {
:root {
--color: red;
}
}
:root {
color: var(--color);
}
https://codepen.io/machal/pen/rGWdpV
Živé v prohlížečích
<svg>
<text fill="var(--text-color)">
SVG
</text>
</svg>
https://codepen.io/machal/pen/POaKNv
Sdílené v HTML
// číst hodnotu
$('#box1').css('--color');
// zapsat hodnotu
$('#box2').css('--color', 'blue');
https://codepen.io/machal/pen/rGWdpV
Sdílené v JS
/* 1 */
@media --var(breakpoint-medium) {
…
}
/* 2 */
.el {
--var(jmeno-vlastnosti): 1px solid red ;
}
/* 3 */
--var(jmeno-selektoru) {
…
}
/* 4 */
.el {
border-radius: calc(--var(cislo) * 1px)
}
Náhrada preprocesorů?
:root {
/* 1 */
--color: #f00;
/* 2 */
--header-height: 68px;
/* 3 */
--line-height: 1.35;
/* 4 */
--padding: 10px 20px;
/* 5 */
--selector: padding;
/* 6 */
--text: "text";
/* 7 */
--a: var(--text);
/* 8 */
--height: calc(2vh + 20px);
/* 9 */
--javascript: if(x > 5) this.width = 10;
}
Možné hodnoty
.box {
box-shadow:
var(--box-shadow-offset)
var(--box-shadow-offset)
.5em
rgba(0, 0, 0, .5);
}
.box:hover {
--box-shadow-offset: .5em;
}
Příklad: Emulace
vlastnosti
https://codepen.io/machal/pen/KyeqzE
Příklad: Inverzní
schéma
https://codepen.io/machal/pen/POajOd?editors=1100
.inverted {
--bg-color: black;
--text-color: white;
--link-color: yellow;
}
Příklad: Různá baseline
na breakpointech
https://codepen.io/machal/pen/JOZrMP
@media (min-width: 640px) {
:root {
--baseline-multiplier: 10;
}
}
Příklad: Jednodušší
responzivní flexbox
https://codepen.io/machal/pen/XzYzXJ?editors=1100
@media (min-width: 640px) {
:root {
--layout-gap: 1em;
--layout-column-width: 50%;
}
}
@media (min-width: 768px) {
:root {
--layout-column-width: 25%;
}
}
Příklad: Sdílení
breakpointů v JS
https://codepen.io/machal/pen/JOZpKV
:root {
--breakpoint-xs-value: (max-width: 479px);
--breakpoint-sm-value: (min-width: 480px) and (max-width: 639px);
--breakpoint-md-value: (min-width: 640px);
}
var
mqXS
= window.matchMedia( $('html').css('--breakpoint-xs-value').trim() ),
mqSM
= window.matchMedia( $('html').css('--breakpoint-sm-value').trim() ),
mqMD
= window.matchMedia( $('html').css('--breakpoint-md-value').trim() );
Díky!
@machal
vzhurudolu.cz
Ad

Recommended

CSS - vy&#353;&#353;í dív&#269;í
CSS - vy&#353;&#353;í dív&#269;í
Martin Michálek
CSS preprocesory
CSS preprocesory
Martin Michálek
CSS
CSS
Martin Michálek
React a omyly jazyka CSS
React a omyly jazyka CSS
Robin Pokorny
Styling React Native Applications
Styling React Native Applications
Jan Maršíček
Je CSS vážně tak podivné?
Je CSS vážně tak podivné?
Martin Michálek
10 praktických CSS3 a SVG řešení
10 praktických CSS3 a SVG řešení
Martin Michálek
Mýty a blbosti o webové rychlosti (FrontKon 2024)
Mýty a blbosti o webové rychlosti (FrontKon 2024)
Martin Michálek
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Martin Michálek
CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?
Martin Michálek
Browsers: from competition to collaboration
Browsers: from competition to collaboration
Martin Michálek
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
Martin Michálek
17 technických tipů ke zrychlení webů
17 technických tipů ke zrychlení webů
Martin Michálek
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Martin Michálek
Blbosti kolem webové rychlosti
Blbosti kolem webové rychlosti
Martin Michálek
SEO jako Brno - workshop k rychlosti webu
SEO jako Brno - workshop k rychlosti webu
Martin Michálek
Web rychlý jako blesk (s důrazem na AMP)
Web rychlý jako blesk (s důrazem na AMP)
Martin Michálek
Devel.cz: Bootstrap 4
Devel.cz: Bootstrap 4
Martin Michálek
AMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízí
Martin Michálek
Metriky rychlosti načítání
Metriky rychlosti načítání
Martin Michálek
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
Martin Michálek
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
Martin Michálek
Slasti a pasti prototypování v HTML
Slasti a pasti prototypování v HTML
Martin Michálek
Debugování responzivních webů
Debugování responzivních webů
Martin Michálek
Mobile First v praxi
Mobile First v praxi
Martin Michálek
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Martin Michálek
Design webů v prohlížeči
Design webů v prohlížeči
Martin Michálek

More Related Content

More from Martin Michálek (20)

Mýty a blbosti o webové rychlosti (FrontKon 2024)
Mýty a blbosti o webové rychlosti (FrontKon 2024)
Martin Michálek
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Martin Michálek
CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?
Martin Michálek
Browsers: from competition to collaboration
Browsers: from competition to collaboration
Martin Michálek
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
Martin Michálek
17 technických tipů ke zrychlení webů
17 technických tipů ke zrychlení webů
Martin Michálek
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Martin Michálek
Blbosti kolem webové rychlosti
Blbosti kolem webové rychlosti
Martin Michálek
SEO jako Brno - workshop k rychlosti webu
SEO jako Brno - workshop k rychlosti webu
Martin Michálek
Web rychlý jako blesk (s důrazem na AMP)
Web rychlý jako blesk (s důrazem na AMP)
Martin Michálek
Devel.cz: Bootstrap 4
Devel.cz: Bootstrap 4
Martin Michálek
AMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízí
Martin Michálek
Metriky rychlosti načítání
Metriky rychlosti načítání
Martin Michálek
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
Martin Michálek
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
Martin Michálek
Slasti a pasti prototypování v HTML
Slasti a pasti prototypování v HTML
Martin Michálek
Debugování responzivních webů
Debugování responzivních webů
Martin Michálek
Mobile First v praxi
Mobile First v praxi
Martin Michálek
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Martin Michálek
Design webů v prohlížeči
Design webů v prohlížeči
Martin Michálek
Mýty a blbosti o webové rychlosti (FrontKon 2024)
Mýty a blbosti o webové rychlosti (FrontKon 2024)
Martin Michálek
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Martin Michálek
CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?
Martin Michálek
Browsers: from competition to collaboration
Browsers: from competition to collaboration
Martin Michálek
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
„To my ne, to oni!“ – komponenty třetích stran a rychlost webu
Martin Michálek
17 technických tipů ke zrychlení webů
17 technických tipů ke zrychlení webů
Martin Michálek
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Rychlost webu: Co pro ni mohou udělat UXáci, marketéři a majitelé webů?
Martin Michálek
SEO jako Brno - workshop k rychlosti webu
SEO jako Brno - workshop k rychlosti webu
Martin Michálek
Web rychlý jako blesk (s důrazem na AMP)
Web rychlý jako blesk (s důrazem na AMP)
Martin Michálek
AMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízí
Martin Michálek
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
Martin Michálek
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
Martin Michálek
Slasti a pasti prototypování v HTML
Slasti a pasti prototypování v HTML
Martin Michálek
Debugování responzivních webů
Debugování responzivních webů
Martin Michálek
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Martin Michálek

CSS proměnné (Custom Properties)