<div class="container">
  <h1>Google maps radio buttons CSS only</h1>
  <div id="radios">
    <label for="driving" class="material-icons">
      <input type="radio" name="mode" id="driving" value="driving" checked/>
      <span>&#xE531;</span>
    </label>                
    <label for="cycling" class="material-icons">
      <input type="radio" name="mode" id="cycling" value="cycling" />
      <span>&#xE52F;</span>
    </label>
    <label for="walking" class="material-icons">
      <input type="radio" name="mode" id="walking" value="walking" />
      <span>&#xE536;</span>
    </label>
  </div>
</div>
/* =============================================
* RADIO BUTTONS
=============================================== */

#radios label {
  cursor: pointer;
  position: relative;
}

#radios label + label {
  margin-left: 15px;
}

input[type="radio"] {
  opacity: 0; /* hidden but still tabable */
  position: absolute;
}

input[type="radio"] + span {
  font-family: 'Material Icons';
  color: #B3CEFB;
  border-radius: 50%;
  padding: 12px;
  transition: all 0.4s;
  -webkit-transition: all 0.4s;
}

input[type="radio"]:checked + span {
  color: #D9E7FD;
  background-color: #4285F4;
}

input[type="radio"]:focus + span {
  color: #fff;
}

/* ================ TOOLTIPS ================= */

#radios label:hover::before {
  content: attr(for);
  font-family: Roboto, -apple-system, sans-serif;
  text-transform: capitalize;
  font-size: 11px;
  position: absolute;
  top: 170%;
  left: 0;
  right: 0;
  opacity: 0.75;
  background-color: #323232;
  color: #fff;  
  padding: 4px;
  border-radius: 3px;
  display: block;
}

/* =============================================
* CENTERING, CONTAINER STYLING ETC || IGNORE
=============================================== */

h1 {
  font-weight: 300;
  color: #D9E7FD;
  text-align: center;
  margin-bottom: 50px;
}

#radios {
  text-align: center;
  margin 0 auto;
}

.container {
  margin: 0 auto;
}

html {
  height: 100%;
  font-family: Roboto, -apple-system, sans-serif;
}

body {
  background-color: #3367D6;
  display: flex;
  height: 100%;
  align-items: center;
  text-align: center;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.