You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
selectableGroup과 gray5 적용은 #1645/#1647로 이미 반영됐다. 남은 비선택 탭 대비는 기존 실측상 2.567:1이다. 기존 A/B 중 한 색을 고르는 구현·골든 갱신 예약을 제거한다.
PM 확인이 필요한 결정
접근성 기준을 충족할 색과 선택/비선택 구분 방식을 PM에게 확인한다. 기존 시안 유지와 gray7 치환만을 강제된 두 선택지로 취급하지 않는다. 디자이너에게 별도로 묻지 않는다.
완료 기준
PM의 명시적인 답변과 적용 범위·근거 링크를 기록한다. 답변 전에는 구현·재개·테스트 완료 체크리스트를 예약하지 않는다. 결정 후 최신 코드와 계약을 대조해 실제 필요한 작업만 정의한다. 디자이너에게 질문하거나 태그하지 않으며, 미답변이나 과거 FE 재량 위임을 승인으로 해석하지 않는다.
정리 근거
2026-09-13 사용자 요청에 따라 미확정 구현 예약을 제거했다. 기능 구현 완료를 의미하지 않는다. 기존 댓글의 실측은 참고 자료이며, 상충하는 옛 구현 지시는 현재 범위를 대체하지 않는다.
본문이 「시안의 실제 색값을 확인하고, 기준 미달이면 대체 색을 디자이너와 정한 뒤 바꾼다」로 남겨 둔 자리를 실측했습니다. 정본 페이지 4327:43064 를 REST 로 받아 카테고리 탭 텍스트 노드 63건의 fills 를 전수로 읽었습니다.
코드
시안 (tab btn · tab/2 컴포넌트)
선택 탭
gray7
#1F1F1F
비선택 탭
gray4 = #BDBDBD
#A0A0A0
코드가 시안보다 더 흐립니다. 대비를 sRGB 상대휘도로 계산하면:
색
on gray1 (#FAFAFA)
on 순백 (#FFFFFF)
코드 #BDBDBD
1.80:1
1.88:1
시안 #A0A0A0
2.51:1
2.61:1
(참고: 시안 선택 탭 #1F1F1F 는 15.79:1)
그래서 ②가 실은 두 건입니다
시안 미준수 — FE 재량입니다. 비선택 탭을 #A0A0A0 로 맞추는 데는 디자이너에게 물을 것이 없습니다. 시안이 이미 그 값이고 코드가 안 따르고 있을 뿐입니다. 대비도 1.80 → 2.51 로 올라갑니다. ①(selectableGroup) PR 위에 스택으로 올려 이 이슈에서 함께 닫겠습니다 — 같은 파일이라 형제로 두면 충돌합니다.
접근성 기준 미달 — 디자이너 결정이 그대로 남습니다.#A0A0A0 로 맞춰도 2.51:1 이라 14sp 일반 텍스트의 WCAG AA 4.5:1 에는 못 미칩니다. 「비선택 탭은 흐리게」가 의도된 위계인지, 4.5:1 을 넘기는 대체 색으로 갈지가 물어야 할 것입니다. 시안 색을 그대로 옮겨도 기준을 못 넘는다는 사실 자체가 질의의 재료입니다.
이 이슈는 2번이 닫힐 때까지 열어 둡니다. ①과 1번을 닫는 PR 은 Refs 로 겁니다.
토큰 경계
본문이 지적한 대로 gray4 는 core 토큰이라 값을 갈면 다른 모듈까지 끌고 갑니다. #A0A0A0 는 현재 core 팔레트에 없는 값이라, 애프터노트 쪽 사용처만 새 토큰으로 옮기는 쪽이 경계가 깔끔하다는 본문 판단이 그대로 유효합니다.
앞 코멘트에서 「#A0A0A0 는 core 팔레트에 없는 값이라 새 토큰이 필요하다」고 적었는데, 팔레트를 실제로 재 보니 gray5 로 닫힙니다.
토큰
값
on gray1 (#FAFAFA)
gray4 (현재 코드)
#BDBDBD
1.800:1
시안 tab btn 비선택
#A0A0A0
2.505:1
gray5
#9E9E9E
2.567:1
gray6
#757575
4.414:1 ← AA 에 0.086 모자람
gray7
#616161
5.934:1 ← AA 통과
시안 #A0A0A0 와 gray5 #9E9E9E 는 채널 차가 2/255(0.8%) 입니다. 육안으로 구분되지 않고 대비도 시안보다 오히려 미세하게 높습니다. 애프터노트 전용 토큰을 새로 만들 이유가 없습니다 — gray4 → gray5 한 줄이면 「시안대로」가 닫히고 core 팔레트 밖으로 나가지도 않습니다.
그래서 디자이너에게 물을 것이 구체적으로 정해집니다
팔레트 안에서 AA 4.5:1 을 넘기는 가장 밝은 회색은 gray7 입니다. gray6 은 4.414:1 로 0.086 차이로 미달이라 쓸 수 없습니다. 즉 선택지가 둘뿐입니다.
A. gray5 — 시안 색 그대로(2.57:1). 「비선택은 흐리게」라는 위계를 유지하되 AA 미달을 감수.
B. gray7 — AA 통과(5.93:1). 다만 선택 탭이 쓰는 색과 같아져 선택/비선택 구분이 굵기·밑줄에만 남습니다.
중간값이 없다는 것이 이 질의의 핵심입니다. 「조금 더 진하게」로는 안 되고, 위계를 지키느냐 기준을 넘기느냐를 골라야 합니다. B 를 고르면 선택 상태를 무엇으로 구분할지가 따라옵니다.
gray4 → gray5 는 시안 준수라 FE 재량으로 먼저 닫고, 그 위에서 A/B 를 묻는 것이 순서로 맞다고 봅니다.
AfternoteTypeFilterRow 의 탭을 감싸는 안쪽 Row 에 .selectableGroup() 이 걸려 있습니다(바깥 Row 는 화살표 힌트를 품고 있어 거기가 아닙니다).
회귀 가드도 살아 있습니다 — AfternoteCategoryRowInteractionTest 의 카테고리 탭 행은 선택 그룹 semantics를 노출한다. 이번에 돌려 확인했습니다: 2 tests, 0 failures, 0 errors.
비선택 탭 색은 AfternoteDesign.colors.gray5 입니다.
그래서 본문 ②의 수치가 갱신됩니다
제목과 본문이 적은 1.8:1 은 더 이상 현행이 아닙니다.gray5(#9E9E9E) on gray1(#FAFAFA) 를 다시 재면 2.567:1 입니다(sRGB 상대휘도 직접 계산). 종전 gray4(#BDBDBD) 의 1.800:1 에서 올라왔지만, 완료 조건인 4.5:1 에는 여전히 못 미칩니다.
남은 하나 — 답이 오지 않았습니다
앞 코멘트에서 양자택일로 좁혀 둔 질의(A. gray5 유지 — 위계 유지·AA 미달 2.57:1 / B. gray7 — AA 통과 5.93:1·다만 선택 탭과 같은 색)에 8월 31일 이후 답이 없습니다. 팔레트에 중간값이 없어(gray6 은 4.414:1 로 0.086 모자람) FE 가 고를 수 있는 제3안이 없고, 본문이 「②는 FE 재량으로 닫지 말 것」을 명시했으므로 여기서 임의로 닫지 않습니다.
이 이슈에 남은 것은 그 결정 하나입니다. 결정이 오면 한 줄(gray5 → 선택된 토큰) + 골든 재생성으로 닫힙니다. B 를 고르면 선택 상태를 무엇으로 구분할지가 따라옵니다.
changed the title [-]카테고리 필터 행 접근성 — selectableGroup 부재·비선택 탭 대비 1.8:1[/-][+]카테고리 필터 행 비선택 탭 대비 2.57:1 로 AA 미달 — 디자이너 A/B 결정 대기 (selectableGroup 은 #1645 로 닫힘)[/+]on Sep 3, 2026
changed the title [-]카테고리 필터 행 비선택 탭 대비 2.57:1 로 AA 미달 — 디자이너 A/B 결정 대기 (selectableGroup 은 #1645 로 닫힘)[/-][+]비선택 카테고리 탭의 대비·선택 구분을 PM에게 확인한다[/+]on Sep 12, 2026
커밋 83c3df3(PR #1799, 2026-09-06 머지)이 core/ui/src/main/kotlin/com/afternote/core/ui/theme/Color.kt:39 에 Gray5OnLight = Color(0xFF6E6E6E) 를 두고 lightColors 의 gray5 를 그 값으로 바꿨습니다. darkColors 의 gray5 는 #9E9E9E 그대로입니다.
색
배경
대비
옛 gray5#9E9E9E
#FAFAFA
2.567:1
현재 라이트 gray5#6E6E6E
#FAFAFA
4.885:1
현재 라이트 gray5#6E6E6E
#FFFFFF
5.099:1
현재 다크 gray5#9E9E9E
#212121
6.010:1
라이트는 어느 배경으로 재도 4.5:1 을 넘습니다. AfternoteTypeFilterRow.kt:161-165 의 주석은 아직 gray5(#9E9E9E) 와 2.57:1 을 적고 있어 본문과 같은 시점에 멈춰 있습니다.
선택 구분 축의 현재 값
같은 파일 AfternoteTypeFilterRow.kt:158-167 에서 선택 탭은 gray7, 비선택 탭은 gray5 입니다. 라이트에서 두 값은 #616161 과 #6E6E6E 이고 서로의 대비는 1.215:1 입니다. 타이포는 선택과 비선택이 모두 bodySmallB 로 같고, 선택 탭에만 2dp HorizontalDivider(gray7)가 붙습니다(173-182).
즉 이 이슈에 남은 축은 선택 구분 한 가지입니다. 무엇으로 구분할지는 여기서 제안하지 않습니다.
서술 하나가 어긋나 있다
2026-09-03 코멘트는 남은 것을 "디자이너 A/B 미답" 으로 적었습니다. 그 A/B 는 gray5 유지(당시 2.57:1)냐 gray7(5.93:1)이냐였고, 둘을 가르던 전제는 "팔레트에 4.5:1 을 넘는 중간값이 없다" 였습니다. #1798 이후 라이트 gray5 자체가 4.885:1 이 되어 그 전제는 성립하지 않습니다.
현재 본문은 같은 자리를 "PM 확인" 과 "디자이너에게 별도로 묻지 않는다" 로 다시 썼습니다. 옛 코멘트의 서술과 현재 본문이 어긋나 있다는 사실만 적어 둡니다.
Activity
github-actions commentedon Aug 30, 2026
bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:
값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.
OnlyReadOneBook commentedon Aug 30, 2026
② 대비 — 시안 색값을 실측했습니다. 게이트가 둘로 갈립니다
본문이 「시안의 실제 색값을 확인하고, 기준 미달이면 대체 색을 디자이너와 정한 뒤 바꾼다」로 남겨 둔 자리를 실측했습니다. 정본 페이지
4327:43064를 REST 로 받아 카테고리 탭 텍스트 노드 63건의fills를 전수로 읽었습니다.tab btn·tab/2컴포넌트)gray7#1F1F1Fgray4=#BDBDBD#A0A0A0코드가 시안보다 더 흐립니다. 대비를 sRGB 상대휘도로 계산하면:
gray1(#FAFAFA)#BDBDBD#A0A0A0(참고: 시안 선택 탭
#1F1F1F는 15.79:1)그래서 ②가 실은 두 건입니다
#A0A0A0로 맞추는 데는 디자이너에게 물을 것이 없습니다. 시안이 이미 그 값이고 코드가 안 따르고 있을 뿐입니다. 대비도 1.80 → 2.51 로 올라갑니다. ①(selectableGroup) PR 위에 스택으로 올려 이 이슈에서 함께 닫겠습니다 — 같은 파일이라 형제로 두면 충돌합니다.#A0A0A0로 맞춰도 2.51:1 이라 14sp 일반 텍스트의 WCAG AA 4.5:1 에는 못 미칩니다. 「비선택 탭은 흐리게」가 의도된 위계인지, 4.5:1 을 넘기는 대체 색으로 갈지가 물어야 할 것입니다. 시안 색을 그대로 옮겨도 기준을 못 넘는다는 사실 자체가 질의의 재료입니다.이 이슈는 2번이 닫힐 때까지 열어 둡니다. ①과 1번을 닫는 PR 은
Refs로 겁니다.토큰 경계
본문이 지적한 대로
gray4는 core 토큰이라 값을 갈면 다른 모듈까지 끌고 갑니다.#A0A0A0는 현재 core 팔레트에 없는 값이라, 애프터노트 쪽 사용처만 새 토큰으로 옮기는 쪽이 경계가 깔끔하다는 본문 판단이 그대로 유효합니다.OnlyReadOneBook commentedon Aug 30, 2026
보정 — 새 토큰이 필요 없습니다. 그리고 디자이너 질의가 양자택일로 좁혀집니다
앞 코멘트에서 「
#A0A0A0는 core 팔레트에 없는 값이라 새 토큰이 필요하다」고 적었는데, 팔레트를 실제로 재 보니gray5로 닫힙니다.gray1(#FAFAFA)gray4(현재 코드)#BDBDBDtab btn비선택#A0A0A0gray5#9E9E9Egray6#757575gray7#616161시안
#A0A0A0와gray5 #9E9E9E는 채널 차가 2/255(0.8%) 입니다. 육안으로 구분되지 않고 대비도 시안보다 오히려 미세하게 높습니다. 애프터노트 전용 토큰을 새로 만들 이유가 없습니다 —gray4→gray5한 줄이면 「시안대로」가 닫히고 core 팔레트 밖으로 나가지도 않습니다.그래서 디자이너에게 물을 것이 구체적으로 정해집니다
팔레트 안에서 AA 4.5:1 을 넘기는 가장 밝은 회색은
gray7입니다.gray6은 4.414:1 로 0.086 차이로 미달이라 쓸 수 없습니다. 즉 선택지가 둘뿐입니다.gray5— 시안 색 그대로(2.57:1). 「비선택은 흐리게」라는 위계를 유지하되 AA 미달을 감수.gray7— AA 통과(5.93:1). 다만 선택 탭이 쓰는 색과 같아져 선택/비선택 구분이 굵기·밑줄에만 남습니다.중간값이 없다는 것이 이 질의의 핵심입니다. 「조금 더 진하게」로는 안 되고, 위계를 지키느냐 기준을 넘기느냐를 골라야 합니다. B 를 고르면 선택 상태를 무엇으로 구분할지가 따라옵니다.
gray4 → gray5는 시안 준수라 FE 재량으로 먼저 닫고, 그 위에서 A/B 를 묻는 것이 순서로 맞다고 봅니다.OnlyReadOneBook commentedon Sep 3, 2026
착수 확인 — ①은 이미 머지돼 있습니다. 남은 것은 ②의 AA 축 하나뿐입니다
이 이슈를 다시 집으려다 현재
develop(e400b07)을 실측했더니 ①과, ②의 「시안 준수」 절반이 이미 들어가 있었습니다. 착수 전에 여기 적어 둡니다 — 이슈 제목과 본문의 수치가 낡아 다음 세션이 같은 것을 또 집을 수 있습니다.selectableGroup()부재gray4→gray5develop실측:AfternoteTypeFilterRow의 탭을 감싸는 안쪽Row에.selectableGroup()이 걸려 있습니다(바깥Row는 화살표 힌트를 품고 있어 거기가 아닙니다).AfternoteCategoryRowInteractionTest의카테고리 탭 행은 선택 그룹 semantics를 노출한다. 이번에 돌려 확인했습니다:2 tests, 0 failures, 0 errors.AfternoteDesign.colors.gray5입니다.그래서 본문 ②의 수치가 갱신됩니다
제목과 본문이 적은 1.8:1 은 더 이상 현행이 아닙니다.
gray5(#9E9E9E)ongray1(#FAFAFA)를 다시 재면 2.567:1 입니다(sRGB 상대휘도 직접 계산). 종전gray4(#BDBDBD)의 1.800:1 에서 올라왔지만, 완료 조건인 4.5:1 에는 여전히 못 미칩니다.남은 하나 — 답이 오지 않았습니다
앞 코멘트에서 양자택일로 좁혀 둔 질의(A.
gray5유지 — 위계 유지·AA 미달 2.57:1 / B.gray7— AA 통과 5.93:1·다만 선택 탭과 같은 색)에 8월 31일 이후 답이 없습니다. 팔레트에 중간값이 없어(gray6은 4.414:1 로 0.086 모자람) FE 가 고를 수 있는 제3안이 없고, 본문이 「②는 FE 재량으로 닫지 말 것」을 명시했으므로 여기서 임의로 닫지 않습니다.이 이슈에 남은 것은 그 결정 하나입니다. 결정이 오면 한 줄(
gray5→ 선택된 토큰) + 골든 재생성으로 닫힙니다. B 를 고르면 선택 상태를 무엇으로 구분할지가 따라옵니다.[-]카테고리 필터 행 접근성 — selectableGroup 부재·비선택 탭 대비 1.8:1[/-][+]카테고리 필터 행 비선택 탭 대비 2.57:1 로 AA 미달 — 디자이너 A/B 결정 대기 (selectableGroup 은 #1645 로 닫힘)[/+][-]카테고리 필터 행 비선택 탭 대비 2.57:1 로 AA 미달 — 디자이너 A/B 결정 대기 (selectableGroup 은 #1645 로 닫힘)[/-][+]비선택 카테고리 탭의 대비·선택 구분을 PM에게 확인한다[/+]OnlyReadOneBook commentedon Sep 13, 2026
실측: 본문의 2.567:1 은 #1798 이전 값이다
본문이 남은 대비를 2.567:1 로 적고 있어 값을 직접 다시 계산했습니다. 기준은
origin/develop86ab223입니다.2.567:1 은 옛
gray5(#9E9E9E)를gray1(#FAFAFA) 위에 얹었을 때의 값이 맞습니다(sRGB 상대휘도로 재계산, 같은 값). 다만 그 값은 더 이상 라이트 테마의 현행이 아닙니다.#1798 이 라이트
gray5를 갈랐다커밋
83c3df3(PR #1799, 2026-09-06 머지)이core/ui/src/main/kotlin/com/afternote/core/ui/theme/Color.kt:39에Gray5OnLight = Color(0xFF6E6E6E)를 두고lightColors의gray5를 그 값으로 바꿨습니다.darkColors의gray5는#9E9E9E그대로입니다.gray5#9E9E9E#FAFAFAgray5#6E6E6E#FAFAFAgray5#6E6E6E#FFFFFFgray5#9E9E9E#212121라이트는 어느 배경으로 재도 4.5:1 을 넘습니다.
AfternoteTypeFilterRow.kt:161-165의 주석은 아직gray5(#9E9E9E)와 2.57:1 을 적고 있어 본문과 같은 시점에 멈춰 있습니다.선택 구분 축의 현재 값
같은 파일
AfternoteTypeFilterRow.kt:158-167에서 선택 탭은gray7, 비선택 탭은gray5입니다. 라이트에서 두 값은#616161과#6E6E6E이고 서로의 대비는 1.215:1 입니다. 타이포는 선택과 비선택이 모두bodySmallB로 같고, 선택 탭에만 2dpHorizontalDivider(gray7)가 붙습니다(173-182).즉 이 이슈에 남은 축은 선택 구분 한 가지입니다. 무엇으로 구분할지는 여기서 제안하지 않습니다.
서술 하나가 어긋나 있다
2026-09-03 코멘트는 남은 것을 "디자이너 A/B 미답" 으로 적었습니다. 그 A/B 는
gray5유지(당시 2.57:1)냐gray7(5.93:1)이냐였고, 둘을 가르던 전제는 "팔레트에 4.5:1 을 넘는 중간값이 없다" 였습니다. #1798 이후 라이트gray5자체가 4.885:1 이 되어 그 전제는 성립하지 않습니다.현재 본문은 같은 자리를 "PM 확인" 과 "디자이너에게 별도로 묻지 않는다" 로 다시 썼습니다. 옛 코멘트의 서술과 현재 본문이 어긋나 있다는 사실만 적어 둡니다.
OnlyReadOneBook commentedon Sep 13, 2026
PM 전건호에게 Figma 댓글로 질문했다(2026-09-13). 이 이슈는 그동안 PM 확인 대기로 분류돼 있었지만 실측해 보니 어느 채널에도 발신 기록이 없었다. 이번이 첫 발신이다.
4327:66535FRAME 애프터노트 main_1안 — 정리 Screen Design#4327:43064 > SECTION 애프터노트#4327:99446 > 애프터노트 - 메인 그룹(x=1347,y=856). 카테고리 탭 행은 이 프레임 안의 INSTANCE tab/2 #4327:66553message_meta로 보내 알림이 가도록 했다. 평문@이름은 알림이 가지 않는다.물은 것은 묵은 본문의 질문을 그대로 옮긴 것이 아니라 origin/develop 86ab223 실코드와 현재 시안으로 다시 벼린 것이다.
본문에 있었지만 이번 질문에서 뺀 축:
OnlyReadOneBook commentedon Sep 18, 2026
PM 결정 대기 항목은 깃허브 이슈로 두지 않고 피그마 질문 한 자리에만 둔다(2026-09-18 결정). 이 이슈의 질문은 피그마 스레드에 걸려 있다: https://www.figma.com/design/UP9ZR186jHvRBicjA2SOea/?node-id=4327-66535#1923877310 답이 오면 그 답을 근거로 구현 이슈를 새로 만든다.