Skip to main content
Guide5 min read

The Shared Component Nightmare: How One Tiny Button Broke Your Entire Design System

By The bee2.io Engineering Team at bee2.io LLC

Your buttons are too small because your design tokens aren't enforcing minimum touch targets. Here's how to fix it across every product surface at once.
Your buttons are too small because your design tokens aren't enforcing minimum touch targets. Here's how to fix it across every product surface at once.

You know that moment when you realize your entire design system has been built on a foundation of sand? Specifically, sand-sized buttons that human fingers can't reliably hit? Yeah, that's happening right now at companies with "modern" design systems, and it's hilarious in the way a house fire is hilarious - if you're not the one living in it.

Here's the uncomfortable truth: if your buttons are too small for fingers, it's not a user problem. It's a design token problem. And because design tokens cascade through every single component in your system, that one tiny mistake is quietly breaking the accessibility and usability of your entire product ecosystem. Fun times.

The 44x44 Pixel Rule Isn't Just Accessibility Theater

Let's establish the baseline: the human finger pad is roughly 11-13mm wide when pressing a screen. Apple's original iOS guidance recommended 44x44 pixels, and guess what? That number came from actual measurement of actual human fingers, not a committee of designers debating aesthetics while sipping cold brew.

But here's where most companies fumble the ball: they treat 44x44 as a guideline for individual buttons, when it should be a design token that propagates through your entire component library. You know what happens when developers inherit a design system where the button component is built with a 32-pixel minimum? They ship it to production and suddenly your checkout button becomes a slot machine where users have a 30% miss rate.

Research shows that touch targets smaller than 48x48 pixels increase error rates by roughly 35-40% on mobile devices. That's not a rounding error in your analytics - that's actual revenue walking out the door because somebody's Figma file had "padding: 8px" instead of "padding: 12px."

The worst part? Nobody notices until your mobile conversion rate looks like a crime scene.

Why Your Design System Is Lying to You (And Itself)

Here's the architectural failure that keeps happening: a designer creates a button component in isolation, marks it as "done," and ships it to the design system library. It looks perfect at 100% zoom on a 27-inch monitor. It is, objectively, a beautiful button. It's also 36x36 pixels, because aesthetics.

Then that component gets inherited by 47 different products across your organization. Suddenly you have a checkout button, a form submission button, a navigation button, and a modal dismiss button - all too small to reliably tap. But here's the kicker: the design system documentation never explicitly required spacing or touched targets as enforced design tokens. It just... suggested them. Like a concerned but ultimately ineffective parent.

The fix isn't redesigning individual buttons. It's correcting your design tokens at the source.

Set your button size token to a minimum of 44x44 pixels (or 48x48 if you want to be actually good at this). Make it a constant in your token system - not a suggestion, not a "best practice," but an actual enforced value that propagates through every component library, every code repository, every design file. When the underlying token changes, every button on every product surface gets better simultaneously. That's how design systems are supposed to work.

Spacing Is Where Most Systems Actually Fail

Here's the thing nobody talks about: a 44x44 button surrounded by 2 pixels of breathing room is functionally useless. The touch target doesn't just end at the button boundary - it needs to include the space around it. This is why spacing tokens matter even more than the button size itself.

Industry data suggests that spacing between touch targets should be at least 8 pixels, ideally 12. That means if you've got two buttons sitting next to each other with 4 pixels between them, congratulations - you've created a 1-pixel-wide accuracy challenge that mobile users will fail at constantly.

  • Design token approach: Define touch-target-spacing as 12px. Apply it systematically. Test it across your component library.
  • Fallback approach: If you're stuck in legacy code, at minimum use margin and padding tokens instead of magic numbers scattered across 200 different files.
  • The lazy approach: Do nothing and read angry support tickets from users with arthritis, elderly users, or anyone on a moving bus.

Guess which one most teams are currently doing?

How to Actually Fix This Without Redesigning Everything

The beautiful part about this problem is that it's fixable at the token layer, which means it's fixable everywhere at once.

  1. Audit your design system's existing size and spacing tokens. Write down the minimum values.
  2. Compare them to the 44x44 pixel rule plus 8-12px spacing. Be honest about the gaps.
  3. Update your token definitions in whatever system you're using (Figma variables, design tokens JSON, Storybook, whatever). Make them explicit, not aspirational.
  4. Push those tokens through your component library. Every button, every link, every interactive element should inherit from the same source.
  5. Watch as your mobile conversion rates mysteriously improve because users can actually hit the buttons they're trying to tap.

This isn't a design sprint or a research initiative. This is boring, systematic token maintenance that takes a week and fixes problems across 50 products simultaneously. It's the kind of work that doesn't get celebrated in design reviews but absolutely should.

The Real Question You Should Be Asking

If your design system has been running for more than 18 months without explicitly enforcing minimum touch target sizes as tokens, your entire product ecosystem is probably failing accessibility audits right now and you don't even know it. Spoiler alert: you do know it. You're just pretending you don't because fixing it feels like admitting there's a problem.

Open your design system documentation. Find the button component. Look at the actual pixel values. Ask yourself: "Can I reliably tap this with my thumb on a phone while holding it in one hand?" If the answer is "maybe" or "I guess if I'm really careful," then you're shipping a broken component to production thousands of times per day.

The fix is a conversation with your design system team and a token update. Not years of work. Not a massive refactor. Just correcting the shared component definitions so every product surface improves together.

Start today. Your users' fingers will thank you.

Disclaimer: This article is for informational purposes only and does not constitute legal, professional, or compliance advice. SCOUTb2 is an automated scanning tool that helps identify common issues but does not guarantee full compliance with any standard or regulation.

accessibilitytouch targetsmobileWCAG 2.2

Stop finding issues manually

SCOUTb2 scans your entire site for accessibility, performance, and SEO problems automatically.