
Apple-Style Product Feature Showcase
Published
6 hand-coded CSS bento grid layouts for tier-1 SaaS marketing pages (Stripe / Linear / Vercel / Notion / Framer), Apple-style product showcases, admin analytics dashboards, creative portfolios, e-commerce category hubs, and mobile link-in-bio pages — 6 topics × 2 sub-variants = 12 designs total. Each topic pairs a keynote-aesthetic variant with a paper-doc or brutalist variant side-by-side inside a .bgl-NN-group flex row so visitors see both directions at once. 3 Pure CSS + 3 vanilla-JS under 60 lines. Zero dependencies vs Aceternity ($299/yr), Magic UI, shadcn, Tremor, Framer Motion, ReactBits. True responsiveness via CSS container-type: inline-size so each grid reflows by its own width — drop into any sidebar or article column. Core Web Vitals safe (CLS 0, INP-friendly) with GPU-composited conic-border sweeps and cursor spotlights, WCAG 2.2 AA accessible with prefers-reduced-motion guards, framework-agnostic. Scoped under .bgl-NNa / .bgl-NNb for no-collision pasting.
Related15 CSS Card Grid Layouts30 CSS Grid Layouts31 CSS Hero Sections

Published

Published

Published

Published

Published

Published
display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(150px, auto); gap: 16px. The 12-column track is standard because it factors cleanly into 1, 2, 3, 4, 6, and 12 — every span you might want is expressible without fractional columns. Second, on the hero card apply grid-column: span 8; grid-row: span 2 to make it occupy a 2×8 area at the top-left; smaller stat cards get grid-column: span 4 and take their default single-row height. Third, on mobile swap the grid to grid-template-columns: 1fr so every tile stacks vertically full-width. That's the entire bento pattern in three rules — no grid-template-areas string needed, no JavaScript, no framework. Demo 01 (Apple-Style Product Feature Showcase) ships this exact recipe with a conic-gradient border sweep on hover using registered @property --a (Chrome 85+, Safari 16.4+, Firefox 128+). For sites that need to support pre-container-query browsers, swap @container (max-width: 880px) for @media (max-width: 880px) — the inner rules are identical.:has() and zero JavaScript. Every topic is hand-coded CSS — copy the HTML + CSS panels, drop them into any stack, ship.Cumulative Layout Shift stays 0. Cards that animate their appearance on hover animate transform, opacity, and filter only — never width, height, margin, or padding in the containing-block sense — because those trigger the layout + paint pipeline on every frame and destroy Interaction to Next Paint scores on mid-tier mobile hardware. Second, container queries over media queries — every topic uses container-type: inline-size on the section root and @container rules to switch spans. The advantage over @media is that the layout responds to the grid's OWN width, not the viewport, so the same bento drops into a narrow sidebar without breaking. Chrome 105+, Safari 16+, Firefox 110+ support this natively — for older browsers the @container rules degrade to viewport-based @media queries with a 1-line swap documented in every demo's customization notes. Third, GPU-composited borders — the conic-gradient border sweep uses a registered @property --a angle driving a ::before ring cut into a 1px frame with mask-composite: exclude. It's pure compositor work: no layout, no paint of the underlying tile, only the ring texture rotates. On a mid-tier Android device this stays well under Google's 200ms INP threshold even with all 6 topics rendering on one gallery page.<section aria-labelledby> with a single <h2> per section and <article> for individual tiles. Interactive tiles use real <a> for navigation and real <button> for actions — not <div role='button'>. That means screen readers announce landmark structure correctly, TAB order follows DOM order (which follows visual reading order because the grid is defined by CSS spans over the natural DOM sequence), and every focusable tile ships a :focus-visible ring at 3px outline with 3px offset — the WCAG 2.4.7 requirement most bento templates skip. Second, motion — every animated variant respects @media (prefers-reduced-motion: reduce) with an appropriate calm-down block: the hover border sweep stops rotating, cursor-tracked spotlights disable pointer-following, and the sale-banner gradient animation freezes. Third, contrast — text sits on solid tile backgrounds (never on a translucent surface where the underlying content dictates contrast), and hero-tile display type stays above WCAG 1.4.3 AA (4.5:1 for normal, 3:1 for large). Every touch target hits the WCAG 2.5.5 44×44px minimum, so bento tiles remain usable one-handed on mobile. This is the accessibility floor Section 508 (US federal procurement), EN 301 549 (EU / DE public sector), AODA (Ontario), DDA (Australia), and the European Accessibility Act (June 2025) all require.@supports fallback so older browsers get a working version, not a broken one. Container queries (@container) — Chrome 105+, Safari 16+, Firefox 110+. Every topic uses container-type: inline-size so grids reflow by their own width instead of the viewport. Browsers without container query support fall back to viewport-based @media queries — the inner rules are identical, only the container name changes. Registered @property typed custom properties — Chrome 85+, Safari 16.4+, Firefox 128+. Used in Topic 01 (conic border sweep angle) and Topic 04 (cursor spotlight position). Without @property support the border ring still renders — it just doesn't rotate. :has() — Chrome 105+, Safari 15.4+, Firefox 121+. Used in Topic 06 (Link-in-Bio) to drive the dark-mode toggle state from a sibling checkbox without JavaScript. mask-composite: exclude for the border-ring pattern — Chrome 120+ standardized, Safari 15.4+, Firefox 120+. The one-line fallback is a solid border. backdrop-filter — Chrome 76+, Safari 14+ (with -webkit- prefix), Firefox 103+. Every glass surface includes the -webkit-backdrop-filter fallback. Tier-1 (US / UK / CA / AU / DE / NZ) traffic on evergreen browsers gets the full experience; the long tail on IE-era enterprise browsers gets the graceful degrade.grid grid-cols-12 gap-4) are excellent and this collection's demos map cleanly to Tailwind arbitrary values — but they don't ship the bento composition itself; you still have to write the span logic per tile. License and cost — Aceternity Pro is $299+/year for their full bento collection. Magic UI Pro is a subscription. shadcn is free but ties you to their dependency tree. Every demo here is MIT licensed, free forever, no attribution required (though a link back is always appreciated). Accessibility floor — many React bento libraries treat semantics as an afterthought. Every demo here ships with keyboard navigation, focus-visible rings, aria-current / aria-live where state changes, aria-label on icon-only controls, prefers-reduced-motion guards, and passes WCAG 2.2 SC 1.4.3 AA on realistic content. If you're already on React and don't need the accessibility floor or the zero-bundle guarantee, Aceternity is a reasonable choice for prototyping. This collection specifically serves the case where you want the bento aesthetic without the React wrapper, without the subscription cost, and without the WCAG shortcuts.className instead of class), a Vue single-file component's template, a Svelte component, an Astro island, or a SvelteKit page — the CSS ships as a scoped module, an inline <style> block, or a Tailwind arbitrary-value paste. Server-side rendering — every demo renders correctly on the server without hydration flash. Topics that ship with vanilla JS handlers (Topic 02 cursor spotlight, Topic 03 dashboard interactions, Topic 04 portfolio widget) use plain event listeners with AbortController for cleanup or are pure event delegation — safe for React StrictMode double-mount. Content-Security-Policy — demos with strict CSP (script-src 'self' without 'unsafe-inline') work by default because no demo uses inline onclick handlers; the JS runs from external files that the CSP allowlist can permit. Vue 3 v-model bindings work on the demos with form controls (link-in-bio dark-mode toggle, e-commerce filters). Angular, Blazor, HTMX, Turbo, Rails ERB, Django, and Laravel Blade all work — the HTML + CSS + JS is framework-agnostic. If you're on Tailwind, the CSS ports cleanly: grid-cols-12, col-span-8, row-span-2, gap-4, and arbitrary values like [grid-template-columns:repeat(12,1fr)] cover most of the utility mapping; SVG filters, container queries, and named keyframes belong in tailwind.config.js under extend.keyframes + extend.animation.15 hand-coded CSS aspect-ratio demos for video embeds, product galleries, IAB ad slots, native dialogs, and CLS-safe placeholders: 16:9 iframe YouTube embed with click-to-load facade + up-next rail, 21:9 full-screen hero video with min-height/max-height:100svh guardrails + Ken Burns drift, 1:1 Instagram-style square grid with 2×2 feature tile, 4:3 magazine card image cover, 9:16 vertical stories rail (TikTok/Reels/Shorts pattern) with scroll-snap + segment bars, 4:5 apparel product image gallery with radio-driven state + 1:1 thumbnails, 1:1 zoom thumbnail carousel with pointer-tracked --zx/--zy magnifier, prevent-layout-shift placeholder with live PerformanceObserver CLS meter (before/after side-by-side lab), dynamic content fallback with three policies (bend/strict/auto) via :has() toggle, IAB ad banner slots (728×90 leaderboard, 300×250 medium rectangle, 300×600 half-page, 320×50 mobile) with skeletons + container-query mobile swap, responsive modal dialog sized min(92vw, 88svh×16/9, 1080px) with @starting-style animation, responsive OpenStreetMap iframe wrapper with 16:9 → 1:1 container-query narrow swap, media query orientation live HUD + resize:both container-ratio playground, object-fit logo cloud with contain/cover/fill switcher via :has(), and side-by-side padding-top hack (height:0 + padding-top:56.25%) → modern aspect-ratio migration comparison with live ratio picker. 11 truly Pure CSS + 4 with a tiny optional vanilla JS snippet (facade swap, pointer magnifier, CLS meter, native dialog). Every demo is scoped under a unique .car-NN prefix so it drops into any project without CSS collisions, ships prefers-reduced-motion guards, and is framework-agnostic (works as-is in React, Vue, Svelte, Astro, Next.js, Remix, or plain HTML).
20 hand-coded CSS blog and editorial layouts for magazine homepages, news sites, personal archives, newsletter back-issues, recipe and podcast blogs, developer tutorials, and long-form journalism. Covers a magazine homepage with hero plus editor-picks rail, a news homepage with breaking-news ticker, blog archives with sticky year separators, Substack-style issue-numbered archives, recipe card grids with prep-time badges, podcast episode lists with waveforms, long-form articles with scroll-driven reading progress, drop caps and floated pull quotes via first-letter, Medium-style 65ch centred reader layouts, dev tutorials with a sticky code panel beside prose, interview transcripts with alternating speakers, case-study pages with stat counters, video blogs with an episode rail, full-bleed photo essays, news articles with sticky related-stories sidebars, documentation pages with prev/next chapter nav, a standalone blog post card, a scroll-snap category filter bar, an inline newsletter callout that breaks out of the prose column, and a horizontal featured-post rail. 12 are pure CSS with zero JavaScript. Every layout is scoped under a .bl-NN prefix for no-collision pasting, guards prefers-reduced-motion, and ports unchanged to React, Vue, Svelte, Astro, Next.js and Tailwind.
15 production CSS card grid layouts covering the most-searched grid patterns plus originals built for real use cases — auto-fit responsive blog archive grid, asymmetric bento-box feature grid, equal-height product grid, fluid Pinterest-style masonry, team directory face grid, 3D hover-flip card grid, stratified duotone bento, editorial tabloid bento with masthead and TOC, use-case showcase grid, SaaS pricing comparison with featured tier, Vercel-style testimonial wall with featured 2x2, Airbnb-style hero photo collage with location pills, SaaS stats dashboard with CSS-bar sparklines, editorial featured-article magazine grid with category-coded pills, and a Liquid Glass bento grid with per-tile refraction rims (Apple iOS 26 / macOS Tahoe aesthetic). Every layout scoped under .cg-NN, zero dependencies, copy-paste ready.