266 lines
4.9 KiB
Plaintext
266 lines
4.9 KiB
Plaintext
@import '../../style/themes/index';
|
|
@import '../../style/mixins/index';
|
|
|
|
@splitter-prefix-cls: ~'@{ant-prefix}-splitter';
|
|
|
|
.@{splitter-prefix-cls} {
|
|
.reset-component();
|
|
display: flex;
|
|
align-items: stretch;
|
|
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
color: @text-color;
|
|
font-size: @font-size-base;
|
|
font-family: @font-family;
|
|
line-height: @line-height-base;
|
|
list-style: none;
|
|
|
|
@half-trigger-size: calc(@splitter-split-trigger-size / 2);
|
|
|
|
&-horizontal {
|
|
flex-direction: row;
|
|
}
|
|
|
|
&-vertical {
|
|
flex-direction: column;
|
|
}
|
|
|
|
&-panel {
|
|
box-sizing: border-box;
|
|
padding: 0 1px;
|
|
overflow: auto;
|
|
scrollbar-width: thin;
|
|
|
|
&-hidden {
|
|
padding: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
&:has(.@{splitter-prefix-cls}:only-child) {
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
&-bar {
|
|
position: relative;
|
|
flex: none;
|
|
user-select: none;
|
|
|
|
&-preview {
|
|
position: absolute;
|
|
z-index: 1;
|
|
display: none;
|
|
background: @primary-color;
|
|
opacity: 0.2;
|
|
transition: none;
|
|
pointer-events: none;
|
|
|
|
&-active {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
// ======================= Dragger =======================
|
|
&-dragger {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
z-index: 1;
|
|
transform: translate(-50%, -50%);
|
|
|
|
// Hover background
|
|
&::before {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
background: @splitter-bar-bg;
|
|
transform: translate(-50%, -50%);
|
|
content: '';
|
|
}
|
|
|
|
// Hover
|
|
&:hover:not(&-active) {
|
|
&::before {
|
|
background: @splitter-bar-hover-bg;
|
|
}
|
|
}
|
|
|
|
// Spinner
|
|
&::after {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
background: @fill-color;
|
|
transform: translate(-50%, -50%);
|
|
content: '';
|
|
}
|
|
|
|
// Active
|
|
&-active {
|
|
z-index: 2;
|
|
|
|
&::before {
|
|
background: @splitter-bar-active-bg;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:hover &-collapse-bar, &:active &-collapse-bar {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
// Disabled
|
|
& > &-bar > &-bar-dragger&-bar-dragger-disabled {
|
|
z-index: 0;
|
|
|
|
&, &:hover, &-active {
|
|
cursor: default;
|
|
|
|
&::before {
|
|
background: @splitter-bar-bg;
|
|
}
|
|
}
|
|
|
|
&::after {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
// ======================= Collapse =======================
|
|
&-bar-collapse-bar {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
z-index: 1000;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: @text-color;
|
|
font-size: @font-size-sm;
|
|
background: @splitter-bar-bg;
|
|
border-radius: @border-radius-sm;
|
|
transform: translate(-50%, -50%);
|
|
cursor: pointer;
|
|
opacity: 0;
|
|
|
|
&:hover {
|
|
background: @splitter-bar-hover-bg;
|
|
}
|
|
|
|
&:active {
|
|
background: @splitter-bar-active-bg;
|
|
}
|
|
}
|
|
|
|
&-horizontal > &-bar {
|
|
width: 0;
|
|
}
|
|
|
|
&-horizontal > &-bar &-bar-dragger {
|
|
width: @splitter-split-trigger-size;
|
|
height: 100%;
|
|
cursor: col-resize;
|
|
}
|
|
|
|
&-horizontal > &-bar &-bar-dragger::before {
|
|
width: @splitter-split-bar-size;
|
|
height: 100%;
|
|
}
|
|
|
|
&-horizontal > &-bar &-bar-dragger::after {
|
|
width: @splitter-split-bar-size;
|
|
height: @splitter-split-bar-draggable-size;
|
|
}
|
|
|
|
&-horizontal > &-bar &-bar-preview {
|
|
width: @splitter-split-bar-size;
|
|
height: 100%;
|
|
}
|
|
|
|
&-horizontal > &-bar &-bar-collapse-bar {
|
|
width: @font-size-sm;
|
|
height: @splitter-split-bar-collapsible-size;
|
|
}
|
|
|
|
&-horizontal > &-bar &-bar-collapse-bar-start {
|
|
right: @half-trigger-size;
|
|
left: auto;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
&-horizontal > &-bar &-bar-collapse-bar-end {
|
|
right: auto;
|
|
left: @half-trigger-size;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
&-vertical > &-bar {
|
|
height: 0;
|
|
}
|
|
|
|
&-vertical > &-bar &-bar-dragger {
|
|
width: 100%;
|
|
height: @splitter-split-trigger-size;
|
|
cursor: row-resize;
|
|
|
|
&:has(&-disabled) {
|
|
cursor: default;
|
|
}
|
|
}
|
|
|
|
&-vertical > &-bar &-bar-dragger::before {
|
|
width: 100%;
|
|
height: @splitter-split-bar-size;
|
|
}
|
|
|
|
&-vertical > &-bar &-bar-dragger::after {
|
|
width: @splitter-split-bar-draggable-size;
|
|
height: @splitter-split-bar-size;
|
|
}
|
|
|
|
&-vertical > &-bar &-bar-preview {
|
|
width: 100%;
|
|
height: @splitter-split-bar-size;
|
|
}
|
|
|
|
&-vertical > &-bar &-bar-collapse-bar {
|
|
width: 24px;
|
|
height: @font-size-sm;
|
|
}
|
|
|
|
&-vertical > &-bar &-bar-collapse-bar-start {
|
|
top: auto;
|
|
bottom: @half-trigger-size;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
&-vertical > &-bar &-bar-collapse-bar-end {
|
|
top: @half-trigger-size;
|
|
bottom: auto;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
// ======================= Mask =======================
|
|
// Util dom for handle cursor
|
|
&-mask {
|
|
position: fixed;
|
|
z-index: 1000;
|
|
inset: 0;
|
|
|
|
&-horizontal {
|
|
cursor: col-resize;
|
|
}
|
|
|
|
&-vertical {
|
|
cursor: row-resize;
|
|
}
|
|
}
|
|
}
|
|
|
|
@import './rtl';
|