rsuite
Version:
A suite of react components
536 lines (530 loc) • 17.9 kB
CSS
*[class*=rs-],*[class*=rs-]::before, *[class*=rs-]::after{
box-sizing:border-box;
}
html{
-webkit-tap-highlight-color:transparent;
font-size:16px;
}
body{
font-family:var(--rs-font-family-base);
font-size:var(--rs-font-size-sm);
line-height:var(--rs-line-height-md);
color:var(--rs-text-primary);
background-color:var(--rs-body);
}
:root{
--rs-gray-0:#fff;
--rs-gray-50:#f7f7fa;
--rs-gray-100:#f2f2f5;
--rs-gray-200:#e5e5ea;
--rs-gray-300:#d9d9d9;
--rs-gray-500:#939393;
--rs-gray-600:#717273;
--rs-gray-800:#343434;
--rs-gray-900:#121212;
--rs-primary-200:#A6D7FF;
--rs-primary-400:#59AFFF;
--rs-primary-500:#3498ff;
--rs-primary-600:#2589F5;
--rs-primary-700:#1675E0;
--rs-primary-900:#004299;
--rs-red-500:#F44336;
--rs-red-600:#EB3626;
--rs-orange-500:#FA8900;
--rs-orange-600:#F08800;
--rs-yellow-500:#FFB300;
--rs-yellow-600:#F5AF00;
--rs-green-500:#4CAF50;
--rs-green-600:#37AB3C;
--rs-cyan-500:#00BCD4;
--rs-cyan-600:#00B1CC;
--rs-blue-500:#2196F3;
--rs-blue-600:#1787E8;
--rs-violet-500:#673AB7;
--rs-violet-600:#5F2BB3;
--rs-body:var(--rs-gray-0);
--rs-text-primary:var(--rs-gray-800);
--rs-focus-ring-color:rgb(from var(--rs-primary-500) r g b / 25%);
--rs-state-focus-shadow:0 0 0 2px rgb(from var(--rs-primary-500) r g b / 25%);
--rs-toggle-bg:var(--rs-gray-500);
--rs-toggle-thumb:#fff;
--rs-toggle-loader-ring:rgb(from var(--rs-gray-50) r g b / 30%);
--rs-toggle-loader-rotor:var(--rs-gray-0);
--rs-toggle-hover-bg:var(--rs-gray-500);
--rs-toggle-disabled-bg:var(--rs-gray-200);
--rs-toggle-disabled-thumb:#fff;
--rs-toggle-checked-bg:var(--rs-primary-500);
--rs-toggle-checked-thumb:#fff;
--rs-toggle-checked-hover-bg:var(--rs-primary-600);
--rs-toggle-checked-disabled-bg:var(--rs-primary-200);
--rs-toggle-checked-disabled-thumb:#fff;
}
@supports not (color: rgb(from white r g b)){
:root{
--rs-focus-ring-color:rgba(52, 152, 255, 0.25);
--rs-state-focus-shadow:0 0 0 2px rgba(52, 152, 255, 0.25);
--rs-toggle-loader-ring:rgba(247, 247, 250, 0.3);
}
}
[data-theme=dark],
.rs-theme-dark{
--rs-gray-0:#fff;
--rs-gray-50:#e9ebf0;
--rs-gray-100:#cbced4;
--rs-gray-200:#a4a9b3;
--rs-gray-300:#858b94;
--rs-gray-500:#5c6066;
--rs-gray-600:#3c3f43;
--rs-gray-800:#1a1d24;
--rs-gray-900:#0f131a;
--rs-primary-200:#A6E9FF;
--rs-primary-400:#59D0FF;
--rs-primary-500:#34c3ff;
--rs-primary-600:#25B3F5;
--rs-primary-700:#169DE0;
--rs-primary-900:#006199;
--rs-red-500:#F04F43;
--rs-red-600:#E63F30;
--rs-orange-500:#FF9800;
--rs-orange-600:#F59700;
--rs-yellow-500:#FFC757;
--rs-yellow-600:#F5BB3D;
--rs-green-500:#58B15B;
--rs-green-600:#3FAB45;
--rs-cyan-500:#00BCD4;
--rs-cyan-600:#00B1CC;
--rs-blue-500:#1499EF;
--rs-blue-600:#0E8CE6;
--rs-violet-500:#673AB7;
--rs-violet-600:#5F2BB3;
--rs-body:var(--rs-gray-900);
--rs-text-primary:var(--rs-gray-50);
--rs-state-focus-shadow:0 0 0 2px rgb(from var(--rs-gray-500) r g b / 25%);
--rs-toggle-bg:var(--rs-gray-500);
--rs-toggle-thumb:#fff;
--rs-toggle-hover-bg:var(--rs-gray-300);
--rs-toggle-disabled-bg:var(--rs-gray-600);
--rs-toggle-disabled-thumb:var(--rs-gray-500);
--rs-toggle-checked-bg:var(--rs-primary-700);
--rs-toggle-checked-thumb:#fff;
--rs-toggle-checked-hover-bg:var(--rs-primary-600);
--rs-toggle-checked-disabled-bg:var(--rs-primary-900);
--rs-toggle-checked-disabled-thumb:var(--rs-gray-300);
}
@supports not (color: rgb(from white r g b)){
[data-theme=dark],
.rs-theme-dark{
--rs-state-focus-shadow:0 0 0 2px rgba(52, 195, 255, 0.25);
}
}
[data-theme=high-contrast],
.rs-theme-high-contrast{
--rs-gray-0:#fff;
--rs-gray-50:#e9ebf0;
--rs-gray-100:#cbced4;
--rs-gray-200:#a4a9b3;
--rs-gray-300:#858b94;
--rs-gray-500:#5c6066;
--rs-gray-600:#3c3f43;
--rs-gray-800:#1a1d24;
--rs-gray-900:#0f131a;
--rs-primary-200:#fffa91;
--rs-primary-400:#fffc30;
--rs-primary-500:#ffff00;
--rs-primary-600:#f1f500;
--rs-primary-700:#d9e000;
--rs-primary-900:#8f9900;
--rs-red-500:#BD1732;
--rs-red-600:#B51029;
--rs-orange-500:#FF9800;
--rs-orange-600:#F59700;
--rs-yellow-500:#FFC757;
--rs-yellow-600:#F5BB3D;
--rs-green-500:#0D822C;
--rs-green-600:#09802B;
--rs-cyan-500:#00BCD4;
--rs-cyan-600:#00B1CC;
--rs-blue-500:#1499EF;
--rs-blue-600:#0E8CE6;
--rs-violet-500:#673AB7;
--rs-violet-600:#5F2BB3;
--rs-body:var(--rs-gray-900);
--rs-text-primary:var(--rs-gray-50);
--rs-focus-ring-color:var(--rs-gray-0);
--rs-state-focus-shadow:0 0 0 2px var(--rs-gray-900), 0 0 0 5px var(--rs-gray-0);
--rs-toggle-bg:var(--rs-gray-800);
--rs-toggle-thumb:var(--rs-gray-100);
--rs-toggle-hover-bg:var(--rs-gray-800);
--rs-toggle-disabled-bg:var(--rs-gray-800);
--rs-toggle-disabled-thumb:var(--rs-gray-300);
--rs-toggle-checked-bg:var(--rs-primary-500);
--rs-toggle-checked-thumb:var(--rs-gray-800);
--rs-toggle-checked-hover-bg:var(--rs-primary-400);
--rs-toggle-checked-disabled-bg:var(--rs-primary-900);
--rs-toggle-checked-disabled-thumb:var(--rs-gray-800);
}
:root{
--rs-font-family-base:-apple-system, BlinkMacSystemFont, Arial, Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", STXihei, sans-serif;
--rs-font-size-3xs:0.5rem;
--rs-font-size-2xs:0.625rem;
--rs-font-size-xs:0.75rem;
--rs-font-size-sm:0.875rem;
--rs-font-size-md:1rem;
--rs-font-size-lg:1.125rem;
--rs-line-height-md:calc(20 / 14);
--rs-radius-full:62.5rem;
}
@media (max-width: calc(576px - 1px)){
[data-visible-from=xs]{
display:none ;
}
}
@media (min-width: 576px){
[data-hidden-from=xs]{
display:none ;
}
}
@media (max-width: calc(768px - 1px)){
[data-visible-from=sm]{
display:none ;
}
}
@media (min-width: 768px){
[data-hidden-from=sm]{
display:none ;
}
}
@media (max-width: calc(992px - 1px)){
[data-visible-from=md]{
display:none ;
}
}
@media (min-width: 992px){
[data-hidden-from=md]{
display:none ;
}
}
@media (max-width: calc(1200px - 1px)){
[data-visible-from=lg]{
display:none ;
}
}
@media (min-width: 1200px){
[data-hidden-from=lg]{
display:none ;
}
}
@media (max-width: calc(1400px - 1px)){
[data-visible-from=xl]{
display:none ;
}
}
@media (min-width: 1400px){
[data-hidden-from=xl]{
display:none ;
}
}
.rs-toggle{
--rs-toggle-transition:0.2s ease-in-out;
--rs-toggle-gap:10px;
--rs-toggle-active-scale:1.2;
--rs-toggle-font-size-xs:var(--rs-font-size-2xs);
--rs-toggle-inner-font-size-xs:var(--rs-font-size-3xs);
--rs-toggle-line-height-xs:1;
--rs-toggle-gap-xs:4px;
--rs-toggle-handle-gap-xs:2px;
--rs-toggle-size-xs:14px;
--rs-toggle-inner-margin-xs:4px;
--rs-toggle-font-size-sm:var(--rs-font-size-xs);
--rs-toggle-inner-font-size-sm:var(--rs-font-size-2xs);
--rs-toggle-line-height-sm:1.4;
--rs-toggle-gap-sm:6px;
--rs-toggle-handle-gap-sm:2px;
--rs-toggle-size-sm:18px;
--rs-toggle-inner-margin-sm:6px;
--rs-toggle-font-size-md:var(--rs-font-size-sm);
--rs-toggle-inner-font-size-md:var(--rs-font-size-xs);
--rs-toggle-line-height-md:2;
--rs-toggle-gap-md:8px;
--rs-toggle-handle-gap-md:3px;
--rs-toggle-size-md:22px;
--rs-toggle-inner-margin-md:8px;
--rs-toggle-font-size-lg:var(--rs-font-size-md);
--rs-toggle-inner-font-size-lg:var(--rs-font-size-sm);
--rs-toggle-line-height-lg:2.14285714;
--rs-toggle-gap-lg:10px;
--rs-toggle-handle-gap-lg:4px;
--rs-toggle-size-lg:28px;
--rs-toggle-inner-margin-lg:10px;
--rs-toggle-font-size-xl:var(--rs-font-size-lg);
--rs-toggle-inner-font-size-xl:var(--rs-font-size-md);
--rs-toggle-line-height-xl:2.14285714;
--rs-toggle-gap-xl:12px;
--rs-toggle-handle-gap-xl:5px;
--rs-toggle-size-xl:34px;
--rs-toggle-inner-margin-xl:12px;
position:relative;
display:inline-flex;
align-items:center;
font-size:var(--rs-toggle-font-size);
gap:var(--rs-toggle-gap);
}
.rs-toggle[data-size=xs]{
--rs-toggle-font-size:var(--rs-toggle-font-size-xs);
--rs-toggle-inner-font-size:var(--rs-toggle-inner-font-size-xs);
--rs-toggle-line-height:var(--rs-toggle-line-height-xs);
--rs-toggle-inner-margin:var(--rs-toggle-inner-margin-xs);
--rs-toggle-handle-size:calc(
var(--rs-toggle-size-xs) - var(--rs-toggle-handle-gap-xs) * 2
);
--rs-toggle-handle-gap:var(--rs-toggle-handle-gap-xs);
--rs-toggle-gap:var(--rs-toggle-gap-xs);
--rs-toggle-min-width:calc(var(--rs-toggle-size-xs) * 2 - var(--rs-toggle-handle-gap));
--rs-toggle-size:var(--rs-toggle-size-xs);
--rs-toggle-checked-margin-left:calc(
(var(--rs-toggle-size) - var(--rs-toggle-handle-gap)) * -1
);
--rs-toggle-active-checked-margin-left:calc(
(var(--rs-toggle-size) * var(--rs-toggle-active-scale) - var(--rs-toggle-handle-gap)) * -1
);
}
.rs-toggle[data-size=sm]{
--rs-toggle-font-size:var(--rs-toggle-font-size-sm);
--rs-toggle-inner-font-size:var(--rs-toggle-inner-font-size-sm);
--rs-toggle-line-height:var(--rs-toggle-line-height-sm);
--rs-toggle-inner-margin:var(--rs-toggle-inner-margin-sm);
--rs-toggle-handle-size:calc(
var(--rs-toggle-size-sm) - var(--rs-toggle-handle-gap-sm) * 2
);
--rs-toggle-handle-gap:var(--rs-toggle-handle-gap-sm);
--rs-toggle-gap:var(--rs-toggle-gap-sm);
--rs-toggle-min-width:calc(var(--rs-toggle-size-sm) * 2 - var(--rs-toggle-handle-gap));
--rs-toggle-size:var(--rs-toggle-size-sm);
--rs-toggle-checked-margin-left:calc(
(var(--rs-toggle-size) - var(--rs-toggle-handle-gap)) * -1
);
--rs-toggle-active-checked-margin-left:calc(
(var(--rs-toggle-size) * var(--rs-toggle-active-scale) - var(--rs-toggle-handle-gap)) * -1
);
}
.rs-toggle[data-size=md]{
--rs-toggle-font-size:var(--rs-toggle-font-size-md);
--rs-toggle-inner-font-size:var(--rs-toggle-inner-font-size-md);
--rs-toggle-line-height:var(--rs-toggle-line-height-md);
--rs-toggle-inner-margin:var(--rs-toggle-inner-margin-md);
--rs-toggle-handle-size:calc(
var(--rs-toggle-size-md) - var(--rs-toggle-handle-gap-md) * 2
);
--rs-toggle-handle-gap:var(--rs-toggle-handle-gap-md);
--rs-toggle-gap:var(--rs-toggle-gap-md);
--rs-toggle-min-width:calc(var(--rs-toggle-size-md) * 2 - var(--rs-toggle-handle-gap));
--rs-toggle-size:var(--rs-toggle-size-md);
--rs-toggle-checked-margin-left:calc(
(var(--rs-toggle-size) - var(--rs-toggle-handle-gap)) * -1
);
--rs-toggle-active-checked-margin-left:calc(
(var(--rs-toggle-size) * var(--rs-toggle-active-scale) - var(--rs-toggle-handle-gap)) * -1
);
}
.rs-toggle[data-size=lg]{
--rs-toggle-font-size:var(--rs-toggle-font-size-lg);
--rs-toggle-inner-font-size:var(--rs-toggle-inner-font-size-lg);
--rs-toggle-line-height:var(--rs-toggle-line-height-lg);
--rs-toggle-inner-margin:var(--rs-toggle-inner-margin-lg);
--rs-toggle-handle-size:calc(
var(--rs-toggle-size-lg) - var(--rs-toggle-handle-gap-lg) * 2
);
--rs-toggle-handle-gap:var(--rs-toggle-handle-gap-lg);
--rs-toggle-gap:var(--rs-toggle-gap-lg);
--rs-toggle-min-width:calc(var(--rs-toggle-size-lg) * 2 - var(--rs-toggle-handle-gap));
--rs-toggle-size:var(--rs-toggle-size-lg);
--rs-toggle-checked-margin-left:calc(
(var(--rs-toggle-size) - var(--rs-toggle-handle-gap)) * -1
);
--rs-toggle-active-checked-margin-left:calc(
(var(--rs-toggle-size) * var(--rs-toggle-active-scale) - var(--rs-toggle-handle-gap)) * -1
);
}
.rs-toggle[data-size=xl]{
--rs-toggle-font-size:var(--rs-toggle-font-size-xl);
--rs-toggle-inner-font-size:var(--rs-toggle-inner-font-size-xl);
--rs-toggle-line-height:var(--rs-toggle-line-height-xl);
--rs-toggle-inner-margin:var(--rs-toggle-inner-margin-xl);
--rs-toggle-handle-size:calc(
var(--rs-toggle-size-xl) - var(--rs-toggle-handle-gap-xl) * 2
);
--rs-toggle-handle-gap:var(--rs-toggle-handle-gap-xl);
--rs-toggle-gap:var(--rs-toggle-gap-xl);
--rs-toggle-min-width:calc(var(--rs-toggle-size-xl) * 2 - var(--rs-toggle-handle-gap));
--rs-toggle-size:var(--rs-toggle-size-xl);
--rs-toggle-checked-margin-left:calc(
(var(--rs-toggle-size) - var(--rs-toggle-handle-gap)) * -1
);
--rs-toggle-active-checked-margin-left:calc(
(var(--rs-toggle-size) * var(--rs-toggle-active-scale) - var(--rs-toggle-handle-gap)) * -1
);
}
.rs-toggle[data-color=red]{
--rs-toggle-checked-bg:var(--rs-red-500);
--rs-toggle-checked-hover-bg:var(--rs-red-600);
}
.rs-toggle[data-color=orange]{
--rs-toggle-checked-bg:var(--rs-orange-500);
--rs-toggle-checked-hover-bg:var(--rs-orange-600);
}
.rs-toggle[data-color=yellow]{
--rs-toggle-checked-bg:var(--rs-yellow-500);
--rs-toggle-checked-hover-bg:var(--rs-yellow-600);
}
.rs-toggle[data-color=green]{
--rs-toggle-checked-bg:var(--rs-green-500);
--rs-toggle-checked-hover-bg:var(--rs-green-600);
}
.rs-toggle[data-color=cyan]{
--rs-toggle-checked-bg:var(--rs-cyan-500);
--rs-toggle-checked-hover-bg:var(--rs-cyan-600);
}
.rs-toggle[data-color=blue]{
--rs-toggle-checked-bg:var(--rs-blue-500);
--rs-toggle-checked-hover-bg:var(--rs-blue-600);
}
.rs-toggle[data-color=violet]{
--rs-toggle-checked-bg:var(--rs-violet-500);
--rs-toggle-checked-hover-bg:var(--rs-violet-600);
}
.rs-toggle:where([data-placement=start]){
flex-direction:row-reverse;
}
.rs-toggle-label{
cursor:pointer;
font-size:inherit;
}
.rs-toggle-inner{
display:flex;
align-items:center;
justify-content:center;
transition:margin var(--rs-toggle-transition);
font-size:var(--rs-toggle-inner-font-size);
line-height:var(--rs-toggle-line-height);
margin-inline-start:var(--rs-toggle-size);
margin-inline-end:var(--rs-toggle-inner-margin);
height:var(--rs-toggle-size);
}
.rs-toggle-inner .rs-icon{
font-size:inherit;
}
.rs-toggle-input{
cursor:pointer;
position:absolute;
inset:0;
opacity:0;
}
.rs-toggle-track{
position:relative;
display:inline-block;
box-sizing:border-box;
vertical-align:middle;
background-color:var(--rs-toggle-bg);
color:var(--rs-toggle-thumb);
cursor:pointer;
transition:background-color var(--rs-toggle-transition), width var(--rs-toggle-transition);
-webkit-user-select:none;
-moz-user-select:none;
user-select:none;
height:var(--rs-toggle-size);
line-height:1;
min-width:var(--rs-toggle-min-width);
border-radius:var(--rs-radius-full);
}
.rs-toggle-track::after{
width:var(--rs-toggle-handle-size);
height:var(--rs-toggle-handle-size);
inset-inline-start:var(--rs-toggle-handle-gap);
top:var(--rs-toggle-handle-gap);
border-radius:var(--rs-radius-full);
}
.rs-toggle-track:active::after{
width:calc(var(--rs-toggle-handle-size) * var(--rs-toggle-active-scale));
}
[data-theme=high-contrast] .rs-toggle-track, .rs-theme-high-contrast .rs-toggle-track{
transition:none;
box-shadow:inset 0 0 0 1px var(--rs-toggle-thumb);
}
.rs-toggle-input:focus-visible + .rs-toggle-track{
outline:2px solid var(--rs-focus-ring-color);
outline-offset:-1px;
box-shadow:inset 0 0 0 1px var(--rs-toggle-thumb), var(--rs-state-focus-shadow);
}
.rs-toggle-track:hover{
background-color:var(--rs-toggle-hover-bg);
}
.rs-toggle-track::after{
content:"";
cursor:pointer;
position:absolute;
background-color:currentColor;
transition:inset-inline-start var(--rs-toggle-transition), margin-inline-start var(--rs-toggle-transition), width var(--rs-toggle-transition);
}
.rs-toggle[data-disabled=true] .rs-toggle-track{
background-color:var(--rs-toggle-disabled-bg);
color:var(--rs-toggle-disabled-thumb);
pointer-events:none;
}
.rs-toggle[data-checked=true] .rs-toggle-track{
background-color:var(--rs-toggle-checked-bg);
color:var(--rs-toggle-checked-thumb);
box-shadow:none;
}
.rs-toggle[data-checked=true] .rs-toggle-track::after{
inset-inline-start:100%;
margin-inline-start:var(--rs-toggle-checked-margin-left);
}
.rs-toggle[data-checked=true] .rs-toggle-track:active::after{
margin-inline-start:var(--rs-toggle-active-checked-margin-left);
}
.rs-toggle[data-checked=true] .rs-toggle-track .rs-toggle-inner{
margin-inline-end:var(--rs-toggle-size);
margin-inline-start:var(--rs-toggle-inner-margin);
}
.rs-toggle[data-checked=true] .rs-toggle-track:hover{
background-color:var(--rs-toggle-checked-hover-bg);
}
.rs-toggle[data-checked=true][data-disabled=true] .rs-toggle-track{
background-color:var(--rs-toggle-checked-disabled-bg);
color:var(--rs-toggle-checked-disabled-thumb);
}
.rs-toggle[data-loading=true] .rs-toggle-track::after{
display:none;
}
.rs-toggle-loader{
position:absolute;
transition:left var(--rs-toggle-transition), margin-left var(--rs-toggle-transition), width var(--rs-toggle-transition);
inset-inline-start:var(--rs-toggle-handle-gap);
top:var(--rs-toggle-handle-gap);
}
.rs-toggle-loader,.rs-toggle-loader .rs-loader-spin,
.rs-toggle-loader .rs-loader-spin::before,
.rs-toggle-loader .rs-loader-spin::after{
width:var(--rs-toggle-handle-size);
height:var(--rs-toggle-handle-size);
}
.rs-toggle-loader .rs-loader-spin::before,
.rs-toggle-loader .rs-loader-spin::after{
border-width:2px;
}
.rs-toggle[data-checked=true] .rs-toggle-loader{
inset-inline-start:100%;
margin-inline-start:var(--rs-toggle-checked-margin-left);
}
.rs-toggle-loader .rs-loader-spin::before{
border-color:var(--rs-toggle-loader-ring);
}
.rs-toggle-loader .rs-loader-spin::after{
border-top-color:var(--rs-toggle-loader-rotor);
}
[data-theme=high-contrast] .rs-toggle[data-checked=true] .rs-toggle-loader .rs-loader-spin::before, .rs-theme-high-contrast .rs-toggle[data-checked=true] .rs-toggle-loader .rs-loader-spin::before{
border-color:var(--rs-gray-200);
}
[data-theme=high-contrast] .rs-toggle[data-checked=true] .rs-toggle-loader .rs-loader-spin::after, .rs-theme-high-contrast .rs-toggle[data-checked=true] .rs-toggle-loader .rs-loader-spin::after{
border-top-color:var(--rs-gray-500);
}