UNPKG

kui-vue

Version:

A lightweight desktop UI component library suitable for Vue.js 2.

256 lines (223 loc) 4.64 kB
@import "../../styles/var.less"; .k-radio-group { display: inline-flex; flex-shrink: 0; align-items: center; .k-btn { position: relative; margin-left: -1px; z-index: 0; border-radius: 0; &:focus, &:hover { z-index: 2; } &:first-child { border-top-left-radius: var(--kui-border-radius); border-bottom-left-radius: var(--kui-border-radius); } &:last-child { border-top-right-radius: var(--kui-border-radius); border-bottom-right-radius: var(--kui-border-radius); } } .k-btn-hollow { color: var(--kui-color-font); border-color: var(--kui-color-border); } .k-btn-primary { z-index: 1; } .k-btn-primary.k-btn-hollow { z-index: 2; color: var(--kui-color-main); border-color: var(--kui-color-main); } .k-radio-label { font-size: 14px; } } .k-radio-button-group, .k-radio-group-card { flex-wrap: nowrap; } .k-radio-group:not(.k-radio-button-group, .k-radio-group-card) { gap: 16px; flex-wrap: wrap; } .k-radio-circle:not(.k-radio-group-card) { .k-btn:first-child { border-top-left-radius: 30px; border-bottom-left-radius: 30px; } .k-btn:last-child { border-top-right-radius: 30px; border-bottom-right-radius: 30px; } } .k-radio { user-select: none; cursor: pointer; display: inline-flex; line-height: 1; color: var(--kui-color-font); align-items: center; outline: none; &:focus { .k-radio-symbol { outline: 2px solid var(--kui-color-main-80); } } .k-radio-symbol { display: inline-block; outline: 0; position: relative; box-sizing: border-box; margin: 0; width: 16px; height: 16px; border: 1px solid var(--kui-color-border); border-radius: 50%; background-color: var(--kui-color-back); outline: 2px solid transparent; outline-offset: 1px; &:after { box-sizing: content-box; width: 0; height: 0; position: absolute; border-radius: 50%; left: 50%; top: 50%; transform: translate3d(-50%, -50%, 0); content: ""; background-color: var(--kui-color-main); transition: all 0.2s ease-in-out; } } .k-radio-input { width: 100%; height: 100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: 1; opacity: 0; cursor: inherit; margin: 0; &:focus, &:hover { + .k-radio-inner { // border: 1px solid var(--kui-color-main); // box-shadow: 0 0 0 2px var(--kui-color-main-90); } } } .k-radio-label { font-size: 14px; margin-left: 8px; } &:not(.k-radio-disabled):hover { .k-radio-symbol { border: 1px solid var(--kui-color-main); box-shadow: 0 0 0 2px var(--kui-color-main-90); } } } .k-radio-light { .k-radio-symbol { background: var(--kui-color-gray-80); } } .k-radio-checked { .k-radio-symbol { background: var(--kui-color-main); border-color: var(--kui-color-main); &:after { opacity: 1; width: 6px; height: 6px; background-color: #fff; //var(--kui-color-back); } } } .k-radio-disabled { cursor: not-allowed; // opacity: .5; color: var(--kui-color-disabled); &.k-radio { .k-radio-input { cursor: not-allowed; } .k-radio-symbol { background: var(--kui-color-disable-back); border-color: var(--kui-color-disable-border); &:after { background-color: var(--kui-color-disable-border); } } } } .k-radio-lg { .k-radio-label { font-size: 16px; } .k-radio-symbol { width: 18px; height: 18px; } } .k-radio-sm { .k-radio-label { font-size: 12px; } .k-radio-symbol { width: 14px; height: 14px; } } .k-radio-group-vertical { flex-direction: column; align-items: self-start; } .k-radio-group-light { .k-btn { margin-left: 0; &:nth-child(n + 2) { position: relative; &::before { position: absolute; content: ""; left: -1px; border-left: 1px solid var(--kui-color-border); height: 50%; top: 50%; transform: translateY(-50%); } } } } .k-radio-group-card { padding: 4px; background-color: var(--kui-color-gray-80); border-radius: var(--kui-border-radius); .k-btn { border: none; border-radius: var(--kui-border-radius); height: 24px; &:disabled { background: 0 0; } &:not(.k-btn-primary) { background-color: transparent; } } .k-btn-lg { height: 32px; } .k-btn-sm { height: 16px; } }