Skipper Lin
Skipper Lin

Reputation: 75

How to style a radio button to look like a regular Learn More Button

I am designing an app in Unqork. The issue I have is how to shape the radio button to look like the regular Learn More button. I only intend to style the radio button instead of making it into a multiple choice.

The style of the regular button is

.abc-quote-option-cta {
    bottom: 38px;
    left: 0;
    right: 0;
    padding-top: 24px;
    position: absolute; }

.abc-quote-option-cta:before {
    background-color: #979797;
    content: '';
    display: block;
    height: 1px;
    left: 62px;
    opacity: .36;
    position: absolute;
    right: 56px;
    top: 0;
}

.abc-quote-option-cta .btn.btn-primary {
    border-radius: 6px;
    border: solid 2px #01a7e1;
    background-color: #FFFFFF;
    border-radius: 6px;
    color: #01a7e1;
    display: block;
    font-size: 1.8rem;
    line-height: 1.44;
    margin: 0 auto;
    padding: 10px;
    text-align: center;
    transition: background-color .25s ease, width .13s ease-in, color .18s ease-out ;
    width: 188px;
}

.abc-quote-option-cta .btn.btn-primary:hover,
.abc-quote-option-cta .btn.btn-primary:focus {
    background-color: #0099cc;
    color: #FFFFFF;
    width: 251px;
}

Your help is very much appreciated. Thanks!

Upvotes: 0

Views: 4515

Answers (3)

Priya jain
Priya jain

Reputation: 1147

I hope this will help you.

form {
  max-width: 250px;
  position: relative;
  margin: 50px auto 0;
  font-size: 15px;
}

.radiobtn {
  position: relative;
  display: block;
}

.radiobtn label {
  display: block;
  background: rgba(0, 0, 0, 0.2);
  color: #000;
  border-radius: 5px;
  padding: 10px 20px;
  border: 2px solid grey;
  margin-bottom: 5px;
  cursor: pointer;
}

.radiobtn label:after,
.radiobtn label:before {
  content: "";
  position: absolute;
  right: 11px;
  top: 11px;
  width: 20px;
  height: 20px;
  border-radius: 3px;
  background: grey;
}

.radiobtn label:before {
  background: transparent;
  transition: 0.1s width cubic-bezier(0.075, 0.82, 0.165, 1) 0s, 0.3s height cubic-bezier(0.075, 0.82, 0.165, 2) 0.1s;
  z-index: 2;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 13px;
  background-position: center;
  width: 0;
  height: 0;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNS4zIDEzLjIiPiAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE0LjcuOGwtLjQtLjRhMS43IDEuNyAwIDAgMC0yLjMuMUw1LjIgOC4yIDMgNi40YTEuNyAxLjcgMCAwIDAtMi4zLjFMLjQgN2ExLjcgMS43IDAgMCAwIC4xIDIuM2wzLjggMy41YTEuNyAxLjcgMCAwIDAgMi40LS4xTDE1IDMuMWExLjcgMS43IDAgMCAwLS4yLTIuM3oiIGRhdGEtbmFtZT0iUGZhZCA0Ii8+PC9zdmc+);
}

input[type="radio"] {
  display: none;
  position: absolute;
  width: 100%;
  appearance: none;
}

input[type="radio"]:checked+label {
  background: grey;
  animation-name: blink;
  animation-duration: 1s;
  border-color: $accentcolor;
}

input[type="radio"]:checked+label:after {
  background: $accentcolor;
}

input[type="radio"]:checked+label:before {
  width: 20px;
  height: 20px;
}
<form>
  <div class="radiobtn">
    <input type="radio" id="huey" name="drone" value="huey" checked />
    <label for="huey">Learn More</label>
  </div>
  <div class="radiobtn">
    <input type="radio" id="dewey" name="drone" value="dewey" />
    <label for="dewey">Learn More</label>
  </div>
</form>

Upvotes: 1

Priya jain
Priya jain

Reputation: 1147

Custom radio button without check mark.

form {
    max-width: 200px;
    position: relative;
    margin: 50px auto 0;
    font-size: 15px;
}
.radiobtn {
    position: relative;
    display: block;
    text-align:center;
}
.radiobtn label {
    display: block;
    background:none;
    color:#01a7e1;
    border-radius: 5px;
    padding: 10px 20px;
    border: 2px solid #01a7e1;
    margin-bottom: 5px;
    cursor: pointer;
    font-family:Arial, Helvetica, sans-serif;
}
input[type="radio"] {
    display: none;
    position: absolute;
    width: 100%;
    appearance: none;
}
input[type="radio"]:checked + label {
    background:#01a7e1;
    color:#fff;
}
<form>
  <div class="radiobtn">
    <input type="radio" id="huey"
                     name="drone" value="huey" checked />
    <label for="huey">Learn More</label>
  </div>
  <div class="radiobtn">
    <input type="radio" id="dewey"
                     name="drone" value="dewey" />
    <label for="dewey">Learn More</label>
  </div>
</form>

Upvotes: 1

Priya jain
Priya jain

Reputation: 1147

I hope this snippet will help you.

form {
    max-width: 250px;
    position: relative;
    margin: 50px auto 0;
    font-size: 15px;
}
.radiobtn {
    position: relative;
    display: block;
}
.radiobtn label {
    display: block;
    background: rgba(0, 0, 0, 0.2);
    color: #000;
    border-radius: 5px;
    padding: 10px 20px;
    border: 2px solid grey;
    margin-bottom: 5px;
    cursor: pointer;
}
.radiobtn label:after, .radiobtn label:before {
    content: "";
    position: absolute;
    right: 11px;
    top: 11px;
    width: 20px;
    height: 20px;
    border-radius: 3px;
    background:grey;
}
.radiobtn label:before {
    background: transparent;
    transition: 0.1s width cubic-bezier(0.075, 0.82, 0.165, 1) 0s, 0.3s height cubic-bezier(0.075, 0.82, 0.165, 2) 0.1s;
    z-index: 2;
    overflow: hidden;
    background-repeat: no-repeat;
    background-size: 13px;
    background-position: center;
    width: 0;
    height: 0;
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNS4zIDEzLjIiPiAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE0LjcuOGwtLjQtLjRhMS43IDEuNyAwIDAgMC0yLjMuMUw1LjIgOC4yIDMgNi40YTEuNyAxLjcgMCAwIDAtMi4zLjFMLjQgN2ExLjcgMS43IDAgMCAwIC4xIDIuM2wzLjggMy41YTEuNyAxLjcgMCAwIDAgMi40LS4xTDE1IDMuMWExLjcgMS43IDAgMCAwLS4yLTIuM3oiIGRhdGEtbmFtZT0iUGZhZCA0Ii8+PC9zdmc+);
}
input[type="radio"] {
    display: none;
    position: absolute;
    width: 100%;
    appearance: none;
}
input[type="radio"]:checked + label {
    background:grey;
    animation-name: blink;
    animation-duration: 1s;
 border-color: $accentcolor;
}
input[type="radio"]:checked + label:after {
 background: $accentcolor;
}
input[type="radio"]:checked + label:before {
    width: 20px;
    height: 20px;
}
<form>
  <div class="radiobtn">
    <input type="radio" id="huey"
                     name="drone" value="huey" checked />
    <label for="huey">Learn More</label>
  </div>
  <div class="radiobtn">
    <input type="radio" id="dewey"
                     name="drone" value="dewey" />
    <label for="dewey">Learn More</label>
  </div>
</form>

Upvotes: 3

Related Questions