UNPKG

@ionic/core

Version:
122 lines (108 loc) 3.33 kB
:host { /** * @prop --size: Size of the checkbox icon * @prop --background: Background of the checkbox icon * @prop --border-color: Border color of the checkbox icon * @prop --border-radius: Border radius of the checkbox icon * @prop --border-width: Border width of the checkbox icon * @prop --border-style: Border style of the checkbox icon * @prop --transition: Transition of the checkbox icon * @prop --background-checked: Background of the checkbox icon when checked * @prop --border-color-checked: Border color of the checkbox icon when checked * @prop --checkmark-color: Color of the checkbox checkmark when checked */ --background-checked: var(--ion-color-primary, #3880ff); --border-color-checked: var(--ion-color-primary, #3880ff); --checkmark-color: var(--ion-color-primary-contrast, #fff); --transition: none; display: inline-block; position: relative; user-select: none; z-index: 2; } :host(.ion-color) { --background-checked: var(--ion-color-base); --border-color-checked: var(--ion-color-base); --checkmark-color: var(--ion-color-contrast); } button { left: 0; top: 0; margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 0; position: absolute; width: 100%; height: 100%; border: 0; background: transparent; cursor: pointer; appearance: none; outline: none; } :host-context([dir=rtl]) button { right: 0; } button::-moz-focus-inner { border: 0; } .checkbox-icon { border-radius: var(--border-radius); display: block; position: relative; width: 100%; height: 100%; transition: var(--transition); border-width: var(--border-width); border-style: var(--border-style); border-color: var(--border-color); background: var(--background); contain: strict; box-sizing: border-box; } .checkbox-icon path { fill: none; stroke: var(--checkmark-color); stroke-width: 1; opacity: 0; } :host(.checkbox-checked) .checkbox-icon { border-color: var(--border-color-checked); background: var(--background-checked); } :host(.checkbox-checked) .checkbox-icon path { opacity: 1; } :host(.checkbox-disabled) { pointer-events: none; } :host { --border-radius: calc(var(--size) * .125); --border-width: 2px; --border-style: solid; --border-color: rgba(0, 0, 0, 0.54); --background: var(--ion-item-background, var(--ion-background-color, #fff)); --transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1); --size: 18px; width: var(--size); height: var(--size); } .checkbox-icon path { stroke-dasharray: 30; stroke-dashoffset: 30; stroke-width: 3; } :host(.checkbox-checked) .checkbox-icon path { stroke-dashoffset: 0; transition: stroke-dashoffset 90ms linear 90ms; } :host(.checkbox-disabled) { opacity: 0.3; } :host(.in-item) { margin-left: 0; margin-right: 0; margin-top: 18px; margin-bottom: 18px; display: block; position: static; } :host(.in-item[slot="start"]) { margin-left: 4px; margin-right: 36px; margin-top: 18px; margin-bottom: 18px; } @supports (margin-inline-start: 0) or (-webkit-margin-start: 0) { :host(.in-item[slot="start"]) { margin-left: unset; margin-right: unset; -webkit-margin-start: 4px; margin-inline-start: 4px; -webkit-margin-end: 36px; margin-inline-end: 36px; } }