fix(sw): refine process header empty title states and UI guidance
- AI_GUIDE stage 5 "Header 전용 스타일의 적용 범위": header-only styles stay in the header (SW SWHeader / SWProcessHeader / SWViewerHeader, Web GNB / LNBMobileHeader / DashboardHeader); no header CSS or tokens on body UI, no global overrides, layout-only joins, package-shared tokens unchanged, whole-screen use only on explicit request. Synced to the 4 package copies; referenced from stage 6, SW and Web AI_USAGE §3 - SWProcessHeader: with documentTitle "" the file name keeps #AEDBCC on hover and a default cursor (root data-document-untitled). The button, focus and onDocumentClick are kept; a real file name keeps the yellow hover and pointer. Visual vs. click difference recorded as a UX item - Step enablement documented as implemented: only an explicit disabled (step, group, process, header) turns steps off; project / file state never does; selection is activeStepId + onStepSelect (also for host previous / next); no activeStepId and empty groups described - Regression check tests/process-header-states.check.mjs (15/15); typecheck:sw, build:sw, check:ai-docs pass; public-api keeps its 3 existing failures, none new
This commit is contained in:
1 parent
6c61edadc1
commit
0086d66a94
14 files changed
+177
-9
No files matched your search
@@ -52,10 +52,14 @@ export const SWProcessHeader = forwardRef<HTMLElement, SWProcessHeaderProps>(fun
|
||||
const captions = (["minimize", "maximize", "close"] as const).filter(id => !hidden.has(id))
|
||||
const windowShown = toolsShown || !hidden.has("windowMove") || captions.length > 0
|
||||
const documentEmpty = documentTitle === "" && !!documentEmptyLabel
|
||||
// No file yet (documentTitle ""): the file name does not look clickable (no hover color, default cursor). The button
|
||||
// and `onDocumentClick` stay as they were (2026-11-05: hosts may still listen to it); only the look changes.
|
||||
const documentUntitled = documentTitle === ""
|
||||
|
||||
return (
|
||||
<header ref={ref} className={`hm-sw-theme hm-sw-process-header${className ? ` ${className}` : ""}`}
|
||||
data-appearance={appearance === "multi" ? "multi" : undefined} data-document-empty={documentEmpty || undefined} {...rest}>
|
||||
data-appearance={appearance === "multi" ? "multi" : undefined} data-document-empty={documentEmpty || undefined}
|
||||
data-document-untitled={documentUntitled || undefined} {...rest}>
|
||||
<div className="hm-sw-process-header__bar">
|
||||
<SWHeaderHome logo={logoNode} logoSrc={logoSrc} logoAlt={logoAlt ?? logoText} onClick={onHomeClick} aria-expanded={homeMenuOpen} />
|
||||
<SWHeaderDocumentTitle title={documentEmpty ? documentEmptyLabel : documentTitle} onClick={onDocumentClick} />
|
||||
|
||||
@@ -470,7 +470,11 @@
|
||||
text-align: right;
|
||||
text-shadow: var(--hm-sw-header-label-outline);
|
||||
}
|
||||
.hm-sw-process-header[data-document-empty] .hm-sw-header__document-button:not(:hover) .hm-sw-header__document-name { color: var(--hm-sw-process-document-empty-color); }
|
||||
/* 2026-11-05: before a file exists (documentTitle "") the file name does not look clickable: the label keeps its color
|
||||
on hover (was #FFC600 like a file name) and the cursor stays default. Size, place, colors and the click are unchanged;
|
||||
a real file name keeps the SWHeader hover. */
|
||||
.hm-sw-process-header[data-document-empty] .hm-sw-header__document-button .hm-sw-header__document-name { color: var(--hm-sw-process-document-empty-color); }
|
||||
.hm-sw-process-header[data-document-untitled] .hm-sw-header__document-button { cursor: default; }
|
||||
|
||||
/* ---------- appearance="multi" (StrAna-SW multi step, Figma 873:16481 / 873:16254 / 873:17421) ----------
|
||||
Same markup and shared rules as the default; only sizes, the file name, the tool pill and the group content differ.
|
||||
|
||||
Reference in new issue
Block a user