Radio Buttons Using HTML CSS

Awesome Custom Radio Buttons using only HTML & CSS

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.

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.

See also  Minimalist Tree View In Pure CSS

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="">
  <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('[email protected];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.

See also  Single Div CSS Loading Spinners - css-loader

Leave a Reply

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