Stefan Matei

Stefan Matei

@stefanmatei.com

Frontend web dev, buildless and with zero dependencies when possible. Web components, modern CSS, and vanilla JS. 🇵🇸 Free Palestine

573 followers222 following395 posts

Stefan Matei reposted

Love to see this. @scottjehl.com is a terrific teacher and thinker, and it’s glorious that this course is not only not only online but free.

Scott Jehl@scottjehl.com

Interested in setting aside the magical prompter and learning some web standards skills the old fashioned way? You can sign up for my online Web Components course for free until Oct 31 with the code markitzero. If you find it useful, please consider letting folks know! 🎃

Stefan Matei reposted

I just shipped CSS Custom Highlight Universal Selector! Coming in Chrome 158. With ::highlight(*), you can write a shared rule that applies to every custom highlight instead of repeating the same styles for each name. See the Blog post: blog.seokho.dev/development/...

blog.seokho.devCustom Highlight Universal Selector ::highlight(*)I recently added a universal selector for CSS custom highlights, ::highlight(*), to the relevant CSS Specifications (the bulk of it is actually in CSS Pseudos not CSS Custom Highlights) and implemente...

Stefan Matei reposted

🚨 Web Component Klaxon 🚨

Brian Talbot@talbs.me

My first open source release: Tiny Tells! Six small status characters in one <tiny-tell> tag. They're animated like little cartoon characters, so a state change is a reaction, not an icon swap or a spinner. MIT licensed, 14 KB, no dependencies. tinytells.dev

Stefan Matei reposted

Exact same masking technique can be used for styling text differently depending on whether it intersects that area of the image. Just with an #SVG #filter on a figure containing an img & figcaption. No extra elements or pseudos to duplicate the text or img. Selectable text, right click menu on img.

Ana Tudor@anatudor.bsky.social

Selective saturation 🍊 Just a super simple #SVG #filter does it in 3 steps: 1️⃣ mask out all outside areas with RGB channels in a certain range (🍊 here) & save result 2️⃣ desaturate entire image 3️⃣ place masked result on top of desaturated image 🥳🎉 Live demo on @codepen.io: codepen.io/thebabydino/...

Stefan Matei reposted

The Roads Have Eyes! 👁️ Turn on the Surveillance Layer in Map Options to see known license plate readers from Flock Safety, Motorola Solutions (Vigilant), Genetec, Axis Communications, Axon, Leonardo (ELSAG), Neology, Rekor, PlateSmart, Ubicquia, Verkada, and other outdoor surveillance cameras.

Stefan Matei reposted

🔥 New blog post: The best way to use icons in Web UIs What if I told you, you could use CSS to *insert* and *tweak* icons without touching any HTML? And that you can manage them alongside your other design tokens? lea.verou.me/blog/2026/ic...

lea.verou.meThe best way to use icons in Web UIs • Lea VerouWhat if I told you, you could use CSS to insert and tweak icons without touching any HTML? And that it could be more flexible and maintainable than what you’ve been using?

Stefan Matei reposted

So, today I built `<calc-input>`. It’s a custom input element that accepts mathematical formulas — such as 2 + 3 or (2 + 3) * 4 — and automatically toggles between showing the formula on focus and the calculated result on blur. → brm.us/calc-input

Bramus@bram.us

Oh no. I managed to nerd snipe myself into Yet Another Side Project™ … again. Noooooo. #TooManyIdeas

Stefan Matei reposted

This is exciting. 😍 CSS Mixins and Functions are features that will transform how CSS is written and shared and this makes them usable, today! I'd use these via `@import url(…) supports(not at-rule(@function));` otherwise you get no benefit in browsers that support functions/mixins natively.

romainmenke@romainmenke.bsky.social

postcss-preset-env now includes the mixins and custom functions #postcss plugins: preset-env.cssdb.org/blog/postcss... Turns out that it is also possible to implement one of the gamut mapping algorithms as a custom function!

Stefan Matei reposted

This recent article by @bram.us announces a new web component, that is built on top of two superb exciting modern APIs. • CSS Custom Highlight API • OpaqueRange API These two will change the way we build for the web. This post is really worth reading. www.bram.us/2026/09/14/i... #web #css

bram.usIntroducing <rich-input>, a GitHub-like search/filter text input to embed on your siteWhile working on a side-project to better navigate and search through my record collection, I found myself in need of a rich search input: one that accepts free-form text alongside structured filters ...

Stefan Matei reposted

🚀 Container style queries are baseline; New attr() capabilities are nearly there. Neat apart, but together they change how we can wire up components. Practice will make perfect, and I still need to rewire my brain for this combo. So, time to start that rewire. utilitybend.com/blog/contain...

utilitybend.comContainer style queries and advanced attr(): rethinking how to wire up my components in CSS | utilitybendWiring HTML attributes into CSS with advanced typed attr(), and letting container style queries pass that state down to child components.

Stefan Matei reposted

Here is my fully documented HTML boilerplate. It is a lean, minimal and solid foundation I use across the sites I develop. Written mostly for me, because I'm sure to forget why I've done things the way I have, but I hope it is of use to you too. vale.rocks/posts/html-b... #HTML #WebDev

vale.rocksMy HTML BoilerplateA document outlining and explaining my general structure for HTML pages to use. A slim general markup template that applies to almost all HTML documents on the web and forgoes anything unnecessary. It is a general framework to build upon for individual sites.

This is my mental model for it: Only custom elements (with a “-“ in the name) can be undefined, regular HTML elements can be known or unknown but they’re always defined.

Joe Pea@joe.trusktr.io

Undefined elements are defined according to web spec! 🥲 > document.createElement('doesnotexist').matches(':defined') < true

I need this so much in all editors (particularly in browser based ones)

Jake Archibald@jakearchibald.com

Playing around with an idea: responsive code. The build script creates up to 5 versions of each code sample using Prettier, and a container query displays the right one. Brotli means the filesize overhead is very small. Live demo: jakearchibald.com/2026/css-cus...

Stefan Matei reposted

I don't think it's fair to post the home address of the Flock CEO online. instead we should have a website that tracks the exact position of his car at all times.

Baddtraxx@baddtraxx.bsky.social

this is seriously the funniest shit I saw today

Stefan Matei reposted

My friends, It's been 3 days without a single donation💔 Every £25 helps us put food on the table & cover the basic daily needs of my family. Your kindness is what keeps us going through the hardest days. If you're able to help or share,it would mean the world to us🧡 Help here: gofund.me/6c54d52fd

Stefan Matei reposted

Stefan Matei reposted

Stefan Matei reposted

Replying to @joshwcomeau.com

The design of this new API is so elegant. It repurposes keyframe animations so that our animation can run over a *scroll range* rather than running over a duration. 🔥 Here’s an interactive widget from the post, showing the core concept: