It's a set of extensions for REAPER (DAW software) for editing live drum performances super efficiently + a bunch of other productivity helpers.
Although I'd been programming in some capacity since I was 10-11 and had good exposure to basic concepts like variables, loops, etc., I had no idea that "software design" was a concept, and it never even occurred to me that code could have "quality" 😅
I just had a bunch of feature ideas and had been messing around with some Python scripts, when Tim (the author of the bigger project) saw potential in me, took me under his wing in IRC, taught me C++, and created this stupid `Adam.cpp` file for me to go nuts in ❤️
The absolute joy I got out of taking the ideas in my head, and bringing them to life to dramatically improve my own workflow (and the workflows of others in the community) made me give up my dreams of becoming an audio engineer, and become a programmer.
Looking back though it makes me realize something — none of my motivation to program comes from a direct interest in the technology.
What I really am is an experience designer, not a programmer. Code is just the tool I have for making those ideas real 🧙
It's why I always find myself ultimately building tools, not building websites 😅
And the reason the tools I work on are any good (I hope at least), is because none of this would be fun for me if they weren't — that experience is the only thing I'm actually working on.
It's also cool to look back at the forum post where I announced it:
Even before I called myself a programmer I loved making stuff, sharing it with the community, writing about it, and creating video content to teach it.
While looking for that I also stumbled across a bunch of posts I had never seen before thanking me for my work and for helping people whenever they got stuck ❤️ Awesome feeling to see this stuff 10 years later.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
🤔 What's the best way to structure your classes and markup when building UIs with Tailwind CSS?
Here are some of the rules I follow to build things that are consistent, easy to understand, and straightforward to componentize 👇
Sort classes generally from the outside in (in terms of the box model) putting things that affect layout before things that don't, while also trying to group related classes.
This lets you see the things that are going to have the biggest impact quickly.
☝️This is a bit of an art, but hoping to automate in the near future!
I've been working on nailing the recommended class order a bit lately — check out my list so far on GitHub:
Maintaining open-source is brutal, and feeling obligated to acknowledge, review, and respond to every attempt to contribute is a huge burden to carry.
When I saw this tweet from @dhh the other day I couldn't help but s/email/open source contribution/, but it makes me feel horribly guilty to suggest that anyone should feel anything but grateful for unsolicited free work from contributors.
But the reality is even though folks are generally trying to help by contributing, those contributions still cost the maintainer more than they cost the contributor, in terms of time to review, stress worrying about making time to review, and long term maintenance.
This is a great example of why you need more control when implementing dark mode than just reversing the color scheme or overriding basic variables like "--color-primary" or similar.
Short thread pointing out some of the neat design decisions here 👉
1. The top banner – the background color changes a bit and so does the link, but it doesn't *invert*, it's still light on dark in both versions.
Dark sections shouldn't be inverted to light in dark mode, you'd get a blinding light block — bad in dark environments.
2. The background switches from light to dark, but in the light design it's a solid color, and in the dark design it's a gradient. You can't do this by changing a color variable.
.@bradlc who built the entire website. I absolutely did not expect us to have time for all the insane interactions and animations. He managed to do everything I ever dreamed of plus more, and the APIs he created for it are a delight to work with.
.@malfaitrobin who worked side-by-side with me to develop all of the new features in Tailwind CSS v2.0, and took on the massive job of updating Tailwind UI to take advantage of all the new features. He built an entire automated system that can idempotently update our templates 🤯
❌ Not an alternative to Tailwind UI
❌ Not a predesigned UI kit
❌ Not styled at all
❌ Not in any way tied to Tailwind, there is no CSS or classes or anything of any kind in the library
Instead, it’s a set of low-level completely unstyled primitives that let you build *custom* versions of common components faster, *with your own design you bring yourself*.
This is what a menu button renders by default (that’s the default browser focus ring, not bundled CSS):
If you haven't seen us hinting at it, Headless UI is a set of completely unstyled, fully accessible UI primitives that make it really easy to build custom controls that are super easy to customize and style.
It's the component library I've always dreamed of 😍
Here's a quick demo of the Menu Button component in React: