UNPKG

element-ui

Version:

A Component Library for Vue.js.

211 lines (182 loc) 5.1 kB
@charset "UTF-8"; @import "./common/var.css"; @import './mixins/button'; @component-namespace el { @b radio { color: var(--radio-color); position: relative; cursor: pointer; display: inline-block; white-space: nowrap; @utils-user-select none; & + .el-radio { margin-left: 15px; } @e input { white-space: nowrap; cursor: pointer; outline: none; display: inline-block; line-height: 1; position: relative; vertical-align: middle; } @e inner { border: var(--radio-input-border); border-radius: var(--radio-input-border-radius); circle: var(--radio-input-width) var(--radio-input-fill); position: relative; cursor: pointer; display: inline-block; box-sizing: border-box; &:not(.is-disabled):hover { border-color: var(--radio-input-border-color-hover); } &::after { circle: 6px #fff; content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) scale(0); transition: transform .15s cubic-bezier(.71,-.46,.88,.6); } @when disabled { background-color: var(--radio-disabled-input-fill); border-color: var(--radio-disabled-input-border-color); cursor: not-allowed; &::after { cursor: not-allowed; background-color: var(--radio-disabled-icon-color); } & + .el-radio__label { cursor: not-allowed; } } @when checked { border-color: var(--radio-checked-input-border-color); background: var(--radio-checked-icon-color); &::after { transform: translate(-50%, -50%) scale(1); } } @when focus { border-color: var(--radio-input-border-color-hover); } &.is-disabled.is-checked { background-color: var(--radio-disabled-checked-input-fill); border-color: var(--radio-disabled-checked-input-border-color); &::after { background-color: var(--radio-disabled-checked-icon-color); } } } @e original { opacity: 0; outline: none; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; margin: 0; } @e label { font-size: var(--radio-font-size); padding-left: 5px; } } @b radio-group { display: inline-block; font-size: 0; & .el-radio { font-size: var(--radio-font-size); } } @b radio-button { position: relative; overflow: hidden; display: inline-block; @e inner { display: inline-block; line-height: 1; white-space: nowrap; vertical-align: middle; cursor: pointer; background: var(--button-default-fill); border: var(--border-base); color: var(--button-default-color); -webkit-appearance: none; text-align: center; box-sizing: border-box; outline: none; margin: 0; position: relative; cursor: pointer; transition: var(--border-transition-base), var(--color-transition-base); @utils-user-select none; @mixin button-size var(--button-padding-vertical), var(--button-padding-horizontal), var(--button-font-size), 0; &:hover { color: var(--color-primary); } & [class*="el-icon-"] { line-height: 0.9; & + span { margin-left: 5px; } } } @e orig-radio { opacity: 0; outline: none; position: absolute; z-index: -1; left: -999px; &:checked { & + .el-radio-button__inner { z-index: 1; color: var(--color-primary); border-color: @color; } } &:disabled { & + .el-radio-button__inner { color: var(--button-disabled-color); cursor: not-allowed; background-image: none; background-color: var(--button-disabled-fill); border-color: var(--button-disabled-border); } } } &:not(:last-child) { margin-right: -1px; } &:first-child { .el-radio-button__inner { border-radius: var(--border-radius-base) 0 0 var(--border-radius-base); } } &:last-child { .el-radio-button__inner { border-radius: 0 var(--border-radius-base) var(--border-radius-base) 0; } } @m large { & .el-radio-button__inner { @mixin button-size var(--button-large-padding-vertical), var(--button-large-padding-horizontal), var(--button-large-font-size), 0; } } @m small { & .el-radio-button__inner { @mixin button-size var(--button-small-padding-vertical), var(--button-small-padding-horizontal), var(--button-small-font-size), 0; } } @m mini { & .el-radio-button__inner { @mixin button-size var(--button-mini-padding-vertical), var(--button-mini-padding-horizontal), var(--button-mini-font-size), 0; } } } }