<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LionBrothers &#8211; Web Development</title>
	<atom:link href="https://lionbrothers.pl/feed/" rel="self" type="application/rss+xml" />
	<link>https://lionbrothers.pl/</link>
	<description></description>
	<lastBuildDate>Mon, 16 Feb 2026 00:05:55 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Zmiana kolejności produktów powiązanych (related) &#8211; Moduł PrestaShop</title>
		<link>https://lionbrothers.pl/zmiana-kolejnosci-produktow-powiazanych-related-modul-prestashop/</link>
					<comments>https://lionbrothers.pl/zmiana-kolejnosci-produktow-powiazanych-related-modul-prestashop/#respond</comments>
		
		<dc:creator><![CDATA[lion_a]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 00:05:55 +0000</pubDate>
				<category><![CDATA[PrestaShop]]></category>
		<guid isPermaLink="false">https://lionbrothers.pl/?p=64</guid>

					<description><![CDATA[<p>Domyślnie w PrestaShop produkty powiązane (related) są sortowane według ich ID w bazie danych. Dla większości sklepów jest to wystarczające, ale w przypadku niestandardowych rozwiązań oczekiwaniem właściciela sklepu może być możliwość ręcznego ustalania kolejności produktów. Dlaczego standardowe sortowanie może być niewystarczające? Kolejność według ID nie zawsze odzwierciedla strategię sprzedaży. Czasami produkty powiązane są wykorzystywane jako [&#8230;]</p>
<p>Artykuł <a href="https://lionbrothers.pl/zmiana-kolejnosci-produktow-powiazanych-related-modul-prestashop/">Zmiana kolejności produktów powiązanych (related) &#8211; Moduł PrestaShop</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Domyślnie w PrestaShop produkty powiązane (related) są sortowane według ich ID w bazie danych. Dla większości sklepów jest to wystarczające, ale w przypadku niestandardowych rozwiązań oczekiwaniem właściciela sklepu może być możliwość ręcznego ustalania kolejności produktów.</p>



<h2 class="wp-block-heading">Dlaczego standardowe sortowanie może być niewystarczające?</h2>



<p>Kolejność według ID nie zawsze odzwierciedla strategię sprzedaży. Czasami produkty powiązane są wykorzystywane jako komplementarne. Produkty starsze (z niższym ID) mogą być już niedostępne lub po prostu warte zaproponowania są produkty nowsze.</p>



<p>Reasumując &#8211; często jest potrzeba określone produkty powiązane wyswietlać w pierwszej kolejności.</p>



<h2 class="wp-block-heading">Darmowe rozwiązanie &#8211; Moduł sortablerelated</h2>



<p>Na GitHub dostępny jest darmowy moduł , który umożliwia ręczne sortowanie produktów powiązanych.</p>



<p>https://github.com/SqrtLewy/sortablerelated</p>



<p>Moduł jest kompatybilny z PrestaShop 1.7 oraz PrestaShop 8 (oraz z Product Page V2).</p>



<p>Po zainstalowaniu modułu kolejność produktów będzie można zmieniać za pomocą drag&amp;drop.</p>



<p></p>
<p>Artykuł <a href="https://lionbrothers.pl/zmiana-kolejnosci-produktow-powiazanych-related-modul-prestashop/">Zmiana kolejności produktów powiązanych (related) &#8211; Moduł PrestaShop</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lionbrothers.pl/zmiana-kolejnosci-produktow-powiazanych-related-modul-prestashop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Magento 2 – jak wyświetlić blok CMS w pliku PHTML</title>
		<link>https://lionbrothers.pl/magento-2-jak-wyswietlic-blok-cms-w-pliku-phtml/</link>
					<comments>https://lionbrothers.pl/magento-2-jak-wyswietlic-blok-cms-w-pliku-phtml/#respond</comments>
		
		<dc:creator><![CDATA[lion_a]]></dc:creator>
		<pubDate>Sun, 08 Feb 2026 23:10:05 +0000</pubDate>
				<category><![CDATA[Magento 2]]></category>
		<guid isPermaLink="false">https://lionbrothers.pl/?p=48</guid>

					<description><![CDATA[<p>W Magento 2 bloki CMS najczęściej używane są bezpośrednio w layoutach XML, jednak czasami zachodzi potrzeba wyświetlenia bloku CMS bezpośrednio w pliku PHTML np. przy warunkowej logice. W tym wpisie przybliżymy jak poprawnie wywołać blok CMS w plikach .phtml. Wyświetlanie bloku CMS w .phtml W miejscu &#8222;id_bloku_cms&#8221; podajemy ID bloku statycznego CMS. Ważne &#8211; wprowadzamy [&#8230;]</p>
<p>Artykuł <a href="https://lionbrothers.pl/magento-2-jak-wyswietlic-blok-cms-w-pliku-phtml/">Magento 2 – jak wyświetlić blok CMS w pliku PHTML</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>W Magento 2 bloki CMS najczęściej używane są bezpośrednio w layoutach XML, jednak czasami zachodzi potrzeba wyświetlenia bloku CMS bezpośrednio w pliku PHTML np. przy warunkowej logice. W tym wpisie przybliżymy jak poprawnie wywołać blok CMS w plikach .phtml.</p>



<h2 class="wp-block-heading">Wyświetlanie bloku CMS w .phtml</h2>



<pre class="wp-block-code"><code>&lt;?php
echo $this->getLayout()
->createBlock('Magento\Cms\Block\Block')
->setBlockId('id_bloku_cms')
->toHtml();
?></code></pre>



<p>W miejscu &#8222;id_bloku_cms&#8221; podajemy ID bloku statycznego CMS. Ważne &#8211; wprowadzamy identyfikator ustalony po stronie panelu, nie ID z bazy danych.</p>



<h2 class="wp-block-heading">Wywołanie bloku CMS na stronie CMS</h2>



<p>Jeśli blok CMS ma być użyty wewnątrz treści strony CMS, należy skorzystać z dyrektywy:</p>



<pre class="wp-block-code"><code>{{block class="Magento\\Cms\\Block\\Block" block_id="id_bloku_cms"}}</code></pre>



<h2 class="wp-block-heading">Wywołanie statycznego bloku CMS za pomocą pliku xml</h2>



<pre class="wp-block-code"><code>&lt;referenceContainer name="product.info.main"> 
    &lt;block class="Magento\Cms\Block\Block" name="block_identifier"> 
        &lt;arguments> 
            &lt;argument name="block_id" xsi:type="string">id_bloku&lt;/argument> 
        &lt;/arguments> 
    &lt;/block> 
&lt;/referenceContainer></code></pre>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1770591838941"><strong class="schema-faq-question">Czy można wywołać blok CMS warunkowo?</strong> <p class="schema-faq-answer">Tak. W pliku .phtml możesz dodać dowolną logikę PHP np. sprawdzenie: typu produktu, danej cechy produktu, atrybutu klienta itd.).</p> </div> <div class="schema-faq-section" id="faq-question-1770591904549"><strong class="schema-faq-question">Czy to rozwiązanie działa w Magento 2.4.x?</strong> <p class="schema-faq-answer">Tak. Wszystkie opisane metody są zgodne z każdą wersją Magento 2.</p> </div> <div class="schema-faq-section" id="faq-question-1770591989280"><strong class="schema-faq-question">Dlaczego zamiast statycznego HTMLa warto użyć bloku CMS?</strong> <p class="schema-faq-answer">Ponieważ treść umieszczona w bloku CMS nie wymaga deployu kodu po zmianie i może być dowolnie modyfikowana przez administratora (bezpośrednio z poziomu panelu).</p> </div> </div>
<p>Artykuł <a href="https://lionbrothers.pl/magento-2-jak-wyswietlic-blok-cms-w-pliku-phtml/">Magento 2 – jak wyświetlić blok CMS w pliku PHTML</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lionbrothers.pl/magento-2-jak-wyswietlic-blok-cms-w-pliku-phtml/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>&#060;meta name=&#8221;theme-color&#8221;&gt; &#8211; Mała zmiana, przyjemny efekt</title>
		<link>https://lionbrothers.pl/meta-nametheme-color-mala-zmiana-przyjemny-efekt/</link>
					<comments>https://lionbrothers.pl/meta-nametheme-color-mala-zmiana-przyjemny-efekt/#respond</comments>
		
		<dc:creator><![CDATA[lion_a]]></dc:creator>
		<pubDate>Sun, 08 Feb 2026 21:05:34 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://lionbrothers.pl/?p=35</guid>

					<description><![CDATA[<p>Meta tag &#60;meta name=&#8221;theme-color&#8221;> pozwala kontrolować kolor elementów interfejsu przeglądarki (takich jak pasek adresu), szczególnie na urządzeniach mobilnych &#8211; działa w przeglądarkach opartych o Chromium, np. Google Chrome na Androidzie. Tag meta umieszczamy w sekcji head strony internetowej. Poniżej przykład dla koloru #202020: &#60;meta name="theme-color" content="#202020" /&#62; Poniżej zrzut ekranu: Warto dodać do swoich projektów [&#8230;]</p>
<p>Artykuł <a href="https://lionbrothers.pl/meta-nametheme-color-mala-zmiana-przyjemny-efekt/">&lt;meta name=&#8221;theme-color&#8221;&gt; &#8211; Mała zmiana, przyjemny efekt</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Meta tag &lt;meta name=&#8221;theme-color&#8221;> pozwala kontrolować kolor elementów interfejsu przeglądarki (takich jak pasek adresu), szczególnie na urządzeniach mobilnych &#8211; działa w przeglądarkach opartych o Chromium, np. Google Chrome na Androidzie. Tag meta umieszczamy w sekcji head strony internetowej.</p>



<p>Poniżej przykład dla koloru #202020:</p>



<p><code>&lt;meta name="theme-color" content="#202020" /&gt;</code></p>



<p>Poniżej zrzut ekranu:</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="513" src="https://lionbrothers.pl/wp-content/uploads/2026/02/beforeafter-1024x513.png" alt="" class="wp-image-37" srcset="https://lionbrothers.pl/wp-content/uploads/2026/02/beforeafter-1024x513.png 1024w, https://lionbrothers.pl/wp-content/uploads/2026/02/beforeafter-300x150.png 300w, https://lionbrothers.pl/wp-content/uploads/2026/02/beforeafter-768x385.png 768w, https://lionbrothers.pl/wp-content/uploads/2026/02/beforeafter-1536x770.png 1536w, https://lionbrothers.pl/wp-content/uploads/2026/02/beforeafter.png 1843w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Warto dodać do swoich projektów &#8211; tym bardziej, że jest to tylko jedna linia kodu. Chyba, że strona obsługuje tryb light/dark &#8211; wtedy dwie linie &#8211; można ustawić kolor per tryb za pomocą tagu media:</p>



<pre class="wp-block-code"><code>&lt;meta  name="theme-color" content="#202020" media="(prefers-color-scheme: dark)" /&gt;

&lt;meta name="theme-color" content="#cccccc" media="(prefers-color-scheme: light)" /&gt;</code></pre>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1770589099489"><strong class="schema-faq-question"><strong>Czy meta theme-color wpływa na SEO?</strong></strong> <p class="schema-faq-answer">Bezpośrednio nie, ale poprawia estetykę strony mobilnej, co pośrednio może wpłynąć na zaangażowanie użytkowników.</p> </div> <div class="schema-faq-section" id="faq-question-1770589121416"><strong class="schema-faq-question"><strong>Czy theme-color działa we wszystkich przeglądarkach?</strong></strong> <p class="schema-faq-answer">Nie. Najlepsze wsparcie oferują przeglądarki Chromium (Chrome, Edge, Opera), szczególnie na Androidzie.</p> </div> <div class="schema-faq-section" id="faq-question-1770589138133"><strong class="schema-faq-question"><strong>Czy warto używać theme-color przy trybie dark/light?</strong></strong> <p class="schema-faq-answer">Tak. To drobny detal, który robi bardzo dobre wrażenie i zwiększa spójność interfejsu.</p> </div> </div>



<p></p>



<p></p>
<p>Artykuł <a href="https://lionbrothers.pl/meta-nametheme-color-mala-zmiana-przyjemny-efekt/">&lt;meta name=&#8221;theme-color&#8221;&gt; &#8211; Mała zmiana, przyjemny efekt</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lionbrothers.pl/meta-nametheme-color-mala-zmiana-przyjemny-efekt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Zmiana limitu produktów crosssell w koszyku &#8211; Magento 2</title>
		<link>https://lionbrothers.pl/zmiana-limitu-produktow-crosssell-w-koszyku-magento-2/</link>
					<comments>https://lionbrothers.pl/zmiana-limitu-produktow-crosssell-w-koszyku-magento-2/#respond</comments>
		
		<dc:creator><![CDATA[lion_a]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 23:40:34 +0000</pubDate>
				<category><![CDATA[Magento 2]]></category>
		<guid isPermaLink="false">http://lionbrothers.pl/?p=7</guid>

					<description><![CDATA[<p>W Magento 2 domyślnie w koszyku w sekcji crosssell wyświetlane są maksymalnie 4 produkty. W wielu sklepach to ograniczenie jest uciążliwe &#8211; szczególnie przy rozbudowanej ofercie. Domyślny limit cross-sell w Magento 2 W standardowej instalacji Magento 2 limit produktów cross-sell w koszyku wynosi 4. Wartość ta jest na stałe zdefiniowana w module Magento_Checkout i nie [&#8230;]</p>
<p>Artykuł <a href="https://lionbrothers.pl/zmiana-limitu-produktow-crosssell-w-koszyku-magento-2/">Zmiana limitu produktów crosssell w koszyku &#8211; Magento 2</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>W Magento 2 domyślnie w koszyku w sekcji crosssell wyświetlane są maksymalnie 4 produkty. W wielu sklepach to ograniczenie jest uciążliwe &#8211; szczególnie przy rozbudowanej ofercie.</p>



<h2 class="wp-block-heading">Domyślny limit cross-sell w Magento 2</h2>



<p>W standardowej instalacji Magento 2 limit produktów cross-sell w koszyku wynosi 4. Wartość ta jest na stałe zdefiniowana w module <strong>Magento_Checkout</strong> i nie może być zmieniona z poziomu panelu administracyjnego.</p>



<h2 class="wp-block-heading">Gdzie zdefiniowany jest limit cross-sell</h2>



<p>Limit zdefiniowany jest w module Magento_Checkout &#8211; w klasie Crosssell. Ścieżka do pliku: vendor/magento/module-checkout/Block/Cart/Crosssell.php.</p>



<p>Tak jak wspominaliśmy wyżej &#8211; Magento nie udostępnia do tego konfiguracji, dlatego jedynym poprawnym rozwiązaniem jest nadpisanie klasy poprzez własny moduł. </p>



<h2 class="wp-block-heading">Zmiana limitu cross-sell poprzez własny moduł Magento 2</h2>



<p>Potrzebne będą:</p>



<p>&#8211; plik rejestrujący preference (di.xml)</p>



<p>&#8211; plik nadpisujący limit</p>



<p>LionBrothers/CrosssellLimit/etc/frontend/di.xml:</p>



<pre class="wp-block-code"><code>&lt;?xml version="1.0"?&gt;
&lt;config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"&gt;
    &lt;preference for="Magento\Checkout\Block\Cart\Crosssell" type="LionBrothers\CrosssellLimit\Block\Cart\Crosssell"/&gt;
&lt;/config&gt;</code></pre>



<p>LionBrothers/CrosssellLimit/Block/Cart/Crosssell.php</p>



<pre class="wp-block-code"><code>&lt;?php

namespace LionBrothers\CrosssellLimit\Block\Cart;

class Crosssell extends \Magento\Checkout\Block\Cart\Crosssell
{
    /**
     * Items quantity will be capped to this value
     *
     * @var int
     */
    protected $_maxItemCount = 8;
}
</code></pre>



<p>Trzeba pamiętać również o standardowych plikach każdego modułu &#8211; registration.php oraz module.xml.</p>



<h2 class="wp-block-heading">Dlaczego używamy preference, a nie pluginu?</h2>



<p>W tym przypadku limit produktów cross-sell jest ustawiony jako protected property, a nie metoda. Oznacza to, że nie możemy zmienić go za pomocą pluginu (before/after/around). Najprostszym rozwiązaniem (i zarazem dobrą praktyką) jest użycie preference i rozszerzenie oryginalnej klasy.</p>



<p>Masz pytania? Napisz komentarz!</p>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1770590607567"><strong class="schema-faq-question">Czy można zmienić limit wyświetlanych produktów crosssell z poziomu panelu administracyjnego?</strong> <p class="schema-faq-answer">Nie, Magento 2 nie udostępnia takiej konfiguracji w panelu administracyjnym.</p> </div> <div class="schema-faq-section" id="faq-question-1770590622696"><strong class="schema-faq-question">Czy to działa w Magento 2.4.x?</strong> <p class="schema-faq-answer">Tak, rozwiązanie działa we wszystkich wersjach Magento 2.</p> </div> </div>
<p>Artykuł <a href="https://lionbrothers.pl/zmiana-limitu-produktow-crosssell-w-koszyku-magento-2/">Zmiana limitu produktów crosssell w koszyku &#8211; Magento 2</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lionbrothers.pl/zmiana-limitu-produktow-crosssell-w-koszyku-magento-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Strony internetowe w czasach AI</title>
		<link>https://lionbrothers.pl/strony-internetowe-w-czasach-ai/</link>
					<comments>https://lionbrothers.pl/strony-internetowe-w-czasach-ai/#respond</comments>
		
		<dc:creator><![CDATA[lion_a]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 23:21:14 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">http://lionbrothers.pl/?p=22</guid>

					<description><![CDATA[<p>Dzisiejszy post typowo refleksyjny. W ostatnich latach ze względu na rozwój sztucznej inteligencji powstaje coraz więcej stron w pełni wygenerowanych przez narzędzia AI. Często są do siebie bardzo podobne. Czy to źle? Moim zdaniem nie. Przed erą AI popularne były przecież zakupy gotowych szablonów. Te najpopularniejsze były sprzedawane w tysiącach licencji &#8211; więc finalnie wiele [&#8230;]</p>
<p>Artykuł <a href="https://lionbrothers.pl/strony-internetowe-w-czasach-ai/">Strony internetowe w czasach AI</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Dzisiejszy post typowo refleksyjny. W ostatnich latach ze względu na rozwój sztucznej inteligencji powstaje coraz więcej stron w pełni wygenerowanych przez narzędzia AI. Często są do siebie bardzo podobne. Czy to źle? Moim zdaniem nie. Przed erą AI popularne były przecież zakupy gotowych szablonów. Te najpopularniejsze były sprzedawane w tysiącach licencji &#8211; więc finalnie wiele stron wyglądało dokładnie tak samo. Wraz z rozwojem przedsiębiorstwa potrzebne były zmiany &#8211; dedykowany branding, inne (wygodniejsze) ułożenie contentu etc. Co wysyp stron &#8222;klepanych&#8221; przez AI oznacza dla Web Developera? Może paradoksalnie &#8211; więcej potencjalnej pracy.</p>



<p>Często zauważam wygenerowane strony, które są bardzo słabej jakości. Napchana jest masa ciężkich animacji, zbyt pstrokate wyróżniki wymieszane z generycznymi grafikami. Takich twórców będzie coraz więcej &#8211; bo wykonanie czegoś takiego to kwestia średniej jakości prompta do AI. Czasami widać też strony lepsze, ładniejsze oraz wygodniejsze, które też mają vibe w pełni wygenerowanej strony &#8211; ale wygląda to tak jakby czuwał nad tym ktoś kto się zna na temacie i chociaż zwracał uwagę narzędziom, że X tak nie powinno wyglądać/działać.</p>



<p>Dlaczego zatem więcej pracy? Wykonanie generycznego landingu jest banalne &#8211; ale jego modyfikacja skrojona pod wymagania już niekoniecznie. Trzeba pamiętać, że każda firma chce się wyróżniać i ma dedykowaną wizję. Czasami wykonanie z pozoru prostej zmiany bez znajomości kodu &#8222;kopiąc się&#8221; z AI będzie bardzo czasochłonna + efekt finalny może być niezadowalający. Biorąc pod uwagę skalowalność (np. przy sklepach internetowych) bezrefleksyjne pakowanie wszystkiego co podsunie AI może być opłakane w skutkach &#8211; wolna strona, poważne luki bezpieczeństwa etc. W skrajnych przypadkach błąd krytyczny i brak backupu. Przed erą AI przecież też można było skorzystać z gotowców i stworzyć prosty landing w parę minut podmieniając po prostu treść. Kluczowy jednak był i jest rozwój, modyfikacje i utrzymanie.</p>



<p>Wielu właścicieli stron dojdzie do momentu gdzie stwierdzi, że woli oddelegować modyfikowanie strony doświadczonemu developerowi. Trzeba wziąć pod uwagę, że strona to nie tylko strona. Zawsze warto mieć chociażby repozytorium gita, przy większych projektach jest to must have.</p>



<p>Próg wejścia do Web Developmentu i ogólnie szeroko pojętego programowania przy pomocy narzędzi AI bardzo się obniżył. Ale nadal trzeba chcieć zrozumieć i się uczyć &#8211; aktualnie zdecydowanie więcej niż wcześniej.</p>



<p>Traktuję AI jako świetnego pomocnika. To dobre narzędzia, które mogą znacznie ułatwić czy przyspieszyć pracę. Osobiście korzystam na co dzień. Jak każde inne narzędzie wymaga jednak pojęcia osoby korzystającej.</p>



<p>Ostatnio natrafiłem na stronę, która była wolna. Bardzo wolna. W sumie to mało powiedziane &#8211; ciężko znaleźć odpowiednie określenie. Był to onepage reklamujący usługi freelancera. Byłem ciekaw co na tak prostej stronie może aż tak drenować przeglądarkę i jej zasoby. W kodzie znalazłem animację, która polegała na podmianie relatywnie dużych plików svg (w środku był jpg w base64) co kilka milisekund. Sekcja była tak mała, że nawet nie zwróciłem na niej uwagi. Obciążenie, które generowała było w sumie bez sensu. W kodzie były przesłanki, że całość została wygenerowana &#8211; np. typowe dla AI nadmiarowe komentarze.</p>



<p>A Ty jak widzisz tę kwestię? Zapraszam do dyskusji w komentarzach.</p>



<p></p>
<p>Artykuł <a href="https://lionbrothers.pl/strony-internetowe-w-czasach-ai/">Strony internetowe w czasach AI</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lionbrothers.pl/strony-internetowe-w-czasach-ai/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PageSpeed &#8211; wskaźnik CLS</title>
		<link>https://lionbrothers.pl/pagespeed-wskaznik-cls/</link>
					<comments>https://lionbrothers.pl/pagespeed-wskaznik-cls/#respond</comments>
		
		<dc:creator><![CDATA[lion_a]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 00:30:04 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">http://lionbrothers.pl/?p=18</guid>

					<description><![CDATA[<p>Jednym z głównym wskaźników testu prędkości strony internetowej od Google (PageSpeed Insights) jest CLS. Rozwinięcie skrótu to Cumulative Layout Shift. Nie zagłębiając się w techniczne nazewnictwo wskaźnik określa stabilność tego co widzi użytkownik. Jeśli elementy &#8222;skaczą&#8221;/przesuwają się po inicjalizacji &#8211; wskaźnik będzie miał wysoką wartość. Stabilność viewportu jest bardzo ważna, wskaźnika CLS nie należy pomijać. [&#8230;]</p>
<p>Artykuł <a href="https://lionbrothers.pl/pagespeed-wskaznik-cls/">PageSpeed &#8211; wskaźnik CLS</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Jednym z głównym wskaźników testu prędkości strony internetowej od Google (PageSpeed Insights) jest CLS. Rozwinięcie skrótu to Cumulative Layout Shift.</p>



<p>Nie zagłębiając się w techniczne nazewnictwo wskaźnik określa stabilność tego co widzi użytkownik. Jeśli elementy &#8222;skaczą&#8221;/przesuwają się po inicjalizacji &#8211; wskaźnik będzie miał wysoką wartość. </p>



<p>Stabilność viewportu jest bardzo ważna, wskaźnika CLS nie należy pomijać. Ma sporą wartość punktową w wyniku a często jest relatywnie najłatwiejszy do poprawienia. Nie patrząc tylko na wynik &#8211; wysoki CLS może znacząco obniżyć UX strony internetowej.</p>



<p>Dlaczego stabilność viewportu jest ważna? Spora część użytkowników działa bardzo szybko. Strona nie zdąży się jeszcze się w pełni wczytać a chcą już wykonywać jakieś akcje (np. kliknięcie boxa z promocją). Użytkownik najeżdża kursorem na element, klika &#8211; ale w tym momencie elementy zaczęły się przemieszczać. Finalnie nie trafił tam gdzie powinien.</p>



<p>Co najczęściej powoduje przesunięcia? Elementy, których zachowanie jest zmieniane za pomocą JavaScript. Skrypty potrzebują chwili żeby się wykonać, bazowy kod HTML i CSS powinien być &#8222;przygotowany&#8221; na doładowanie skryptu. Idealnym przykładem mogą być slidery. Załóżmy, że w sliderze są 3 zdjęcia &#8211; skrypt po inicjalizacji ukrywa wszystkie oprócz pierwszego, przerabia strukturę, dodaje nawigację (strzałki, kropki). Po stronie HTMLa i CSSa te pozostałe elementy powinny być ukryte bazowo. Jeśli nie będą &#8211; wstępnie na krótką chwilę użytkownik zobaczy 3 zdjęcia, skrypt się wykona, dwa nadmiarowe znikną. Elementy się przesunęły, wskaźnik CLS podskoczył również.</p>



<p>Jak temu zaradzić? Sprawdź, które elementy powodują przesunięcie. Można to wyłapać odświeżając stronę lub skorzystać z wtyczek do przeglądarek (nie polecę konkretnej bo mi zazwyczaj najwygodniej zlokalizować odświeżając w DevToolsach). Następnie określ czemu przesunięcie następuje &#8211; może np. inne klasy po doładowaniu JS&#8217;a? Często wystarczy ustawić minimalną wysokość elementu (min-height). </p>



<p>Masz pytania? Napisz komentarz poniżej.</p>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1770591043627"><strong class="schema-faq-question">Czy CLS różni się między desktopem a mobile?</strong> <p class="schema-faq-answer">Tak. CLS często jest wyższy na urządzeniach mobilnych &#8211; szczególnie ze względu na mniejszy viewport.</p> </div> <div class="schema-faq-section" id="faq-question-1770591115551"><strong class="schema-faq-question">Czy CLS wpływa bezpośrednio na SEO?</strong> <p class="schema-faq-answer">CLS jest jednym z Core Web Vitals, które według specjalistów są sygnałem rankingowym Google. Opinie na temat tego czy prędkość strony/wynik testów ma bezpośredni/znaczący wpływ na pozycje w wyszukiwarce są bardzo mieszane &#8211; niemniej jednak ważniejszy jest wpływ pośredni. Wysoki CLS znacznie pogarsza UX co może skutkować większym współczynnikiem odrzuceń.</p> </div> </div>
<p>Artykuł <a href="https://lionbrothers.pl/pagespeed-wskaznik-cls/">PageSpeed &#8211; wskaźnik CLS</a> pochodzi z serwisu <a href="https://lionbrothers.pl">LionBrothers - Web Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lionbrothers.pl/pagespeed-wskaznik-cls/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
