UNPKG

@qvant/qui-max

Version:

A Vue 3 Design system for Web.

115 lines 3.19 kB
.q-radio { --radio-color-base: rgb(var(--color-base-regular-rgb) / 96%); --radio-color-disabled: rgb(var(--color-rgb-gray) / 64%); --radio-background-color-base: var(--color-tertiary-gray-ultra-light); --radio-background-color-hover: var(--color-tertiary-gray); --radio-background-color-disabled: var(--color-tertiary-gray); --radio-dot-color-base: var(--color-accent-secondary-main); --radio-dot-color-disabled: rgb(var(--color-rgb-gray) / 64%); --radio-box-shadow-base: 1px 1px 3px rgb(var(--color-rgb-blue) / 40%); --radio-box-shadow-focus: 1px 1px 3px rgb(var(--color-rgb-blue) / 40%), inset 0 0 0 1px var(--color-accent-secondary-main); position: relative; display: inline-flex; font-size: var(--font-size-base); font-weight: var(--font-weight-base); line-height: 1; color: var(--radio-color-base); white-space: nowrap; cursor: pointer; user-select: none; outline: none; } .q-radio_disabled { cursor: not-allowed; } .q-radio__label { padding-left: 16px; font-size: var(--font-size-base); color: var(--radio-color-base); word-break: break-word; white-space: normal; } .q-radio_disabled .q-radio__label { color: var(--radio-color-disabled); } .q-radio__label_size_regular { margin-top: 2px; font-size: 14px; line-height: 20px; } .q-radio__label_size_small { --radio-color-base: rgb(var(--color-base-regular-rgb) / 64%); margin-top: 5px; font-size: 10px; line-height: 14px; } .q-radio__input { position: relative; line-height: 0; white-space: nowrap; border: none; outline: none; } .q-radio__inner { position: relative; box-sizing: border-box; display: inline-block; width: 24px; height: 24px; background-color: var(--radio-background-color-base); border-radius: 100%; outline: none; box-shadow: var(--radio-box-shadow-base); } .q-radio__inner::after { position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; content: ""; background-color: var(--radio-dot-color-base); border-radius: 100%; transition: transform 0.15s ease-in; transform: translate(-50%, -50%) scale(0); } .q-radio__inner:hover { background-color: var(--radio-background-color-hover); } .q-form-item_is-error .q-radio__inner, .q-form-item_is-error .q-radio__inner .q-checkbox__input_focus { border: var(--border-error); } .q-radio_checked .q-radio__inner::after { transform: translate(-50%, -50%) scale(1); } .q-radio_disabled .q-radio__inner { background-color: var(--radio-background-color-disabled); } .q-radio_disabled .q-radio__inner::after { background-color: var(--radio-dot-color-disabled); } .q-radio_checked .q-radio__inner:hover { background-color: var(--radio-background-color-hover); } .q-radio_disabled .q-radio__inner:hover { background-color: var(--radio-background-color-disabled); } .q-radio:not(.q-radio_disabled):focus .q-radio__inner { box-shadow: var(--radio-box-shadow-focus); } .q-radio:not(.q-radio_disabled):focus .q-radio__inner:hover { background-color: var(--radio-background-color-hover); } .q-radio__original { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; margin: 0; outline: none; opacity: 0; }