tdesign-react
Version:
TDesign Component for React
296 lines (295 loc) • 7.37 kB
CSS
/**
* 颜色
*/
/**
* 尺寸
*/
/**
* 字体
*/
/**
* 动画
*/
/**
* 间距
*/
/**
* 位置
*/
/**
* 边框弧度
*/
.t-drawer-fade-enter,
.t-drawer-fade-appear {
opacity: 0;
-webkit-animation-duration: 0.2s;
animation-duration: 0.2s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
.t-drawer-fade-exit {
-webkit-animation-duration: 0.2s;
animation-duration: 0.2s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
.t-drawer-fade-enter.t-drawer-fade-enter-active,
.t-drawer-fade-enter.t-drawer-fade-enter-active.t-drawer-fade-enter-to,
.t-drawer-fade-appear.t-drawer-fade-appear-active,
.t-drawer-fade-appear.t-drawer-fade-appear-active.t-drawer-fade-appear-to {
-webkit-animation-name: tDrawerFadeIn;
animation-name: tDrawerFadeIn;
-webkit-animation-duration: 0.2s;
animation-duration: 0.2s;
-webkit-animation-play-state: running;
animation-play-state: running;
}
.t-drawer-fade-exit.t-drawer-fade-exit-active,
.t-drawer-fade-leave-active.t-drawer-fade-leave-to {
-webkit-animation-name: tDrawerFadeOut;
animation-name: tDrawerFadeOut;
-webkit-animation-duration: 0.2s;
animation-duration: 0.2s;
-webkit-animation-play-state: running;
animation-play-state: running;
}
@-webkit-keyframes tDrawerFadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes tDrawerFadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes tDrawerFadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes tDrawerFadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.t-drawer {
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: fixed;
z-index: 1500;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
outline: none;
}
.t-drawer--lock {
overflow: hidden;
}
.t-drawer--attach {
position: absolute;
}
.t-drawer--left,
.t-drawer--right {
top: 0;
}
.t-drawer--left {
left: 0;
}
.t-drawer--right {
right: 0;
}
.t-drawer--top,
.t-drawer--bottom {
left: 0;
}
.t-drawer--top {
top: 0;
}
.t-drawer--bottom {
bottom: 0;
}
.t-drawer__mask {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: var(--td-mask-active);
-webkit-transition: opacity 0.2s cubic-bezier(0.38, 0, 0.24, 1);
transition: opacity 0.2s cubic-bezier(0.38, 0, 0.24, 1);
opacity: 0;
}
.t-drawer__content-wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
background: var(--td-bg-color-container);
width: 16px;
height: 16px;
font-size: var(--td-font-body-medium);
color: var(--td-text-color-secondary);
-webkit-box-shadow: var(--td-shadow-2);
box-shadow: var(--td-shadow-2);
overflow: hidden;
pointer-events: auto;
-webkit-transition: visibility 0.28s cubic-bezier(0.38, 0, 0.24, 1), -webkit-transform 0.28s cubic-bezier(0.38, 0, 0.24, 1);
transition: visibility 0.28s cubic-bezier(0.38, 0, 0.24, 1), -webkit-transform 0.28s cubic-bezier(0.38, 0, 0.24, 1);
transition: transform 0.28s cubic-bezier(0.38, 0, 0.24, 1), visibility 0.28s cubic-bezier(0.38, 0, 0.24, 1);
transition: transform 0.28s cubic-bezier(0.38, 0, 0.24, 1), visibility 0.28s cubic-bezier(0.38, 0, 0.24, 1), -webkit-transform 0.28s cubic-bezier(0.38, 0, 0.24, 1);
position: relative;
}
.t-drawer .t-drawer__content-wrapper {
position: absolute;
width: 100%;
height: 100%;
visibility: hidden;
}
.t-drawer .t-drawer__content-wrapper--left,
.t-drawer .t-drawer__content-wrapper--right {
top: 0;
}
.t-drawer .t-drawer__content-wrapper--left {
left: 0;
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
.t-drawer .t-drawer__content-wrapper--right {
right: 0;
-webkit-transform: translateX(100%);
transform: translateX(100%);
}
.t-drawer .t-drawer__content-wrapper--top,
.t-drawer .t-drawer__content-wrapper--bottom {
left: 0;
}
.t-drawer .t-drawer__content-wrapper--top {
top: 0;
-webkit-transform: translateY(-100%);
transform: translateY(-100%);
}
.t-drawer .t-drawer__content-wrapper--bottom {
bottom: 0;
-webkit-transform: translateY(100%);
transform: translateY(100%);
}
.t-drawer__header {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
min-height: var(--td-comp-size-xxxl);
padding: 0 var(--td-comp-paddingLR-l);
font: var(--td-font-title-medium);
color: var(--td-text-color-primary);
border-bottom: 1px solid var(--td-border-level-1-color);
border-radius: var(--td-radius-small) var(--td-radius-small) 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.t-drawer__body {
padding: var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);
overflow: auto;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.t-drawer__footer {
width: 100%;
padding: var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);
text-align: left;
border-top: 1px solid var(--td-border-level-1-color);
background-color: var(--td-bg-color-container);
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.t-drawer__footer .t-button {
margin-left: var(--td-comp-margin-s);
}
.t-drawer__footer .t-button:first-child {
margin-left: 0;
}
.t-drawer__close-btn {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: var(--td-comp-size-xs);
height: var(--td-comp-size-xs);
top: calc((var(--td-comp-size-xxxl) - var(--td-comp-size-xs)) / 2);
right: var(--td-comp-margin-s);
color: var(--td-text-color-primary);
background-color: var(--td-bg-color-container);
border-radius: var(--td-radius-default);
cursor: pointer;
-webkit-transition: background-color 0.2s;
transition: background-color 0.2s;
}
.t-drawer__close-btn:hover {
background-color: var(--td-bg-color-container-hover);
}
.t-drawer__close-btn:active {
background-color: var(--td-bg-color-container-active);
}
.t-drawer__close-btn .t-icon {
font-size: calc(var(--td-font-size-body-medium) + 2px);
vertical-align: unset;
}
.t-drawer--open {
width: 100%;
height: 100%;
pointer-events: auto;
}
.t-drawer--open > .t-drawer__content-wrapper {
visibility: visible;
}
.t-drawer--open > .t-drawer__mask {
opacity: 1;
width: 100%;
height: 100%;
}
.t-drawer--without-mask {
pointer-events: none;
}
[tabindex='-1']:focus {
outline: none ;
/* stylelint-disable-line */
}