feat: 라이트 모드 도입과 디자인 토큰 테마 분리 - #148
Open
eun-yeon wants to merge 11 commits into
Open
Conversation
Member
Author
|
리베이스 필수 |
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통과남은 것