Inspired from this codepen, we can make it fill your checkbox, albeit I'm using background-color for this purpose. Basically I'm hiding the radio button and adding content afterwards that is styled according to your needs. Since it's a label for the radio button, clicks on it trigger state changes for the radio button.
div {
margin:0 0 0.75em 0;
}
input[type="radio"] {
display:none;
}
input[type="radio"] + label {
color: #292321;
font-family:Arial, sans-serif;
font-size:14px;
}
input[type="radio"] + label span {
display:inline-block;
width:19px;
height:19px;
margin:-1px 4px 0 0;
vertical-align:middle;
cursor:pointer;
-moz-border-radius: 50%;
border-radius: 50%;
}
input[type="radio"] + label span {
background-color:white;
border: 1px solid black;
}
input[type="radio"]:checked + label span{
background-color:#4eab47;
}
input[type="radio"] + label span,
input[type="radio"]:checked + label span {
-webkit-transition:background-color 0.4s linear;
-o-transition:background-color 0.4s linear;
-moz-transition:background-color 0.4s linear;
transition:background-color 0.4s linear;
}
<div>
<input type="radio" id="radio01" name="radio" />
<label for="radio01"><span></span></label>
</div>
<div>
<input type="radio" id="radio02" name="radio" />
<label for="radio02"><span></span></label>
</div>