
Iridescent Flip Cards
Published
9 hand-coded CSS 3D effects built with real transforms — perspective, preserve-3d, translateZ, rotateX/Y — not pseudo-3D shadows. The collection spans 3D card flips, a cylindrical coverflow carousel, cursor-tilt pricing cards, a page-turn flipbook, a drag-rotate Bauhaus cube, a synth control panel, a luxury jewel showcase, a 5×5 spinning cube matrix, and a 60-orb DNA double helix. Every demo is scope-prefixed so its perspective context and parallax events stay inside its wrapper — drop any combination onto the same page and they coexist without fighting for the cursor. No WebGL, no Three.js, no libraries.
Related23 CSS Flip Cards33 CSS Card Hover Effects22 CSS Parallax Effects

Published

Published

Published

Published

Published

Published

Published

Published

Published
perspective on the wrapper to set up the viewing frustum, transform-style: preserve-3d on the children so transforms compose in 3D space, and per-element translateZ / rotateX / rotateY / rotateZ to position geometry. The Neon Lattice demo, for example, builds each cube from six divs translated to the six face positions of a 52px cube — exactly how the browser was designed to render 3D. No WebGL, no canvas (except the starfield in the helix demo), no libraries. The output is composited on the GPU just like a CSS animation, so it's cheap to run.perspective on the parent — without it, transforms are orthographic and depth reads as scale only; add perspective: 1000px to the wrapper. (2) Missing transform-style: preserve-3d on intermediate containers — transforms collapse to 2D at the first ancestor that flattens. Every container between the wrapper and the rotated child needs preserve-3d. (3) overflow: hidden on an ancestor with transform — this implicitly creates a new stacking context that flattens children. Move the overflow clipping outside the 3D scope, or use a non-transformed clipping wrapper. Run through these three and 90% of 'why is my cube flat' issues resolve.box-shadow blur (which is rasterized, not composited) and large filter: blur() — both demos here cap blur radius to keep the GPU happy. The animations themselves (rotate transforms, opacity) are essentially free. The one trap is animating non-composited properties (width, height, top/left) — these trigger layout, which on a 3D scene with many children is expensive. Stick to transform and opacity for animation and the scenes run cold-frame-time on every device that ships in 2026..cd-obs / .cd-nln / .cd-chx, so there's no class collision and the wrappers carry their own perspective + custom properties. (2) JS is scoped — each demo's mouse and drag handlers attach to root.addEventListener, not document.addEventListener, so moving the cursor over the helix demo doesn't tilt the cube matrix. (3) DOM injection is scoped — particles, cubes, orbs, and rungs that the source HTMLs appended to document.body are appended to the demo's own wrapper instead, so they paint inside the gallery card and clean up cleanly. The starfield canvas in the helix demo uses a ResizeObserver tied to its wrapper, so it stays sized to the card, not the viewport.prefers-reduced-motion: reduce — float animations, spin loops, glow pulses, parallax interpolation, and the helix auto-rotation all stop. The geometry still renders (you still see the cards, cubes, and helix), but the scene is static. The particle generator in the Obsidian Vault demo skips the spawn loop entirely when reduced motion is requested, so users on motion-sensitive setups don't pay the perf cost of 36 invisibly-animating dust particles.22 hand-coded brutalist and neubrutalist CSS designs covering the full spectrum of the aesthetic — from the anti-design brutalism of 2014-2018 (raw system fonts, zero border radius, monochrome density, visible structure) through to the neubrutalism of 2021-present (bright pastel fills, thick black borders, hard offset shadows with zero blur, rounded blocks). The neubrutalist half ships SaaS pricing cards with sticker badges, a pastel admin dashboard, signup forms, rotated feature cards, an offset-shadow navbar, a playful button set, a native dialog modal, a testimonial wall, blog cards, chunky toggles, a landing hero, an image gallery, stats panels and a rounded footer. The brutalist half covers product grids, raw form controls, a monochrome data dashboard, a portfolio index, indie SaaS pricing, Windows 95 desktop chrome, editorial long-read and a streetwear catalog. Every design is scoped under a .brt-NN prefix for no-collision pasting, guards prefers-reduced-motion, and ports unchanged to React, Vue, Svelte, Astro, Next.js and Tailwind.
22 hand-coded CSS dark-mode UI patterns — prefers-color-scheme root strategy, data-theme attribute override, color-mix token system, light-dark() function, sidebar navigation, dashboard card grid, modal dialog, focus-ring contrast audit, three-state switcher, code editor surface, OLED true black, layered slate, aurora dim and more.
16 production CSS frosted glass effect designs with live demos and copy-paste code — a full-viewport login modal, dashboard overlay panel, sticky glassmorphism navbar with blur-on-scroll via IntersectionObserver, sidebar navigation menu, media-player footer overlay, animated login/signup form, split-panel contact form UI, profile info card, credit card payment UI, product display card, crypto finance dashboard, Apple-style weather widget, glass music player UI, translucent calendar widget, frosted glass modal popup, and a VisionOS-style floating app dock. Every demo uses backdrop-filter blur + saturation 180% on a colorful animated backdrop for real glassmorphism, with a @supports fallback so browsers without support stay readable. Scoped under .fg-NN, copy-paste ready.