Affordances: The Missing Layer in Frontend Architecture

I was building a form with a file input. Nothing fancy—just a place for users to upload a document. I wanted the trigger to look like the other buttons on the page: the same subtle shadows, the same hover effects, the same spacing. I was using Catalyst , the component kit from Tailwind Labs, so I had a <Button> component with all those styles baked in. But I couldn’t use it. A file input needs a…