v4:코드모듈화_20260123

This commit is contained in:
2026-02-20 11:34:02 +09:00
parent a990081287
commit 17e639ed40
24 changed files with 5412 additions and 1054 deletions

View File

@@ -5,12 +5,25 @@
padding: 8px 12px;
background: var(--ui-panel);
border-bottom: 1px solid var(--ui-border);
gap: 4px;
gap: 6px;
flex-wrap: wrap;
}
.format-bar.active { display: flex; }
/* 편집 바 2줄 구조 */
.format-row {
display: flex;
align-items: center;
gap: 6px;
width: 100%;
}
.format-row:first-child {
border-bottom: 1px solid var(--ui-border);
padding-bottom: 8px;
}
.format-btn {
padding: 6px 10px;
background: none;
@@ -61,6 +74,26 @@
.format-btn:hover .tooltip { opacity: 1; }
/* 페이지 버튼 스타일 */
.format-btn.page-btn {
padding: 6px 12px;
font-size: 12px;
white-space: nowrap;
flex-shrink: 0;
min-width: fit-content;
}
/* 페이지 브레이크 표시 */
.page-break-forced {
border-top: 3px solid #e65100 !important;
margin-top: 10px;
}
.move-to-prev-page {
border-top: 3px dashed #1976d2 !important;
margin-top: 10px;
}
/* 색상 선택기 */
.color-picker-btn {
position: relative;
@@ -185,6 +218,65 @@
animation: toastIn 0.3s ease, toastOut 0.3s ease 2.7s forwards;
}
.resizable-container { position: relative; display: inline-block; max-width: 100%; }
.resizable-container.block-type { display: block; }
.resize-handle {
position: absolute;
right: -2px;
bottom: -2px;
width: 18px;
height: 18px;
background: #00C853;
cursor: se-resize;
opacity: 0;
transition: opacity 0.2s;
z-index: 100;
border-radius: 3px 0 3px 0;
display: flex;
align-items: center;
justify-content: center;
}
.resize-handle::after {
content: '⤡';
color: white;
font-size: 12px;
font-weight: bold;
}
.resizable-container:hover .resize-handle { opacity: 0.8; }
.resize-handle:hover { opacity: 1 !important; transform: scale(1.1); }
.resizable-container.resizing { outline: 2px dashed #00C853 !important; }
.resizable-container.resizing .resize-handle { opacity: 1; background: #FF9800; }
/* 표 전용 */
.resizable-container.table-resize .resize-handle { background: #2196F3; }
.resizable-container.table-resize.resizing .resize-handle { background: #FF5722; }
/* 이미지 전용 */
.resizable-container.figure-resize img { display: block; }
/* 크기 표시 툴팁 */
.size-tooltip {
position: absolute;
bottom: 100%;
right: 0;
background: rgba(0,0,0,0.8);
color: white;
padding: 2px 6px;
border-radius: 3px;
font-size: 10px;
white-space: nowrap;
opacity: 0;
transition: opacity 0.2s;
pointer-events: none;
}
.resizable-container:hover .size-tooltip,
.resizable-container.resizing .size-tooltip { opacity: 1; }
@keyframes toastIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }