UNPKG

@ionic/core

Version:
123 lines (107 loc) 2.71 kB
:host { /** * @prop --color: Color of the radio * @prop --color-checked: Color of the checked radio */ display: inline-block; position: relative; box-sizing: border-box; user-select: none; z-index: 2; } :host(.radio-disabled) { pointer-events: none; } .radio-icon { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; contain: layout size style; } 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; } .radio-icon, .radio-inner { box-sizing: border-box; } :host { --color: var(--ion-color-step-400, #999999); --color-checked: var(--ion-color-primary, #3880ff); --border-width: 2px; --border-style: solid; width: 20px; height: 20px; } :host(.ion-color) .radio-inner { background: var(--ion-color-base); } :host(.ion-color.radio-checked) .radio-icon { border-color: var(--ion-color-base); } .radio-icon { margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 0; border-radius: 50%; border-width: var(--border-width); border-style: var(--border-style); border-color: var(--color); } .radio-inner { border-radius: 50%; width: calc(50% + var(--border-width)); height: calc(50% + var(--border-width)); transform: scale3d(0, 0, 0); transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1); background: var(--color-checked); } :host(.radio-checked) .radio-icon { border-color: var(--color-checked); } :host(.radio-checked) .radio-inner { transform: scale3d(1, 1, 1); } :host(.radio-disabled) { opacity: 0.3; } :host(.ion-focused) .radio-icon::after { border-radius: 50%; left: -12px; top: -12px; display: block; position: absolute; width: 36px; height: 36px; background: var(--ion-color-primary-tint, #4c8dff); content: ""; opacity: .2; } :host([dir=rtl].ion-focused) .radio-icon::after { right: -12px; } :host(.in-item) { margin-left: 0; margin-right: 0; margin-top: 9px; margin-bottom: 9px; display: block; position: static; } :host(.in-item[slot="start"]) { margin-left: 4px; margin-right: 36px; margin-top: 11px; margin-bottom: 10px; } @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; } }