Repository navigation
feat: 라이트 모드 도입과 디자인 토큰 테마 분리 - #148
Merged
Merged
Conversation
Member
Author
|
리베이스 필수 |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
main의 모듈 경계 분리·소스 구조 재편에 맞춰 PR 변경을 새 위치로 옮김 - 백엔드: UiTheme을 models/settings.rs로, window_theme.rs를 state/window/로 이동. 패널 창 테마·씨앗 색은 app_state/panel_runtime.rs, 설정 반영은 overlay_runtime.rs, 메인 창 ThemeChanged 처리는 lifecycle_runtime.rs, 메인 창 초기 반영은 app.rs에 적용. apply_patch_to_store 오류 전파는 history_restore.rs와 분리된 tests로 이관 - 토큰: main이 추가한 --z-chrome-drag, 토글 누름 배율, 탭 드래그 모션 토큰은 base.css, --ui-guide-activity, --ui-tab-socket-*는 dark.css/light.css에 라이트 값과 함께 추가 - main이 투명도 축소 글래스 폴백을 제거해 *-reduced 토큰과 해당 계약 테스트를 정리하고, glass·테마 파리티 계약 테스트를 __tests__/rendering으로 이동 - caption/handle 토큰 이관을 분리된 PluginSettingsForm, BatchPanelHeader, SingleMappingSection, CounterAnimation 하위 컴포넌트, GooeyThumb(color/), pluginSettingsDialogContent, GridSelectionOverlays에 다시 적용 - UpdateModal 접근성 이름은 main의 동일 수정과 테스트를 채택하고 중복 테스트 제거 - 2.0.0 릴리스 노트 크레딧은 main의 CHANGELOG 통합본과 수정본을 유지 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
분기 이후 main에 추가된 스프라이트 UI가 다크 전용 값을 써 라이트 캔버스에서 묻히던 부분 - 이미지 없는 스프라이트 자리표시자 기본색을 --ui-canvas-placeholder 토큰으로 교체 (다크 값은 기존과 동일, 라이트는 잉크 계열) - 자세 편집 팝업의 "키 요소 없음" 안내를 읽기용 caption 위계로 변경 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
테마 구독 effect가 redrawWaveformStatic을 의존성에서 빠뜨려 react-hooks 경고가 나던 부분. 함수가 바뀌면 구독을 다시 걸도록 의존성에 포함 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
dmn.settings.get/update가 다루는 SettingsState에 앱 UI 테마(system/light/dark)가 추가된 것을 en/ko 문서에 반영 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
#204가 #148보다 먼저 병합될 예정이라 최종 동기화를 한 번으로 끝내기 위해 함께 합침 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
개요
앱 UI에 라이트 모드를 넣음. 색을 반전한 것이 아니라 다크 팔레트의 실측 단차를 밝은 쪽에서 재현했고, 그 과정에서 토큰 체계를 테마별로 나눠 라이트 값 누락이 조용히 다크로 새지 않게 구조로 막음. 설정 미리보기 클립도 라이트 한 벌을 렌더해 붙임
변경 내용
토큰 구조
tokens.css를 배럴로 바꾸고tokens/{base,dark,light}.css3분할:root폴백으로 두지 않음. 라이트 토큰이 빠지면 미정의가 되어 즉시 드러나고, 세 창 html의data-theme정적 속성이 미정의를 막음:root:where([data-theme='...'])로 잡아 뒤에 주입되는 사용자 CSS의:root재정의와 특이도 동률 유지--ui-*가 양쪽에 존재함을 고정라이트 팔레트
면 관계를 다크 실측 ΔL*로 맞춤
--ui-fill-faint만 흰 알파를 쓰고, 조작면인--ui-fill계열은 라이트에서도 잉크가 늘어나는 방향을 유지brightness(>1)은 대응물이 아님. sRGB 곱연산이라 검정은 곱해도 검정이고 밝은 쪽만 먼저 포화하므로, 범위를 좁히는contrast(<1)항을 필터 체인에 추가--ui-fg-caption과 장식용--ui-fg-faint분리. 밝은 바탕에서는 대비비가 빠르게 압축돼 한 값으로 묶으면 앱 바닥의 작은 글자를 살릴 때 muted와 뭉침테마 전환
system,light,dark3단이고 기본값은system백엔드
ui_theme스칼라 설정. 프리셋 화이트리스트와 히스토리 스냅샷에서 제외해 프리셋 로드와 Undo가 테마를 건드리지 않음set_theme. 메인과 분리 패널만 적용하고 투명 창인 오버레이는 제외설정 미리보기 클립
.gitignore규약대로 로컬 전용이라 결과 mp4만 포함접근성
ariaLabel을 필수 prop으로 만들어 누락을 컴파일 단계에서 막음검증
cargo check, clippy,cargo fmt --check통과남은 것