Text-shadow (oraz box-shadow) to bardzo fajne efekty, które choć nie powinny być nadużywane, to w przypadku korzystania z nich z umiarem potrafią nadać świetny efekt rozświetlenia danego elementu. Poznajemy je!

Nasz h1 wygląda tak:

<h1>MY HEADING</h1>

Nadajemy mu delikatny text-shadow na „dzień dobry” oraz mocniejszy na hovera:

h1 {
transition: all .5s;
color: #1e293b;
text-shadow: 1px 1px 1px rgba(30,41,59, 0.2);
font-family: Tahoma, sans-serif;
}

h1:hover {
color:#ef4444;
text-shadow: 2px 2px 2px rgba(239,68,68, 0.3);
}

Różnica ogromna. Napis sprawia wrażenie rozświetlonego, zaś po najechaniu – jeszcze bardziej „błyszczy”, nie tylko kolor zmienia.

Teraz zabawmy się w box-shadow. Prosta nawigacja:

<ul>
  <li><a href="">BUTTON 1</a></li>
  <li><a href="">BUTTON 2</a></li>
  <li><a href="">BUTTON 3</a></li>
</ul>

Lista jako flex-rodzic:

ul {
  list-style: none;
  display: flex;
  align-items: center;
 }

Elementy listy jako guziki pewien box-shadow posiadający, komponujący się z ich kolorem:

li {
 text-transform: uppercase;
 margin: 2px;
 flex-shrink: 0;
 background-color: #64748b;
 border-color: #64748b;
 color: #fff;
 padding: 0.3rem 0.7rem;
 border-radius: 5px;
 box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.2);
 transition: all .5s;
}

Klasyczny reset stylów linków:

li a {
text-decoration: none;
color: inherit;
letter-spacing: 0.7px;
}

Teraz hover, który przez sam swój kolor rozświetla + box-shadow komponujący się z tym kolorem i jeszcze bardziej podkręcony, tak, aby rozświetlał, nie bijąc jednocześnie po oczach:

li:hover {
box-shadow: 0 4px 10px 0px rgba(148,163,184, 0.3);
background-color: #94a3b8;
border-color: #94a3b8;
}

Dzięki transition na elemencie li efekt będzie płynny. Box-shadow i text-shadow to świetne dodatki do rozświetlania elementów na stronie, odpowiedniego budowania user-experience – pod warunkiem, że nie przesadzimy.

Musimy też pamiętać o tym, aby kolory były ze sobą skomponowane. W przypadku box i text-shadow najlepiej sprawdza się notacja rgba z dobrze dobraną alfą. Kolor box-shadow powinien odpowiadać kolorowi elementu.

Należy też pamiętać, że kolor efektu hover powinien być jaśniejszy od normalnego stanu zaś kolor box/text-shadow to jego wersja z dobrze dobraną alfą i offsetami w pikselach.

Krótko mówiąc, trzeba się tym pobawić, aczkolwiek cel tego jest taki, aby uzyskać subtelny, ale robiący wrażenie i różnicę efekt. Do wybierania kolorów polecam paletę Tailwinda, z którego można sobie kopiować ładnie powybierane kolory w ustandaryzowanych odcieniach.

O ile nie przepadam za frameworkami CSS (swoje ważą, niszczą separation of concerns i generalnie wydłużają html ponad miarę plus CSS warto znać i samemu umieć stosować) to paleta Tailwinda jest świetna.

Inne narzędzie warte uwagi to generator kolorów i odcieni frameworka Ionic. Czasami też z niego korzystam. Wrzucamy kolor, dostajemy kolor kontrastujący i kilka odcieni, w dodatku możemy sobie zmienne CSS przekopiować od razu.