EightShapes
Published in

EightShapes

Buttons in Design Systems

12 Tips for Setting Up a System That Endures

The Primary Button

#1. Set a System’s Stylistic Tone

A button is the purest atomic expression of a system’s visual style. It combines the “big three” attributes— color, typography, and iconography — into a non-splittable atomic part. Buttons also provoke discussion of space: padding inside (particularly, to a label’s left and right) and margin outside (adjacent to other elements). Ultimately, button can even surface more esoteric attributes like roundedness (via border-radius) and lift (via box-shadow).

Buttons pack in a wide range of attributes for such a simple element.

#2. Set a Verbal Tone, Too

Fortunately, “Click Here” is in our past. But we still need answers: How long can button labels be? Are labels written in the imperative (such as “Save” or “Close”)? Should I pair a verb (“Save”) with an object type (“Document”)? Are there preferred labels for common actions? Do we inject a brand voice…or not?

#3. Invert Buttons When Backgrounds Get Complicated

Most buttons work just fine on a white background. But what happens when you place it on a photograph? Or a different, darker background color? Heck, are you even allowed to put it on a light neutral color? Can you use a button anywhere? Can you change the color of a primary button?

Show buttons a on variety of backgrounds, good and bad

#4. Limit One Per Page, Unless Repeating a Primary Action

Buttons call for action. We often use a primary button to draw attention to a page’s highest priority action. Until, we can’t prioritize and there’s a bunch of primary buttons littered throughout a page (hopefully they’re consistent, right?).

#5. Design and Build a Button’s Arc of Interaction

Buttons are the primitive interaction, and with interaction comes change. It’s not good enough to present a developer “Here’s the button design!” by just showing how it looks when a page loads. Instead, it’s up to the designer to show how a button appears across many states: default, hover, focused (“haloed”), pressed / active, and even a spinning waiting or animated progression.

#6. Be Resilient to Mixed Elements

Pairing a button label with an icon reinforces meaning and quickens recognition.

The Secondary Buttons

#7. Ensure Secondary ≠ Disabled

No one yearns for gray buttons.

Which one is disabled?

#8. Beware of Ghosts in the Machine

Ghost buttons rely on only a border and label of the same color while lacking a background fill. Behind that label rests an uncertain future. Sometimes the label is on white (yes, that’s easy!). However, other times a flat color or visually rich photo make the label difficult to read.

Ghost buttons — even in simple situations — perform questionably. In unpredictable backgrounds? Forget about it.

Additional Button Types

Before too long, system users will be asking you for that other button. A button big or small. A button with a menu or a toolbar of toggles aplenty. It’s up to your system to be complete-enough.

#9. Vary Size, Both Large (or Mega/Huge/Puffy) & Small (or Micro/Tiny)

Interactions can be found in tight spots like a Card object or sidebar module. Other times, you need a massive button to sit on a full-bleed photo dominating the viewport.

#10. Distinguish Buttons from Links

In the era of flat designs, systems like Material Design use a “Flat” button variant for use as in toolbars, dialog action groups, and inline near text. In a default state, there’s little to no visual difference from a link. However, a button’s states and behaviors bring a whole host of distinct considerations from your simple anchor tag.

#11. Enrich Variety with Menus & Zones

Richer buttons can trigger an associated menu panel with options to choose. Many systems offer multiple choices as a UI tightens up, such as menu (or dropdown) and split (or segmented) button.

#12. From Toggles to Toolbars, Make Buttons Play Nice Together

Buttons can come in groups. A button group pairs a primary with one or more secondary options. A toggle button many turn on and off (such as bold) or reveal a choice from a set of options (such as text alignment’s options for left, right, center, and justified). At it’s most expansive, a toolbar arrange many types, all together: primary, secondaries, toggles, menus, the works.

For Buttons, Use <button>

There’s a treasure trove of good learning about coding buttons correctly. The CSS Tricks article When to Use the Button Element (and it’s robust and lively discussion) is a great place to start.

--

--

A collection of stories, studies, and deep thinking from EightShapes

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Nathan Curtis

Founded UX firm @eightshapes, contributing to the design systems field through consulting and workshops. VT & @uchicago grad.