rsuite
Version:
A suite of react components
546 lines (523 loc) • 13.4 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-400:#b6b7b8;
--rs-gray-500:#939393;
--rs-gray-600:#717273;
--rs-gray-800:#343434;
--rs-gray-900:#121212;
--rs-primary-400:#59AFFF;
--rs-body:var(--rs-gray-0);
--rs-text-primary:var(--rs-gray-800);
--rs-text-heading:var(--rs-gray-900);
--rs-text-disabled:var(--rs-gray-600);
--rs-border-primary:var(--rs-gray-200);
--rs-scrollbar-bg:transparent;
--rs-scrollbar-thumb-bg:var(--rs-gray-500);
--rs-scrollbar-thumb-hover-bg:var(--rs-gray-400);
--rs-btn-subtle-hover-bg:var(--rs-gray-200);
--rs-btn-subtle-hover-text:var(--rs-gray-800);
--rs-scroll-view-shadow-color:rgba(9, 9, 9, 0.2);
}
[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-400:#6a6f76;
--rs-gray-500:#5c6066;
--rs-gray-600:#3c3f43;
--rs-gray-800:#1a1d24;
--rs-gray-900:#0f131a;
--rs-primary-400:#59D0FF;
--rs-body:var(--rs-gray-900);
--rs-text-primary:var(--rs-gray-50);
--rs-text-heading:var(--rs-gray-0);
--rs-text-disabled:var(--rs-gray-400);
--rs-border-primary:var(--rs-gray-600);
--rs-scrollbar-bg:transparent;
--rs-scrollbar-thumb-bg:var(--rs-gray-300);
--rs-scrollbar-thumb-hover-bg:var(--rs-gray-400);
--rs-btn-subtle-hover-bg:var(--rs-gray-500);
--rs-btn-subtle-hover-text:var(--rs-gray-50);
--rs-scroll-view-shadow-color:rgba(0, 0, 0, 0.99);
}
[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-400:#6a6f76;
--rs-gray-500:#5c6066;
--rs-gray-600:#3c3f43;
--rs-gray-800:#1a1d24;
--rs-gray-900:#0f131a;
--rs-primary-400:#fffc30;
--rs-body:var(--rs-gray-900);
--rs-text-primary:var(--rs-gray-50);
--rs-text-heading:var(--rs-gray-0);
--rs-text-disabled:var(--rs-gray-400);
--rs-border-primary:var(--rs-gray-100);
--rs-scrollbar-bg:transparent;
--rs-scrollbar-thumb-bg:var(--rs-gray-300);
--rs-scrollbar-thumb-hover-bg:var(--rs-gray-400);
--rs-btn-subtle-hover-bg:transparent;
--rs-btn-subtle-hover-text:var(--rs-primary-400);
--rs-scroll-view-shadow-color:rgba(0, 0, 0, 0.99);
}
:root{
--rs-font-family-base:-apple-system, BlinkMacSystemFont, Arial, Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", STXihei, sans-serif;
--rs-font-size-sm:0.875rem;
--rs-font-size-md:1rem;
--rs-font-size-lg:1.125rem;
--rs-font-size-xl:1.25rem;
--rs-font-size-2xl:1.5rem;
--rs-font-size-3xl:1.875rem;
--rs-font-size-4xl:2.25rem;
--rs-font-size-5xl:3rem;
--rs-line-height-md:calc(20 / 14);
--rs-text-line-height-md:calc(1.5 / 1);
--rs-text-line-height-lg:calc(1.75 / 1.125);
--rs-text-line-height-xl:calc(1.75 / 1.25);
--rs-text-line-height-2xl:calc(2 / 1.5);
--rs-text-line-height-3xl:calc(2.25 / 1.875);
--rs-text-line-height-4xl:calc(2.5 / 2.25);
--rs-text-line-height-5xl:1;
--rs-spacing:0.25rem;
--rs-radius-md:0.375rem;
--rs-radius-lg:0.5rem;
--rs-shadow-color:rgb(0 0 0 / 10%);
--rs-shadow-md:0 4px 6px -1px var(--rs-shadow-color), 0 2px 4px 0 var(--rs-shadow-color);
}
@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 ;
}
}
:root{
--rs-heading-font-family:inherit;
--rs-heading-font-weight:bolder;
--rs-heading-color:inherit;
--rs-heading-h1-font-size:var(--rs-font-size-5xl);
--rs-heading-h2-font-size:var(--rs-font-size-4xl);
--rs-heading-h3-font-size:var(--rs-font-size-3xl);
--rs-heading-h4-font-size:var(--rs-font-size-2xl);
--rs-heading-h5-font-size:var(--rs-font-size-xl);
--rs-heading-h6-font-size:var(--rs-font-size-lg);
--rs-heading-h1-line-height:var(--rs-text-line-height-5xl);
--rs-heading-h2-line-height:var(--rs-text-line-height-4xl);
--rs-heading-h3-line-height:var(--rs-text-line-height-3xl);
--rs-heading-h4-line-height:var(--rs-text-line-height-2xl);
--rs-heading-h5-line-height:var(--rs-text-line-height-xl);
--rs-heading-h6-line-height:var(--rs-text-line-height-lg);
}
.rs-heading{
font-family:var(--rs-heading-font-family);
font-weight:var(--rs-heading-font-weight);
color:var(--rs-heading-color);
margin:0;
}
.rs-heading.h1{
font-size:var(--rs-heading-h1-font-size);
line-height:var(--rs-heading-h1-line-height);
}
.rs-heading.h2{
font-size:var(--rs-heading-h2-font-size);
line-height:var(--rs-heading-h2-line-height);
}
.rs-heading.h3{
font-size:var(--rs-heading-h3-font-size);
line-height:var(--rs-heading-h3-line-height);
}
.rs-heading.h4{
font-size:var(--rs-heading-h4-font-size);
line-height:var(--rs-heading-h4-line-height);
}
.rs-heading.h5{
font-size:var(--rs-heading-h5-font-size);
line-height:var(--rs-heading-h5-line-height);
}
.rs-heading.h6{
font-size:var(--rs-heading-h6-font-size);
line-height:var(--rs-heading-h6-line-height);
}
.rs-scroll-view.rs-scroll-view-shadow{
overflow:auto;
padding:0px;
}
.rs-scroll-view.rs-scroll-view-shadow::before, .rs-scroll-view.rs-scroll-view-shadow::after{
content:"";
position:sticky;
width:100%;
height:2px;
visibility:hidden;
display:block;
z-index:1;
}
.rs-scroll-view.rs-scroll-view-shadow::before{
top:-2px;
box-shadow:3px 0 5px var(--rs-scroll-view-shadow-color);
}
.rs-scroll-view.rs-scroll-view-shadow::after{
bottom:-2px;
box-shadow:-3px 0 5px var(--rs-scroll-view-shadow-color);
}
.rs-scroll-view.rs-scroll-view-shadow.rs-scroll-view-thumb-middle::before, .rs-scroll-view.rs-scroll-view-shadow.rs-scroll-view-thumb-middle::after,.rs-scroll-view.rs-scroll-view-shadow.rs-scroll-view-thumb-top::after,.rs-scroll-view.rs-scroll-view-shadow.rs-scroll-view-thumb-bottom::before{
visibility:visible;
}
.rs-scroll-view.rs-scroll-view-custom-scrollbar{
scrollbar-width:thin;
scrollbar-color:var(--rs-scrollbar-thumb-bg) var(--rs-scrollbar-bg);
}
.rs-scroll-view.rs-scroll-view-custom-scrollbar::-webkit-scrollbar{
width:12px;
}
.rs-scroll-view.rs-scroll-view-custom-scrollbar::-webkit-scrollbar-track{
background:var(--rs-scrollbar-bg);
border-radius:var(--rs-radius-lg);
}
.rs-scroll-view.rs-scroll-view-custom-scrollbar::-webkit-scrollbar-thumb{
background-color:var(--rs-scrollbar-thumb-bg);
border-radius:var(--rs-radius-md);
border:3px solid var(--rs-scrollbar-bg);
}
.rs-scroll-view.rs-scroll-view-custom-scrollbar::-webkit-scrollbar-thumb:hover{
background-color:var(--rs-scrollbar-thumb-hover-bg);
}
:root{
--rs-anim-fade-duration:0.15s;
--rs-anim-collapse-duration:0.35s;
}
@keyframes slideInLeft{
from{
opacity:0;
transform:translate3d(-100%, 0, 0);
}
to{
opacity:1;
transform:none;
}
}
@keyframes slideOutLeft{
from{
opacity:1;
transform:none;
}
to{
opacity:0;
transform:translate3d(-100%, 0, 0);
}
}
@keyframes slideInRight{
from{
opacity:0;
transform:translate3d(100%, 0, 0);
}
to{
opacity:1;
transform:none;
}
}
@keyframes slideOutRight{
from{
opacity:1;
transform:none;
}
to{
opacity:0;
transform:translate3d(100%, 0, 0);
}
}
@keyframes slideInTop{
from{
opacity:0;
transform:translate3d(0, -100%, 0);
}
to{
opacity:1;
transform:none;
}
}
@keyframes slideOutTop{
from{
opacity:1;
transform:none;
}
to{
opacity:0;
transform:translate3d(0, -100%, 0);
}
}
@keyframes slideInBottom{
from{
opacity:0;
transform:translate3d(0, 100%, 0);
}
to{
opacity:1;
transform:none;
}
}
@keyframes slideOutBottom{
from{
opacity:1;
transform:none;
}
to{
opacity:0;
transform:translate3d(0, 100%, 0);
}
}
.rs-anim-slide-out{
animation-duration:0.3s;
animation-timing-function:cubic-bezier(0.4, 0, 1, 1);
animation-fill-mode:forwards;
}
.rs-anim-slide-in{
animation-duration:0.3s;
animation-timing-function:ease-in-out;
animation-fill-mode:forwards;
}
.rs-anim-right.rs-anim-slide-in{
animation-name:slideInRight;
}
.rs-anim-right.rs-anim-slide-out{
animation-name:slideOutRight;
}
[dir=rtl] .rs-anim-right.rs-anim-slide-in{
animation-name:slideInLeft;
}
[dir=rtl] .rs-anim-right.rs-anim-slide-out{
animation-name:slideOutLeft;
}
.rs-anim-left.rs-anim-slide-in{
animation-name:slideInLeft;
}
.rs-anim-left.rs-anim-slide-out{
animation-name:slideOutLeft;
}
[dir=rtl] .rs-anim-left.rs-anim-slide-in{
animation-name:slideInRight;
}
[dir=rtl] .rs-anim-left.rs-anim-slide-out{
animation-name:slideOutRight;
}
.rs-anim-top.rs-anim-slide-in{
animation-name:slideInTop;
}
.rs-anim-top.rs-anim-slide-out{
animation-name:slideOutTop;
}
.rs-anim-bottom.rs-anim-slide-in{
animation-name:slideInBottom;
}
.rs-anim-bottom.rs-anim-slide-out{
animation-name:slideOutBottom;
}
.rs-anim-bounce-in{
animation-name:bounceIn;
animation-duration:0.3s;
animation-timing-function:cubic-bezier(0.68, -0.55, 0.27, 1.55);
animation-fill-mode:forwards;
}
@keyframes bounceIn{
from{
opacity:0;
transform:scale(0.8);
}
to{
opacity:1;
transform:scale(1);
}
}
.rs-anim-bounce-out{
animation-name:bounceOut;
animation-duration:0.3s;
animation-timing-function:cubic-bezier(0.4, 0, 1, 1);
animation-fill-mode:forwards;
}
@keyframes bounceOut{
from{
opacity:1;
transform:scale(1);
}
to{
opacity:0;
transform:scale(0.8);
}
}
.rs-anim-collapse{
display:none;
}
.rs-anim-collapse.rs-anim-in{
display:block;
}
tr.rs-anim-collapse.rs-anim-in{
display:table-row;
}
tbody.rs-anim-collapse.rs-anim-in{
display:table-row-group;
}
.rs-anim-collapsing{
position:relative;
height:0;
overflow:hidden;
transition:height var(--rs-anim-collapse-duration) ease, width var(--rs-anim-collapse-duration) ease, visibility var(--rs-anim-collapse-duration) ease;
}
.rs-anim-fade{
opacity:0;
transition:opacity var(--rs-anim-fade-duration) linear;
pointer-events:none;
}
.rs-anim-fade.rs-anim-in{
opacity:1;
pointer-events:auto;
}
.rs-panel{
--rs-panel-header-font-size:var(--rs-font-size-md);
--rs-panel-header-line-height:var(--rs-text-line-height-md);
--rs-panel-padding:1.25rem;
--rs-panel-border-radius:var(--rs-radius-md);
--rs-panel-btn-font-size:var(--rs-font-size-md);
--rs-panel-btn-padding:0.625rem;
--rs-panel-shadow:var(--rs-shadow-md);
border-radius:var(--rs-panel-border-radius);
overflow:hidden;
}
.rs-panel .rs-anim-collapse{
display:none;
}
.rs-panel .rs-anim-collapse.rs-anim-in{
display:block;
}
.rs-panel-bordered{
border:1px solid var(--rs-border-primary);
}
.rs-panel-shaded{
box-shadow:var(--rs-panel-shadow);
}
.rs-panel-header, .rs-panel-body{
padding:var(--rs-panel-padding);
}
.rs-panel-body-fill{
padding:0 ;
}
.rs-panel-header{
color:var(--rs-text-heading);
font-size:var(--rs-panel-header-font-size);
line-height:var(--rs-panel-header-line-height);
font-weight:inherit;
}
.rs-panel-btn{
width:100%;
border:none;
background:none;
outline:transparent solid 2px;
display:flex;
align-items:center;
font-size:var(--rs-panel-btn-font-size);
padding:var(--rs-panel-btn-padding);
border-radius:var(--rs-panel-border-radius);
}
.rs-panel-btn:hover, .rs-panel-btn:focus, .rs-panel-btn:active{
background-color:var(--rs-btn-subtle-hover-bg);
color:var(--rs-btn-subtle-hover-text);
outline:transparent solid 2px;
}
.rs-panel-btn-icon{
transition:transform 0.2s ease 0s;
}
.rs-panel-btn[aria-expanded=true] .rs-panel-btn-icon{
transform:rotate(180deg);
}
.rs-panel-btn[disabled]{
cursor:not-allowed;
color:var(--rs-text-disabled);
background-color:var(--rs-btn-subtle-disabled-bg);
}
.rs-panel-title{
margin:0;
flex:1 1 0%;
text-align:start;
}
.rs-panel-title a{
color:inherit;
}
.rs-panel-title a:hover, .rs-panel-title a:focus, .rs-panel-title a:active{
text-decoration:none;
}
.rs-panel-header + .rs-panel-body-collapse .rs-panel-body, .rs-panel-header + .rs-panel-body{
padding-top:0;
}
.rs-panel-collapsible > .rs-panel-header{
cursor:pointer;
transition:background-color 0.3s linear, border-radius 0.3s linear;
position:relative;
padding:calc(var(--rs-spacing) * 2.5);
}