도구/Obsidian window.confirm() 대신 두 번 클릭 패턴: Obsidian 플러그인에서 안전한 삭제 UX 만들기 Obsidian 플러그인의 Settings 탭에서 window.confirm()을 쓰다가 Linux에서 dialog가 차단되는 문제를 만났습니다. 그리고 credential 삭제는 확인 없이 즉시 삭제되는 더 큰 문제도 있었죠. 두 문제를 한 번에 해결하는 two-step delete 패턴과 destructive action UX의 일반 원칙을 정리했습니다.
프론트엔드/CSS CSS 변수와 다크 모드 구현하기: 체계적인 테마 시스템 설계 하드코딩된 색상값을 CSS 변수로 체계화하고, 시스템 다크 모드 설정을 감지하며, 사용자 선호를 저장하는 테마 전환 시스템을 구현했습니다. 디자인 토큰 설계부터 실전 컴포넌트 예시까지 전체 과정을 공유합니다.