jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
332 lines (283 loc) • 6.43 kB
text/less
@import '../variables.less';
.@{prefix-cls}-main-panel {
display: flex;
width: 100%;
height: 100%;
flex: 1;
min-height: 0;
position: relative;
overflow: hidden;
&-container {
display: flex;
flex-direction: column;
flex-grow: 1;
&.root {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
&.absolute {
position: absolute;
}
&.relative {
position: relative;
}
}
&-header {
display: flex;
align-items: center;
flex-grow: 0;
flex-shrink: 0;
justify-content: space-between;
background: var(--dn-main-panel-header-bg-color);
border-bottom: 1px solid var(--dn-panel-border-color);
padding: 4px;
&-logo {
display: flex;
align-items: center;
}
&-actions {
display: flex;
align-items: center;
justify-content: flex-end;
}
}
&.root {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
}
.@{prefix-cls}-composite-panel {
flex-grow: 0;
flex-shrink: 0;
display: flex;
position: relative;
user-select: none;
z-index: 2;
&-tabs {
display: flex;
flex-direction: column;
border-right: 1px solid var(--dn-panel-border-color);
background-color: var(--dn-composite-panel-tabs-bg-color);
z-index: 2;
position: relative;
&-pane {
color: var(--dn-composite-panel-tabs-color);
min-height: 48px;
min-width: 48px;
padding: 10px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
position: relative;
font-size: 20px;
flex-direction: column;
&-title {
font-size: 10px;
margin-top: 6px;
}
&:hover {
color: var(--dn-composite-panel-tabs-hover-color);
}
&.active {
color: var(--dn-composite-panel-tabs-hover-color);
&::after {
position: absolute;
top: 0;
left: 0;
display: block;
content: '';
width: 3px;
height: 100%;
background-color: var(--dn-composite-panel-tabs-hover-color);
}
}
}
&-content {
width: 300px;
border-right: 1px solid var(--dn-panel-border-color);
background: var(--dn-composite-panel-tabs-content-bg-color);
display: flex;
flex-direction: column;
height: 100%;
box-sizing: content-box;
&.pinning {
position: absolute;
z-index: 1;
left: 100%;
top: 0;
border-right: 1px solid transparent;
box-shadow: -2px 5px 10px rgba(102, 102, 102, 0.42);
}
}
&-header {
padding: 14px 7px;
color: var(--dn-composite-panel-tabs-header-color);
line-height: 18px;
font-size: 16px;
border-bottom: 1px solid var(--dn-panel-border-color);
display: flex;
justify-content: space-between;
&-actions {
display: flex;
align-items: center;
& > * {
margin-right: 8px;
&:last-child {
margin-right: 0;
}
}
}
&-pin {
transition: all 0.15s ease-in-out;
&:hover {
transform: scale(1.1);
}
}
&-title {
font-size: 20px;
}
&-close {
transition: all 0.15s ease-in-out;
&:hover {
transform: rotate(90deg);
}
}
}
&-body {
flex-grow: 2;
flex-shrink: 2;
overflow: overlay;
overflow-x: hidden;
height: 100%;
}
}
&.direction-right {
flex-direction: row-reverse;
.@{prefix-cls}-composite-panel-tabs-pane.active:after {
left: auto;
right: -1px;
}
.@{prefix-cls}-composite-panel-tabs-content.pinning {
left: auto;
right: 100%;
top: 0;
}
.@{prefix-cls}-composite-panel-tabs-content {
border-right: none;
border-left: 1px solid var(--dn-panel-border-color);
}
.@{prefix-cls}-composite-panel-tabs {
border-left: 1px solid var(--dn-panel-border-color);
}
}
}
.@{prefix-cls}-workspace-panel {
display: flex;
flex-grow: 1;
flex-direction: column;
padding: 4px;
overflow: hidden;
box-sizing: border-box;
background-color: var(--dn-workspace-panel-bg-color);
position: relative;
z-index: 1;
&-item {
position: relative;
}
button[disabled] {
pointer-events: none ;
}
}
.@{prefix-cls}-settings-panel {
flex-grow: 0;
flex-shrink: 0;
position: relative;
display: flex;
flex-direction: column;
z-index: 2;
width: 300px;
background: var(--dn-composite-panel-tabs-content-bg-color);
border-left: 1px solid var(--dn-panel-border-color);
height: 100%;
box-sizing: content-box;
user-select: none;
&.pinning {
position: absolute;
z-index: 10;
top: 0;
right: 0;
box-shadow: 2px 5px 10px rgba(102, 102, 102, 0.52);
border-left: 1px solid transparent;
}
&-header {
padding: 14px 7px;
color: var(--dn-composite-panel-tabs-header-color);
line-height: 18px;
font-size: 16px;
border-bottom: 1px solid var(--dn-panel-border-color);
display: flex;
justify-content: space-between;
&-actions {
display: flex;
align-items: center;
& > * {
margin-right: 8px;
&:last-child {
margin-right: 0;
}
}
}
&-pin {
transition: all 0.15s ease-in-out;
&:hover {
transform: scale(1.1);
}
}
&-title {
font-size: 20px;
}
&-close {
transition: all 0.15s ease-in-out;
&:hover {
transform: rotate(90deg);
}
}
}
&-body {
flex-grow: 2;
flex-shrink: 2;
overflow: overlay;
height: 100%;
}
&-opener {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
z-index: 2;
background: var(--dn-composite-panel-tabs-content-bg-color);
border: 1px solid var(--dn-panel-border-color);
color: var(--dn-composite-panel-tabs-color);
box-shadow: 0 0 6px rgb(0 0 0 / 10%);
border-radius: 3px;
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
cursor: pointer;
.dn-icon {
transition: all 0.15s ease-in-out;
}
&:hover .dn-icon {
transform: rotate(45deg);
}
}
}