cd /news/developer-tools/crafting-hot-filter-kaapi-in-pure-cs… · home topics developer-tools article
[ARTICLE · art-95331] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Crafting Hot Filter Kaapi in Pure CSS: Gradients, Steam Engines & Hardware Acceleration

A developer created a pure CSS rendering of South Indian Filter Kaapi, complete with procedural coffee froth, a metallic brass finish, and GPU-accelerated steam animation. The project uses layered gradients, conic-gradient lighting, and CSS keyframes restricted to transform and opacity to achieve a 60 FPS visual effect. The developer plans to add dark/light mode toggles to simulate different ambiances.

read2 min views1 publishedAug 13, 2026

Inspiration

When you're deep in the trenches of late-night architecture sessions, debugging kernel probes, or prototyping real-time agentic workflows, comfort doesn't come from a fancy meal—it comes in a steaming brass tumbler.

My ultimate comfort food is South Indian Filter Kaapi (Coffee) paired with a golden, crispy Masala Dosa. There is something undeniably grounding about the rich aroma of chicory-infused coffee frothed to perfection in a traditional brass dabara set. It’s the official fuel for late-night builds and early-morning deployments.

For this challenge, I wanted to capture that warmth entirely out of pure, hand-crafted CSS. Live Preview Highlights:

☕ Procedural Coffee Froth: Multi-layered gradient micro-bubbles.

✨ Metallic Brass Finish: Real-time angular lighting using dynamic conic & linear gradients.

♨️ GPU-Accelerated Steam: Continuous ambient heat animation using CSS keyframes and hardware-accelerated blur transforms.

Journey

As someone who spends most of their time in system architecture and high-performance engineering, tackling pure CSS art felt like designing a constrained micro-kernel—every property had to serve a precise geometric or optical purpose.

CSS

.brass-tumbler {

background: conic-gradient(

from 180deg at 50% 50%,

#d4af37 0deg,

#fff3a8 45deg,

#aa7c11 120deg,

#f3e5ab 220deg,

#8b6508 300deg,

#d4af37 360deg

);

box-shadow: inset 0 -8px 12px rgba(0, 0, 0, 0.35);

}

The Froth Engine

To give the coffee its classic, aerated top froth (degree coffee style), I avoided static images entirely. Instead, I combined stacked radial-gradient() patterns with varying opacities and subtle box-shadow diffusion to simulate organic micro-bubbles clinging to the tumbler rim.

Hardware-Accelerated Steam Animation

To keep rendering smooth at 60 FPS, the rising steam effects utilize CSS @keyframes restricted strictly to transform and opacity properties, leveraging will-change to offload paint cycles to the GPU compositor:

CSS

@keyframes steam-rise { 0% {

transform: translateY(0) scaleX(0.8);

opacity: 0;

}

50% {

opacity: 0.4;

filter: blur(8px);

}

100% {

transform: translateY(-60px) scaleX(1.4);

opacity: 0;

filter: blur(14px);

}

}

.steam-particle {

will-change: transform, opacity;

animation: steam-rise 3.5s infinite ease-out;

}

Key Takeaways & What's Next

CSS as an Engine: Treating shadow layers like render passes allows for surprisingly deep 3D illusions using flat 2D DOM elements.

Next Steps: I plan to add subtle dark/light mode toggles to simulate a late-night study desk aesthetic versus a bright morning cafe setup!

── more in #developer-tools 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/crafting-hot-filter-…] indexed:0 read:2min 2026-08-13 ·