Making the most of Buttons UI Design – Tips, states, usability, and inspiration

The in-depth look at the design principles behind creating effective buttons for user interfaces.

Inspiration

Published on

January 31, 2023

|

6 mins read

Blog

Buttons UI design – Comprehensive tutorial on UX, styles and usability

Navigation

Subscribe to newsletter

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

By subscribing you agree to with our Privacy Policy.

Share this post

Roman Kamushken

<span class="blog_big-paragraph">Welcome to the world of buttons UI design! In this blog post, I will cover buttons types, use cases, describe all the states, and provide some theming tips. This publication is powered up with tons of inspirational images to help you gather design ideas.</span>

Button – is a graphical user interface (GUI) element used to initiate an action or process. By having a distinctive visual appearance, buttons help to navigate users through an interface, execute commands, or to commit forms.

Designing buttons that work well requires taking into consideration the style, feedback, and accessibility. The design goal should be to make the them as intuitive as possible so the user can interact with Buttons seamlessly.

By the end of this post, you will have a better understanding of buttons UI design process and how to create user-friendly controls which are aesthetically pleasing.

So let's get started!

{{spacer-64}}

{{setproduct-gpt}}

{{spacer-64}}

Buttons Anatomy

States

States are important for providing feedback to users about the current status of a button. By providing visual cues, users can quickly and easily identify the purpose and state of a control, and interact with it accordingly.

  1. Default: This is the idle state of a button. It is usually displayed in its normal appearance and can be used to initiate an action.
  2. Hover: A state activates when the user moves the cursor over the button. It is usually shown with a different BG, to indicate the button can be interacted with.
  3. Active: Refers to the appearance of a button when it is interacted with by a user. When active, the button usually turns brighter or darker to distinguish clearly.
  4. Focused: When a user clicks a button, it is toggling to be in an "active" state. This is usually shown by a bold outline to indicate that the button is in use.
  5. Disabled: A state of a button when it is not currently available for interaction. Mainly displayed with a shaded appearance and the button cannot be clicked.
  6. Loading: Used when a button is in the process of performing an action. Such a button contains a spinning loading icon, to indicate the loading state.

{{spacer-16}}

Button states in UI design

{{spacer-64}}

Button shadows

Buttons UI design shadow CSS
Live buttons from Figma React UI kit

Adding a shadow to a button when designing an app helps to create visual hierarchy and focus. It is a way to make the element stand out from the rest of the elements on the page and draw the user's attention.

In Material Design, shadows are used to indicate the elevation levels of the different components. Higher button elevation levels mean a stronger shadow, while lower elevation levels have a weaker shadow. This helps to indicate which element is the most important one.

{{spacer-24}}

Buttons inspiration

{{image-gallery-1}}

{{spacer-64}}

Icons usage

Variants of native iOS buttons. Made with Figma iOS kit

Icons inside of buttons can be used to help quickly communicate what action the element will take. They can be used to help users quickly and easily identify what will happen when they click on the button.

For an instance: left icons are typically used to indicate a "back" or "previous" action, while right icons are utilized for moving "forward" or "next".

Icons can indicate a change in state when a button is clicked. For example, a "play/pause" icon demonstrates whether a video is in play or paused mode. Either, the icon can be changed dynamically to a "checkbox" to reflect the state of completion.

{{spacer-64}}

Icon button

The purpose of using buttons with only an icon is to provide an easily accessible way to trigger a common and distinct in-app flow. For example, in Material Design, a Floating Action Button (FAB) is used to quickly initiate a primary action on a page.

FABs are typically a circle or square that is placed in a prominent location to make it stand out on the page. When clicked, it will typically trigger a frequent to use action such as creating a new item or initiating a new process, user flow, etc.

{{spacer-16}}

Floating Action Buttons aka FAB in UI design
Round buttons & FABs extracted from Material-X UI kit

{{spacer-64}}

Buttons Theming

Styles

By using different styles of buttons, UI designers can communicate different messages to in-app users and create an intuitive flow through the user interface. There are four different kinds of buttons that you should know about:

  1. Text Only or Link Button: Is simply text-based, without any visual elements. Use for actions that don't require full attention, such as "Cancel" or "Done".

  2. Contained or Filled Button: Is typically filled in with a solid color and can contain a text label, an icon, or both. They usually indicate an important action, such as "Submit" or "Save".

  3. Outlined or Ghost Button: is similar to contained BTN, but is outlined with a color or a border. Utilize it to indicate a lower-priority action or a secondary option.

  4. Shaded or Tint Button: has a half-transparent color overlay. This type is used to indicate a less important action when placed together with Contained Button.

{{spacer-16}}

Button UI design styles colors CSS
Buttons types included in Figma React UI kit

{{spacer-64}}

Corner radius

By varying a radius from 0px to 99px you can go from Square Button up to Pill Button

The corner radius of a button in UI design affects the visual appearance of the element, as well as the user's perception of the interface. By varying a radius from 0px to 99px you can go from Square Button up to Pill Button:

  • 0px radius will create a sharp, angular look that is more suitable for an enterprise interface. This will help create a clean, minimal design that is easy to percept.
  • 8px radius adds a bit of visual interest to the button and allows it to stand out from the other components. Thus, for users it's easier to find and interact with the button.
  • 16px radius creates a more rounded, organic style that is softer and more welcoming. This is a great option for buttons that are intended for common actions.
  • 99px+ radius creates a very rounded, circular look that is often used for buttons that are meant to be eye-catching. Such a Pill button highlights among the other UI bits and encourages users to interact.

{{spacer-64}}

Inner shadow

Buttons UI design shadow CSS
Cool buttons from Mobile-X UI kit

By adding a subtle inner shadow to a button, it can make the component appear to be more 3-dimensional and tactile. This can make the element more visually engaging and interactive to a the user.

Inner shadow is a great way to add depth and dimension especially in dark themes, making the whole product experience smooth and enjoyable.

Such a visual trick embedded into a button provides a subtle visual cue to the user, indicating that this UI element is clickable.

{{spacer-64}}

Gradients

Gradients are often used to create visual continuity with important elements in the UI, providing cohesion. By adding a gradient to the button background, a designer can help create a sense of movement and direction in an app, maintain a visual cue to the user.

Used properly and consistently, gradients can help create a visually pleasing and brandy theme for a button UI design.

{{spacer-16}}

Gradient buttons UI design trading dashboard template
Trading template by Eclipse UI kit

{{spacer-64}}

Buttons Inspiration

{{image-gallery-2}}

{{spacer-64}}

UX & Usability

Accessibility

A button should be designed to be accessible to all users, regardless of their physical or mental abilities. Accessibility aspects to consider when designing a button include:

  • Size of the button should be large enough to be easily located and interacted with using a finger or a pointing device.
  • Contrast between the text and background colors should be clear and easy to read for users with various visual impairments.
  • Labeling should be clear, concise, and descriptive so that anyone can understand what the button does.
  • Keyboard. The button should be keyboard accessible so users can use hot keys to interact with it.
  • Focus indicator should be utilized when the button is activated to easily identify the triggered element.
  • Sound might be assigned to the button when a user initiates a tap/click to additionally notify when a control is triggered.
  • Touch spot of the button should be enough to sustain a clear interaction on any kind of touchscreens.

{{spacer-64}}

Buttons size

Panda Dashboard UI kit for Figma
Variety of buttons by Panda Dashboards

The size of a button in UI design is important because it affects its usability and summarized user experience. Using different sizes allows designers to emphasize different actions, guide users' attention, and create a better in-app flow.

  • Small buttons are often used to indicate actions that are secondary, as they are less visually prominent and easier to fit in a smaller area.
  • Medium buttons are the most commonly used button size. They are a good balance between visibility and space-saving, and are often used for default actions.
  • Large buttons to emphasize the importance of an action. They are more visible and eye-catching; great for drawing attention to a key activity.
  • XL buttons to draw max attention. They are the most visually prominent and are great for guiding users' sight and focus on what's matter most for a business.

{{spacer-64}}

Loading state

Buttons UI design shadow CSS
Activate Button by Aaron Iker

Using a loading icon for a Button in UI design is a convenient way to indicate that the action requested is being processed.

Loading state provides an indication that the app is working in response to the user's click and can prevent confusion. The user knows not to take any further action until the loading icon disappears.

Furthermore, it is a great way to add a sense of progress and assurance that the user's request is executed.

{{spacer-64}}

Split button

Buttons UI design shadow CSS
Split button by Mantine UI

Split button is the UI control utilized to offer two or more distinct actions within a single item. It combines the functionality of a button and a drop-down menu.

Split buttons are used in situations where a user needs to perform two, or more distinct tasks related to a single action, for example opening a file and then editing it. This type of component fits will when there are multiple actions that can be taken within a single control.

{{spacer-64}}

Button with Badge

A notification badge placed over a button in UI design is a user-friendly way to attract a sight to an action or item that requires a user's attention. Used to highlight the importance of new events, available updates, or a reminder.

When a badge pops in, it clearly indicates that an action needs to be taken, and it encourages the user to take the necessary action.

Calendar & date picker UI design inspiration mobile desktop

{{spacer-64}}

Buttons priority

Primary and secondary buttons are often used together in app design to provide a visual hierarchy. By implementing such an approach, you help your users to quickly identify and understand which action is most important.

Primary buttons are used to indicate the main action the user should take. They are usually more prominent and colored differently to stand out.

Secondary buttons are used for less important functions, e.g "Cancel" or "Help." Placed together with primary, secondary buttons should be less visible to indicate their lower importance.

By using different background fill, transparency and border, primary and secondary buttons as a combination can help users quickly identify the most valuable action they need to take on a page, or application.

{{image-gallery-3}}

{{spacer-64}}

Button Group

Buttons UI design shadow CSS

Button Groups are used in UI design to compound a series of related actions together in a single component. It gives users a way to easily switch between different conditions, and provides a visual indication of which option is currently active.

Button Groups are often used to group navigation controls, or to provide users with a way to switch between different modes, or filter anything within an app section.

{{spacer-64}}

Speed Dial

Buttons UI design shadow CSS
Speed Dial component in MUI

Speed Dial is a complex UI component used to quickly access commonly used app functions. Typically, it's a FAB with a list of predetermined and collapsed actions that appear when the button is tapped.

Commonly used to quickly access frequently used functions without the need to navigate through the traditional menu structure, and to perform unnecessary clicks.

{{spacer-64}}

{{stars-conclusion}}

{{spacer-64}}

Conclusion

Designing an effective button requires a balance between aesthetics, usability, and functionality. A button should be easy to identify, have a clear purpose, and be visually appealing. Consider utilizing the size, shape, color, and shadow to create an intuitive and successful design for a Button.

{{spacer-64}}

Buttons inspiration

{{image-gallery-4}}

Share this post

Subscribe to Setproduct

Once per week we send a newsletter with new releases, freebies and blog publications
Oops! Something went wrong while submitting the form.

By clicking Sign Up you're confirming that you agree with our Terms and Conditions.

Congratulations!

You're in! Expect awesome updates in your inbox

Related posts

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Inspiration

6 mins read

Monetizing the design: what I learned after a year of non-stop UI grinding

Discover 15 key insights for successful digital products, from a UI designer who took matters into his own hands to create innovative designs for everyone.

Inspiration

2 mins read

Buttons UI design - Figma to React styled components

Enhance Material Design components for improved performance, usability, and visual appeal. Get our expert retouching services for your web design needs.

Inspiration

3 mins read

How to create UI kit - Design system to sell worldwide

Boost productivity and earn rewards with our design asset that accelerates work processes. Start optimizing your workflow today.

Figma Templates & UI kits

Save time and human resources by reusing hundreds of pre-made templates crafted by us. Based on top notch UX taken from the World's best apps.

Material X for Figma

Figma library with 1100+ components & 40 app templates beyond Material Design. Powered by top-notch shapes and Manrope font. Customizable & Adjustable UI kit now available for Angular & Figma

Material You UI kit

Figma & React library with 2600+ variants of 32 components compatible with Material Design 3. Plus 220+ dashboard templates for all the viewports. Now available for NextJS & TailwindCSS.

Figma React UI kit

Designed and well-organized in Figma React-based UI toolkit for the web. Optimized for building complex data-dense interfaces for desktop and mobile applications.

Panda Design System

Figma library with dashboard, calendar, kanban, profile, table, ecommerce and 80+ templates in total. Components with variants, dark theme included.

Eclipse UI kit

Figma library with 1100+ components & 74 templates for data-driven web applications. Powered by auto-layout. Supercharged by Figma's variants.

Rome UI kit for Figma

Customizable and well-organized team library. Contains 250+ components & 30 web app templates powered by stylish and trendy guidelines.

Material Design System

Figma library is based on 100% guidelines compliance with Material.io. Contains ready‑to-use templates to accelerate app UI design.

Neolex Dashboard UI kit

Customizable & adjustable dashboard design system with 50+ ready-to-use app layouts, 1900+ variants for 30 components with auto-layout.

Material Desktop Dashboard UI kit

Figma library with 48+ dashboard templates based on reusable desktop app patterns carefully handpicked from the most popular web apps.

Xela UI kit for Figma

Figma library with 1900+ variants of 30 components categories to craft perfectly shaped desktop & mobile apps. Customizable & Adjustable dashboard design system with 50+ web app templates.

Figma S8 Design System

Figma design library for mobile and desktop apps made of high quality styled components. Full version includes 67 dashboard templates.

OE Figma Design System

Customizable and well-organized Figma library. This design system aimed to build highly loaded interfaces, boost the speed and save more costs.

Figma iOS kit

Figma library of iOS patterns served as ready-made templates. This UI kit inspired by World's best apps. Based on Human Interface guidelines.

Figma S8 Design System

Figma design library for mobile and desktop apps made of high quality styled components. Full version includes 67 dashboard templates.

Most iOS UI kit for Figma

iOS native components and app templates organized into a «Most Design System» fully compatible with Apple's Human Interface guidelines.

Rome UI kit for Figma

Customizable and well-organized team library. Contains 250+ components & 30 web app templates powered by stylish and trendy guidelines.

Material Design System

Figma library is based on 100% guidelines compliance with Material.io. Contains ready‑to-use templates to accelerate app UI design.

Nucleus UI

Nucleus UI contains 1000 components and variants with 500+ mobile screens designed for Figma (including 9 themes from Event, E-commerce, Finance, NFT, etc.).

Figma Android UI kit

Components-driven Android mobile UI library for Figma. Consists of 140 high quality application templates made of total 250+ UI components.

Mobile X UI kit

Customizable & adjustable iOS / Android design system loaded with ready-made 157 app templates based on 860+ variants for 20 components.

Appka iOS UI kit

Customizable & adjustable iOS design system with 4100+ variants for 28 components and 280+ ready-to-use app layouts crafted for Figma.

Full iOS UI kit

Customizable iOS design system with 320 ready-to-use app layouts. You can modify them or use as it is to save time and never design from scratch again.

Xela for Flutter

XelaUI for Flutter is a simple, modular and accessible component library that gives you the building Flutter apps for mobile and desktop.

Xela for Android

Ready-made collection of fully customizable widgets, UI screens and reusable components for Android coded with Jetpack Compose.

Xela for Swift

Designed for iOS Developers. We provide fully coded customizable components, widgets and well-organized iOS screens for Figma & SwiftUI.

Material You UI kit

Figma & React library with 2600+ variants of 32 components compatible with Material Design 3. Plus 220+ dashboard templates for all the viewports. Now available for NextJS & TailwindCSS.

Figma Charts UI kit

Components-driven graphs design kit for dashboards, presentations, infographics & data visualisation. Includes 25+ charts types for all the viewports.

Hyper Charts

Create impressive visuals with Figma's graphs templates – dozens of scalable and customizable data visualization blocks for dark and light modes.

Orion UI kit

Figma library with 40+ full-width charts templates served in light & dark themes. Contains 200+ of dataviz widgets that look perfect on desktop & mobile screens.

Xela for React

React based components library for beautiful user interface in React apps. Lightweight library for your projects. Contains pre-made web app templates.

Figma React UI kit

Designed and well-organized in Figma React-based UI toolkit for the web. Optimized for building complex data-dense interfaces for desktop and mobile applications.

Material X for Figma

Figma library with 1100+ components & 40 app templates beyond Material Design. Powered by top-notch shapes and Manrope font. Customizable & Adjustable UI kit now available for Angular & Figma

Xela for Flutter

XelaUI for Flutter is a simple, modular and accessible component library that gives you the building Flutter apps for mobile and desktop.

Xela for Android

Ready-made collection of fully customizable widgets, UI screens and reusable components for Android coded with Jetpack Compose.

Xela for Swift

Designed for iOS Developers. We provide fully coded customizable components, widgets and well-organized iOS screens for Figma & SwiftUI.

Material You UI kit

Figma & React library with 2600+ variants of 32 components compatible with Material Design 3. Plus 220+ dashboard templates for all the viewports. Now available for NextJS & TailwindCSS.

Xela for React

React based components library for beautiful user interface in React apps. Lightweight library for your projects. Contains pre-made web app templates.

Levitate 3D kit for Figma

Components-driven 3D kit to design eye-catching Figma presentations. Helps to enhance your landing page, product or app, brand ident, etc.

Website templates UI kit

Landing pages reusable templates kit based on most effective web design patterns. 140+ dark & light constrained design blocks.

Figma Landing Pages UI kit

Landing pages templates library based on constrained & organized components aimed to speed-up the production of effective websites.

Zeus UI kit

Create hassle-free landing pages in Figma. This kit is based on 10 landing page templates, powered by 1600+ variants for 630+ web blocks.

Research, copy and ideate with SetGPT!

We've launched the alternative ChatGPT clone dedicated to UI designers, UX researchers, writers and indiehackers.

Powered by the latest OpenAI gtp-3.5-turbo model, this free chatbot is the perfect tool for those in need of intelligent and innovative insights, wrapped with a slick UI and sophisticated user experience.

Start now

SetGPT is a free service; however, authentication is required

This is some text inside of a div block.
This is some text inside of a div block.