feat(공통): 352-4 ☰ 를 좌측 패널 제목 앞 칸 모양으로 · 서랍 로고 우측 · 프로젝트 이름 우측 끝

- 패널 펼침 동안 ☰ 테두리 · 바탕 · 그림자 없음(자리 8,8 · 36 그대로 · 레이아웃 불변) · 접으면 떠 있는 단추
- 서랍 첫 줄 AISLO 로고 · 이름 우측 맞춤 · 패널 제목 줄 프로젝트 이름 margin-left auto
- 시험 test_device_drawer 글 시험 추가

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
This commit is contained in:
2026-10-16 20:45:06 +09:00
co-authored by Claude Sonnet 5.5
parent 3d24a741c7
commit 25830f4a54
3 changed files with 33 additions and 1 deletions
+11 -1
View File
@@ -525,6 +525,16 @@ html.is-bm-route .app-burger {
box-shadow: var(--shadow-lg);
}
html.is-bm-route[data-touch="on"] .app-burger { min-height: 44px; }
/* 좌측 패널이 펼쳐진 동안 ☰ 는 패널 제목 줄 앞 칸에 든 모양(테두리 · 바탕 · 그림자 없음 · 자리 그대로) —
패널을 접으면 떠 있는 단추(위 규칙)로 돌아감(352-4) */
html.is-bm-route:has(.ui-workflow-overlay__panel--title:not(.is-collapsed)) .app-burger {
border-color: transparent;
background: transparent;
box-shadow: none;
}
html.is-bm-route:has(.ui-workflow-overlay__panel--title:not(.is-collapsed)) .app-burger:hover {
background: color-mix(in srgb, var(--color-text) 10%, transparent);
}
html.is-bm-route .app-header.is-drawer-open .app-drawer {
left: 0;
right: auto;
@@ -535,7 +545,7 @@ html.is-bm-route .app-drawer__brand {
min-height: 44px;
padding-left: calc(var(--app-burger-inset) - var(--spacing-16));
}
html.is-bm-route .app-drawer__brand .app-brand { align-self: flex-start; }
html.is-bm-route .app-drawer__brand .app-brand { align-self: flex-end; }
`;
export function injectShellStyles(): void {
+21
View File
@@ -6,6 +6,8 @@
③ 휴대폰 · 공개 쪽(A01) = 위 줄 그대로(본문 위 끝 64) · ☰ 는 위 줄 오른쪽
④ 데스크탑(1440 · 마우스) · 로그인 뒤 B 쪽 = 위 줄 걷힘 · ☰ 왼쪽 위 36×36 · 진행 판 없음 · 위 줄 항목이 모두 서랍에 · Esc 로 닫힘
⑤ 데스크탑 · 공개 쪽(A01) = 위 줄 그대로 · ☰ 없음
⑥ (352-4) 좌측 패널이 펼쳐진 동안 ☰ 는 제목 줄 앞 칸에 든 모양(테두리 · 바탕 · 그림자 없음 · 자리 8,8 그대로)
· 접으면 떠 있는 단추 · 서랍 첫 줄 로고 우측 · 프로젝트 이름 우측 끝 — 글로 봄(서버 없이)
"""
import json
@@ -131,3 +133,22 @@ def test_drawer_holds_steps_and_header_folds():
assert desk.evaluate(OUTLET_TOP) == 64
assert not desk.evaluate("document.querySelector('.app-burger').getClientRects().length")
browser.close()
def test_352_4_burger_in_panel_title_row_text():
root = Path(__file__).resolve().parents[2]
shell = (root / "A00_Common/app_shell.ts").read_text(encoding="utf-8")
open_panel = (
"html.is-bm-route:has(.ui-workflow-overlay__panel--title:not(.is-collapsed)) .app-burger {"
)
assert open_panel in shell # 패널 펼침 = 제목 줄에 든 모양
body = shell.split(open_panel, 1)[1].split("}", 1)[0]
for line in ("border-color: transparent;", "background: transparent;", "box-shadow: none;"):
assert line in body
# 자리(8,8 · 36)는 그대로 — 접으면 아래 기본 규칙(떠 있는 단추)으로 돌아감
base = shell.split("html.is-bm-route .app-burger {", 1)[1].split("}", 1)[0]
assert "position: fixed;" in base and "left: var(--spacing-8);" in base
assert "html.is-bm-route .app-drawer__brand .app-brand { align-self: flex-end; }" in shell
overlay = (root / "ui_template/ui_template_overlay.css").read_text(encoding="utf-8")
project = overlay.split(".ui-workflow-overlay__project {", 1)[1].split("}", 1)[0]
assert "margin-left: auto;" in project
+1
View File
@@ -131,6 +131,7 @@
.ui-workflow-overlay__project {
flex: 0 1 auto;
margin-left: auto;
max-width: 60%;
min-width: 0;
overflow: hidden;