What is a selling design?
Design is the most important component of any website. This is especially true for selling sites, because in this case it is necessary to interest the visitor and encourage him…

Continue reading →

Website design in Photoshope: getting to know the editor and its features
Photoshop and web design 98% of web design projects begin with the creation of functional layouts for future sites, and almost all of them are now drawn in Photoshop. What…

Continue reading →

Web Designer - Creative Internet Profession
From the author: in this article we will talk about the profession of web designer. Consider who it is, what knowledge and skills it should own, what tasks it solves,…

Continue reading →

Button State Design

From the author: button design is the main element of any design system. The best of the buttons are simple, versatile, perhaps even a little fun. But there are many hidden complexities in these fun controls and switching … complexities that are easy to overlook when we focus on the same old default and hover states.

Button State Design

In truth, mouse effects are probably the least important for design. By taking into account more functional states at an early stage, you can reduce the risk of possible costly redesigns as your template library evolves. Here are the basic conditions that you should pay attention to at an early stage, approximately in order of importance.

1. Default
Not surprisingly, the standard display of a button is really important. If you make it too catchy or too inconspicuous, you will see that without additional modifier classes or alternative styles, you cannot move on.

It is also important to create buttons based on context. One of the common mistakes is to choose a button style that does not differ enough from the input fields, which can lead to the form becoming incomprehensible.

Button State Design

It is also important to choose colors with adequate contrast for most users. I use the Contrast app to test my projects for WCAG 2.0 compliance:

Button State Design

2. Focus
The most important condition you should consider is: focus. Without it, navigation through the keyboard or other devices with direct input is almost impossible. The good news is that browsers already include a solution for it by default, usually a dashed outline or a blue glow:

Button State Design

These outlines can sometimes seem incompatible with the visual styles of the project, so they often turn off … and many users remain in the dark. So, let’s all raise our hand and repeat after me: “I solemnly swear never to turn off the browser focus styles without including a reasonably thought-out replacement.”

Excellent! From this point of view, here is what you need to keep in mind when developing a custom focus style:

In a group of buttons, highlighting with the input focus should be easily distinguishable.

It should not rely entirely on color changes that may be difficult to see for some users.

Ideally, it should be flexible enough to work with many button styles without frequent overrides.

3. Disclosure / Switching / Selection
Although this may seem like a distant prospect in the early days of system development, it is very likely that at some point you will need buttons that act as switches: open and hide menus, switch to favorites / bookmarks, switch tabs, etc. Given this feature early on, avoid potential conflicts with other button states.

The design of the disclosure buttons may vary depending on the project. You might even need more than one. Important considerations are for the on and off states to be different from each other, and that both combine with focus styles.

Button State Design

4. Disabled buttons
Like focus and disclosure states, disabled buttons should be easily identifiable. But unlike previous states, they should not differ much from the default state. The disconnected state should look muffled, less bright.

One of the most popular ways to disable buttons is to reduce their opacity. This works well for buttons with the same default style, but less when the disabled button has more saturated colors than the adjacent active one. The combination of opacity and saturation reduction can play a trick:

Button State Design

5. State guidance and active
Yes, I know that many do not want to postpone the development of these states to the very end. But there are at least two really compelling arguments in favor of this:

These conditions will apply only to some users and input methods. Not everyone uses a mouse, not everyone uses their fingers.

In this way, we can take these states into account when designing them so that they differ from everything else.

Now we can know which effects will intersect with other states:

Button State Design

We also know enough to gracefully transition between these states and emphasize them through color, scale, and animation:

Button State Design

This is just the tip of the iceberg …
This is by no means an exhaustive list of considerations for developing reliable, extensible button patterns in the design system (for this, I recommend reading Buttons in Nathan Curtis’s design systems). This is just a call to designers to reorient their efforts in developing button designs.

Productive Parallax
Do you like parallax or hate it, but it will not go anywhere. When used wisely, it can add depth and sophistication to a web application. The problem is that…

...

Creative website design: what's new?
Where does creative start? Morning, coffee, shower ... A new day has begun, it is time to create. We open the laptop or start the computer, before us is a…

...

SOLID principles in JavaScript. The substitution principle of Barbara Liskov
The substitution principle is most often used in the context of inheritance, however, the essence of the principle is more connected not with inheritance, but with the behavioral compatibility of…

...

Changing the site design: quick restart of your project
I wrote many times that the web design master must be creative, must look for new solutions to everyday situations, keep an eye on fashion ... But unfortunately, fashion is…

...