style(control-center): 모드 선택 pill로 교체하고 패널 바디로 재배치

맥락:
- Quick Controls 헤더의 모드 토글이 대시보드형 느낌을 만들어 감성 톤을 해치고 있었습니다.

변경사항:
- Control Center 헤더에서는 모드 조작 UI를 제거하고 Plan Pill + 닫기만 유지했습니다.
- 패널 바디 첫 섹션에 기본/몰입 segmented pill을 배치하고, 선택 상태에 따라 저자극 스타일을 적용했습니다.
- 모드 설명 1줄(기본: 모든 컨트롤 표시, 몰입: 필수만 남기고 숨김)을 추가했습니다.
- 모드 상태를 workspace -> tools-dock -> focus-hud 경로로 연결해 HUD 톤 반영을 유지했습니다.

검증:
- npx tsc --noEmit

세션-상태: Quick Controls 헤더가 깔끔해지고 모드 선택이 패널 바디에서 동작합니다.
세션-다음: Scene 추천 매핑 품질 점검과 override UX 검증을 진행합니다.
세션-리스크: 모드 설명 문구의 톤/길이는 실제 사용성 테스트에서 추가 미세조정이 필요할 수 있습니다.
This commit is contained in:
2026-03-05 14:08:09 +09:00
parent a4f6a119aa
commit e9e6006513
4 changed files with 52 additions and 1 deletions

View File

@@ -167,6 +167,7 @@ export const SpaceWorkspaceWidget = () => {
);
const [workspaceMode, setWorkspaceMode] = useState<WorkspaceMode>('setup');
const [isImmersionMode, setImmersionMode] = useState(false);
const [selectedRoomId, setSelectedRoomId] = useState(initialRoomId);
const [selectedTimerLabel, setSelectedTimerLabel] = useState(initialTimerLabel);
const [goalInput, setGoalInput] = useState(initialGoal);
@@ -377,6 +378,7 @@ export const SpaceWorkspaceWidget = () => {
goal={goalInput.trim()}
timerLabel={selectedTimerLabel}
visible={isFocusMode}
isImmersionMode={isImmersionMode}
statusLine={activeStatus}
onStatusAction={runActiveAction}
onStatusMessage={pushStatusLine}
@@ -405,6 +407,8 @@ export const SpaceWorkspaceWidget = () => {
onSetSoundVolume={setMasterVolume}
isSoundMuted={isMuted}
onSetSoundMuted={setMuted}
isImmersionMode={isImmersionMode}
onImmersionModeChange={setImmersionMode}
onCaptureThought={(note) => addThought(note, selectedRoom.name)}
onDeleteThought={removeThought}
onSetThoughtCompleted={setThoughtCompleted}