exhtml
10/27/2016 - 5:26 AM

Bootstrap Pure CSS custom radio buttons / checkboxes

Bootstrap Pure CSS custom radio buttons / checkboxes

.radio {
	//width: 33.33%; 
	//float: left;

	[type="checkbox"]{

		//Base for label styling

		&:not(:checked),
		&:checked {
		  position: absolute;
		  left: -9999px;
		}

		&:not(:checked) + label,
		&:checked + label {
		  position: relative;
		  padding-left: 25px;
		  cursor: pointer;
		}

		//Checkbox aspect

		&:not(:checked) + label:before,
		&:checked + label:before {
		  content: '';
		  position: absolute;
		  left:0; top: 2px;
		  width: 17px; height: 17px;
		  border: 1px solid #aaa;
		  background: #f8f8f8;
		  border-radius: 3px;
		  box-shadow: inset 0 1px 3px rgba(0,0,0,.3)
		}

		// Checked mark aspect

		&:not(:checked) + label:after,
		&:checked + label:after {
		  content: '✔';
		  position: absolute;
		  top: 3px; left: 4px;
		  font-size: 18px;
		  line-height: 0.8;
		  color: #09ad7e;
		  transition: all .2s;
		}

		// Checked mark aspect changes

		&:not(:checked) + label:after {
		  opacity: 0;
		  transform: scale(0);
		}
		&:checked + label:after {
		  opacity: 1;
		  transform: scale(1);
		}

		// disabled checkbox

		&:disabled:not(:checked) + label:before,
		&:disabled:checked + label:before {
		  box-shadow: none;
		  border-color: #bbb;
		  background-color: #ddd;
		}
		&:disabled:checked + label:after {
		  color: #999;
		}
		&:disabled + label {
		  color: #aaa;
		}

		// accessibility

		&:checked:focus + label:before,
		&:not(:checked):focus + label:before {
		  border: 1px dotted blue;
		}

	}

	// hover style just for information

	label:hover:before {
	  border: 1px solid #4778d9!important;
	}

}
<div class="form-group radios clear">
	<div class="radio">	  
		<input type="checkbox" checked="checked" class="categories" name="categories" id="itech-wording" value="iTech wording"> 
		<label for="itech-wording">iTech wording</label>
	</div>

	<div class="radio"> 
		<input type="checkbox" class="categories" name="categories" id="vero-prepress" value="Vero Pre-press">
		<label for="vero-prepress">Vero Pre-press</label>
	</div>
</div>
/*


OJO REVISAR A VER QUE CREO QUE EL CIRCULITO AL PINCHAR NO VA
AL MENOS EN VERO NO IBA

basado en http://codepen.io/mitchmc/pen/pebIx

<div class="form-group radios clear">
	<div class="radio">	  
		<input type="checkbox" checked="checked" class="categories" name="categories" id="itech-wording" value="iTech wording"> 
		<label for="itech-wording">iTech wording</label>
	</div>

	<div class="radio"> 
		<input type="checkbox" class="categories" name="categories" id="vero-prepress" value="Vero Pre-press">
		<label for="vero-prepress">Vero Pre-press</label>
	</div>
</div>

*/

.radio {
	width: 33.33%; 
	float: left;

	input[type="checkbox"] {
	  display:none;
	}
	input[type="checkbox"] + label {
	  //color: white;
	  //font info
	}
	input[type="checkbox"] + label span {
	  display:inline-block;
	  position: relative;
	  width: 20px;
	  height: 20px;
	  border-radius: 50%;
	  background-color: white;
	  vertical-align:middle;
	  cursor:pointer;
	  margin:-1px 4px 0 0;
	  backface-visibility: hidden;
	  &:before {
	  	content: "";
			display: block;
			position: absolute;
			left: 0;
			top: 0;
			z-index: 5;
			width: 20px;
	  	height: 20px;
			border-radius: 50%;
	  	background-color: black;
	  	transform: scale(0);
			transition: transform 0.2s ease;
	  }
	}

	input[type="checkbox"]:checked + label span{
	  //background-color: black;
	  &:before {
	  	transform: scale(1);
	  }
	}

	
	//input[type="checkbox"] + label span,
	//input[type="checkbox"]:checked + label span {
	//  transition:background-color 0.4s linear;
	//}
	
}
/*


* * * * * * * * * * *

OJO!!!! EN IPAD NO VA AL ESTAR ENGLOBADO EL INPUT DENTRO DEL LABEL

OJO QUE YO LO MODIFIQUÉ PARA LA ESTRUCTURA DE BOOTSTRAP PERO EN IPAD ASI NO VA, VER LA OTRA VERSIO

MODIFICAR EL MARCADO PARA QUE FUNCIONE COMO EN
http://codepen.io/mitchmc/pen/pebIx

* * * * * * * * * * *


<form class="my-contact-form">

<div class="form-group col-sm-6">

  <label class="radio-inline">
    <input type="radio" name="contact-supply-type" id="suministro-unico" value="option1" checked> <span><i></i> Suministro único</span>
  </label>

  <label class="radio-inline">
    <input type="radio" name="contact-supply-type" id="multi-suministro" value="option2"> <span><i></i> Multisuministro</span>
  </label>
  
</div>   

</form> 
    
*/



.my-contact-form {

  .radio-inline {
    padding: 0.6rem 0 0 0;
  }

  input[type="radio"] {
    display:none;
  }

  input[type="radio"] + span {
    //input text
  }

  input[type="radio"] + span > i {
    display:inline-block;
    position: relative;
    
    width:20px;
    height:20px;
    
    margin:-1px 4px 0 0;
    vertical-align:middle;
    cursor:pointer;
    
    border-radius: 50%;
    border: 1px solid $optmz-cyan;
    background-color: white;

    &:after {
      content: "";
      display: block;
      opacity: 0;
      width:12px;
      height:12px;
      border-radius: 50%;
      background-color: $optmz-cyan;

      position: absolute;
      top: 3px;
      left: 3px;
      z-index: 5;

      transition: opacity 0.2s ease;
    }
  }

  input[type="radio"]:checked + span > i{
    &:after {
      opacity: 1;
    }

  }
}