UNPKG

@geoffcox/sterling-svelte-themes

Version:

A modern theme for the sterling-svelte component library.

130 lines (116 loc) 3.03 kB
.sterling-radio { align-content: center; align-items: center; box-sizing: border-box; display: inline-flex; font: inherit; margin: 0; outline: none; padding: 0; } /* The container - allows the input to be hidden - avoids input participating in layout - prevents collisions with surrounding slots */ .sterling-radio .container { box-sizing: border-box; position: relative; font: inherit; display: flex; align-items: center; margin-right: 0.25em; } /* The input is hidden since the built-in browser radio cannot be customized */ .sterling-radio input { appearance: none; font: inherit; margin: 0; padding: 0; position: absolute; opacity: 0; height: 21px; width: 21px; } /* The indicator handles both the radio box and circle mark. The box cannot be on the container since the adjacent sibling selector is needed and there is not a parent CSS selector. */ .sterling-radio .indicator { background-color: var(--stsv-input__background-color); border-color: var(--stsv-input__border-color); border-style: solid; border-width: var(--stsv-input__border-width); border-radius: 10000px; box-sizing: border-box; display: inline-block; height: 21px; position: relative; pointer-events: none; transition: background-color 250ms, color 250ms, border-color 250ms; width: 21px; } .sterling-radio input:checked + .indicator { background-color: var(--stsv-input__background-color); border-color: var(--stsv-input__border-color); } .sterling-radio:not(.disabled):hover .indicator { background-color: var(--stsv-input__background-color--hover); border-color: var(--stsv-input__border-color--hover); } .sterling-radio input:focus-visible + .indicator { outline-color: var(--stsv-common__outline-color); outline-offset: 0; outline-style: solid; outline-width: var(--stsv-common__outline-width); } .sterling-radio .indicator::after { background-color: transparent; border-radius: 10000px; content: ''; height: 9px; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); transition: background-color 250ms; width: 9px; } .sterling-radio input:checked + .indicator::after { background-color: var(--stsv-input__color); } .sterling-radio label { color: var(--stsv-common__color); transition: color 250ms; font: inherit; } .sterling-radio.disabled, .sterling-radio.disabled input, .sterling-radio.disabled label { cursor: not-allowed; } .sterling-radio.disabled .indicator { background-color: var(--stsv-input__background-color--disabled); border-color: var(--stsv-input__border-color--disabled); } .sterling-radio.disabled .indicator::after { border-color: var(--stsv-input__color--disabled); } .sterling-radio.disabled label { color: var(--stsv-common__color--disabled); } @media (prefers-reduced-motion) { .sterling-radio .indicator, .sterling-radio .indicator::after, .sterling-radio .container::after, .sterling-radio label { transition: none; } }