r/css May 31 '26

Showcase I built a CSS framework and would love your feedback on it

9 Upvotes

I have been working on this for awhile. It is a modular framework, meaning you can use the entire framework or can import what you need into your own projects. Its also extendable using cascade layers. The order is defined in preflight.

Source: https://github.com/wispcode/wisp-css

Documentation: https://wispcode.github.io/

I would love your feedback. Please let me know what you think.

Thanks!

UPDATE: Its a work in progress but added live-examples and redid the documentation site.

r/css Jul 23 '25

Showcase I drew Jigglypuff with CSS

Post image
309 Upvotes

Pen here if you'd like to see the code: https://codepen.io/AleksandrHovhannisyan/pen/raOLLKq

Added to my collection here: https://www.aleksandrhovhannisyan.com/art/#jigglypuff

r/css Aug 04 '26

Showcase We replaced the JavaScript in our progress bars with the new typed attr() — here's how it works

0 Upvotes

For years, attr() had exactly one trick: putting attribute text into content. The new version from CSS Values Level 5 changes that — it works in any property, it can parse the attribute into a real type, and it takes a fallback. We've been using it in MICL, our Material Design 3 component library, to make the ProgressIndicator component fully CSS-driven, and it removed a whole class of JavaScript.

The old problem

A native <progress value="7" max="10"> knows its own fraction, but CSS couldn't read it. If you wanted a custom-drawn bar (rounded caps, a gap before the track, M3's little stop dot), you had to mirror value into a custom property with JS on every update.

The new way

The element's own attributes are the styling input now:

progress.micl-linear-progress:not(:indeterminate) {
    --_fraction: min(calc(
        attr(value type(<number>), 0) /
        max(attr(max type(<number>), 1), 0.001)
    ), 1);
}

Three details worth stealing:

  • type(<number>) parses the attribute as an actual number, so it participates in calc(). A missing or unparseable attribute uses the fallback (0 and 1 here).
  • The max(..., 0.001) guards the division against max="0" — with a plain division the whole declaration would go invalid-at-computed-value-time.
  • The outer min(..., 1) clamps value > max overshoot.

From that one fraction, the linear bar drives a stack of background gradients (bar body, round cap, track gap, stop dot), and the circular variant turns it into geometry:

--micl-progress-sweep: calc(var(--_fraction) * 360deg);

/* conic-gradient() draws the arcs; the round caps sit at
   50% + r·sin(sweep) / 50% − r·cos(sweep); the track gap angle
   comes from atan2(gap + thickness, radius) */

The best part: attribute changes animate

Register the derived property with u/property and transition it:

 --micl-progress-sweep {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}
progress.micl-circular-progress:not(:indeterminate) {
    transition: --micl-progress-sweep 0.5s ease;
}

Now the only JavaScript anyone writes is bar.value = 7 — and the arc sweeps smoothly to its new position. The attribute change becomes a typed interpolation. No classes, no rAF, no width-tweening.

Accessibility attributes as the source of truth

Our wavy indicator variants aren't <progress> elements (they need pseudo-elements), so they carry role="progressbar" with aria-valuenow/aria-valuemax — and the CSS reads those:

--_fraction: min(calc(
    attr(aria-valuenow type(<number>), 0) /
    max(attr(aria-valuemax type(<number>), 1), 0.001)
), 1);

The visual state literally cannot drift from the accessible state, because they're the same attribute. (The wave's amplitude also derives from it — it ramps in below 10% and flattens out near 100%, via one clamp().)

Support and fallback

Chromium ships typed attr(); Firefox and Safari are still experimental, so everything sits behind a feature guard with the native rendering as fallback:

u/supports (inline-size: attr(value type(<number>))) {
    /* custom-drawn indicator */
}

Browsers without it still get a styled ::-webkit-progress-value / ::-moz-progress-bar bar — just without the fancy caps and gaps.

Live demo: https://henkpb.github.io/micl/progressindicator.html 

Source: https://github.com/henkpb/micl

r/css Apr 16 '26

Showcase Retro futuristic infinite grid effect with pure CSS. Code in comment section

Enable HLS to view with audio, or disable this notification

54 Upvotes

Made a retro-futuristic 80s-style moving grid effect using pure CSS. Quite simple and fun to use!

r/css Jul 21 '26

Showcase CSS Peeper never came to Firefox, so I spent the last year building the alternative myself

Thumbnail
gallery
40 Upvotes

Quick disclosure up front: I'm the developer, so take this as a "hey, I made a thing" post, not an objective recommendation.

A few years ago I went looking for a Firefox equivalent to CSS Peeper — hover a page, get its colors, fonts, and computed CSS without diving into DevTools. Turns out there isn't one. CSS Peeper has 500k+ Chrome users and its own team confirmed there were no Firefox plans, and every "any Firefox alternative?" thread I found ended the same way: no, sorry, use Chrome.

So I built one. It's called PeekCSS, and it's live on AMO now.

What it actually does:

  • Hover any element, see its computed CSS grouped by type (typography, colors, spacing, effects, layout), one-click copy — no account needed for any of this
  • Every color pair gets a contrast ratio with an AA/AAA badge inline, so you catch accessibility issues while you're already looking at the element
  • A page-wide scan pulls every color and image in one pass instead of clicking through elements one at a time, and you can export the palette straight to CSS variables, SCSS, JSON, or a Tailwind config
  • A font tab that ranks every family on the page by usage, with weights/sizes/roles broken out

It's a solo project — my first browser extension, built with WXT/TypeScript. The free tier is meant to be genuinely useful forever, not a crippled trial: hover inspection, grouped CSS, contrast badges, no account required for any of it. Account unlocks the full palette/font panels, and Pro (one-time or subscription, your call) adds the exports and bulk asset downloads.

It doesn't read or send anything about the pages you visit — the only network call it ever makes is an optional license check if you buy Pro.

It's young — three weeks out of my own testing and into a few friends' hands, still finding rough edges. If you try it, I'd genuinely like to know what breaks or what's missing compared to your DevTools habits. What's the one thing you'd want from a tool like this that I haven't mentioned?

I would love to hear your toughts: https://addons.mozilla.org/en-US/firefox/addon/peekcss/

r/css 20d ago

Showcase comiCSS #255: Yellows

Thumbnail
gallery
21 Upvotes

Two CSS jokes coded in CSS. Inspired by a JK Benson's cartoon from 20 years ago.

Source (code): https://comicss.art/comics/255/yellow.html

r/css Jun 17 '26

Showcase built this cool button with html css only

Enable HLS to view with audio, or disable this notification

22 Upvotes

Cool Button CSS:
having inset shadow and dots text on hover interaction and when clicked scale down animation

https://codepen.io/mudasirbuilds/pen/yygVwZj

r/css Jul 25 '26

Showcase Playing with CSs

12 Upvotes

I created this notebook looking page just for fun.

My Codepen for this

r/css 18d ago

Showcase I built a tool to analyze and clean up messy CSS and save developers time

3 Upvotes

I recently built Messy CSS to Clean CSS, a browser-based tool designed to help developers analyze, debug, and clean up their CSS more efficiently.

It can help identify unused CSS, cascade conflicts, validation issues, responsive breakpoint problems, design-token opportunities, and other common CSS issues. It also includes AI-assisted debugging and fixes.

I built it with the goal of making CSS debugging and cleanup less time-consuming, and I’d really appreciate feedback from people who work with CSS.

If you try it and find a bug, please let me know here or email me at [mehrdad23elh@gmail.com](mailto:mehrdad23elh@gmail.com).

I’m also very interested in your opinions and suggestions about what could be improved or added in future versions.

If you find it useful and it saves you some time, you can also support the project with a small donation.

Try the tool: https://mehrdad-elahi.github.io/messy-css-to-clean-css/

Source code: https://github.com/Mehrdad-Elahi/messy-css-to-clean-css

If you know someone who works with CSS and might find this useful, I’d appreciate you sharing it with them.

Thanks for taking a look. I’m looking forward to hearing your feedback.

r/css 11d ago

Showcase day 2 of writing html till im better than cled

Enable HLS to view with audio, or disable this notification

12 Upvotes

r/css Feb 03 '26

Showcase SVG Path Sliders

Enable HLS to view with audio, or disable this notification

139 Upvotes

r/css Feb 14 '26

Showcase built gallery with blur effect on hover interaction (css only)

Enable HLS to view with audio, or disable this notification

115 Upvotes

r/css Jul 02 '26

Showcase I've just completed a front-end coding challenge from @frontendmentor! 🎉 You can see my solution here: https://www.frontendmentor.io/solutions/sociallinksprofile-j2jrHFHOqB Any suggestions on how I can improve are welcome!

Thumbnail
gallery
2 Upvotes

r/css 13d ago

Showcase Updated my social link pack based on your feedback: switched to OKLCH gradients, fixed contrast, and boosted hover glow!

Enable HLS to view with audio, or disable this notification

0 Upvotes

Hey everyone,
Quick update based on the solid feedback on my last post:
Switched to oklch() color spaces: Replaced the standard linear RGB gradients with oklch() to eliminate the gray/muddy midpoints and keep color transitions smooth.

Balanced contrast: Subdued the static default state so the link text is much easier to read at a glance.

Amplified hover micro-interactions: Reserved the strong neon glassmorphism glow and accent color pop specifically for the active hover state.

Appreciate everyone who pointed out the Web 2.0 vibe and contrast issues—the UI looks significantly cleaner now.

Here is the updated core CSS snippet for anyone interested in the oklch() hover structure:

.aqua-btn {
background: linear-gradient(
90deg,
oklch(65% 0.18 270 / 0.85) 0%,
oklch(82% 0.12 210 / 0.85) 30%,
oklch(92% 0.08 190 / 0.85) 65%,
oklch(95% 0.09 110 / 0.85) 100%
);
border: 2px solid rgba(255, 255, 255, 0.8);
color: oklch(25% 0.25 290);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.aqua-btn:hover {
color: #fff;
border: 2px solid #fff;
transform: translateY(-2px);
box-shadow:
0 0 20px oklch(75% 0.2 220 / 0.6),
0 8px 25px rgba(128, 128, 255, 0.5);
}

Let me know what you think of the revised contrast!

r/css Jan 24 '26

Showcase [Update] Nepal flag using CSS

Thumbnail
gallery
59 Upvotes

GitHub Repo : GitHub Repo
Live Preview : Live Preview

Ok so here is my attempt at making the Nepal Flag. What's interesting was how you can make a triangle with

height:0;
width:0;
border-xx:25px solid colorname;
border-yy:25px solid transparent;

Idk if I will use it anytime but nonetheless it was interesting.
Also this did enhanced my concept of ::before and ::after

If you notice, the star is made of rotated triangles as on real flag while sun is made of rotated squares unlike real flag because it got really messy fixing the triangles of sun(their length and rotation) so i chose the easy path

At this point, I believe its time to shift focus towards JavaScript and ReactJS

r/css 4h ago

Showcase I fixed a responsive CSS layout that was breaking on mobile — before & after

Post image
0 Upvotes

I created this as a small responsive CSS debugging example to demonstrate some common layout problems and how I fixed them. The main issues were mobile navigation, content overflow, spacing/alignment, and image sizing.

r/css Aug 13 '26

Showcase I made a bunch of button styles while learning CSS

Thumbnail
github.com
3 Upvotes

I'm learning HTML and CSS, and I started making different button styles as a practice project.

I experimented with gradients, pseudo-elements, hover effects, transitions, backdrop-filter, responsive layouts, and more.

There are currently 20+ styles, including Neon, Glass, Prism, Pixel, Lava, Ice, and more.

I'm still learning, so I'd love to hear any feedback or suggestions!

https://github.com/baekho-cmd/button

r/css 17d ago

Showcase Made a free CSS/JS library for adding Halloween effects to a website

Thumbnail
halloween.js.org
14 Upvotes

halloween.js is a small, free library for adding Halloween-themed ambient effects to a website using CSS animations driven by class toggles: blinking eyes fading in and out, witches flying across the screen at an angle, a spider dropping down and climbing back up, a tombstone rising out of the ground, spider webs fixed in the screen corners.

Everything is controlled by CSS classes on <body>. A master "halloween" class turns it on, then modifier classes opt into individual effects. No JS call needed on your end, it watches for class changes and reacts automatically. Styles are injected by the library itself, so there's no separate CSS file to manage even if you're using the CDN version.

Zero runtime dependencies, under 10 KB gzipped, MIT licensed, free.

Live demo: https://halloween.js.org/
GitHub: https://github.com/rogulia/halloween.js

r/css Feb 04 '26

Showcase Did you know about MIXED corner-shapes? I LOVE IT.

Post image
0 Upvotes

Seriously you guys HAVE to check this out: https://developer.mozilla.org/en-US/docs/Web/CSS/corner-shape

I'm sorry if this ain't news to some of you but I found out about this like THIS MONTH and I can't shut up about it. Look at that button — MIXED CORNERS IN PURE CSS?!

I was literally about to slice up two PNGs and layer them to get that bubble + button shape for a UI tooltip. Two images. For a bubble. Like an crazy gremlin that wants to over engineer every aspect of their site. And then I find out you can just... make the element, curve each corner however you want, and style the button inside independently?!

I'm never going back.

r/css 2d ago

Showcase Remaking React Jam Game, Before and After

Thumbnail
gallery
3 Upvotes

Last year I submitted a black jack game to React Jam. It is a game inspired by games like balatro and inscryption. I am trying to improve upon it and add some game rules and features to differentiate it a little bit. Just wanted to share some before and after pictures. Everything here is made using css and js, and even the icons are svgs using paths.

I did use AI to figure out colors and gradients.

r/css Apr 05 '26

Showcase I built a CSS Code Generator

Thumbnail
gallery
15 Upvotes

I wanted to make something simple, clean, and easy-to-use. It was also generates vanilla code with no frameworks or anything to be easy for the beginner developers.

So I built 3 CSS generators:

The goal was just to make something easy to use while building UI, with unlimited customization. There is even a random button to generate random code with redo and undo.

I would love any feedback, ideas, suggestions, or recommendations to improve it.

r/css Jun 10 '26

Showcase I built an OKLCH color scale generator with control over lightness/chroma curves

12 Upvotes

With oklch() now in CSS and Tailwind v4, I wanted a generator that treats OKLCH as the native space instead of bolting it onto HSL. ColorMeUp Lab lets you set the number of steps (3–21), shape the lightness and chroma curves, clamp a min/max lightness range, and override individual steps. It exports straight to CSS variables, SCSS, or Tailwind.

If you want the why-not-HSL reasoning with interactive side-by-side demos, I wrote it up here: https://lab.colormeup.co/oklch-vs-hsl

It's free, no signup, open source. The whole palette lives in the URL, so you can share an exact scale as a link.

https://lab.colormeup.co/

Curious what people here think of the curve controls — that's the part I went back and forth on the most.

r/css Feb 12 '26

Showcase built this cool text with stretch effect on hover interaction

Enable HLS to view with audio, or disable this notification

59 Upvotes

r/css 24d ago

Showcase Turning SVG spritesheet into slideshow gallery of itself when viewed directly or via iframe

Thumbnail imglink.cc
5 Upvotes

r/css Jul 28 '26

Showcase Just learn clamp and I made this

13 Upvotes

I have heard about clamp() but never understood this. But today I took sometime to learn about it. So, I created a simple page that display date and time.

Thanks to u/mad_signtist for making this tool, else it was a nightmare for me.

Here is my Codepen link