Ce face mask și mask-image (măști cu gradient și imagini)
mask-image aplică peste element o mască. În modul implicit (alpha), acolo unde masca este opacă elementul se vede, acolo unde este transparentă elementul dispare, iar zonele semitransparente îl fac parțial vizibil. Culoarea măștii nu contează, doar opacitatea ei.
Spre deosebire de clip-path, care taie strict pe contur, masca permite treceri treptate: un gradient de la black la transparent face ca textul sau imaginea să se estompeze spre margine.
Proprietățile mask-size, mask-repeat și mask-position funcționează exact ca echivalentele lor background-*. Scurtătura mask le combină. Până la Chrome 120 era nevoie de prefixul -webkit-mask-image; pentru browsere vechi poți scrie ambele variante.
Valori uzuale
| Valoare | Descriere |
|---|---|
mask-image |
Imaginea sau gradientul folosit ca mască (url(), linear-gradient(), radial-gradient()). |
mask-size |
Mărimea măștii: contain, cover, auto sau dimensiuni exacte. |
mask-repeat |
Dacă masca se repetă: repeat, no-repeat, repeat-x, repeat-y. |
mask-position |
Poziția măștii în element (center, top, 50% 20px). |
mask-mode |
alpha (opacitatea contează) sau luminance (luminozitatea contează). |
mask |
Scurtătura pentru toate proprietățile de mai sus. |
Exemple
Exemplul 1: Descriere de produs care se estompează spre final
Ultima parte a textului dispare treptat, sugerând că există continuare.
.descriere-scurta {
max-height: 120px;
overflow: hidden;
-webkit-mask-image: linear-gradient(to bottom, black 60%, transparent);
mask-image: linear-gradient(to bottom, black 60%, transparent);
}
Efect vizual în browser
Primele rânduri ale descrierii (de exemplu „Cafetieră espresso, 15 bari, 899 lei...”) se văd normal, iar ultimele 40% din înălțime se estompează până devin invizibile.
Exemplul 2: Iconiță colorată din CSS cu o mască SVG
Forma vine din fișierul SVG, iar culoarea vine din background-color, deci o poți schimba la hover.
.icon-cos {
width: 24px;
height: 24px;
background-color: #475569;
mask: url(icons/cos.svg) center / contain no-repeat;
}
.icon-cos:hover {
background-color: #16a34a;
}
Efect vizual în browser
Apare silueta unui coș de cumpărături gri închis, de 24 px; la hover, silueta devine verde. Restul pătratului rămâne transparent.
Greșeli frecvente
- Folosirea unei imagini JPG ca mască în modul alpha; JPG nu are transparență, așa că masca e opacă peste tot și elementul se vede complet. Folosește PNG sau SVG cu transparență, ori mask-mode: luminance.
- Omiterea lui mask-repeat: no-repeat; masca se repetă implicit pe tot elementul, la fel ca un fundal.
- Încărcarea măștii de pe alt domeniu fără CORS; browserul blochează imaginea, iar elementul devine complet invizibil.
Comenzi înrudite
clip-path (circle, ellipse, polygon, inset, path): Decupează un element după o formă (cerc, elipsă, poligon, dreptunghi): tot ce iese din formă devine invizibil.background-image (gradient liniar și radial): Aplică una sau mai multe imagini sau degradeuri de culoare (gradiente) pe fundalul unui element.background-size, position și repeat: Controlează redimensionarea, centrarea și repetarea imaginilor de fundal.mix-blend-mode, background-blend-mode și isolation: Amestecă culorile unui element cu ce se află în spatele lui, ca modurile de amestecare (blend modes) din programele de grafică.