UNPKG

zmp-core

Version:

Full featured mobile HTML framework for building iOS & Android apps

127 lines (122 loc) 3.29 kB
/* === Checkbox === */ @import url('./checkbox-vars.less'); .checkbox { position: relative; display: inline-block; vertical-align: middle; z-index: 1; background-color: transparent; --zmp-touch-ripple-color: rgba(var(--zmp-theme-color-rgb), 0.5); } .icon-checkbox, .checkbox i { flex-shrink: 0; border: var(--zmp-checkbox-border-width) solid var(--zmp-checkbox-inactive-color); width: var(--zmp-checkbox-size); height: var(--zmp-checkbox-size); border-radius: var(--zmp-checkbox-border-radius); box-sizing: border-box; box-sizing: border-box; position: relative; display: block; &:after { .core-icons-font(); width: var(--zmp-checkbox-size); height: var(--zmp-checkbox-size); line-height: var(--zmp-checkbox-size); top: calc(0px - var(--zmp-checkbox-border-width)); opacity: 0; color: var(--zmp-checkbox-icon-color); position: relative; transition-property: opacity; .ltr({ left: calc(0px - var(--zmp-checkbox-border-width)); }); .rtl({ right: calc(0px - var(--zmp-checkbox-border-width)); }); } } label.item-checkbox input[type='checkbox']:not(:checked) ~ .icon-checkbox, label.item-checkbox input[type='checkbox']:not(:checked) ~ * .icon-checkbox, .checkbox input[type='checkbox']:not(:checked) ~ i { &:after { font-size: 0; } } label.item-checkbox input[type='checkbox']:checked ~ .icon-checkbox, label.item-checkbox input[type='checkbox']:checked ~ * .icon-checkbox, .checkbox input[type='checkbox']:checked ~ i, label.item-checkbox input[type='checkbox']:indeterminate ~ .icon-checkbox, label.item-checkbox input[type='checkbox']:indeterminate ~ * .icon-checkbox, .checkbox input[type='checkbox']:indeterminate ~ i { border-color: var(--zmp-checkbox-active-color, var(--zmp-theme-color)); background-color: var(--zmp-checkbox-active-color, var(--zmp-theme-color)); &:after { opacity: 1; } } label.item-checkbox input[type='checkbox']:indeterminate ~ .icon-checkbox, label.item-checkbox input[type='checkbox']:indeterminate ~ * .icon-checkbox, .checkbox input[type='checkbox']:indeterminate ~ i { &:after { font-size: 0; content: ''; position: absolute; top: 50%; width: 70%; background: #fff; height: 2px; border-radius: 2px; margin-top: -1px; transition: 0ms; .ltr({ left: 15%; }); .rtl({ right: 15%; }); } } label.item-checkbox, .checkbox { cursor: pointer; input[type='checkbox'], input[type='radio'] { display: none; } } label.item-checkbox { transition-duration: 300ms; .item-content, &.item-content { .item-media { align-self: center; } } > .icon-checkbox { .ltr({ margin-right: calc(var(--zmp-list-item-media-margin) + var(--zmp-checkbox-extra-margin)); }); .rtl({ margin-left: calc(var(--zmp-list-item-media-margin) + var(--zmp-checkbox-extra-margin)); }); } &.active-state { .hairline-color(bottom, transparent); background-color: var(--zmp-list-link-pressed-bg-color); } &.disabled, .disabled & { .disabled(); } } .if-ios-theme({ @import url('./checkbox-ios.less'); }); .if-md-theme({ @import url('./checkbox-md.less'); }); .if-aurora-theme({ @import url('./checkbox-aurora.less'); });