Inspiration — https://tinyurl.com/ydhd2k28 (By Oleg Frolov)
A Pen by Dronca Raul on CodePen.
| <div class="card"> | |
| <h2>Radio Buttons</h2> | |
| <ul> | |
| <li> | |
| <input type="radio" name="name" id="one" checked /> | |
| <label for="one">Option #1</label> | |
| <div class="check"></div> | |
| </li> | |
| <li> | |
| <input type="radio" name="name" id="two" /> | |
| <label for="two">Option #2</label> | |
| <div class="check"></div> | |
| </li> | |
| </ul> | |
| </div> |
| /* Variables | |
| –––––––––––––––––––––––––––––––––––––––––––––––––– */ | |
| :root { | |
| --primary-c: #2196F3; | |
| --secondary-c: #B2D7F5; | |
| --white: #FDFBFB; | |
| --text: #082943; | |
| --bg: var(--primary-c); | |
| } | |
| /* Basic Config | |
| –––––––––––––––––––––––––––––––––––––––––––––––––– */ | |
| html, body { | |
| height: 100%; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| body { | |
| background-color: var(--bg); | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| font-family: 'Raleway', sans-serif; | |
| color: var(--text); | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| ul { | |
| list-style-type: none; | |
| padding-left: 50px; | |
| margin: 0; | |
| } | |
| li { | |
| display: block; | |
| position: relative; | |
| padding: 20px 0px; | |
| } | |
| h2 { | |
| margin: 10px 0; | |
| font-weight: 900; | |
| } | |
| /* Card | |
| –––––––––––––––––––––––––––––––––––––––––––––––––– */ | |
| .card { | |
| display: flex; | |
| flex-direction: column; | |
| background: var(--white); | |
| width: 300px; | |
| padding: 20px 25px; | |
| border-radius: 20px; | |
| box-shadow: 0 19px 38px rgba(0, 0, 0, 0.13); | |
| } | |
| /* Radio Button | |
| –––––––––––––––––––––––––––––––––––––––––––––––––– */ | |
| input[type=radio] { | |
| position: absolute; | |
| visibility: hidden; | |
| } | |
| label { | |
| cursor: pointer; | |
| font-weight: 400; | |
| } | |
| .check { | |
| width: 30px; height: 30px; | |
| position: absolute; | |
| border-radius: 50%; | |
| transition: transform .6s cubic-bezier(0.68, -0.55, 0.27, 1.55); | |
| } | |
| /* Reset */ | |
| input#one ~ .check { | |
| transform: translate(-50px, -25px); | |
| background: var(--secondary-c); | |
| } | |
| input#two ~ .check { | |
| transform: translate(-50px, -83px); | |
| background: var(--primary-c); | |
| box-shadow: 0 6px 12px rgba(33, 150, 243, 0.35); | |
| } | |
| /* Radio Input #1 */ | |
| input#one:checked ~ .check { transform: translate(-50px, 33px); } | |
| /* Radio Input #2 */ | |
| input#two:checked ~ .check { transform: translate(-50px, -25px); } | |
| <link href="https://fonts.googleapis.com/css?family=Raleway:400,900" rel="stylesheet" /> |