- integration/ui-kit.ts: document 없을 때 injectBaseStyles 안 부름(vitest ime-sink 깨짐) · ui_template_list_row.css 실음(블록 이름 줄 = ui-sidebar-row) - 블록 라이브러리 [파일로 내보내기] [파일에서 가져오기] = 글 12 로 한 줄에 둘이 안 들어가 줄을 넘김(글 자르지 않음) - resources/tester/test_553_6_cad_parts.py: 부품 클래스 · 확인창(window.confirm · prompt 0) · 부품 CSS 먼저 · 날 색 · 보라 별칭 · 옛 자체 단추 규칙 없음 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
331 lines
8.0 KiB
CSS
331 lines
8.0 KiB
CSS
/* 도면층 행: 이름은 줄여 담고 아이콘은 줄이지 않는다. 이름이 안 줄면 오른쪽 아이콘이
|
|
행 밖으로 밀려 잘린다 (2026-09-01 실측: 내용 237~286px / 보이는 폭 229px). */
|
|
.cad-layer-manager .layer > button > span {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
.cad-layer-manager .layer > button > div {
|
|
flex-shrink: 0;
|
|
}
|
|
/* 행 안의 아이콘 버튼은 여백을 줄여 이름 몫을 남긴다 — 아이콘 6개가 한 행을 다 먹었다. */
|
|
.cad-layer-manager .layer > button [data-size="small"] {
|
|
padding-left: 2px;
|
|
padding-right: 2px;
|
|
min-width: 0;
|
|
}
|
|
/* 도면층 버튼 — 목록 줄 부품(`ui-sidebar-row`) 꼴 · 상태는 Button이 붙이는 data-* 속성으로 가른다. */
|
|
.cad-layer-manager button[data-type="regular"] {
|
|
background: transparent;
|
|
color: var(--color-text-body);
|
|
}
|
|
.cad-layer-manager button[data-type="transparent"] {
|
|
background: transparent;
|
|
color: var(--color-text-secondary);
|
|
}
|
|
.cad-layer-manager button:hover {
|
|
background: var(--color-hover);
|
|
color: var(--color-text);
|
|
}
|
|
.cad-layer-manager button[data-active="true"] {
|
|
background: var(--color-accent-soft);
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.cad-view-controls {
|
|
position: fixed;
|
|
z-index: 3;
|
|
right: 14px;
|
|
bottom: calc(var(--cad-command-height) + var(--cad-status-height) + 14px);
|
|
display: flex;
|
|
align-items: center;
|
|
overflow: hidden;
|
|
border: 1px solid var(--cad-line);
|
|
border-radius: var(--radius-buttons);
|
|
background: var(--cad-chrome-raised);
|
|
box-shadow: var(--shadow-lg);
|
|
}
|
|
/* 오토캐드 파일 끌어다 놓기 안내 — 캔버스 오른쪽 위 흐린 글씨(빠른 특성 창이 뜨면 그 아래로 가려짐) */
|
|
.cad-drop-hint {
|
|
position: fixed;
|
|
z-index: 2;
|
|
top: calc(var(--cad-title-height) + var(--cad-ribbon-height) + 8px);
|
|
right: 14px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
gap: 2px;
|
|
white-space: nowrap;
|
|
padding: 2px 4px;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--cad-text-muted);
|
|
font-size: 11px;
|
|
text-align: right;
|
|
opacity: 0.55;
|
|
cursor: pointer;
|
|
}
|
|
.cad-drop-hint:hover {
|
|
opacity: 1;
|
|
}
|
|
.cad-drop-hint__steps {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
color: var(--cad-text-dim);
|
|
font-size: 10px;
|
|
}
|
|
/* 파일을 끄는 동안 — 화면 가장자리 흐린 테두리(`dxf-clip-paste.ts`) */
|
|
body.cad-file-dragging::after {
|
|
content: '';
|
|
position: fixed;
|
|
z-index: 50;
|
|
inset: 6px;
|
|
border: 2px dashed var(--cad-accent);
|
|
border-radius: 6px;
|
|
opacity: 0.6;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* 단추 = 아이콘 단추 부품(단 32) · 여기는 배율 글만 */
|
|
.cad-view-controls span {
|
|
min-width: 48px;
|
|
color: var(--cad-text-dim);
|
|
font-size: 10px;
|
|
text-align: center;
|
|
}
|
|
|
|
/* 하단 명령어 입력창은 숨김 처리 (마우스 커서 단축키 입력으로 대체) */
|
|
.cad-command-area {
|
|
position: fixed;
|
|
z-index: 3;
|
|
right: 0;
|
|
bottom: var(--cad-status-height);
|
|
left: var(--cad-panel-width);
|
|
height: var(--cad-command-height);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
padding: 6px 10px;
|
|
background: var(--cad-chrome);
|
|
border-top: 1px solid var(--cad-line);
|
|
}
|
|
.cad-command-history {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
justify-content: flex-end;
|
|
overflow: hidden;
|
|
color: var(--cad-text-muted);
|
|
font: 11px Consolas, monospace;
|
|
}
|
|
/* 꼴 = 메뉴 부품(`ui-ctx-menu`) · 여기는 자리와 명령 글꼴만 */
|
|
.cad-command-suggestions {
|
|
position: absolute;
|
|
z-index: 6;
|
|
bottom: 100%;
|
|
left: 10px;
|
|
min-width: 220px;
|
|
}
|
|
.cad-command-suggestions > .ui-ctx-menu__item {
|
|
font: 12px Consolas, monospace;
|
|
}
|
|
.cad-prop--wide select {
|
|
min-width: 132px;
|
|
}
|
|
.cad-command-prompt {
|
|
max-width: 42%;
|
|
overflow: hidden;
|
|
color: var(--cad-text-dim);
|
|
font-size: 11px;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
.cad-command-area form {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
height: 28px;
|
|
}
|
|
.cad-command-area label {
|
|
color: var(--color-text);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
}
|
|
/* 명령 칸 = CAD 고유 꼴(토큰만) · 높이 = 크기 단 28 */
|
|
.cad-command-area input {
|
|
flex: 1;
|
|
height: 28px;
|
|
padding: 0 8px;
|
|
border: 1px solid var(--cad-line);
|
|
border-radius: var(--radius-buttons);
|
|
outline: none;
|
|
background: var(--cad-chrome-sunken);
|
|
color: var(--cad-text);
|
|
font: 11px Consolas, monospace;
|
|
}
|
|
.cad-command-area input:focus {
|
|
border-color: var(--color-focus-ring);
|
|
box-shadow: 0 0 0 1px var(--color-focus-ring);
|
|
}
|
|
|
|
.cad-statusbar {
|
|
position: fixed;
|
|
z-index: 3;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
height: var(--cad-status-height);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
padding: 0 8px;
|
|
background: var(--cad-chrome);
|
|
border-top: 1px solid var(--cad-line);
|
|
}
|
|
/* 켜기 = 켜기 칩 부품(`ui-toggle--chip` · 단 22) */
|
|
.cad-statusbar__hint {
|
|
margin-left: auto;
|
|
color: var(--cad-text-muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
@media (max-width: 800px) {
|
|
:root {
|
|
--cad-panel-width: 200px;
|
|
}
|
|
.cad-statusbar__hint {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* 특성 팔레트 — 값을 바로 고치는 입력들 */
|
|
.cad-properties-editor {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 7px;
|
|
}
|
|
.cad-properties-editor__title {
|
|
color: var(--color-text);
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
}
|
|
.cad-properties-editor label {
|
|
display: grid;
|
|
grid-template-columns: 72px 1fr;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 11px;
|
|
color: var(--cad-text-dim);
|
|
}
|
|
/* 칸 = 크기 단 24(둥글기 6) · 토큰만 */
|
|
.cad-properties-editor select,
|
|
.cad-properties-editor input {
|
|
height: 24px;
|
|
min-width: 0;
|
|
padding: 0 4px;
|
|
border: 1px solid var(--cad-line);
|
|
border-radius: 6px;
|
|
background: var(--cad-chrome-sunken);
|
|
color: var(--cad-text);
|
|
font-size: 11px;
|
|
}
|
|
.cad-properties-editor__readout {
|
|
margin: 6px 0 0;
|
|
border-top: 1px solid var(--cad-line);
|
|
}
|
|
.cad-properties-editor__readout div {
|
|
display: grid;
|
|
grid-template-columns: 72px 1fr;
|
|
padding: 5px 0;
|
|
border-bottom: 1px solid var(--cad-line);
|
|
font-size: 11px;
|
|
}
|
|
.cad-properties-editor__readout dt {
|
|
color: var(--cad-text-dim);
|
|
}
|
|
.cad-properties-editor__readout dd {
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: var(--cad-text);
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
|
|
/* 빠른 특성 · 블록 라이브러리 — 꼴 = 떠 있는 판 부품(`ui-float-panel`) · 여기는 자리 · 폭만 */
|
|
.cad-quick-properties,
|
|
.cad-block-library {
|
|
position: fixed;
|
|
z-index: 5;
|
|
top: calc(var(--cad-title-height) + var(--cad-ribbon-height) + 12px);
|
|
right: 14px;
|
|
width: 240px;
|
|
}
|
|
|
|
/* 블록 라이브러리 팔레트 (INSERT/BLOCK) */
|
|
.cad-block-library__list {
|
|
max-height: 220px;
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow-y: auto;
|
|
list-style: none;
|
|
}
|
|
.cad-block-library__list li {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
}
|
|
/* 블록 줄 = 목록 줄 부품(`ui-sidebar-row`) · 지우기 = 아이콘 단추 부품(단 20) · 여기는 줄 폭만 */
|
|
.cad-block-library__name {
|
|
flex: 1;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
/* 단추 = 단추 부품(보조 · 단 24) · 여기는 폭 나눔만 — 글 12 로 한 줄에 둘이 안 들어가면 줄을 넘김 */
|
|
.cad-block-library__actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
margin-top: 8px;
|
|
}
|
|
.cad-block-library__actions > .ui-btn {
|
|
flex: 1 1 auto;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* 도각 자리표 패널 — 도각 편집으로 도면을 실었을 때만 뜬다 (2026-09-06 사용자 지시로
|
|
부모 사이드바에서 캐드 안으로 옮김). 꼴 = 떠 있는 판 부품(`ui-float-panel`) · 여기는 자리 · 폭 · 줄 배치만. */
|
|
.cad-frame-tokens {
|
|
position: fixed;
|
|
/* 오른쪽 위는 진행단계 패널이 쓴다 — 아래쪽(상태막대·명령행 위)에 붙인다. */
|
|
right: 12px;
|
|
bottom: calc(var(--cad-status-height) + var(--cad-command-height) + 8px);
|
|
z-index: 3;
|
|
max-height: 46vh;
|
|
width: 236px;
|
|
}
|
|
|
|
.cad-frame-tokens__body {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.cad-frame-tokens__group {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 4px;
|
|
align-items: center;
|
|
}
|
|
|
|
.cad-frame-tokens__title {
|
|
width: 100%;
|
|
}
|
|
|
|
/* 자리표 칸 크기 입력 (2026-09-06) — 칸 = 입력 부품(단 24) */
|
|
.cad-frame-tokens__size > .ui-input {
|
|
width: 64px;
|
|
}
|