<!-- {% základ %} --> {%hackmd fxj9ARKoRU6IIXk-sKc75A %} <!-- {% žlutá %} --> {%hackmd XN8aYtFESBm-HwgJqXJgXQ %} ## Praha, Pivovar Lajka<br> 12. listopadu ’25<!-- .element: class="text-center" --> <small>Brno dnes: Přístupný diskuzní večer</small><!-- .element: class="fragment" --> 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) --- ## Někdy příštěěě - [19. listopadu, Bratislava](https://www.meetup.com/frontendisti/events/311852855/) <!-- .element: class="fragment" --> -  10. prosince, Brno <!-- .element: class="fragment" --> -  11. února, Praha <!-- .element: class="fragment" --> --- ## WWW minulém díle jste viděli <!-- .element: class="text-center" --> - [Stage F](https://www.youtube.com/watch?v=WyLeGYgrVw4&list=PLnXfazh66kVdNTQ4Ivy5NAC2StiHxVtrK) <!-- .element: class="c-text-sm fragment" --> - [Stage E](https://www.youtube.com/watch?v=6gR6Yqd2PSQ&list=PLnXfazh66kVcLsOPWazgbnu6irZEomMlS) <!-- .element: class="c-text-sm fragment" --> - [Partnerská stage](https://www.youtube.com/watch?v=6gR6Yqd2PSQ&list=PLnXfazh66kVcLsOPWazgbnu6irZEomMlS) <!-- .element: class="c-text-sm fragment" --> - [Honza Svěrák: JavaScript is dead: 7 příkladů, kde už si vystačíš jen s moderním CSS](https://www.youtube.com/watch?v=vDcmvrWmNsM&list=PLnXfazh66kVcLsOPWazgbnu6irZEomMlS) <!-- .element: class="c-text-sm fragment" --> - [Adam Kulhánek: Smart & Kind: psychologie IT mozku](https://www.youtube.com/watch?v=IG1sn25bHvA&list=PLnXfazh66kVcLsOPWazgbnu6irZEomMlS) <!-- .element: class="c-text-sm fragment" --> - [Michal Špaček: Pomoz password managerům pomáhat lidem](https://www.youtube.com/watch?v=iG3f8DU05QE&list=PLnXfazh66kVdNTQ4Ivy5NAC2StiHxVtrK) <!-- .element: class="c-text-sm fragment" --> note: - koutpeny od [Honzy Svěráka](https://codepen.io/collection/myZNmP) --- ## Letem swwwětem --- ### Prohlížeče **Firefox 145** _vydán 11. listopadu 2025_ <!-- .element: class="fragment" --> **Chrome 142** _vydán 22. října 2025_ <!-- .element: class="fragment" --> **Safari 26.1** _vydáno 4. listopadu 2025_ <!-- .element: class="fragment" --> note: --- ### Web platform status --- #### ![štítek Baseline, běžně dostupné](https://hackmd.io/_uploads/rJEtkiR0C.svg =10%x) běžně dostupné: 11/2025 - matematické funkce <!-- .element: class="fragment c-text-xs" --> - container queries <!-- .element: class="fragment c-text-xs" --> - `@media (23ch < width <= 78ch)` <!-- .element: class="fragment c-text-xs" --> - `:nth-child() of <selector>` <!-- .element: class="fragment c-text-xs" --> - lab, lch, oklab a oklch <!-- .element: class="fragment c-text-xs" --> - funkce `color()` a `color-mix()` <!-- .element: class="fragment c-text-xs" --> - `inert` <!-- .element: class="fragment c-text-xs" --> - konstanty pro `calc()`: `e`, `pi`, `infinity`, `-infinity`, `NaN` <!-- .element: class="fragment c-text-xs" --> - JS moduly (ESM) ve workerech <!-- .element: class="fragment c-text-xs" --> - `:autofill` <!-- .element: class="fragment c-text-xs" --> - [a další…](https://webstatus.dev/?q=baseline_date%3A2023-01-01..2023-06-30&columns=name%2Cbaseline_status%2Cavailability_chrome%2Cavailability_edge%2Cavailability_firefox%2Cavailability_safari%2Cstable_chrome%2Cstable_edge%2Cstable_firefox%2Cstable_safari%2Cchrome_usage&column_options=baseline_status_high_date&sort=baseline_status_asc) <!-- .element: class="fragment" --> note: - běžně dostupné (widely available): 2,5 roku od chvíle kdy fičuru implementoval poslední z trojice CH, FF, SF - fičury nově dostupné v prvním pololetí 2023 - atribut `inert`: označí NEintaraktivní prvky - matematické fce s výjimkou `abs()` a `sign()` - `:autofill` – formulářová pole vyplněná prohlížečem --- #### ![štítek Baseline, nově dostupné](https://hackmd.io/_uploads/BJaeQjR0A.svg =10%x) nově dostupné: 11/2025 - View transitions <!-- .element: class="fragment" --> - `::details-content` <!-- .element: class="fragment" --> - `content-visibility` <!-- .element: class="fragment" --> note: - nově dostupné: aktuální verze CH, FF, SF podporují - FF doplnil základní podporu přechodů v 144 - `content-visibility` SF od verze 26 --- #### ![štítek Baseline, omezená dostupnost](https://hackmd.io/_uploads/Byn74jCCA.svg =10%x) omezená dostupnost: 11/2025 ~~stačilo~~ dost! note: - dostupné jen v některých prohlížečích --- ## Zachyceno v síti --- ### [Ana Tudor: Super Simple Full-Bleed & Breakout Styles](https://frontendmasters.com/blog/super-simple-full-bleed-breakout-styles/) ![image](https://hackmd.io/_uploads/rJ3Rh3ZeWe.png) note: - bohatě okomentovaná případovka - už po několikáté jsem narazil na zmínku o `box-sizing: border-box` --- ### Potřebujeme nastavovat `box-sizing`? ```css= *, &::before, &::after { box-sizing: inherit; } html { box-sizing: border-box; } ``` <!-- .element: class="c-text-sm" --> - [Miriam Suzanne: Don’t Inherit the Box Model](https://www.oddbird.net/2025/09/04/box-model/) <!-- .element: class="fragment" --> - [Kevin Powel: It might be time to rethink `box-sizing: border-box`](https://www.youtube.com/watch?v=PtAcpV6TAGM) <!-- .element: class="fragment" --> note: - podle mnohých už ho neopotřebujeme, protože dávno nenastavujeme prvkům pevné rozměry - dědictví Bootstrapu, jehož rozvržení vycházelo z pevně daných rozměrů ([má to tam](https://github.com/twbs/bootstrap/blob/main/dist/css/bootstrap-reboot.css#L183-L187) ještě [verze 5](https://github.com/twbs/bootstrap/blob/main/dist/css/bootstrap-reboot.css#L183-L187), ehm) - tzn. nechat výchozí `box-sizing: content-box` a kde je to potřeba nastavit `border-box` - nicméně Kevin nedoporučuje to vykuchávat z existujících projektů - [There’s no such thing as a CSS reset](https://aaadaaam.com/notes/useful-defaults/) --- ### Programátorské bludy - [Falsehoods Programmers Believe About Names](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) <!-- .element: class="fragment" --> - [Falsehoods programmers believe about languages ](https://www.lexiconista.com/falsehoods-about-languages/) <!-- .element: class="fragment" --> - [Falsehoods programmers believe about time ](https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b923ca) <!-- .element: class="fragment" --> --- ### [Roma Komarov: Fixing baselines](https://blog.kizu.dev/fixing-baselines/) ![image](https://hackmd.io/_uploads/HJT3miWl-e.png) <!-- .element: class="fragment" --> `baseline-source`<!-- .element: class="fragment" -->`: auto|first|last`<!-- .element: class="fragment" --> ![image](https://hackmd.io/_uploads/HJDCQi-eZg.png) <!-- .element: class="fragment" --> note: - [`baseline-source`](https://drafts.csswg.org/css-inline/#propdef-baseline-source) - podpora jedn CH a FF --- #### [Roma Komarov: Fixing baselines](https://blog.kizu.dev/fixing-baselines/) ```css= .with-extra-element { --gap: 0.5em; gap: var(--gap); } .with-extra-element::before { content: '\a0'; /* &nbsp; */ width: 0; display: inline-block; visibility: hidden; margin-left: calc(-1 * var(--gap, 0)); } ``` <!-- .element: class="c-text-sm" --> note: - protože používá `inline-flex` příp. `inline-grid`, pracuje s `gap` a je potřeba ho vyrovnat záporným marginem - hezký tip: když použijete escapovaný zápis, zapište do komentáře, o jaký znak se jedná --- ## Nástroje a udělátka --- ### DevTools: rozdělit svisle `chrome://flags#side-by-side` note: - Elements a Network současně (_move to drawer_) --- ## KoutPen --- ### [Instant snapport](https://cssence.com/2025/scroll-margin-scroll-padding/) <iframe height="500" style="width: 100%;" scrolling="no" title="Scroll margin &amp; scroll padding" src="https://codepen.io/cssence/embed/MYKObbV?default-tab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true"> See the Pen <a href="https://codepen.io/cssence/pen/MYKObbV"> Scroll margin &amp; scroll padding</a> by Matthias Zöchling (<a href="https://codepen.io/cssence">@cssence</a>) on <a href="https://codepen.io">CodePen</a>. </iframe> note: - CSSence: Matthias Zöchling - selektor `[id]` => prvky s id, tj. lze předpokládat kotvu - vypnout nastavení: odvine se pod záhlaví - `scroll-margin`: přidává se prvku, na který scrolluji - `scroll-padding`: přidává se stránce (případně prvku, v němž scrolluji) --- ### Roma Komarov: předávání id <iframe height="500" style="width: 100%;" scrolling="no" title="inline variables for idreffing" src="https://codepen.io/kizu/embed/QwyZMjj?default-tab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true"> See the Pen <a href="https://codepen.io/kizu/pen/QwyZMjj"> inline variables for idreffing</a> by Roman Komarov (<a href="https://codepen.io/kizu">@kizu</a>) on <a href="https://codepen.io">CodePen</a>. </iframe> note: - atribut `anchor` je zatím experimentální (jen CH Canary) --- ## Dnes wwwečer - **[Tomáš Litera](https://literat.dev/)**, [Alma career](https://www.almacareer.com/cz) Kdo ovládá npm závislosti, ovládá JavaScript vesmír <!-- .element: class="fragment" --> - **Jiří Cerhan**, SiteOne & Frontendisti (Ne)tvoříme neexistující aplikace s AI <!-- .element: class="fragment" --> - Riskuj <!-- .element: class="fragment" --> - Bleskovky akože lightning talks <!-- .element: class="fragment" --> note: --- Díky, prezentace v komentáři na [Meetup.com](https://www.meetup.com/frontendisti/)
{"title":"12. listopadu ’25","breaks":true,"description":"<small>Brno dnes: </small><!-- .element: class=\"fragment\" --><small>příště: kdy, kde</small><!-- .element: class=\"fragment\" -->","contributors":"[{\"id\":\"772328be-33fa-4edc-bac0-7a7903521fb4\",\"add\":9824,\"del\":5301,\"latestUpdatedAt\":1765228692892}]"}
    301 views