ks.dgoon.lee log

dboard - dark/light theme 구현


2024/01/21 01:38:28 #django #dev #templates #bulletin board #dboard #dark theme
Attachments:

아무래도 기본적으로 다크모드 정도는 있어줘야 할것 같아서 한시간 후다다닥 구현했다.

1. 테마를 어디에 저장해둘까 고민

DB 에 저장되는 사용자 정보에 아예 넣을 수도 있겠지만 좀 과한것 같고... 그냥 세션에서만 유지되도록 했다. 사실 쿠키에 저장하는게 맞는 것 같긴 한데, 쉬운 구현을 위해서 세션에 넣어버림.

2. 색 지정 정리

style.css, style-small.css 두개의 스타일시트가 있고, 그 외에도 JS 나 django template 에서 색을 직접 지정하는게 있었다. style.css 에서만 색을 지정하도록 몰아주기를 했다.

3. 그리고 style.css 를 복사해서 style-dark.css 를 만들고, color 지정된 부분을 한땀한땀 교체. 그런데 대부분 dimgray -> whitesmoke 로 되긴 했다.

3. base.html 에서 request.session 정보에 따라 style.css / style-dark.css 분기

4. 세션에 request.session 값을 dark <-> light 바꿔줄 수 있는 url 추가. theme 를 인자로 받아서 세션에 바꿔넣고 전 페이지로 돌리는게 전부.

5. 적당한 곳에(나는 footer 에...) 4번에 만든 url 링크를 넣어줌. 이모지 검색해서 dark:  / light:  이렇게 넣었다. 누를때마다 바뀜.

6. 로그인/로그아웃할 때에도 테마 선택이 유지될 수 있게 로그아웃 동작 오버라이드해서 theme 유지하도록 해줌.

끗!


-----




댓글 1개

2024/01/21 01:47:08 dgoon
그냥 jQuery 만 가지고 하는게 더 쉽겠다. 내일 바꿔보자.
⤷ 댓글을 작성해 주세요. 비밀번호는 나중에 댓글을 수정하거나 삭제할 때 필요합니다.