118 lines
2.5 KiB
CSS
118 lines
2.5 KiB
CSS
/* *********************************************** */
|
|
/* *************** Panel Component *************** */
|
|
/* *********************************************** */
|
|
|
|
.mf-panel {
|
|
display: flex;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
position: relative;
|
|
}
|
|
|
|
/* Common properties for side panels */
|
|
.mf-panel-left,
|
|
.mf-panel-right {
|
|
position: relative;
|
|
flex-shrink: 0;
|
|
width: 250px;
|
|
min-width: 150px;
|
|
max-width: 500px;
|
|
height: 100%;
|
|
overflow: auto;
|
|
transition: width 0.3s ease, min-width 0.3s ease, max-width 0.3s ease;
|
|
padding-top: 25px;
|
|
}
|
|
|
|
/* Left panel specific */
|
|
.mf-panel-left {
|
|
border-right: 1px solid var(--color-border-primary);
|
|
}
|
|
|
|
/* Right panel specific */
|
|
.mf-panel-right {
|
|
border-left: 1px solid var(--color-border-primary);
|
|
padding-left: 0.5rem;
|
|
}
|
|
|
|
.mf-panel-main {
|
|
flex: 1;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
min-width: 0; /* Important to allow the shrinking of flexbox */
|
|
}
|
|
|
|
/* Hidden state - common for both panels */
|
|
.mf-panel-left.mf-hidden,
|
|
.mf-panel-right.mf-hidden {
|
|
width: 0;
|
|
min-width: 0;
|
|
max-width: 0;
|
|
overflow: hidden;
|
|
border: none;
|
|
padding: 0;
|
|
}
|
|
|
|
/* No transition during manual resize - common for both panels */
|
|
.mf-panel-left.no-transition,
|
|
.mf-panel-right.no-transition {
|
|
transition: none;
|
|
}
|
|
|
|
/* Common properties for panel toggle icons */
|
|
.mf-panel-hide-icon,
|
|
.mf-panel-show-icon {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
cursor: pointer;
|
|
z-index: 10;
|
|
border-radius: 0.25rem;
|
|
}
|
|
|
|
.mf-panel-hide-icon:hover,
|
|
.mf-panel-show-icon:hover {
|
|
background-color: var(--color-bg-hover, rgba(0, 0, 0, 0.05));
|
|
}
|
|
|
|
/* Show icon positioning */
|
|
.mf-panel-show-icon-left {
|
|
left: 0.5rem;
|
|
}
|
|
|
|
.mf-panel-show-icon-right {
|
|
right: 0.5rem;
|
|
}
|
|
|
|
/* Panel with title - grid layout for header + scrollable content */
|
|
.mf-panel-body {
|
|
display: grid;
|
|
grid-template-rows: auto 1fr;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.mf-panel-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 0.25rem 0.5rem;
|
|
background-color: var(--color-base-200);
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
/* Override absolute positioning for hide icon when inside header */
|
|
.mf-panel-header .mf-panel-hide-icon {
|
|
position: static;
|
|
}
|
|
|
|
.mf-panel-content {
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* Remove padding-top when using title layout */
|
|
.mf-panel-left.mf-panel-with-title,
|
|
.mf-panel-right.mf-panel-with-title {
|
|
padding-top: 0;
|
|
}
|