rojects/source/components/page-editor-panel/page-editor-panel.css

214 lines
4.9 KiB
CSS

page-editor-panel {
display: flex;
flex-direction: column;
height: 100%;
background: #0f1117;
position: relative;
}
/* ── Toolbar ─────────────────────────────────────────────────────────────── */
.pep-toolbar {
display: flex;
align-items: center;
gap: 4px;
padding: 4px 8px;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
flex-shrink: 0;
overflow-x: auto;
}
.pep-toolbar button:not(.pep-fmt-btn) {
padding: 3px 10px;
background: transparent;
border: 1px solid #2a2d3a;
border-radius: 4px;
color: #9ba4c7;
cursor: pointer;
font-size: 0.8rem;
font-family: inherit;
flex-shrink: 0;
}
.pep-toolbar button:not(.pep-fmt-btn):hover:not(:disabled) { background: #1a1d27; color: #e2e4ed; }
.pep-toolbar button:not(.pep-fmt-btn):disabled { opacity: 0.3; cursor: default; }
.pep-save:not(:disabled) { border-color: #7c8cff; color: #7c8cff; }
.pep-save:not(:disabled):hover { background: #1e2235 !important; }
.pep-pin.pinned { border-color: #f0a050; color: #f0a050; }
.pep-pin.pinned:hover { background: #1e1a10 !important; }
.pep-toolbar-sep {
flex: 1;
min-width: 4px;
}
/* ── Icon + label buttons ────────────────────────────────────────────────── */
.pep-fmt-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 3px;
padding: 5px 8px;
background: transparent;
border: 1px solid transparent;
border-radius: 4px;
color: #9ba4c7;
cursor: pointer;
font-family: inherit;
flex-shrink: 0;
}
.pep-fmt-btn:hover { background: #1a1d27; border-color: #2a2d3a; color: #e2e4ed; }
.pep-btn-icon {
width: 24px;
height: 24px;
display: block;
opacity: 0.55;
flex-shrink: 0;
}
.pep-fmt-btn:hover .pep-btn-icon { opacity: 0.9; }
.pep-btn-label {
font-size: 10px;
font-weight: 600;
letter-spacing: 0.04em;
line-height: 1;
text-transform: uppercase;
white-space: nowrap;
}
.pep-fmt-sep {
width: 1px;
height: 36px;
background: #2a2d3a;
align-self: center;
margin: 0 2px;
flex-shrink: 0;
}
/* ── Floating block menu ─────────────────────────────────────────────────── */
.pep-block-menu {
position: absolute;
z-index: 100;
background: #13151f;
border: 1px solid #2a2d3a;
border-radius: 6px;
padding: 8px;
padding-top: 28px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
min-width: 180px;
}
.pep-block-menu-close {
position: absolute;
top: 5px;
right: 6px;
background: transparent;
border: none;
color: #555;
cursor: pointer;
font-size: 0.75rem;
padding: 2px 5px;
border-radius: 3px;
line-height: 1;
}
.pep-block-menu-close:hover { color: #e2e4ed; background: #1a1d27; }
/* ── Block list (used inside floating menu) ──────────────────────────────── */
.pep-block-list {
display: flex;
flex-direction: row;
gap: 8px;
overflow-x: auto;
padding-bottom: 2px;
}
.pep-block-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
cursor: pointer;
padding: 4px;
border: 1px solid #2a2d3a;
border-radius: 4px;
flex-shrink: 0;
}
.pep-block-item:hover { border-color: #7c8cff; background: #1a1d27; }
.pep-block-preview {
width: 88px;
height: 44px;
background: #1a1d27;
border-radius: 2px;
display: flex;
align-items: stretch;
padding: 5px;
box-sizing: border-box;
gap: 4px;
}
.pbp-full { display: flex; flex: 1; }
.pbp-two-col { display: flex; flex: 1; gap: 4px; }
.pbp-area { flex: 1; background: #3a3d4a; border-radius: 2px; }
.pep-block-text-preview {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.65rem;
color: #9ba4c7;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.pep-block-name {
font-size: 0.7rem;
color: #9ba4c7;
white-space: nowrap;
}
/* ── Drag bar ────────────────────────────────────────────────────────────── */
.pep-drag-bar {
position: absolute;
left: 8px;
right: 8px;
height: 3px;
background: #7c8cff;
border-radius: 2px;
pointer-events: none;
z-index: 50;
box-shadow: 0 0 8px rgba(124, 140, 255, 0.55);
}
/* ── Content area ────────────────────────────────────────────────────────── */
.pep-empty {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
color: #555;
font-size: 0.9rem;
}
.pep-frame {
flex: 1;
border: none;
background: #fff;
width: 100%;
}