@import 'vars'; // labelauty // ============================================================ $icon-size: 16px; $label-min-width: 160px; $label-text-gap: 7px; /* Prevent text and blocks selection */ input.labelauty + label ::selection { background-color: rgba(255, 255, 255, 0); } input.labelauty + label ::-moz-selection { background-color: rgba(255, 255, 255, 0); } /* Hide original checkboxes. They are ugly! */ input.labelauty { display: none !important; } /* * Let's style the input * Feel free to work with it as you wish! */ input.labelauty + label { display: table; padding: 10px 12px; margin-bottom: 0; font-size: $font-size-base; line-height: 1; color: $text-color; cursor: pointer; // -moz-user-select: none; // -khtml-user-select: none; // -webkit-user-select: none; // -o-user-select: none; user-select: none; background-color: $bg-color-base; border-radius: $border-radius; -o-transition: background-color .25s; -webkit-transition: background-color .25s; -moz-transition: background-color .25s; transition: background-color .25s; } /* Stylish text inside label */ input.labelauty + label > span.labelauty-unchecked, input.labelauty + label > span.labelauty-checked { display: inline-block; line-height: $icon-size; vertical-align: bottom; } /* Stylish icons inside label */ input.labelauty + label > span.labelauty-unchecked-image, input.labelauty + label > span.labelauty-checked-image { display: inline-block; width: $icon-size; height: $icon-size; vertical-align: bottom; // vertical-align: middle; background-repeat: no-repeat; background-position: left center; -moz-transition: background-image .5s linear; -webkit-transition: background-image .5s linear; -o-transition: background-image .5s linear; transition: background-image .5s linear; } /* When there's a label, add a little margin to the left */ input.labelauty + label > span.labelauty-unchecked-image + span.labelauty-unchecked, input.labelauty + label > span.labelauty-checked-image + span.labelauty-checked { margin-left: $label-text-gap; } /* When not Checked */ input.labelauty:not(:checked):not([disabled]) + label:hover { color: $gray-500; background-color: $gray-200; } input.labelauty:not(:checked) + label > span.labelauty-checked-image { display: none; } input.labelauty:not(:checked) + label > span.labelauty-checked { display: none; } /* When Checked */ input.labelauty:checked + label { color: #fff; background-color: $color-primary-600; } input.labelauty:checked:not([disabled]) + label:hover { background-color: $color-primary-500; } input.labelauty:checked + label > span.labelauty-unchecked-image { display: none; } input.labelauty:checked + label > span.labelauty-unchecked { display: none; } input.labelauty:checked + label > span.labelauty-checked { display: inline-block; } input.labelauty.no-label:checked + label > span.labelauty-checked { display: block; } /* When Disabled */ input.labelauty[disabled] + label { opacity: .7; } /* Add a background to (un)checked images */ input.labelauty + label > span.labelauty-unchecked-image { background-image: url("input-unchecked.png"); } input.labelauty + label > span.labelauty-checked-image { background-image: url("input-checked.png"); } input.to-labelauty + label { min-width: $label-min-width; } input.to-labelauty-icon + label { display: inline-block; padding: 8px; + span { margin-left: $label-text-gap; } }