초기값 결정
저장된 사용자 선택, OS 선호도, 기본값 순서로 시작 테마를 정한다.
테마 기능은 버튼 하나로 색을 바꾸는 예제가 아니라, 현재 선택값을 어디에 저장하고 CSS에 어떤 토큰으로 전달할지 정하는 작은 상태 설계다.
저장된 사용자 선택, OS 선호도, 기본값 순서로 시작 테마를 정한다.
ThemeProvider나 context가 현재 테마와 변경 함수를 제공한다.
root 요소의 data-theme 또는 class를 바꿔 CSS 변수를 교체한다.
사용자가 명시적으로 고른 값만 localStorage에 저장하고 system은 미디어 쿼리를 따른다.