Sign in

Ion Prodan

@iprodan.dev
1.3K followers 656 following 223 posts

Ion Prodan, 16+ yrs of frontend dev, mostly in Angular. Crafting: snipsco.com, zipitly.com

PostsRepliesMedia
Reposted by Ion Prodan
Nilesh Prajapati @nileshprajapati.com · 03/09/2026
#CSS @scope for beginners by @iprodan.dev
iprodan.dev
CSS @scope for beginners
@scope fences CSS so short selectors stay inside a card, article, or theme island — and can stop before a nested widget.
182
Ion Prodan @iprodan.dev · 03/09/2026
Thanks for sharing! 👍
020
Ion Prodan @iprodan.dev · 25/08/2026
`sibling-index()`, and `sibling-count()` are Baseline, newly available since August 2026. 🤘 Before this, staggered animations or dynamic layouts meant writing a bunch of `:nth-child()` rules. Now you can do it cleanly ⤵️
020
Ion Prodan @iprodan.dev · 24/08/2026
CSS finally lets you animate elements when they first appear. 👇 `@\starting-style` is Baseline, newly available since August 2024. 🤟 90% Global usage! Before this, transitions didn’t run on an element’s first style update. You needed JavaScript hacks.
011
Ion Prodan @iprodan.dev · 22/08/2026
I’m growing a community on Reddit, I think I’m doing pretty well! iff you’re like me, sharing code snippets, come join me in r/codesnip 💪 There’s an audience you don’t want to miss.
030
Ion Prodan @iprodan.dev · 20/08/2026
Do you all remember the CSS `light-dark()` function? It just got an upgrade! It now accepts images too ⤵️ No more media queries just to swap background images. Still limited availability (Chrome 150+, Firefox 150+, Safari not yet).
091
Reposted by Ion Prodan
CSS by T. Afif @css-only.dev · 19/08/2026
A responsive CSS grid, some Scroll-Driven Animations, and a touch of magic. The perfect recipe for a cool CSS-only hover effect! 🤩 css-tip.com/hover-proxim... One fancy demo (among many) we can create using modern CSS.
3463
Ion Prodan @iprodan.dev · 19/08/2026
Coo, thanks for sharing
010
Ion Prodan @iprodan.dev · 19/08/2026
You can finally position tooltips, dropdowns, and menus relative to another element... in pure CSS. It became newly available in January 2026 when Firefox 147 completed the set. Oh man, I'm so happy about this 🤟
052
Ion Prodan @iprodan.dev · 18/08/2026
I read frontend articles, docs, and specs every morning. 🤟 Then I tell you what’s actually worth your time. Still experimenting. 😎 If that sounds useful, you can join here: bits.iprodan.dev
bits.iprodan.dev
Home | Frontend Bits by IP
Glad to have you here.
010
Reposted by Ion Prodan
Bramus @bram.us · 18/08/2026
New blog post: The Case for Tri-State Dark Mode Toggles brm.us/dark-mode-tr... #CSS #DarkMode #UX
brm.us
The Case for Tri-State Dark Mode Toggles
Adding a Dark Mode toggle to your website is a nice touch that many users appreciate. When implementing one, the default instinct for many developers is to reach for a simple binary switch: Light on o...
128714
Ion Prodan @iprodan.dev · 18/08/2026
I created a small interactive demo showcasing `contrast-color()`. Play with it here 👉🏻 iprodan.dev/l/contrast-c...
011
Ion Prodan @iprodan.dev · 17/08/2026
If you want occasional frontend tips in your inbox, you can join here: iprodan.beehiiv.com
iprodan.beehiiv.com
Home | Frontend Bits by IP
Glad to have you here.
000
Ion Prodan @iprodan.dev · 17/08/2026
#1. The web just got a little more intelligent. 🤟 Meet `contrast-color()`: You give it any color; it returns either `black` or `white`, whichever provides better contrast. ⤵️ Shipped in Chrome 147, Safari 26, Firefox 146, and Edge 147 (April 2026). Pure CSS that guarantees readable text 💪🏼
1262
Reposted by Ion Prodan
Silvestar Bistrović @silvestar.codes · 17/08/2026
Sometimes designers have silly ideas that eventually grow on you. That happened to me with this concept where I had to build columns of items moving in
silvestar.codes
Using Scroll-Driven Animations for Opposing Scroll Directions ✣ S.Bistrović
Sometimes designers have silly ideas that eventually grow on you. That happened to me with this concept where I had to build columns of items moving in
131
Reposted by Ion Prodan
Frontend Dogma @frontenddogma.com · 28/04/2026
“safe” in Flex and Grid Alignment, by @iprodan.dev: iprodan.dev/l/safe-alignment #css #flexbox #grids #layout #alignment
iprodan.dev
CSS safe alignment (flex & grid) | Labs
What the safe keyword does in box alignment—and when to use it.
031
Ion Prodan @iprodan.dev · 21/04/2026
`image-set` should be the first choice when dealing with background images. Zero JS. Pure CSS! 💪 Widely available since September 2023
010
Ion Prodan @iprodan.dev · 09/04/2026
I created a free tool that not only converts an SVG to an image, but also scales it up to 2K. 👇 Paste, or upload or edit, as you want! You actually have a (small) code editor there. 😎 Don't miss it 👉🏻 snipsco.com/tools/svg-co...
010
Ion Prodan @iprodan.dev · 05/03/2026
This is the easiest way to switch between Dark/Light and System mode. 👇 Simply add an element with the selected `data-theme` mode, or remove it from the DOM to switch to System mode. It might not be perfect, but it's the fastest and simplest method! 🚀
000
Ion Prodan @iprodan.dev · 05/03/2026
Back in the days when I learned development, everyone used borders exclusively. I’m not sure if outlines were a thing back then, at least I wasn’t aware of them. And borders remain the same today.
010
Ion Prodan @iprodan.dev · 04/03/2026
Why does it hurt though? 😀
010
Ion Prodan @iprodan.dev · 04/03/2026
Sometimes, this is still the most reliable CSS debugger we have 💪
110
Ion Prodan @iprodan.dev · 06/11/2025
Image from Netanel Basal.
000
Ion Prodan @iprodan.dev · 06/11/2025
Debouce in Angular signal form. Still in WIP.
161
Ion Prodan @iprodan.dev · 05/11/2025
New encapsulation in Angular 21, and nobody's talking about it! 😶 Handy for email builders, when you don't want any external styles to affect the builder elements, such as text and images, it should look the same as in an email service. Still in WIP, btw.
141
Ion Prodan @iprodan.dev · 04/11/2025
You don't know what this is about💡! A long, long time ago, I wanted to 'emulate' the Angular router, but only using CDK Portals and also supporting different outlets, lazy loading, and smooth transitions. Wait for it, you'll like it! 🤟
030
Ion Prodan @iprodan.dev · 28/10/2025
In Angular 21, we will probably have a structural directive `*routerOutletPlaceholder` for the Router placeholder. It hasn't been merged yet. The previous idea was to add support for `<ng-container routerOutlet />`, but it was reverted. What do you think about the placeholder?
050
Ion Prodan @iprodan.dev · 28/10/2025
Yes, they are! Both of them have their place.
010
Ion Prodan @iprodan.dev · 27/10/2025
This is the problem, ai helps those who knows what are doing, but most probably will replace who doesn’t know!
010
Ion Prodan @iprodan.dev · 27/10/2025
Agree, it's not a direct competition, rxjs still has its place in Angular and in general. RxJS for complex, signals for 90% of cases.
020
Ion Prodan @iprodan.dev · 27/10/2025
signals > rxjs (change my mind) #Angular
330
Ion Prodan @iprodan.dev · 13/10/2025
Speaking of the `URL` class, let's see if we understand the difference from the old way (see previous tweet). So, what's the output of this?
020
Ion Prodan @iprodan.dev · 13/10/2025
Did you know? Thank me later!
020
Ion Prodan @iprodan.dev · 09/10/2025
How about this?
020
Ion Prodan @iprodan.dev · 08/10/2025
Do you know you MUST provide a valid reply email address to stay compliant? Even your no-reply address must be able to receive emails and handle "unsubscribe' requests or anything else the user wants. It's no longer enough to just include a link!
010
Ion Prodan @iprodan.dev · 08/10/2025
How would a senior refactor this? How would you do?
010
Ion Prodan @iprodan.dev · 03/09/2025
I'm so old now to just learning and understanding what cognitive dissonance and confirmation bias are. I feel a bit ashamed.
030
Ion Prodan @iprodan.dev · 07/07/2025
I'm planning to start a banking startup! It sounds crazy and feels risky, but I want to do it. I’m not alone in this. But some circumstances aren't in my control. I hope I can get past them and move on to the easy part: building.
010
Ion Prodan @iprodan.dev · 30/06/2025
What if we won't need to build the frontend anymore? All we'll need to do is just an MCP 🔥
010
Ion Prodan @iprodan.dev · 17/06/2025
I agree, but I use exhaustMap more often when handling the requests. And I use `tapResponse` to handle error, next, and finalize.
120
Ion Prodan @iprodan.dev · 17/06/2025
Yes, great operators, but not used so often, no?
010
Ion Prodan @iprodan.dev · 16/06/2025
This is mostly all I need from rxjs! 😀 with a few exceptions! What's your most used rxjs operators?
211
Ion Prodan @iprodan.dev · 12/06/2025
I remember talking about CDK Portals a long time ago! It’s a feature that still exists and is waiting to be used more. I had an idea back then to 'emulate' the Angular router, but with just portals 🙂. An experiment that would teach us, and you, in-depth how to use them.
010
Ion Prodan @iprodan.dev · 09/06/2025
Thanks, I’ll take a closer look!
010
Ion Prodan @iprodan.dev · 09/06/2025
I started reading again! 📖 I used to read much more often, but since my son was born, the rules have changed—by 180 degrees! Now he's five years old! 👶 I'm trying to get this habit back. Any recommendations? Startups, coding, tech!
130
Ion Prodan @iprodan.dev · 07/06/2025
Angular's `canMatch` guard is great! It allows different pages on the same path. For example, authenticated users see the dash page, while others see the auth page. It matches children, but it sends 2 requests if `canMatch` returns false from a child path. I like this method.
020
Ion Prodan @iprodan.dev · 06/06/2025
Not the best, but still good! What company details would you like to see next? I can show them to you for free today! 😀 All data should be publicly available.
All Tesla details
020
Ion Prodan @iprodan.dev · 05/06/2025
Help, please 🙏 Designers, how can I display all this data? Should I use a table or simple blocks? It's a lot of data to show!
000
Ion Prodan @iprodan.dev · 05/06/2025
What if you could get all the company contact details by simply pressing a button? Coming soon to quiky.email
020
Ion Prodan @iprodan.dev · 29/05/2025
Love juggling multiple projects! 😀 When one feels stale, I switch to another. Keeps the day fresh, no routine, and I’m learning new tech daily! 👍
030