Glassmorphism✨ Premium

Scooped Containers

Three 140 px tinted-glass panels with corners scooped inwards (an 18 px quarter circle removed at each corner by clip-path: polygon()), blurred by backdrop-filter with its Safari prefix, laid over a background of crisp discs that the glass softens: the shape of tickets and cut-out coupons.

SVGClip-pathOrganic

Updated

This effect is part of Effect.Labs — 840 vanilla effects, some free, some premium. Glassmorphism has 47 effects, including 6 free. Explore the category →

3 usage examples

Ferry ticket to the islands — a crossing company's app — Scooped Containers example 1

① Ferry ticket to the islands — a crossing company's app

WhenOn the pier at Quiberon, the passenger opens their ticket: departure 8:45 am, arrival at Le Palais 9:30 am, pier 2, boarding 8:25 am, one adult and one bike, code to scan.
WhyScooped corners are the recognized shape of a ticket: it stands out at once in the app. The glass lets the sea and the island show behind it without hindering the times, and the blur softens the waves under the text.
SettingsA single panel enlarged to 330 × 206 px, tint switched to white (34% → 12%); 18 px scoops unchanged; demo background replaced by a sea and an island drawn in gradients; full-width dashed tear line.
Discount coupons of a delicatessen — Scooped Containers example 2

② Discount coupons of a delicatessen

WhenThe customer scrolls her coupons in front of the shelves: −15% on aged cheeses, −30% on the second bottle, a free box of calissons, each with its code and date.
WhyThe concave cut recalls the paper cut-out coupon: it reads as a perk, not an ad. The colored jars seen through the amber, red or green glass place the coupon in its aisle.
SettingsThree 156 × 196 px panels, amber, burgundy and green tints at 36-42% → 12-14%; left-aligned text; promo code in monospace under a dashed line; shelf of jars drawn as discs behind.
Cloakroom tickets of a concert hall — the venue's app — Scooped Containers example 3

③ Cloakroom tickets of a concert hall — the venue's app

WhenAt the cloakroom counter, the concert-goer shows ticket 087 on their phone: one coat, one bag, pick-up until 1:30 am.
WhyScooped corners are those of the paper cloakroom ticket: it is recognized without reading, right when it is shown. The stage beams pass blurred behind the glass and sharp around it: the screen keeps the mood of the hall.
Settings250 × 220 px panel, number at 64 px weight 900; original violet tint; beams in conic-gradient and audience silhouettes in the background.

How it works

Each .scoop-container (140 px wide, 109 px tall with its 24/16/16 px padding, content centered in a column) is cut by clip-path: var(--scp-scoop-concave): a 28-point polygon() in calc(), seven per corner, following an 18 px radius quarter circle centered on the corner — the edge goes into the panel instead of rounding outwards. In pixels, the scoop keeps its 18 px on a 140 px panel as on a 330 px one (the ticket of the first scene). The four scoops remove 6.7% of the area; measured in Chromium 151, Firefox 153 and WebKit 26, the point 2 px from the corner does not get the click: it falls through to what lies behind.

The glass: a vertical gradient from the tint at 20% to 5% (violet, pink, cyan by :nth-child) and backdrop-filter: blur(4px) doubled with -webkit-backdrop-filter. So that there is something to blur, the .scoop-wrap wrapper carries its own background: four crisp-edged discs (violet, pink, cyan, amber, 26 to 36 px radius) over dark diagonal stripes, corners rounded at 22 px. Where a disc passes under the glass its edge turns soft; next to it, it stays sharp — that contrast is what makes the glass read. On hover, over 0.4 s, the panel rises 4 px and its tint goes to 35% → 10%; gradients do not interpolate, so the tint switches at once and only the movement is animated.

Three choices in the code are about the glass and the shape. The scooped corners are a polygon() in a CSS variable, with no SVG <clipPath> to provide (a url(#scoop-concave) with no SVG on the page would leave rectangles). The blur is also declared as -webkit-backdrop-filter, the only form Safari reads before version 18. And the glass has its own setting (.scoop-wrap, four sharp discs and stripes): over a flat color such as a demo frame's #0a0a0f, it would have nothing to blur and would just be a tinted rectangle. The texts (.sc-title, .sc-val) use var(--text-primary, #fff) and var(--text-secondary, #aaa), with a fallback value: no dependency on the site.

Accessibility

  • Readability on glass: the white 12.8 px weight-700 title stays above 7:1 on dark areas, but a light disc passing behind the text drops the contrast — the risk of any glass panel. The .sc-val value (10.4 px, #a1a1aa) is the most exposed. In your pages, keep bright parts of the background away from text lines (the coupon scene puts them under the edges) or raise the tint opacity to 40%.
  • prefers-reduced-transparency and prefers-reduced-motion: not in the code. For visitors asking for less transparency: @media (prefers-reduced-transparency: reduce) { .scoop-container { backdrop-filter: none; -webkit-backdrop-filter: none; background: #1b1734 } }. The 4 px lift stays active under the reduced-motion preference (measured); neutralize transform in a media query.
  • Keyboard and screen readers: divs with cursor: pointer, no role and no tabindex (Tab never stops on them, measured). The emojis (📈 💌 👥) are read aloud: aria-hidden="true" on .sc-icon. For a ticket to show, add a heading (h3) and an aria-label repeating route, time and pier.

Browser compatibility

CSS only: clip-path: polygon() with calc(), backdrop-filter and -webkit-backdrop-filter, radial and repeating gradients, custom properties. Zero JavaScript, zero SVG. The cut is measured identical in Chromium 151, Firefox 153 and WebKit 26 (corner outside the clickable area in all three). The blur is measured in Chromium (disc edges softened under the glass, sharp beside it); the headless Firefox and WebKit builds driven by Playwright render no backdrop-filter at all, even on a control page with no clip-path — a limit of the test tool, not of the effect: CSS.supports('backdrop-filter', 'blur(4px)') returns true there.

Chrome 76+✓ Full
Firefox 103+✓ Full
Safari 13.1+✓ Full (blur through the -webkit- prefix up to Safari 17)
Edge 79+✓ Full
Mobile iOS 13.4+✓ Full
Android Chrome 76+✓ Full

Without backdrop-filter (Firefox 70 to 102, Chrome before 76), the panel stays tinted and scooped, without blur: the discs show sharp through it. Without clip-path (Firefox before 54), the corners turn square again. In both cases the text stays in place.

The code

HTML structure to paste into your page (the CSS + JS come with 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>
Unlock the full code — $9.90/mo incl. tax

The full HTML + CSS + JS of Scooped Containers, ready to paste — plus all 840 effects. Or $299 once, lifetime access.

Customize

Options passed to the API or data-* attributes:

Option / propertyDefaultEffect
Scoop radius (CSS — --scp-scoop-concave on .scoop-container) 18 px, 7 points per corner The points are r·sin(a), r·cos(a) for a = 0°, 15°… 90°: multiply them all by the same factor (×1.5 for 27 px). A scoop larger than a quarter of the height eats into the top text.
Blur (CSS — backdrop-filter and -webkit-backdrop-filter) blur(4px) Change both lines together. 8 to 12 px for a more frosted glass: the background becomes a patch of color. The blur only works if there is detail behind.
Glass tint (CSS — background of .scoop-container and its :nth-child) violet, pink, cyan at 20% → 5%; 35% → 10% on hover Keep opacity under 45%: beyond that the panel turns opaque and the blur no longer shows.
Background behind the glass (CSS — .scoop-wrap) four crisp discs over dark stripes, 22 px corners It is a demo backdrop: in a real page, set background: none and lay the panels over your photo or illustration, as in the three scenes.
Size (CSS — width and min-height of .scoop-container) 140 px × 100 px minimum Pixel scoops do not move. For a horizontal ticket: width: 330px; height: 200px.

FAQ

With clip-path: polygon(): each corner is replaced by seven points on an 18 px quarter circle whose center is the corner itself. The polygon therefore goes around the corner from the inside. border-radius can only round outwards; the other common technique, a mask made of four radial-gradients, gives smoother edges but needs four mask layers and is not as easy to read.
Because backdrop-filter blurs what lies behind: over a flat color there is nothing to blur, and the panel is just a tinted rectangle. That is what happens over a background such as a demo frame's #0a0a0f. The crisp-edged discs show the glass at first glance; replace them with your own visual.
Yes: Safari requires the -webkit-backdrop-filter prefix up to version 17, and still accepts it afterwards. The code therefore writes it next to the standard property. Measured in WebKit 26: CSS.supports('-webkit-backdrop-filter', 'blur(4px)') returns true.