본문으로 건너뛰기

테마

이 페이지는 NeoTavern에서 테마가 동작하는 방식을 설명합니다. 테마가 무엇을 바꿀 수 있는지, 설치와 전환 방법, 세이프 모드가 어떻게 보호하는지입니다.

테마가 바꾸는 것

테마에는 세 가지 레벨이 있습니다.

  • 디자인 토큰 — 색상, 글꼴, 간격, 모서리 반경, 그림자, 모션 지속 시간.
  • 컴포넌트 스킨 — 버튼, 패널, 기타 컨트롤의 모양.
  • 셸 레이아웃 — 명명된 영역의 배치: 내비게이션, 캐릭터 브라우저, 채팅 뷰포트, 사이드 패널, 모달 레이어.

즉, 테마는 단순한 색상 변경이 아니라 완전한 시각적 개편입니다. 테마는 채팅 로직을 바꾸지 않고도 앱을 게임 콘솔, 비주얼 노벨, 모바일 클라이언트 처럼 다시 꾸밀 수 있습니다. 테마, 컴포넌트 스킨, 셸 레이아웃 전환에는 재시작이 필요하지 않습니다.

번들 테마

첫 실행은 AMOLED, GitHub Dark, Matrix, Nord, Gruvbox, Dracula, Tokyo Night, Catppuccin Mocha를 포함한 기본 제공 테마 세트를 채웁니다. 테마 관리자는 항상 이 테마들이 있는 상태로 열리므로 즉시 스타일을 전환할 수 있습니다.

테마 설치

테마 패키지는 .sttheme 파일입니다. theme.json 매니페스트와 CSS가 든 ZIP이며 최대 25 MB입니다. 테마 관리자로 설치하세요.

  1. 내비게이션 레일 또는 설정 → 테마 탭에서 테마를 엽니다.
  2. 패키지를 설치합니다. 서버는 아무것도 쓰기 전에 경로, 파일 유형, 크기, 매니페스트를 검증하고 경로 탐색(traversal), 심볼릭 링크, 금지된 CSS를 거부합니다.
  3. 적용하기 전에 테마를 미리 봅니다. 미리보기에서 테마를 수락하거나, 돌아가거나, 설정을 열 수 있습니다.
  4. 활성화합니다. 설치는 그 자체로 테마를 활성화하지 않습니다.

설치된 테마의 업데이트는 원자적으로 교체되며 활성화 상태를 유지합니다. 테마 로드에 실패하면 셸이 마지막으로 작동했던 레이아웃을 자동으로 복원합니다.

사용자 지정 테마

테마는 패키지이지 해킹이 아닙니다. 테마는 내 채팅, API 키, 파일 시스템에 접근할 수 없습니다. Theme SDK는 테마가 스타일링하는 안정적인 훅인 data-component, data-part, data-role, data-state와 명명된 영역을 정의하는 셸 계약을 문서화합니다. 사용자 지정 CSS 오버라이드는 캐스케이드에서 마지막에 로드됩니다. 직접 만드는 방법은 Theme SDK 레퍼런스를 참조하세요.

세이프 모드와 복구

세이프 모드는 모든 타사 테마와 플러그인을 비활성화하며, 로드되기 전에 접근할 수 있습니다. 따라서 망가진 테마가 결코 잠금 상태를 만들 수 없습니다. 크래시 루프 후에는 앱이 자동으로 세이프 실행을 제안합니다. 기본 제공 인터페이스 초기화 작업은 파일을 직접 편집하지 않고 기본 테마를 복원하며, 어떤 테마도 그 작업을 숨길 수 없습니다.

활성 테마와 메시지 스타일 옵션이 있는 일반 탭은 설정을 참조하세요.