Buttons are clickable elements that perform certain actions when pressed. For example,
The above example shows the default button and a button with CSS style.
Create a Button
A button is created using a <button>
element. For
example,
<button>button</button>
Browser Output
Here, the default button doesn't look good without any styles.
Style a Button
We can use the following properties to style a button,
-
background-color
: changes the background color of a button padding
: adds padding to the buttonwidth
: sets the width of the buttonborder
: specifies the border to the buttonborder-radius
: rounds the corners of the buttonbox-shadow
: adds a shadow effect to the button
Let's look at an example,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS buttons</title>
</head>
<body>
<button class="button">Submit</button>
</body>
</html>
.button {
background-color: purple;
border-radius: 5px;
font-weight: bold;
font-size: 18px;
font-family: monospace;
color: white;
padding: 20px;
margin-left: 10px;
text-align: center;
cursor: pointer;
}
Browser Output
In the above example,
-
background-color: purple
adds apurple
color to button background -
border-radius: 5px
makes the corners of the button rounded with a5px
radius font-weight: bold
bolds the button text-
font-size: 18px
sets the font size to18px
-
font-family: monospace:
defines the font family of the button text color: white
sets the text color towhite
-
padding: 20px
adds a padding of20px
in the button -
text-align: center
aligns the button text in the center -
cursor: pointer
changes the cursor to pointer on button hover
Style Button States
A button has three different states as,
- Hover
- Focus
- Active
Let's look at each of them in detail.
Style Hover State
The hover state is triggered when the user puts the cursor over an element.
The :hover pseudoclass selector is used to add styles for the hover state.
Let's see an example,
.button:hover{
background-color: red;
}
Browser Output
Here, the background changes from purple
to
red
during the button hover.
Note: The transition
property creates a smooth
transition of styles when the button is hovered.
Style Focus State
The focus
state is triggered when an element receives the
keyboard focus.
The :focus
pseudoclass selector is used to add styles for the
focus state.
The button is focused using the Tab
key from the keyword.
Let's see an example,
.button:focus {
background-color: red;
}
Browser Output
Here, the background color changes from purple
to
red
when the button is focused.
Style Active State
The active state is triggered when the user actively interacts with elements.
The :active
pseudo class selector is used to add styles for the
active state.
Let's see an example,
.button:active {
background-color: red;
}
Browser Output
Here, the background color of the button changes to
red
when it is clicked.
Shadow Button
The box-shadow
property is used to add shadow to a button. For
example,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS shadow button</title>
</head>
<body>
<button class="button1">Normal Button</button>
<button class="button2">Shadowed Button</button>
</body>
</html>
/* styles both buttons */
.button1, .button2 {
background-color: purple;
border: none;
border-radius: 5px;
font-weight: bold;
font-size: 18px;
font-family: "Courier New", Courier, monospace;
color: white;
padding: 20px;
margin-left: 10px;
text-align: center;
cursor: pointer;
}
/* adds shadow effect to button2 on hover*/
.button2:hover {
box-shadow: 0px 0px 12px 4px rgba(0,0,0,0.74);
}
Browser Output
In the above example,
box-shadow: 0px 0px 12px 4px rgba(0,0,0,0.74);
creates a shadow around the button when it is hovered over.
Disabled Button
A disabled button can be created using the
opacity
property. For example,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS disabled button</title>
</head>
<body>
<button class="button1">Normal Button</button>
<button class="button2">Disabled Button</button>
</body>
</html>
.button1, .button2 {
background-color: purple;
border: none;
border-radius: 5px;
font-weight: bold;
font-size: 18px;
font-family: "Courier New", Courier, monospace;
color: white;
padding: 20px;
margin-left: 10px;
text-align: center;
cursor: pointer;
}
/* disables button2 on hover*/
.button2:hover {
opacity: 0.4;
cursor: not-allowed;
}
Browser Output
The above example shows two buttons: normal and disabled.
Note: The cursor property allows to add different types of cursor while hovering over the element.
Animated Button
We can add different animation effects to our button to enhance the user experience. For example,
/* adds animation effect to button2 on hover*/
.button2:hover {
bottom: 12px;
}
Browser Output
The above example shows a normal and animated button.
CSS Button Example
Let's look at the various styled button examples,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>CSS Button Styling</title>
</head>
<body>
<button class="button button1">Button 1</button>
<button class="button button2">Button 2</button>
<button class="button button3">Button 3</button>
<button class="button button4">Button 4</button>
<button class="button button5">Button 5</button>
</body>
</html>
.button {
color: white;
border: none;
cursor: pointer;
font-weight: bold;
font-size: 18px;
font-family: Arial, Helvetica, sans-serif;
margin-right: 10px;
padding: 12px 18px;
border-radius: 4px;
}
.button1 {
background-color: purple;
}
.button1:hover {
box-shadow: 0px 0px 4px 4px rgba(0, 0, 0, 0.44);
}
.button2 {
color: black;
border: 1px solid black;
transition: all 0.4s ease;
}
.button2:hover {
background-color: red;
color: white;
}
.button3 {
background-color: red;
transition: transform 0.5s ease;
}
.button3:hover {
transform: translateY(-5px);
color: black;
}
.button4 {
border-radius: 0px;
background-color: black;
transition: all 0.4s ease;
border: 1px solid black;
}
.button4:hover {
background-color: white;
color: black;
}
.button5 {
background: linear-gradient(to right, orange, red);
transform: all 0.3s ease;
}
.button5:hover {
background: linear-gradient(to right, red, orange);
}
.button:active {
color: black;
}
Browser Output
The above example shows different CSS styled buttons.