Ryan Mulligan

Ryan Mulligan

@ryanmulligan.dev

Passenger through space and time, front-end web builder & bittersweet songs enthusiast. CSS is always on my mind. he/him

2.5K followers268 following69 posts

Ryan Mulligan reposted

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! 🎃

scottjehl.comWeb Components Demystified online course | Scott Jehl, Web Designer/DeveloperA comprehensive, premium course about building dynamic, fast, resilient apps with standard web components.

Ryan Mulligan reposted

Yesterday, the CSSWG accepted my proposal for mesh gradients and diffusion curve gradients! Want to make gradients like this natively in CSS? Well, we've started the work on it. It's coming! Here's the Explainer: github.com/w3c/csswg-dr...

Ryan Mulligan reposted

Wrote a thing on why we should have interactive lists on the web: sarahmhigley.com/writing/inte... If anyone has their own interactive list use cases that aren't covered, send them to me! I'm putting together an ARIA spec PR this month.

sarahmhigley.comThe web needs interactive lists | Sarah HigleyA plea to developers: if this gets created, let's not fuck it up. This is a slightly more spec-heavy post than usual, but hopefully still useful.

I was searching for a super simple interval timer to use when I jump rope. No nonsense. Minimal config. Set work, rest, and rounds, then have at it. Use it on the web. Save it to the home screen. Use it offline. Keep screen awake for the active duration. Maybe sprinkle in some web audio noises?

Ryan Mulligan reposted

it's a new season for technology & for technologists, and our labor and its impact to the world are both more greater and more dangerous than ever. how do we make sense of work in an industry many of us no longer recognize?

henry.codesDark Forestry

What companies still employ human beings in customer service roles? I ordered equipment on Sweetwater and they still have a human call to let me know when it's on the way. Love that. Let humans do the talking. Let robots do the hilariously bad auto-transcriptions. Best of both worlds.

Ryan Mulligan reposted

Meta and X have been quietly downranking external links for ages, but we're now entering a new era of open hostility toward the open web. It's a great time to build your own website, free from any billionaires demanding a tithe for things that have always been free.

Suw@suw.bsky.social

Fucking hell. Facebook is now limiting the number of links that a page or professional profile can include in a post to TWO PER MONTH, unless you pay them $7.99 a month. Fucking assholes.

Ryan Mulligan reposted

Hello. They are going to try to fuck with your vote, and we are NOT going to let them. Last week I pinged my friend Dana Chisnell, who knows how elections work, and said "Hey, let’s make it hard for them to fuck with us.” Today, we are very proud to announce the HOW TO VOTE zine. howtovote.tips

howtovote.tipsHow to Vote / Cómo VotarA free field guide to what stops people from voting, and what to do about it. English and Spanish, ready to print.

Ryan Mulligan reposted

A few months ago someone asked what I think a Custom Elements Manifest generator should look like. Here's my first pass at it. The goal was to make it light weight and easy to use. It's still in the early stages, but let me know what you think. #WebComponents cem-generator.wc-toolkit.com

cem-generator.wc-toolkit.comOverviewGenerate Custom Elements Manifests for component libraries quickly and extensibly.
Burton Smith@stuffbreaker.bsky.social

I love making fun/nerdy projects for myself. Sometimes when I think it's nerdy enough, I like to share it. Get ready for something nerdy... #WebComponents

Ryan Mulligan reposted

Back in June I shared a demo of a grid that smoothly animates on resize without JS or View Transitions. I finally sat down to write up how it works: CSS Anchor Positioning + scoped anchors + regular CSS transitions. → brm.us/animated-grid

I'm sitting outside, staring through trees, peeking through leaves, behind them a beautiful blue sky, feeling infinite delight because CSS is so incredibly good to us. Text wrap balance and pretty? My old brain collapses into itself trying to comprehend how a single rule could ever solve so much

Ryan Mulligan reposted

🔥 New blog post: Dark mode toggles that expose three states (system, light, dark) seem like the best option. Until you think about user goals, that is. Before rushing to disagree, hear me out. lea.verou.me/blog/2026/da... PS: As a data point, @jakearchibald.com was converted after reading this 😅

lea.verou.meDark mode toggles: two states are enough • Lea VerouYes, the underlying model must have three states, but one is always irrelevant to the actual user goal. Users do not seek out solutions to problems they don’t currently have. A lot of the hate towards...

Ryan Mulligan reposted

🎉 new post! Dynamic Colour Schemes With Modern CSS What magical CSS can we use to create not just a quick and dirty colour palette, but a whole colour scheme? Anogulous? Complementary? Triadic? It's all here! https://www.alwaystwisted.com/articles/dynamic-colour-schemes-with-modern-css 🙏🖤

alwaystwisted.comDynamic Colour Schemes With Modern CSSA practical walkthrough of building dynamic, theme-aware colour schemes in CSS with custom properties, OKLCH, color-mix(), and contrast-color().

Ryan Mulligan reposted

📝 New CSS Article! I did a quick exploration of the new "Gap Decorations" thing, and I ended up doing a lot of fancy stuff except for decorating the gaps 😅 master.dev/blog/lets-pl... Read my latest article to learn a lot of nice tricks around this feature.

master.devLet’s Play With Gap Decorations!Let’s take a look at a quite new CSS feature: Gap Decorations. As its name suggests, it allows us to decorate gaps across different layout types (e.g., flexbox, grid, and multi-column). With a few lin...

Ryan Mulligan reposted

Who said range sliders need to be straight and boring?! Hey CSS, distort the line! 〰️ css-tip.com/wiggly-range... Another funny demo powered by border-shape, scroll-driven animations, and more The HTML code? Only an input element (no extra code is needed)

Ryan Mulligan reposted

On the side at #CSSday I've been tinkering with the filterable select. It's still in very early stages in Chrome Canary, but I can't help being a little bit excited. @jakearchibald.com gave a talk yesterday on how the customizable select came to life. It's amazing how many doors are being opened.

Ryan Mulligan reposted

I'm sad to miss you all at #CSSDay this year! Wish I could be there, and see all the great talks. In the spirit of the event, I'm launching my new #CSS course – Poetic CSS! The first module is ready, and early bird tickets will go on sale for the month of July. courses.oddbird.net/poetic-css/

courses.oddbird.netPoetic CSSUnderstand CSS as a system — so you can write, review, and maintain web styles with confidence on a timeline and under budget.

Every once in a blue moon I think about my 6th grade teacher handing me and each of my fellow students a printout for the lyrics to "You Gotta Be" by Des’ree and then making us listen to the entire song in silence

Ryan Mulligan reposted

Do you have examples of view-transitions found in the wild? I'm looking for examples to share to designers I work with. Thanks in advance 🫶

Ryan Mulligan reposted

More and more people I deeply respect and have learned a lot from over the years feel like they are speaking into a void, to the point where they are losing motivation to continue making content, which got me to write my first post on my site in over a year... www.kevinpowell.co/article/tell...

Ryan Mulligan reposted

Oooh #TIL💡 Instead of: `element.setAttribute('aria-label', 'Close')` ...we can do: `element.ariaLabel= 'Close'` #JS #a11y

Everything around me is speeding up and changing. Disappearing. Taking a step back from this sloppy world to work on something meaningful by hand, at a comfortable pace, always brings me real joy. Slow down. Be present. Celebrate the ones you love.