Awesome Custom Radio Buttons using only HTML & CSS

Awesome Custom Radio Buttons using only HTML & CSS

Hello readers, Today in this blog you’ll learn how to create Awesome Custom Radio Buttons using only HTML & CSS. Earlier I’ve shared a blog on how to create a Custom Checkbox or Toggle Switch On/Off and now it’s time to create radio buttons.

A radio button or option button is a graphical control element that allows the user to select one of many given choices. Radio buttons are so-called because they work as the channel presets on radios. A radio button in HTML can be defined using the <input type=”radio”> tag.

In this program [Awesome Custom Radio Buttons], there are four options on the webpage and you can select only one option. When you select any of that options, that selected option background color will be black and there is also shown a circle effect to inform the user that, the particular option is selected. This is purely based on HTML & CSS only.

Video Tutorial of Awesome Custom Radio Buttons

In the video, you have seen the Awesome Custom Radio Buttons or Option Buttons. As you know, when I clicked on the text, the particular option is selected and that is only possible with HTML <label> tag because in label tag there is a for attribute and inside this attribute, we need to pass the id name of <input type=”radio”> to control this tag with label tag.

I hope you’ve understood the basic codes behind creating this radio button, this is simple and easy for anyone, if you’re a beginner then you can also create this type of option button. There are no vast codes that have been used, you just need the understand the concept of <label> and <input> tags.

You might like this:

Awesome Custom Option Buttons [Source Codes]

To create this program (Custom Radio Buttons). First, you need to create two Files one HTML File and another one is CSS File. After creating these files just paste the following codes in your file.

First, create an HTML file with the name of index.html and paste the given codes in your HTML file. Remember, you’ve to create a file with .html extension.

<!DOCTYPE html>
<!-- Created By CodingNepal -->
<html lang="en">
    <meta charset="UTF-8">
    <title>Custom Radio Buttons | CodingNepal</title>
    <link rel="stylesheet" href="style.css">
  <div class="wrapper">
    <div class="title">Select your option</div>
    <div class="box">
      <input type="radio" name="select" id="option-1">
      <input type="radio" name="select" id="option-2">
      <input type="radio" name="select" id="option-3">
      <input type="radio" name="select" id="option-4">
      <label for="option-1" class="option-1">
        <div class="dot"></div>
        <div class="text">Gamer</div>
      <label for="option-2" class="option-2">
        <div class="dot"></div>
        <div class="text">YouTuber</div>
      <label for="option-3" class="option-3">
        <div class="dot"></div>
        <div class="text">Student</div>
      <label for="option-4" class="option-4">
        <div class="dot"></div>
        <div class="text">Developer</div>


Second, create a CSS file with the name of style.css and paste the given codes in your CSS file. Remember, you’ve to create a file with .css extension.

@import url(';300;400;500;600;700&display=swap');
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
  display: grid;
  height: 100%;
  place-items: center;
  width: 350px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
.wrapper .title{
  color: #fff;
  line-height: 65px;
  text-align: center;
  background: #333;
  font-size: 25px;
  font-weight: 500;
  border-radius: 10px 10px 0 0;
.wrapper .box{
  padding: 20px 30px;
  background: #fff;
  border-radius: 10px;
.wrapper .box label{
  display: flex;
  height: 53px;
  width: 100%;
  align-items: center;
  border: 1px solid lightgrey;
  border-radius: 50px;
  margin: 10px 0;
  padding-left: 20px;
  cursor: default;
  transition: all 0.3s ease;
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
  background: #333;
  border-color: #333;
.wrapper .box label .dot{
  height: 20px;
  width: 20px;
  background: #d9d9d9;
  border-radius: 50%;
  position: relative;
  transition: all 0.3s ease;
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
  background: #fff;
.box label .dot::before{
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(2);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  transition: all 0.3s ease;
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
  background: #333;
  transform: translate(-50%, -50%) scale(1);
.wrapper .box label .text{
  color: #333;
  font-size: 18px;
  font-weight: 400;
  padding-left: 10px;
  transition: color 0.3s ease;
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
  color: #fff;
.wrapper .box input[type="radio"]{
  display: none;

That’s all, now you’ve successfully created Awesome Custom Radio Buttons using only HTML & CSS. If your code doesn’t work or you’ve faced any error/problem then please comment down or contact us from the contact page.

Previous articleNeumorphism Side Bar Menu using HTML & CSS
Next articleAnimated Skills Bar UI Design using only HTML & CSS



Please enter your comment!
Please enter your name here