SONAX CARE 브랜드와 렌더링 기준
초기 웹 구현의 사진, 박스형 SONAX 로고, 붉은 예약 CTA, 흰 카드와 회색 운영 배경을 기준으로 Jaspr와 Flutter를 맞춘다. 사용자가 소낙스 브랜드 재현을 명시했다. 데모 가격·매장·고객 데이터는 가상 데이터다.
| 축 | 결정과 적용 위치 |
|---|---|
| 색 | 초기 기준 red #e52330. Flutter의 흰 14px CTA는 AA 대비를 위해 #e2222f로 미세 조정. surface white, workspace #f5f6f8, decorative outline #e9ebef. package/resources의 AppTheme가 단일 출처다. |
| 타이포 | 번들 Pretendard. 17개 CoUI 역할을 사용하며 bodyMedium 14, bodyLarge 16, 큰 제목은 bold다. |
| 형태 | 글로벌 Card radius10, 버튼·입력 radius8. 화면은 named CoreRadius 토큰을 사용한다. |
| 간격·밀도 | 예약·태블릿은 여유 있는 단계별 입력과 48dp 터치 영역, 점주 화면은 조밀한 지표·표와 가로 스크롤이다. |
| 효과 | 얇은 장식 경계와 평면 흰 카드. 사진 위 scrim과 접근성 focus ring은 CoUI 토큰을 사용한다. |
| 모션 | CoUI 상태 전환과 reduced-motion 기본값을 유지한다. |
| 아이콘 | Lucide/SVG CoUI 아이콘, 상태는 색과 글자를 함께 표시한다. |
Jaspr의 대응 결정은 site/packages/core/lib/site_core.dart의 CoreComponentTheme에 있다. 사진은 기존 초기 웹의 에셋을 사용한다. 로고는 그 웹의 텍스트·CSS 마크를 재현한다.
라이트·다크의 onSurface/surface, onSurfaceVariant/surface, onPrimary/primary, primaryText/surface, error/surface, onPrimaryContainer/primaryContainer는 package/resources/test/sonax_contrast_test.dart가 CoUI의 CoreContrast로 측정한다. 결과를 반올림해 통과시키지 않는다.
현재 CoUI Flutter 0.160.0, Core/Web 0.159.0은 동일 발행 커밋 7b15c351fea04272d362bc423d75a2037be55a91로 맞췄다. 업그레이드 기준은 최신 발행 태그를 하나의 커밋으로 해석해 core/flutter/web 전체를 맞추는 것이다. 발행 전 main 변경은 별도로 확인하고, 실패한 공급 검증을 무시해 채택하지 않는다. Figma의 발행 라이브러리에 정확한 SONAX 팔레트가 없는 차이는 디자인 결정 기록에서 추적한다.
렌더링 검증은 360/1024/1440의 실제 Flutter release 브라우저와 Jaspr 360/768/1024/1440에서 수행한다. 기능 테스트·골든 캡처·CI 골든 비교·공개 URL 검증은 각각의 실제 결과로 구분한다.