Studium przypadku z zawodowe.edu.pl: platforma ruszyła na początku 2025 na Bootstrapie 5, po roku miałem w planach jego usunięcie, po półtora – było zrobione. Nie przez wielki przepis, tylko szablon po szablonie, z bezpiecznym przełącznikiem i testami pilnującymi, żeby Bootstrap nie wrócił tylnymi drzwiami. Co go zastąpiło: details, dialog, :has(), natywne selecty i garść vanilla JS.
Nowy projekt i pierwsza decyzja: React czy Vue? Dla wielu to już nie decyzja, tylko odruch – zaczyna się od frameworka, zanim wiadomo, czy jest potrzebny. Kiedy framework naprawdę się broni (duży współdzielony stan, zespół, ekosystem), a kiedy wystarczy sama platforma: Web Components, moduły ES, Intl, View Transitions. Na przykładzie tego bloga – statyku prawie bez JavaScriptu.
Rozwijane menu, zakładki, akordeon, tooltip, sticky nagłówek, płynne przewijanie, pozycjonowanie dymka względem przycisku – to wszystko pisaliśmy odruchowo w JavaScripcie, bo CSS tego nie potrafił. Dziś potrafi. Przegląd rzeczy przeniesionych ze skryptu do arkusza stylów: :has(), popover, details, scroll-snap, position: sticky, container queries – z przykładami before/after i uczciwym rozdziałem o granicach.
Nie piszę o was, piszę o sobie sprzed lat. Kiedy pojawiło się PHP, trzymałem się CGI i Perla tak długo, że na PHP spojrzałem dopiero koło wydania czwartego. Ten sam odruch – nauczyłem się czegoś raz i tak będę pisał dalej – dziś każe ludziom zaczynać nowe projekty od jQuery. Przegląd tego, po co naprawdę braliśmy tę bibliotekę i co z tego jest już w gołej przeglądarce, z uczciwym rozdziałem o tym, kiedy jQuery wciąż ma sens.
Przełącznik jasny/ciemny, który naprawdę szanuje ustawienia systemu (także zmieniane w trakcie sesji), i regulacja rozmiaru tekstu – w ~30 liniach czystego JS, bez FOUC i bez bibliotek. Sztuczka: w localStorage nie zapisuję koloru, tylko 'opposite'.
Dwa drobne easter eggi, które wstawiłem na brylka.net: ASCII-art w komentarzu HTML (dla tych, co robią view-source) i stylizowany console.log w DevTools. Jak je zrobić w Astro, żeby przetrwały minifikację – plus jelonek z ASCII na szlakjelonkow.pl.
Analiza i praktyka: czy statyczny blog (bez backendu) da radę wystawić WebMCP i czy da się ubić pełne 6/6 w Lighthouse Przeglądanie agentowe. Imperatywne navigator.modelContext.registerTool, deklaratywne adnotacje formularza (toolname/tooldescription), kliencka wyszukiwarka i szczera analiza, co naprawdę znaczy ten wynik.
jQuery, lodash, moment, Popper, jQuery UI datepicker – całe pokolenie bibliotek łatało dziury w przeglądarce. Dziś tych dziur już nie ma: CSS, HTML i natywny JavaScript przejęły to, co latami doklejaliśmy zależnościami, a miejscami CSS wyprzedził JavaScript. Przegląd z konkretnymi przykładami before/after i aktualnym stanem Baseline.
Ten sam kalendarz miesięczny co w serii z jQuery, ale bez żadnych zależności: Web Component, natywne API DOM, Intl do nazw miesięcy i dni oraz fetch zamiast AJAX-a. Pokazuję, że w 2026 jQuery jest po prostu zbędne.