Sitemap

Member-only story

The Flexibility Trap: Why Over-Engineered Components Break Your Design System

24 min readOct 26, 2026

--

When components can do everything, they often end up doing nothing well. Here is how to find the sweet spot.

I remember the exact moment the illusion of our perfect design system shattered. It was not during a heated debate in a design critique. It was not when the engineering team told us the bundle size was too large. It was a quiet Tuesday afternoon in a glass walled conference room. I was sitting across from a mid level product designer who was trying to build a simple user profile card.

We had spent six months building what we proudly called the most flexible, configurable component library in the industry. Our flagship component was the Universal Card. It had forty different properties. You could toggle the image position, change the border radius, adjust the shadow depth, enable or disable the footer, swap the typography hierarchy, and configure the hover states. We thought we had solved the problem of inconsistency by giving designers the tools to build anything.

The designer stared at the properties panel. She looked exhausted. She had been trying to configure the card for twenty minutes. She turned to me and said she just wanted a simple card with an image on the left and text on the right. But because the component was so flexible, she had to make twelve different decisions just to get it to look right. She said it was easier to just draw a custom rectangle than to fight with our perfect system.

--

--

Ethan Feng
Ethan Feng

Written by Ethan Feng

Crafting meaningful user experiences, building modern applications, and writing about design, technology, and creativity.