Glassmorphism✨ Premium

Scooped Containers

Trois panneaux de verre teinté de 140 px aux coins creusés vers l'intérieur (un quart de cercle de 18 px ôté à chaque coin par clip-path: polygon()), floutés par backdrop-filter avec son préfixe Safari, posés sur un fond à disques nets que le verre adoucit : la forme du ticket et du bon à découper.

SVGClip-pathOrganic

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Glassmorphism comprend 47 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Billet de bateau pour les îles — appli d'une compagnie de traversée — Scooped Containers exemple 1

① Billet de bateau pour les îles — appli d'une compagnie de traversée

QuandSur le quai de Quiberon, le passager ouvre son billet : départ 8 h 45, arrivée au Palais à 9 h 30, quai 2, embarquement 8 h 25, un adulte et un vélo, code à scanner.
PourquoiLes coins creusés sont la forme reconnue du ticket : le billet se repère tout de suite dans l'appli. Le verre laisse voir la mer et l'île derrière lui sans gêner la lecture des heures, et le flou adoucit les vagues sous le texte.
RéglagesUn seul panneau agrandi à 330 × 206 px, teinte passée au blanc (34 % → 12 %) ; creux de 18 px inchangés ; fond de démonstration remplacé par une mer et une île dessinées en dégradés ; ligne de découpe en pointillés pleine largeur.
Bons de réduction d'une épicerie fine — Scooped Containers exemple 2

② Bons de réduction d'une épicerie fine

QuandLa cliente fait défiler ses bons devant les étagères : −15 % sur les fromages affinés, −30 % sur la deuxième bouteille, une boîte de calissons offerte, chacun avec son code et sa date.
PourquoiLa découpe concave rappelle le bon à découper du papier : on comprend que c'est un avantage, pas une publicité. Les bocaux colorés vus à travers le verre ambré, rouge ou vert situent le bon dans le rayon.
RéglagesTrois panneaux de 156 × 196 px, teintes ambre, bordeaux et vert à 36-42 % → 12-14 % ; texte aligné à gauche ; code promo en monospace sous un pointillé ; étagère de bocaux dessinée en disques derrière.
Tickets de vestiaire d'une salle de concert — appli de la salle — Scooped Containers exemple 3

③ Tickets de vestiaire d'une salle de concert — appli de la salle

QuandAu comptoir du vestiaire, le spectateur montre le ticket 087 sur son téléphone : un manteau, un sac, retrait jusqu'à 1 h 30.
PourquoiLes coins creusés sont ceux du ticket de vestiaire papier : on le reconnaît sans lire, au moment de le montrer. Les faisceaux de la scène passent flous derrière le verre et nets autour : l'écran garde l'ambiance de la salle.
RéglagesPanneau de 250 × 220 px, numéro à 64 px en graisse 900 ; teinte violette d'origine ; faisceaux en conic-gradient et silhouettes du public en fond.

Comment ça marche

Chaque .scoop-container (140 px de large, 109 px de haut avec ses marges 24/16/16 px, contenu centré en colonne) est découpé par clip-path: var(--scp-scoop-concave) : un polygon() de 28 points en calc(), sept par coin, qui suivent un quart de cercle de 18 px de rayon centré sur le coin — le bord rentre dans le panneau au lieu de s'arrondir vers l'extérieur. En pixels, le creux garde ses 18 px sur un panneau de 140 comme de 330 px (billet de la première scène). Les quatre creux retirent 6,7 % de la surface ; mesuré dans Chromium 151, Firefox 153 et WebKit 26, le point à 2 px du coin ne reçoit pas le clic : il tombe sur ce qu'il y a derrière.

Le verre : un dégradé vertical de la teinte à 20 % vers 5 % (violet, rose, cyan selon :nth-child) et backdrop-filter: blur(4px) doublé de -webkit-backdrop-filter. Pour qu'il y ait quelque chose à flouter, l'enveloppe .scoop-wrap porte son propre fond : quatre disques à bord net (violet, rose, cyan, ambre, de 26 à 36 px de rayon) sur des rayures diagonales sombres, coins arrondis à 22 px. Là où un disque passe sous le verre, son bord devient flou ; à côté, il reste net — c'est ce contraste qui fait lire le verre. Au survol, en 0,4 s, le panneau monte de 4 px et sa teinte passe à 35 % → 10 % ; les dégradés ne s'interpolent pas, la teinte change d'un coup et seul le déplacement est animé.

Trois choix du code tiennent au verre et à la forme. Les coins creusés sont un polygon() dans une variable CSS, sans <clipPath> SVG à fournir (un url(#scoop-concave) sans SVG dans la page laisserait des rectangles). Le flou est déclaré aussi en -webkit-backdrop-filter, la seule forme que lit Safari avant la version 18. Et le verre a son propre décor (.scoop-wrap, quatre disques nets et des rayures) : sur un aplat comme le #0a0a0f d'un cadre de démonstration, il n'aurait rien à flouter et ne serait qu'un rectangle teinté. Les textes (.sc-title, .sc-val) passent par var(--text-primary, #fff) et var(--text-secondary, #aaa), avec une valeur de repli : aucune dépendance au site.

Accessibilité

  • Lisibilité sur le verre : le titre blanc de 12,8 px en graisse 700 reste au-dessus de 7:1 sur les zones sombres, mais un disque clair qui passe derrière le texte fait chuter le contraste — c'est le risque de tout panneau de verre. La valeur .sc-val (10,4 px, #a1a1aa) est la plus exposée. Dans vos pages, gardez les zones vives du fond hors des lignes de texte (la scène des bons les place sous les bords) ou montez l'opacité de la teinte à 40 %.
  • prefers-reduced-transparency et prefers-reduced-motion : absents du code. Pour les visiteurs qui demandent moins de transparence : @media (prefers-reduced-transparency: reduce) { .scoop-container { backdrop-filter: none; -webkit-backdrop-filter: none; background: #1b1734 } }. Le soulèvement de 4 px reste actif sous la préférence de mouvement réduit (mesuré) ; neutralisez transform dans une media query.
  • Clavier et lecteurs d'écran : des div avec cursor: pointer, sans rôle ni tabindex (Tab ne s'y arrête pas, mesuré). Les emojis (📈 💌 👥) sont lus à voix haute : aria-hidden="true" sur .sc-icon. Pour un billet à présenter, ajoutez un titre (h3) et un aria-label qui reprend trajet, heure et quai.

Compatibilité navigateur

CSS seul : clip-path: polygon() avec calc(), backdrop-filter et -webkit-backdrop-filter, dégradés radiaux et répétés, propriétés personnalisées. Zéro JavaScript, zéro SVG. La découpe est mesurée identique dans Chromium 151, Firefox 153 et WebKit 26 (coin hors de la zone cliquable dans les trois). Le flou est mesuré dans Chromium (bord des disques adouci sous le verre, net à côté) ; les versions sans écran de Firefox et de WebKit lancées par Playwright n'affichent aucun backdrop-filter, même sur une page témoin sans clip-path — limite de l'outil de test, pas de l'effet : CSS.supports('backdrop-filter', 'blur(4px)') y renvoie vrai.

Chrome 76+✓ Complet
Firefox 103+✓ Complet
Safari 13.1+✓ Complet (flou par le préfixe -webkit- jusqu'à Safari 17)
Edge 79+✓ Complet
Mobile iOS 13.4+✓ Complet
Android Chrome 76+✓ Complet

Sans backdrop-filter (Firefox 70 à 102, Chrome avant 76), le panneau reste teinté et creusé, sans flou : les disques se voient nets à travers. Sans clip-path (Firefox avant 54), les coins redeviennent droits. Dans les deux cas le texte reste en place.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec Premium) :

index.html — structure
<div class="demo-preview">
  <div class="scoop-wrap">
    <div class="scoop-container">
      <span class="sc-icon">…</span>
      <span class="sc-title">…</span>
      <span class="sc-val">…</span>
    </div>
    <div class="scoop-container">…</div>
    <div class="scoop-container">…</div>
  </div>
</div>
Débloquer le code complet — 9,90 € TTC/mois

Le code complet HTML + CSS + JS de Scooped Containers, prêt à coller — et les 840 effets. Ou 299 € TTC une fois, accès à vie.

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Rayon des creux (CSS — --scp-scoop-concave sur .scoop-container) 18 px, 7 points par coin Les points sont r·sin(a), r·cos(a) pour a = 0°, 15°… 90° : multipliez-les tous par le même facteur (×1,5 pour 27 px). Un creux plus grand que le quart de la hauteur mange le texte du haut.
Flou (CSS — backdrop-filter et -webkit-backdrop-filter) blur(4px) Changez les deux lignes ensemble. 8 à 12 px pour un verre plus dépoli : le fond devient une tache de couleur. Le flou n'agit que s'il y a des détails derrière.
Teinte du verre (CSS — background de .scoop-container et de ses :nth-child) violet, rose, cyan à 20 % → 5 % ; 35 % → 10 % au survol Gardez l'opacité sous 45 % : au-delà, le panneau devient opaque et le flou ne se voit plus.
Fond derrière le verre (CSS — .scoop-wrap) quatre disques nets sur rayures sombres, coins à 22 px C'est un décor de démonstration : dans une vraie page, remplacez-le par background: none et posez les panneaux sur votre photo ou votre illustration, comme dans les trois scènes.
Taille (CSS — width et min-height de .scoop-container) 140 px × 100 px minimum Les creux en pixels ne bougent pas. Pour un billet horizontal : width: 330px; height: 200px.

FAQ

Avec clip-path: polygon() : chaque coin est remplacé par sept points posés sur un quart de cercle de 18 px dont le centre est le coin lui-même. Le polygone contourne donc le coin par l'intérieur. border-radius ne sait faire que l'arrondi vers l'extérieur ; l'autre technique courante, un mask à quatre radial-gradient, donne des bords plus lisses mais demande quatre couches de masque et ne se lit pas aussi simplement.
Parce qu'un backdrop-filter floute ce qu'il y a derrière : sur un aplat uni, il n'y a rien à flouter, et le panneau n'est qu'un rectangle teinté. C'est ce qui arrive sur un fond comme le #0a0a0f d'un cadre de démonstration. Les disques à bord net montrent le verre au premier regard ; remplacez-les par votre propre visuel.
Oui : Safari exige le préfixe -webkit-backdrop-filter jusqu'à sa version 17, et l'accepte encore ensuite. Le code l'écrit donc à côté de la propriété standard. Mesuré dans WebKit 26 : CSS.supports('-webkit-backdrop-filter', 'blur(4px)') renvoie vrai.