Menu

Generator CSS box-shadow

Projektuj wielowarstwowy CSS box-shadow z podglądem na żywo i kopiuj gotowy CSS.

Autor: Nethanel Bar, Co-founder & CEO

Ostatnia aktualizacja

Chcesz naprawdę nauczyć się programować?

Coddy uczy cię przez pisanie prawdziwego kodu w przeglądarce: interaktywne lekcje, natychmiastowa informacja zwrotna i pomoc AI, gdy utkniesz.

Czym jest generator box-shadow CSS?

box-shadow to właściwość CSS, która dodaje do dowolnego elementu cienie, poświaty i wklęsłe zagłębienia. To najmocniejsza dźwignia, by nadać płaskiemu projektowi poczucie *wysokości*: karty odrywają się od strony, okna modalne unoszą się nad treścią, a przyciski wyglądają na możliwe do wciśnięcia.

Sztuka polega na tym, że *dobry* cień rzadko ma jedną warstwę. Prawdziwe cienie są miększe i mają rozproszone odbicie światła, dlatego większość systemów projektowych (Material, iOS, Tailwind) układa 2 lub 3 deklaracje box-shadow z różnymi przesunięciami i kryciem. Pisanie ich ręcznie jest żmudne, a generator pozwala dopracować każdą warstwę wizualnie i od razu zobaczyć połączony efekt.

Generator Coddy obsługuje dowolną liczbę warstw, cienie *zewnętrzne* i *wewnętrzne* (inset), kolor i krycie dla każdej warstwy oraz gotowe ustawienia dla najczęstszych wzorców: subtelne karty, ostre cienie, poświaty w kolorze marki, wklęsłe pola i powierzchnie neumorficzne. Skopiuj CSS i wklej go prosto do arkusza stylów, bez wysyłania plików, bez konta i bez znaku wodnego.

Co warto wiedzieć o box-shadow w CSS

  • Składnia to box-shadow: [inset] <x> <y> <blur> <spread> <color>. inset umieszcza cień *wewnątrz* elementu, a bez niego cień pada na zewnątrz.
  • *Rozmycie* (blur) zmiękcza krawędź: większe wartości dają bardziej rozproszony cień. *Rozciągnięcie* (spread) powiększa lub zmniejsza cień przed zastosowaniem rozmycia (wartości ujemne go ściągają, co przydaje się przy miękkim uniesieniu).
  • Wiele cieni oddziela się przecinkami, a układają się od tyłu do przodu w kolejności zapisu: pierwszy na liście leży w końcowym obrazie *pod* kolejnymi.
  • Używaj rgba() (lub hsla()) dla koloru, żeby ustawiać krycie każdej warstwy. Czysta czerń przy niskim kryciu wygląda jak miękki szary cień, a przy pełnym kryciu jak twarde wycięcie.
  • box-shadow jest składany przez GPU i to jedno z najtańszych ulepszeń wizualnych, jakie można zastosować. Nie wpływa na układ: element zachowuje swój rozmiar i pozycję.

Jak zaprojektować box-shadow

  1. Zacznij od gotowego ustawienia

    Wybierz ustawienie, które pasuje do efektu, jakiego szukasz: subtelna karta, miękkie uniesienie, ostry cień, poświata marki, wklęsłe pole lub neumorfizm. To dobre punkty startowe do dalszego dopracowania.

  2. Dostosuj aktywną warstwę

    Przesuwaj suwaki przesunięcia X/Y, rozmycia, rozciągnięcia, koloru i krycia. Podgląd po lewej aktualizuje się na żywo. Mniejsze krycie i większe rozmycie dają *miększe* cienie.

  3. Dodaj kolejne warstwy

    Kliknij *Dodaj warstwę*, aby nałożyć drugi cień. Realistyczna głębia prawie zawsze wymaga dwóch warstw: krótkiej i zwartej (cień kontaktowy) oraz długiej i miękkiej (cień otoczenia).

  4. Włącz inset dla wklęsłych pól

    Włączenie opcji *Inset* maluje cień wewnątrz elementu zamiast wokół niego. Połącz to z subtelnym cieniem zewnętrznym, aby uzyskać efekt wciśniętego przycisku.

  5. Skopiuj CSS

    Gdy podgląd odpowiada projektowi, kliknij *Kopiuj CSS*. Wklej wynik do arkusza stylów: wygenerowana reguła zawiera każdą aktywną warstwę.

Box-shadow: ściąga

Każda wartość w box-shadow: x y blur spread color i jej rola.

WartośćEfektTypowy zakres
Przesunięcie XPrzesuwa cień w poziomie, dodatnie = w prawood −40px do 40px
Przesunięcie YPrzesuwa cień w pionie, dodatnie = w dółod 0px do 40px dla naturalnego światła
Rozmycie (blur)Zmiękcza krawędź cieniaod 0px do 80px
Rozciągnięcie (spread)Powiększa lub zmniejsza cień przed rozmyciemod −30px do 30px
KolorDowolny kolor CSS, ale rgba() pozwala ustawić krycie każdej warstwyrgba(0,0,0,0.05–0.3) dla naturalnych cieni
insetMaluje cień wewnątrz elementu-
Wiele warstwOddzielone przecinkami, układane od tyłu do przodu2 lub 3 warstwy dają realistyczną głębię

Przykłady box-shadow do wypróbowania

Subtelna karta z warstwą kontaktową i otoczenia

Subtelna karta z dwiema warstwami
box-shadow:    0 1px 2px rgba(0, 0, 0, 0.06),    0 4px 12px rgba(0, 0, 0, 0.08);

Zwarty cień o małym rozmyciu wyznacza punkt styku, a dłuższy, miększy cień daje wrażenie światła otoczenia. To wzorzec, którego używa większość nowoczesnych systemów projektowych.

Poświata marki

Miękka kolorowa poświata
box-shadow: 0 0 24px 4px rgba(108, 140, 255, 0.45);

Ustaw X i Y na zero, żeby poświata rozchodziła się równomiernie. Małe dodatnie rozciągnięcie pogrubia poświatę, zanim rozmycie ją zmiękczy. Używaj oszczędnie, bo kolorowe poświaty mocno przyciągają uwagę.

Wciśnięty inset

Cień wewnętrzny dla efektu wciśnięcia
box-shadow:    inset 0 2px 6px rgba(0, 0, 0, 0.18),    inset 0 0 0 1px rgba(0, 0, 0, 0.06);

Cienie inset są malowane wewnątrz elementu. Jeden miękki cień daje wrażenie wklęsłego pola, a cienki inset dodaje subtelną wewnętrzną ramkę dla wyrazistości.

Częste błędy przy box-shadow

  • Używanie czystej czerni z wysokim kryciem. Wygląda jak twarde wycięcie, a nie cień. Zmniejsz krycie do 0,06 do 0,18, aby uzyskać naturalnie wyglądające uniesienie.
  • Zapominanie o przesunięciu Y. Cień z X=0 i Y=0 leży równo *za* elementem: dobrze dla poświaty, źle dla karty, która ma wyglądać, jakby się unosiła.
  • Nakładanie zbyt wielu warstw. Trzy zwykle w zupełności wystarczą, a dziesięć daje mętny, rozmazany efekt i zauważalny koszt renderowania.
  • Używanie filter: drop-shadow() i box-shadow zamiennie. drop-shadow() podąża za maską alfa SVG lub obrazu, co przydaje się przy nieregularnych kształtach, ale box-shadow jest szybszy i czystszy dla prostokątnych elementów.
  • Zapominanie, że box-shadow ignoruje overflow: hidden na samym elemencie. Jeśli rodzic ma overflow: hidden, cień zostanie przycięty.

Box-shadow w CSS: FAQ

Co oznacza każda wartość box-shadow?
box-shadow: x y blur spread color. Pierwsze dwie to przesunięcia, *blur* zmiękcza krawędź, *spread* zmienia rozmiar przed rozmyciem, a kolor to dowolny kolor CSS (użyj rgba(), by kontrolować krycie). Dodaj inset na początku, aby umieścić cień wewnątrz elementu.
Jak nałożyć kilka cieni w jednej regule?
Oddziel każdy cień przecinkiem. Renderują się od tyłu do przodu w kolejności zapisu, więc pierwszy zadeklarowany cień ląduje *pod* kolejnymi. Użyj tego, by połączyć zwarty cień kontaktowy z miękkim cieniem otoczenia.
Czym różni się box-shadow od filter: drop-shadow()?
box-shadow podąża za prostokątem otaczającym element i szybko się maluje. drop-shadow() podąża za kanałem alfa tego, do czego go zastosowano (świetne dla SVG i przezroczystych PNG), ale jego renderowanie kosztuje więcej. Używaj box-shadow dla kart i przycisków, a drop-shadow() dla nieregularnych kształtów.
Dlaczego mój cień wygląda na pikselowy?
Albo rozmycie jest bardzo małe (rozmycie 0 px to z założenia ostry cień), albo element jest skalowany. Zwiększ wartość rozmycia lub poszukaj transform: scale() gdzieś wyżej w drzewie.
Czy box-shadow wpływa na układ strony?
Nie. Cienie są malowane poza ramką elementu, ale nie przesuwają sąsiedniej treści. Jeśli rodzic ma zostawić miejsce na cień, dodaj mu padding lub overflow: visible.

Dowiedz się więcej

Inne narzędzia dla programistów

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ