liquiddesign

Biblioteka wzorców

Wzorce do pracy na projektach

Zasady mówią, dlaczego. Wzorce pokazują, jak: gotowe do przeniesienia rozwiązania z żywym demo, regułami i kodem, które możesz podlinkować w review albo w rozmowie z zespołem.

01

Cztery stany widoku

Każdy widok danych ma cztery stany: ładowanie, treść, pustkę i błąd. Wszystkie dzielą jeden layout.

02

Formularz bez niespodzianek

Walidacja przy opuszczeniu pola, przycisk o stałej szerokości podczas wysyłki i potwierdzenie w zarezerwowanym slocie.

03

Siatka, która płynie

Kolumny wynikają z dostępnej przestrzeni, a karty przebudowują się według szerokości kontenera, nie ekranu.

04

Kafelki w równym rytmie

Nagłówki, opisy i stopki sąsiednich kart leżą na wspólnych liniach, bo wiersze kafelków pochodzą z jednej siatki.

05

Natywny dialog zamiast diva

Element dialog daje pułapkę fokusu, Escape i warstwę za darmo, a scrollbar-gutter pilnuje, żeby otwarcie nie przesunęło strony.

06

Powiadomienia w swojej warstwie

Toasty żyją w zarezerwowanej warstwie nad treścią, więc mogą przychodzić i znikać, nie ruszając niczego pod spodem.

07

Optymistyczna odpowiedź

Interfejs odpowiada natychmiast, zapisuje w tle i umie się wycofać, gdy serwer odmówi.

08

Wyszukiwanie bez szarpania

Debounce ogranicza zapytania, wskaźnik mieszka w polu, a wyniki wymieniają się w kontenerze o stałej wysokości.

09

Obrazy, które nie pchają

Wymiary zadeklarowane w znaczniku, aspect-ratio w CSS i placeholder w tle: obraz może się spóźnić, layout nie.

10

Zakładki bez windy

Panel zakładek rezerwuje wysokość najwyższej treści, więc przełączanie nie winduje strony w górę i w dół.

11

Akordeon bez mierzenia

Rozwijanie animuje grid-template-rows od 0fr do 1fr, bez JavaScript liczącego wysokości treści.

12

Liczby, które nie drgają

Cyfry tabelaryczne i sloty o stałej liczbie znaków sprawiają, że timer, cena i licznik nie telepią sąsiadów.

13

Karuzela na scroll-snap

Poziomy pas kart przewijany natywnie, z przyciąganiem scroll-snap, bez biblioteki i bez przejmowania gestów.

14

Walidacja bez JavaScript

Pseudoklasy :user-invalid i :has stylują błędy dopiero po interakcji, z komunikatem w zarezerwowanym slocie, zanim uruchomi się jakikolwiek skrypt.

15

Dymek przy swojej kotwicy

Popover API otwiera menu i podpowiedzi w top layer, a CSS anchor positioning trzyma je przy przycisku bez skryptu liczącego współrzędne.

16

Wejścia i wyjścia bez JS

@starting-style animuje pojawienie się elementu, a transition-behavior: allow-discrete pozwala mu zniknąć z animacją, mimo display none.

17

Długa lista bez długu

content-visibility: auto odracza rendering wierszy poza ekranem, a contain-intrinsic-size rezerwuje ich wymiary, więc scrollbar nie kłamie.

18

Scroll jako oś czasu

animation-timeline ze scroll() i view() wiąże animację z pozycją przewijania, bez nasłuchu zdarzeń i bez pracy na głównym wątku.

19

Przejście zamiast teleportacji

View Transitions API animuje przejście między dwoma stanami DOM: karty płyną na nowe miejsca, zamiast teleportować się przy każdym sortowaniu.