{%hackmd KXd2iUBpSjq7Ib2Z4h3LMg %} # {𝐅}rontendisti ## Praha, Pivovar Lajka <br> 13. března ’24 <!-- .element: class="c-text-md" --> <small>příště: 10. dubna v [Alma Career](https://magazin.almacareer.com/cz/lmc-se-meni-na-alma-career-nase-sluzby-pro-vas-zustavaji) (exLMC)</small><!-- .element: class="fragment" --> <small>mezitím v Brně: ARTIN</small><!-- .element: class="fragment" --> note: - brněnský sraz se zaznamenává, můžete se podívat na přednášky o Next.js 14 a serverovém GTM --- # Letem swwwětem note: - představit spolek > Budujeme a vzděláváme komunitu frontendových vývojářů a designérů - organizační náležitosti - Vítáme nové spíkry! Máš-li zajímavé téma nebo případovku, nenechávej si ji pro sebe. [Call for papers AKA náležitosti na webu Frontendisti.cz](https://docs.google.com/forms/d/e/1FAIpQLSe4mba2CAA8eFSaCJtypDkAQzmVmuhSNAP7VwuOIqLj8xEySA/viewform) --- ## WWW minulém díle jste viděli - [Petr Koláček: CSS :has power](https://youtu.be/n23zomcLCPg?si=XNvjJzJXti0Vqe8d) <!-- .element: class="fragment" --> - [Katka Voláková: Container queries](https://youtu.be/Tmv92XFVquA?si=WCl8Bx9GCXkG4sj6) (z FrontKonu) <!-- .element: class="fragment" --> note: - FrontKon 2024: 9/10/2024 --- ## Dnes - Yana Taran, Lentiamo.cz **New approach to sticky columns (EN)** - Martin Michálek, PageSpeed.cz **INP: jak zrychlit interakce na webu** - Riskuj **kvízová hra** note: - prožram - INP = Interaction to Next Paint - Riskuj: týmy o přestávce, pilotní uvedení, uvidíme --- ### Prohlížeče note: - dnes velmi stručně --- #### Firefox 123 _vydán 20. února 2024_ - podpora `103 early hints` note: - jako poslední z velkých prohlížečů - early hints: ještě během zpracovávání požadavku napovědí prohlížeči jaké další zdroje budou asi potřeba - nástupce (de facto náhrada) `preload` a `preconnect` (více Máchal) --- #### Chrome 123 _vydán 13. března 2024_ - `field-sizing` vlastnost CSS <!-- .element: class="fragment" data-fragment-index="1" --> - `NavigationActivation` <!-- .element: class="fragment" data-fragment-index="2" --> note: - form elements resize to the content width, [example by Adam Argyle](https://codepen.io/argyleink/pen/WNLzyJK) - Safari se tváří pozitivně, FF mlčí - [`NavigationActivation`](https://html.spec.whatwg.org/multipage/nav-history-apis.html#navigation-activation-interface) ukládá info o tom, odkud uživatel na stránku přišel, a to v tom smyslu, zda na ni přišel ponejprv, nebo se na ni vrací - bude tak možné nativně pozměnit obsah stránky např. pro nové návštěvníky - hudba budoucnosti, FF se tváří pozitivně, Safari mlčí --- #### Chrome 123 - [import attributes](https://github.com/tc39/proposal-import-attributes/) ```js= import json from "./foo.json" with { type: "json" }; import("foo.json", { with: { type: "json" } }); ``` <!-- .element: class="c-text-sm" --> note: - dříve se nazývalo _import assertions_ - podporuje Safari od verze 17.2, FF mlčí --- ## Zachyceno v síti --- [Michelle Barker: How I Solved My Font Rendering Problem](https://css-irl.info/how-i-solved-my-font-rendering-problem/) ![image](https://hackmd.io/_uploads/SyDpPCpp6.png) --- [Michelle Barker: How I Solved My Font Rendering Problem](https://css-irl.info/how-i-solved-my-font-rendering-problem/) ```css= @font-face { font-family: 'Frontendisti'; src: url('../fonts/verdana.woff2') format('woff2'); font-display: swap; } ``` <!-- .element: class="fragment c-text-xs" data-fragment-index="1" --> ```css= [3|5] @font-face { font-family: 'Frontendisti'; src: url('../fonts/verdana.woff2') format('woff2-variations'); font-display: swap; font-weight: 100 800; } ``` <!-- .element: class="fragment c-text-xs" data-fragment-index="2" --> note: - klíčové jsou řádky 3 a 5 - podle MDN je formát `woff2-variations` pouze doporučený, ale řeší ten problém --- ### Nástroje a udělátka --- [Textová bublina](https://css-generators.com/tooltip-speech-bubble/) ```html= <div class="tooltip">{F}rontendisti jsou prostě boží!</div> ``` <!-- .element: class="c-text-xs" --> ```css= .tooltip { color: #fff; font-size: 1.25rem; max-width: 28ch; text-align: center; } ``` <!-- .element: class="c-text-xs" --> --- [Textová bublina](https://css-generators.com/tooltip-speech-bubble/) ```css= .tooltip { /* tail dimension */ --b: 2em; /* base */ --h: 1.5em; /* height */ --p: 50%; /* main position (0%:left 100%:right) */ --x: 1.8em; /* tail position (relative to the main position). Can be percentage */ --r: 1.2em; /* the radius */ --c: #4ECDC4; padding: 1em; border-radius: var(--r) var(--r) min(var(--r),100% - var(--p) - var(--b)/2) min(var(--r),var(--p) - var(--b)/2)/var(--r); clip-path: polygon(0 100%,0 0,100% 0,100% 100%, clamp(var(--b),var(--p) + var(--b)/2,100%) 100%, calc(var(--p) + var(--x)) calc(100% + var(--h)), clamp(0%,var(--p) - var(--b)/2,100% - var(--b)) 100%); background: var(--c); border-image: conic-gradient(var(--c) 0 0) 0 0 1 0/0 0 var(--h) 0/0 999px var(--h) 999px; } ``` <!-- .element: class="c-text-xs" --> --- ## Kitát na záwwwěr > CSS is the only language that gets blamed when the author is bad. <!-- .element: class="fragment c-text-lg" --> > <small>[Josh Collinsworth](https://joshcollinsworth.com/blog/devaluing-frontend)</small> <!-- .element: class="fragment c-text-lg" --> note: - „CSS je jediný programovací jazyk, který se obviňuje namísto pranýřování mizerného autora.“ - pochází z článku kde se Josh zamýšlí nad tím, proč se pořád snižuje význam frontendu --- Díky, prezentace za chvíli na [@frontendisti](https://twitter.com/frontendisti)