zent
Version:
一套前端设计语言和基于React的实现
198 lines (195 loc) • 5.52 kB
CSS
.zent-radio-group {
display: inline-block;
font-size: 0;
}
.zent-radio-group > :not(.zent-radio-wrap) {
font-size: 14px;
line-height: 20px;
}
.zent-radio-wrap {
display: inline-block;
cursor: pointer;
font-size: 0;
margin: 0;
padding: 0;
margin-right: 24px;
vertical-align: middle;
}
.zent-radio-wrap:last-child {
margin-right: 0;
}
.zent-radio-wrap .zent-radio {
position: relative;
display: inline-block;
white-space: nowrap;
outline: none;
vertical-align: middle;
margin: 0;
padding: 0;
line-height: 1;
}
.zent-radio-wrap .zent-radio > input {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0;
cursor: pointer;
}
.zent-radio-wrap .zent-radio-label {
font-size: 14px;
line-height: 20px;
display: inline;
margin-left: 8px;
vertical-align: middle;
}
.zent-radio-wrap .zent-radio-inner {
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
position: relative;
top: 0;
left: 0;
display: inline-block;
width: 16px;
height: 16px;
border-radius: 50%;
border-width: 1px;
border-style: solid;
box-sizing: border-box;
vertical-align: middle;
transition: all 0.1s;
}
.zent-radio-wrap .zent-radio-inner::after {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
position: absolute;
display: block;
content: " ";
top: 3px;
left: 3px;
width: 8px;
height: 8px;
border-radius: 50%;
transform: scale(0);
transition: all 0.1s ease-in-out;
}
.zent-radio-wrap.zent-radio-checked > .zent-radio > .zent-radio-inner {
border-color: #155bd4;
border-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
}
.zent-radio-wrap.zent-radio-checked > .zent-radio > .zent-radio-inner::after {
background-color: #155bd4;
background-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
transform: scale(1);
}
.zent-radio-wrap.zent-radio-disabled {
cursor: not-allowed;
}
.zent-radio-wrap.zent-radio-disabled > .zent-radio > .zent-radio-inner {
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
}
.zent-radio-wrap.zent-radio-disabled > .zent-radio > .zent-radio-inner::after {
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
}
.zent-radio-wrap.zent-radio-disabled > .zent-radio > input[type=radio] {
pointer-events: none;
}
.zent-radio-wrap.zent-radio-disabled.zent-radio-checked > .zent-radio > .zent-radio-inner {
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
}
.zent-radio-wrap.zent-radio-disabled.zent-radio-checked > .zent-radio > .zent-radio-inner::after {
background-color: #e0e0e0;
background-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
}
.zent-radio-wrap.zent-radio-disabled .zent-radio-label {
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-radio-wrap:not(.zent-radio-disabled):hover .zent-radio-inner {
border-color: #155bd4;
border-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
}
.zent-radio-button {
font-size: 14px;
line-height: 20px;
color: #999;
color: var(--theme-hint-color, var(--theme-stroke-3, #999));
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-width: 1px;
border-style: solid;
position: relative;
box-sizing: border-box;
display: inline-block;
padding: 5px 10px;
text-align: center;
transition: all 100ms cubic-bezier(0.17, 0.84, 0.44, 0.1);
}
.zent-radio-button > input[type=radio] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: none;
border: 0;
padding: 0;
margin: 0;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
display: block;
cursor: pointer;
}
.zent-radio-button:not(:first-child) {
margin-left: -1px;
}
.zent-radio-button:first-child {
border-radius: 2px 0 0 2px;
}
.zent-radio-button:last-child {
border-radius: 0 2px 2px 0;
}
.zent-radio-button:hover:not(.zent-radio-button--disabled) {
color: #155bd4;
color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
}
.zent-radio-button--checked {
color: #155bd4;
color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
border-color: #155bd4;
border-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
background-color: #e6efff;
background-color: var(--theme-default-selected-bg, var(--theme-primary-8, #e6efff));
z-index: 1;
}
.zent-radio-button--disabled {
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
cursor: not-allowed;
}
.zent-radio-button--disabled > input[type=radio] {
pointer-events: none;
}
.zent-radio-button--disabled.zent-radio-button--checked {
background-color: #e0e0e0;
background-color: var(--theme-default-border-color, var(--theme-stroke-10, #e0e0e0));
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}