CSS Focus

CSS Focus

The :focus pseudo-class in CSS represents an element that receives focus. Typically, this class is triggered when a user clicks, taps, or selects an element using the keyboard’s Tab key.

The :focus pseudo-class applies to the focused element itself. To select an element that contains the focused element, use the :focused-within pseudo-class.

Applies to

All HTML elements, such as buttons, drop-down menus, input fields, etc.


Grammar

selector:focus{ properties }

CSS Focus – Links

Here is an example of setting focus on a link:

<html>
<head>
<style>
a {
color: darkviolet;
transition: all 0.3s ease;
}

a:focus {
outline: none;
color: red;
background-color: yellow;
}

body {
margin: 5px; 
padding: 2rem; 
display: grid; 
font: 20px/1.4 system-ui, -apple-system, sans-serif; 
} 
</style> 
</head> 
<body> 
<p>Click on the link or press the tab key.</p> 
<p>The link here has a change in background and foreground color as it is focussed.</p> 
</body> 
</html> 

CSS Focus – Button

Here is an example of setting focus on a button:

<html> 
<head> 
<style> 
button { 
display: block; 
margin: 2em; 
padding: 2px; 
font-weight: bold; 
font-size: 18px; 
text-align: center; 
color: black; 
background-color: #fff; 
border: 2px solid black; 
border-radius: 24px; 
cursor: pointer; 
transition: all 0.3s ease; 
width: 150px; 
height: 50px; 
} 
button:hover { 
color: blue; 
border-color: black; 
background-color: lightpink; 
} 
button:focus { 
background-color: darkred; 
color: white; 
border-radius: 2px; 
} 
</style> 
</head> 
<body> 
<p>Click on the button or press the tab key.</p> 
<button>Click Me!!</button> 
</body> 
</html> 

CSS Focus – Input Box

Here is an example where focus is set on an input box:

<html> 
<head> 
<style> 
label { 
display: block; 
font-size: 20px; 
color: black; 
width: 500px; 
} 

input[type="text"] { 
padding: 10px 16px; 
font-size: 16px; 
color: black; 
background-color: #fff; 
border: 1px solid #597183; 
border-radius: 8px; 
margin-top: 5px; 
width: 500px; 
transition: all 0.3s ease; 
} 

input[type="text"]:focus { 
background-color: lightyellow; 
} 
</style> 
</head> 
<body> 
<p>Click on the text box or press the tab key.</p> 
<form> 
<label> 
Full Name 
<input type="text"> 
</label> 
</form> 
</body> 
</html> 

CSS Focus – Dropdown

Here is an example of setting focus on a dropdown:

<html> 
<head> 
<style> 
label { 
display: block; 
font-size: 18px; 
color: black; 
width: 500px; 
} 

select { 
padding: 10px 16px; 
font-size: 16px; 
color: black; 
background-color: #fff; 
border: 1px solid #597183; 
border-radius: 8px; 
margin-top: 25px; 
width: 300px; 
transition: all 0.3s ease; 
} 

select:focus { 
background-color: rgb(173, 233, 209); 
box-shadow: 20px 15px 30px yellow, -20px 15px 30px lime, -20px -15px 30px blue, 20px -15px 30px red; } 
</style> 
</head> 
<body> 
<p>Select an item from the dropdown box. 
</p> 
<form> 
<label> 
Ice cream Flavors: 
<select name="flavor"> 
<option>Cookie dough</option> 
<option>Pistachio</option> 
<option>Cookies & Cream</option> 
<option>Cotton Candy</option> 
<option>Lemon & Raspberry Sorbet</option> 
</select> 
</label> 
</form> 
</body> 
</html> 

CSS Focus – Toggle Button

Here is an example of setting focus on a toggle button:

<html> 
<head> 
<style> 
.toggle { 
position: relative; 
display: block; 
width: 100%; 
margin: 2em; 
} 

.toggle label { 
padding-right: 8px; 
font-family: Verdana, Geneva, Tahoma, sans-serif; 
font-size: 16px; 
line-height: 28px; 
color: black; 
} 

.toggle span { 
position: relative; 
display: inline-block; 
vertical-align: middle; 
cursor: pointer; 
} 

.toggle span:before { 
display: block; 
width: 50px; 
height: 30px; 
content: ""; 
background-color: #a9adaf; 
border-radius: 28px; 
transition: background-color 0.3s ease; 
} 

.toggle span:after { 
position: absolute; 
top: 1px; 
left: 1px; 
display: block; 
width: 30px; 
height: 28px; 
visibility: visible; 
content: ""; 
background-color: #fff; 
border-radius: 28px; 
transition: left 0.3s ease; 
} 

input[type="checkbox"]:checked ~ span:before { 
background-color: orange; 
} 

input[type="checkbox"]:checked ~ span:after { 
top: 1px; 
left: 21px; 
} 

input[type="checkbox"]:hover ~ span:before { 
background-color: #1194d1; 
} 

input[type="checkbox"]:not(:checked):hover ~ span:before { 
background-color: #afbec9; 
}

input[type="checkbox"]:focus ~ span:before {
outline: none;
box-shadow: 0 0 0 4px red;
}

</style>

</head>

<body>

<div class="toggle">

<label for="toggle1">Check the box to toggle me</label>

<input type="checkbox" id="toggle1" />

<span></span>

</div>

</body>

</html>

CSS Focus – Related Properties

In addition to :focus, there are two other pseudo-classes related to the :focus pseudo-class. They are listed in the table below:

Number Pseudo-class Description
1 :focus-visible When an element has focus, it is displayed to the user.
2 :focus-within Sets focus to the element that contains the focused element.

Leave a Reply

Your email address will not be published. Required fields are marked *