tdesign-react
Version:
TDesign Component for React
339 lines (338 loc) • 10.6 kB
CSS
.t-radio-group {
font: var(--td-font-body-medium);
color: var(--td-text-color-primary);
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
max-width: 100%;
border-radius: var(--td-radius-default);
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
@-moz-document url-prefix() {
.t-radio-group {
scrollbar-color: var(--td-scrollbar-color) transparent;
scrollbar-width: thin;
}
}
.t-radio-group::-webkit-scrollbar {
width: 4px;
height: 4px;
}
.t-radio-group::-webkit-scrollbar-thumb {
border: 0px solid transparent;
background-clip: content-box;
background-color: var(--td-scrollbar-color);
border-radius: 7px;
}
.t-radio-group::-webkit-scrollbar-thumb:vertical:hover,
.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover {
background-color: var(--td-scrollbar-hover-color);
}
.t-radio-group .t-radio {
margin-right: var(--td-comp-margin-xxl);
}
.t-radio-group.t-radio-group__outline {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
row-gap: var(--td-comp-margin-xs);
}
.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button {
height: var(--td-comp-size-xs);
}
.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button {
height: var(--td-comp-size-m);
}
.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button {
height: var(--td-comp-size-xl);
}
.t-radio-group.t-radio-group__outline .t-radio-button:first-child {
border-radius: var(--td-radius-default) 0 0 var(--td-radius-default);
}
.t-radio-group.t-radio-group__outline .t-radio-button:last-child {
border-radius: 0 var(--td-radius-default) var(--td-radius-default) 0;
}
.t-radio-group.t-radio-group__outline .t-radio-button:only-child {
border-radius: var(--td-radius-default);
}
.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked {
color: var(--td-brand-color);
}
.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked {
color: var(--td-brand-color-disabled);
border-color: var(--td-brand-color-disabled);
background-color: var(--td-bg-color-specialcomponent);
}
.t-radio-group.t-radio-group--filled {
border-color: var(--td-bg-color-component);
padding: var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);
border-radius: var(--td-radius-default);
background-color: var(--td-bg-color-component);
position: relative;
}
.t-radio-group.t-radio-group--filled .t-radio-group__bg-block {
position: absolute;
left: 2px;
top: 2px;
width: 0;
height: calc(100% - 4px);
background-color: var(--td-bg-color-container-select);
-webkit-transition: all 0.2s cubic-bezier(0.38, 0, 0.24, 1);
transition: all 0.2s cubic-bezier(0.38, 0, 0.24, 1);
border-radius: var(--td-radius-small);
}
.t-radio-group.t-radio-group--filled .t-radio-button {
color: var(--td-text-color-secondary);
border: 0;
background-color: transparent;
}
.t-radio-group.t-radio-group--filled .t-radio-button:hover {
color: var(--td-text-color-primary);
}
.t-radio-group.t-radio-group--filled .t-radio-button::before {
content: '';
position: absolute;
left: 0px;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
width: 1px;
height: calc(100% - 16px);
background-color: var(--td-component-border);
-webkit-transition: opacity 0.2s cubic-bezier(0, 0, 0.15, 1);
transition: opacity 0.2s cubic-bezier(0, 0, 0.15, 1);
}
.t-radio-group.t-radio-group--filled .t-radio-button:first-child::before {
opacity: 0;
}
.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked {
position: relative;
color: var(--td-text-color-primary);
z-index: 1;
border: 0;
-webkit-transition: color 0.2s linear;
transition: color 0.2s linear;
}
.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked::before {
opacity: 0;
}
.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked + label::before {
opacity: 0;
}
.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled {
background-color: transparent;
}
.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked {
color: var(--td-text-color-disabled);
}
.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked ~ .t-radio-group__bg-block {
background-color: var(--td-bg-color-component-disabled);
}
.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block {
background-color: var(--td-brand-color);
}
.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked {
color: var(--td-text-color-anti);
}
.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked {
color: var(--td-text-color-anti);
}
.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked ~ .t-radio-group__bg-block {
background-color: var(--td-brand-color-disabled);
}
.t-radio-group.t-size-s .t-radio-button {
height: calc(var(--td-comp-size-xs) - (var(--td-comp-paddingTB-xxs) * 2));
padding: 0px var(--td-comp-paddingLR-s);
font: var(--td-font-body-small);
}
.t-radio-group.t-size-s .t-radio-button::before {
height: calc(100% - 16px);
}
.t-radio-group.t-size-m .t-radio-button {
height: calc(var(--td-comp-size-m) - (var(--td-comp-paddingTB-xxs) * 2));
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);
font: var(--td-font-body-medium);
}
.t-radio-group.t-size-m .t-radio-button::before {
height: calc(100% - 20px);
}
.t-radio-group.t-size-l .t-radio-button {
height: calc(var(--td-comp-size-xl) - (var(--td-comp-paddingTB-xxs) * 2));
padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl);
font: var(--td-font-body-large);
}
.t-radio-group.t-size-l .t-radio-button::before {
height: calc(100% - 24px);
}
.t-radio-group .t-radio-button {
cursor: pointer;
position: relative;
border: 1px solid;
border-color: var(--td-border-level-2-color);
border-right: 0;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-transition: color 0.2s cubic-bezier(0, 0, 0.15, 1);
transition: color 0.2s cubic-bezier(0, 0, 0.15, 1);
color: var(--td-text-color-primary);
white-space: nowrap;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.t-radio-group .t-radio-button:first-child {
border-radius: var(--td-radius-small) 0 0 var(--td-radius-small);
}
.t-radio-group .t-radio-button:last-child {
border-right: 1px solid;
border-right-color: var(--td-border-level-2-color);
border-radius: 0 var(--td-radius-small) var(--td-radius-small) 0;
}
.t-radio-group .t-radio-button__former {
opacity: 0;
height: 0;
width: 0;
font: var(--td-font-body-medium);
color: var(--td-text-color-primary);
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
}
.t-radio-group .t-radio-button:hover {
color: var(--td-brand-color);
}
.t-radio-group .t-radio-button.t-is-checked {
border-right: 1px solid;
border-color: var(--td-brand-color);
-webkit-transition: border-color 0.2s cubic-bezier(0, 0, 0.15, 1);
transition: border-color 0.2s cubic-bezier(0, 0, 0.15, 1);
}
.t-radio-group .t-radio-button.t-is-checked + .t-radio-button {
border-left: 0;
}
.t-radio-group .t-radio-button.t-is-disabled {
cursor: not-allowed;
color: var(--td-text-color-disabled);
background-color: var(--td-bg-color-component-disabled);
}
.t-radio-group .t-radio-button.t-is-disabled:hover {
border-color: var(--td-border-level-2-color);
color: var(--td-text-color-disabled);
}
.t-radio-group .t-radio-button.t-is-disabled:hover::after {
width: 0;
}
.t-radio-group .t-radio-button.t-is-disabled.t-is-checked {
color: var(--td-text-color-disabled);
}
.t-radio-group .t-radio-button.t-is-disabled.t-is-checked::after {
width: 0;
}
.t-radio {
font: var(--td-font-body-medium);
color: var(--td-text-color-primary);
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
position: relative;
cursor: pointer;
display: inline-block;
}
.t-radio__former {
font: var(--td-font-body-medium);
color: var(--td-text-color-primary);
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
opacity: 0;
position: absolute;
}
.t-radio__input {
position: relative;
display: inline-block;
width: 16px;
height: 16px;
vertical-align: middle;
border-radius: var(--td-radius-circle);
border: 1px solid var(--td-border-level-2-color);
background-color: var(--td-bg-color-container);
-webkit-transition: border 0.2s cubic-bezier(0, 0, 0.15, 1);
transition: border 0.2s cubic-bezier(0, 0, 0.15, 1);
}
.t-radio__input::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 16px;
height: 16px;
margin-top: -8px;
margin-left: -8px;
-webkit-transform: scale(0.5);
transform: scale(0.5);
opacity: 0;
border-radius: var(--td-radius-circle);
background-color: var(--td-brand-color);
-webkit-transition: all 0.2s cubic-bezier(0, 0, 0.15, 1);
transition: all 0.2s cubic-bezier(0, 0, 0.15, 1);
}
.t-radio__label {
display: inline-block;
margin-left: var(--td-comp-margin-s);
color: var(--td-text-color-primary);
vertical-align: middle;
font: var(--td-font-body-medium);
white-space: nowrap;
}
.t-radio:hover .t-radio__input {
border-color: var(--td-brand-color);
}
.t-radio.t-is-checked .t-radio__input {
border-color: var(--td-brand-color);
}
.t-radio.t-is-checked .t-radio__input::after {
opacity: 1;
}
.t-radio.t-is-disabled {
cursor: not-allowed;
}
.t-radio.t-is-disabled .t-radio__label {
color: var(--td-text-color-disabled);
}
.t-radio.t-is-disabled .t-radio__input {
background-color: var(--td-bg-color-component-disabled);
}
.t-radio.t-is-disabled:hover .t-radio__input {
border-color: var(--td-border-level-2-color);
}
.t-radio.t-is-disabled.t-is-checked .t-radio__input {
border-color: var(--td-border-level-2-color);
}
.t-radio.t-is-disabled.t-is-checked .t-radio__input::after {
background-color: var(--td-text-color-disabled);
}
.t-radio:focus-visible:focus-visible {
outline: 2px solid var(--td-brand-color);
outline-offset: var(--td-comp-paddingTB-xs);
border-radius: 0;
}