🎨 오버레이 CSS 설명서

대시보드 → 오버레이 탭 → '디자인 바꾸기 (CSS)'에 넣는 글의 사용법입니다. 오버레이를 고르고, 여기 예시를 복사해 붙여 넣은 뒤 저장하면 5초 안에 OBS에 반영됩니다.

시작하기

  1. 대시보드 오버레이 탭 → 디자인 바꾸기 (CSS)에서 꾸밀 오버레이를 고릅니다.
  2. 아래 오버레이별 예시를 복사해 붙여 넣고 저장합니다. OBS를 새로고침하지 않아도 5초 안에 바뀝니다.
  3. 미리보기 (예시 데이터)를 누르면 예시 데이터가 나오는 화면에서 바로 확인할 수 있습니다.
  4. 마음에 안 들면 기본 디자인으로를 누르면 처음 모습으로 돌아갑니다.
CSS는 오버레이마다 따로 저장됩니다. 서버에 저장되므로 다른 PC나 다른 장면에서 같은 주소를 써도 같은 디자인이 나옵니다.

저장 규칙

즉석 테스트 · OBS 자체 CSS 칸

CSS 기초 3분

① 변수 바꾸기 — 가장 쉬움

오버레이마다 색·크기·위치를 정하는 변수가 있습니다. :root { } 안에 변수: 값;을 적으면 됩니다. 아래 오버레이별 표의 변수만 바꿔도 대부분 해결됩니다.

:root {
  --ov-item-accent: #00ffa3;   /* 강조선 색 */
  --ov-res-size: 26px;         /* 결과 글자 크기 */
}

② 이름으로 골라서 꾸미기

화면의 각 부분에는 이름(클래스 .이름, 아이디 #이름)이 있습니다. 이름 { 속성: 값; }으로 꾸밉니다.

.ov-nick { color: #ffd43b; font-weight: 900; }   /* 닉네임 노랗게 굵게 */
.ov-meta { display: none; }                    /* 시각 숨기기 */

③ 자주 쓰는 속성

하고 싶은 것속성예
숨기기displaydisplay: none;
글자 색 · 크기 · 굵기color font-size font-weightcolor:#fff; font-size:24px; font-weight:800;
글꼴font-familyfont-family: 'Pretendard', sans-serif;
배경 (단색 · 반투명 · 그라데이션)backgroundbackground: rgba(0,0,0,.5); · linear-gradient(135deg,#a78bfa,#ec4899)
모서리 · 테두리 · 그림자border-radius border box-shadowborder-radius:16px; border:2px solid #fff;
위치 옮기기top right bottom leftleft:40px; right:auto; (반대쪽은 auto로 풀기)
여백padding(안) margin(밖)padding: 10px 16px;
투명도 · 크기 배율opacity transformopacity:.8; transform: scale(1.2);
글자 테두리 (방송용)-webkit-text-stroke text-shadowtext-shadow: 0 0 4px #000, 0 0 8px #000;

④ 색 적는 법

⑤ 움직임 넣기

@keyframes pulse { 50% { transform: scale(1.05); } }
.ov-item:first-child { animation: pulse 1.2s ease-in-out infinite; }   /* 최신 결과 두근두근 */

⑥ 우선순위

여러분이 저장한 CSS는 항상 기본 디자인 뒤에 들어가므로 같은 이름을 적으면 여러분 것이 이깁니다. 그래도 안 바뀌면 값 뒤에 !important를 붙여 보세요 (예: width: 300px !important;).

알림 (슬롯·원판·TTS) alert

후원·포인트 룰렛 결과, 리롤, 결과 사용, 출석체크를 토스트(작은 카드)로 띄우고 TTS로 읽어 줍니다. 기본 위치는 오른쪽 아래입니다.

권장 브라우저 소스 크기: 1920×1080 (화면 전체에 두고 위치는 CSS로) · 변수 접두사 --al-

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

.alert-container                     ← 토스트들이 쌓이는 상자 (위치: --al-bottom / --al-right)
└ .alert-toast                        ← 토스트 1개. 종류별 클래스가 같이 붙음
   │   (.point-roulette 포인트 룰렛 · .greet 출첵 · .reroll 리롤 · .use 결과 사용 · .style-wheel 원판 연출 · .exiting 사라지는 중)
   ├ .alert-icon                      ← 왼쪽 아이콘 (돌아가는 중엔 .spinning)
   └ .alert-body
      ├ .alert-reroll-headline        ← 리롤일 때만 "🎁 리롤 룰렛!"
      ├ .alert-head
      │  ├ .alert-nickname            ← 닉네임
      │  └ .alert-counter             ← 여러 번 돌릴 때 "3 / 10"
      ├ .slot-reel > .slot-strip > .slot-item   ← 슬롯 연출 (멈춘 칸은 .landed)
      │   또는
      ├ .wheel-wrap (.wheel-pointer · .wheel-disc · .wheel-labels > .wheel-label · .wheel-hub) + .wheel-result   ← 원판 연출
      └ .alert-meta                   ← 아래 작은 글씨 (룰렛 이름·금액 등)

CSS 변수 — 색·크기·위치를 바꾸는 가장 쉬운 방법

변수무엇을 바꾸나기본값
--al-font글꼴. OBS를 켠 PC에 설치된 글꼴 이름을 앞에 적으세요'Pretendard', 'Noto Sans KR', system-ui, sans-serif
--al-fg글자색#fff
--al-bottom화면 아래에서 띄울 거리24px
--al-right화면 오른쪽에서 띄울 거리24px
--al-radius토스트 모서리 둥글기14px
--al-pad토스트 안쪽 여백 (위아래 좌우)14px 20px
--al-gap아이콘과 글 사이 간격14px
--al-minw토스트 최소 너비260px
--al-maxw토스트 최대 너비400px
--al-shadow토스트 그림자0 12px 32px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.12) inset
--al-bg후원 룰렛 토스트 배경linear-gradient(135deg, rgba(102,126,234,.96), rgba(118,75,162,.96))
--al-bg-point포인트 룰렛 토스트 배경linear-gradient(135deg, rgba(124,58,237,.96), rgba(168,85,247,.96))
--al-bg-greet출석체크 토스트 배경linear-gradient(135deg, rgba(16,185,129,.96), rgba(5,150,105,.96))
--al-bg-reroll리롤 토스트 배경linear-gradient(135deg, rgba(245,158,11,.97), rgba(217,119,6,.97))
--al-bg-use결과 사용 토스트 배경linear-gradient(135deg, rgba(14,165,233,.96), rgba(37,99,235,.96))
--al-icon-size아이콘 크기28px
--al-nick-size닉네임 글자 크기15px
--al-slot-size슬롯 항목 글자 크기14px
--al-meta-size아래 작은 글씨 크기11px
--al-landed-fg슬롯이 멈춘 결과 글자색#fef3c7
--al-wheel-size원판 지름220px
--al-wheel-ring원판 테두리 색rgba(255,255,255,.85)
--al-wheel-ring-w원판 테두리 두께4px
--al-wheel-pointer원판 바늘 색#fff
--al-wheel-label-fg원판 칸 글자색#fff
--al-wheel-label-size원판 칸 글자 크기12px
--al-wheel-hub원판 가운데 원 색rgba(0,0,0,.55)
--al-wheel-spin-sec원판 도는 시간4.5s
--al-wheel-c1원판 칸 색 1 (c1~c8을 차례로 반복)#ef4444
--al-wheel-c2원판 칸 색 2#f59e0b
--al-wheel-c3원판 칸 색 3#22c55e
--al-wheel-c4원판 칸 색 4#3b82f6
--al-wheel-c5원판 칸 색 5#a855f7
--al-wheel-c6원판 칸 색 6#ec4899
--al-wheel-c7원판 칸 색 7#14b8a6
--al-wheel-c8원판 칸 색 8#f97316

상태별로 고르기

선택자언제
.alert-toast.point-roulette포인트 룰렛 토스트만
.alert-toast.greet출석체크 토스트만
.alert-toast.reroll리롤 토스트만
.alert-toast.use결과 사용 토스트만
.alert-toast.style-wheel원판 연출로 뜬 토스트
.slot-item.landed슬롯이 멈춘 결과 칸
.alert-icon.spinning슬롯이 도는 동안의 아이콘
.tts-onlyTTS만 쓰는 모드(?mode=tts)일 때 화면 숨김

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

왼쪽 위로 옮기기 기본은 오른쪽 아래입니다. 상자 위치를 직접 바꿉니다.
.alert-container { top: 40px; left: 40px; right: auto; bottom: auto; }
민트색 + 큰 글씨 변수만 바꾸면 모든 토스트에 한 번에 적용됩니다.
:root {
  --al-bg: linear-gradient(135deg, #00c9a7, #00897b);
  --al-nick-size: 20px;
  --al-slot-size: 18px;
  --al-radius: 20px;
}
출석체크 토스트 숨기기 출첵 알림은 채팅으로만 보고 싶을 때.
.alert-toast.greet { display: none; }
원판 색 4가지만 반복 칸 색은 c1~c8을 차례로 씁니다. 같은 색을 반복해서 넣으면 됩니다.
:root {
  --al-wheel-c1: #ff6b6b; --al-wheel-c2: #ffd93d; --al-wheel-c3: #6bcB77; --al-wheel-c4: #4d96ff;
  --al-wheel-c5: #ff6b6b; --al-wheel-c6: #ffd93d; --al-wheel-c7: #6bcB77; --al-wheel-c8: #4d96ff;
}

룰렛 오버레이 roulette

룰렛이 돌 때 그 룰렛의 연출(원판 또는 슬롯머신)과 디자인대로 화면 가운데 크게 보여 줍니다. 추첨할 때는 같은 자리에 이름 슬롯이 나옵니다. 원판은 그림(canvas)이라 CSS로 못 바꾸고, 슬롯머신은 CSS 변수(--sm-…)로 색을 바꿀 수 있습니다. 디자인마다 body 에 .th-이름 이 붙고, 슬롯일 때는 .mode-slot 도 붙습니다 (예: body.th-neon.mode-slot).

권장 브라우저 소스 크기: 1920×1080

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

body.th-디자인        ← classic · neon · casino · pastel · gameshow · mochi · horror · gold
#stage                ← 전체 (돌아갈 때 .on / 추첨 중엔 .rf)
├ #title             ← 룰렛 이름
├ #wrap > canvas#cv  ← 원판 (바늘 포함 — 그림)
├ #slotm             ← 슬롯머신 (돌 때 .spin · 멈추면 .win)
│  ├ .sm-top > .sm-title     ← 위 간판 (룰렛 이름) · .sm-bulbs 전구
│  ├ .sm-win > .reel > .cell ← 릴 · 가운데 결과 칸 .cell.hit · .sm-line 당첨 줄
│  ├ .sm-foot                ← 아래 (닉네임 · n / N)
│  └ .sm-handle              ← 손잡이 (클래식·호러·골드 = 레버, 파스텔·모찌 = 돌리는 손잡이)
├ #barm .bm          ← 슬롯(바) 한 줄 (돌 때 #barm.spin · 멈추면 .win)
│  ├ .bm-l > .bm-ic · .bm-rn · .bm-nk  ← 왼쪽 아이콘 · 룰렛 이름 · 닉네임
│  ├ .bm-win > .reel > .cell           ← 도는 칸 (결과 .cell.hit · 여러 번이면 요약 .cell.sum)
│  └ .bm-r                             ← 오른쪽 (n / N · 연차 · 포인트)
├ #raffle            ← 추첨 슬롯 (.slot · 당첨 순간 .slot.win · .wins 당첨자 목록)
└ #result .card      ← 결과 (.nick 닉네임 · .items 결과 · .pts 포인트 · .rr 리롤)
#fx                   ← 당첨 효과 (꽃가루 등) 캔버스

이 오버레이는 변수가 없어 아래 이름(선택자)을 직접 꾸밉니다.

상태별로 고르기

선택자언제
#stage.on원판이 떠 있는 동안
#stage.rf추첨 슬롯 모드
#raffle .slot.win당첨자가 정해진 순간
#result .items결과 글자
#result .rr리롤 결과 줄

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

결과 글씨 크게 + 노란색
#result .items { font-size: 44px; color: #ffd43b; }
룰렛 이름 숨기기
#title { display: none; }
네온 디자인일 때만 제목 색 바꾸기
.th-neon #title { color: #ffe600; text-shadow: 0 0 10px #ffe600; }
당첨 효과 끄기
#fx { display: none; }
슬롯 클래식 몸통 색을 파랗게
.mode-slot.th-classic { --sm-body: linear-gradient(180deg, #3b82f6, #1e3a8a); }
슬롯 손잡이 숨기기
.sm-handle { display: none !important; }
바 슬롯을 화면 아래쪽에 OBS 소스를 화면 전체(1920×1080)로 쓸 때.
#stage.barmode { justify-content: flex-end; padding-bottom: 60px; }
클린 바 왼쪽 색 바꾸기
.mode-bar.th-clean { --bm-lbg: linear-gradient(90deg, #3b82f6, #6366f1); --bm-hit: #3b82f6; --bm-rfg: #3b82f6; }
추첨 당첨 칸 색 바꾸기
#raffle .slot.win { background: linear-gradient(90deg, #a78bfa, #ec4899); color: #fff; }

스택 목록 stack

아직 수행하지 않은 룰렛 결과를 최신순으로 보여 줍니다. 위에 대기 개수가 붙습니다.

권장 브라우저 소스 크기: 500×1080 · 변수 접두사 --ov-

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

#count.ov-count            ← "🎰 대기 N" (숫자는 .ov-count-num)
#stack.ov-stack            ← 목록
└ .ov-item                ← 결과 1개 (직접 지급한 결과는 .manual 이 같이 붙음)
   ├ .ov-nick             ← 닉네임
   ├ .ov-res              ← 결과 (이모지 + 이름)
   └ .ov-meta             ← 시각 · 수동 여부
.ov-empty                  ← 비었을 때 "대기 중인 룰렛 없음" (?empty=0 이면 안 보임)

CSS 변수 — 색·크기·위치를 바꾸는 가장 쉬운 방법

변수무엇을 바꾸나기본값
--ov-font글꼴'Pretendard', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', sans-serif
--ov-fg글자색#fff
--ov-shadow글자 그림자2px 2px 4px rgba(0,0,0,.85)
--ov-top위쪽 여백20px
--ov-left왼쪽 여백20px
--ov-width목록 너비360px
--ov-count-bg대기 개수 상자 배경rgba(0,0,0,.75)
--ov-count-fg대기 개수 숫자 색#ff4757
--ov-item-bg결과 카드 배경linear-gradient(135deg, rgba(15,12,23,.92), rgba(0,0,0,.85))
--ov-item-accent결과 카드 왼쪽 강조선 색#ff4757
--ov-item-accent-manual직접 지급한 결과의 강조선 색#3742fa
--ov-item-accent-party파티 룰렛에서 받은 결과의 강조선 색 (기본 주황)#F97316
--ov-item-radius결과 카드 모서리8px
--ov-item-pad결과 카드 안쪽 여백12px 16px
--ov-item-gap카드 사이 간격8px
--ov-nick-fg닉네임 색#ffc247
--ov-nick-size닉네임 크기15px
--ov-res-size결과 글자 크기22px
--ov-meta-size시각 글자 크기11px

상태별로 고르기

선택자언제
.ov-item.manual대시보드에서 직접 지급한 결과
.ov-item.party파티 룰렛에서 받은 결과 (연대책임·공격 포함)
.ov-item:nth-child(-n+3)위에서 3개 (최신 3개)
.ov-item:nth-child(n+11)11번째부터 (긴 목록 자르기)

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

최근 10개만 보이기
.ov-item:nth-child(n+11) { display: none; }
오른쪽에 붙이기 브라우저 소스를 화면 오른쪽에 두었을 때. 왼쪽 기준을 풀고(auto) 오른쪽 기준을 줍니다.
.ov-stack, .ov-count { left: auto; right: 20px; }
카드 투명하게 + 강조선 민트
:root {
  --ov-item-bg: rgba(0,0,0,.35);
  --ov-item-accent: #00ffa3;
  --ov-nick-fg: #a7f3d0;
}
대기 개수 숨기기
.ov-count { display: none; }

시간 타이머 timer

시간 항목(예: 10분 노래 금지)을 사용한 순간부터 남은 시간을 카운트다운합니다. 5분·1분 이하가 되면 색이 바뀝니다.

권장 브라우저 소스 크기: 450×800 · 변수 접두사 --tm-

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

.timers-container
└ .timer                       ← 타이머 1개 (5분 이하 .expiring-soon · 1분 이하 .expiring-very-soon)
   │   data-result="결과 이름" 속성이 붙어 있어 특정 결과만 꾸밀 수 있음
   ├ .timer-header
   │  ├ .timer-result          ← 결과 이름 (여러 번 쌓이면 .timer-count "×2")
   │  └ .timer-nickname        ← 닉네임
   ├ .timer-remaining          ← 남은 시간 "04:59"
   └ .timer-progress > .timer-progress-fill   ← 진행 막대
.empty-state                    ← 진행 중인 타이머가 없을 때

CSS 변수 — 색·크기·위치를 바꾸는 가장 쉬운 방법

변수무엇을 바꾸나기본값
--tm-font글꼴'Pretendard', 'Noto Sans KR', system-ui, sans-serif
--tm-fg글자색#fff
--tm-pad전체 안쪽 여백12px
--tm-maxw최대 너비400px
--tm-card-bg타이머 카드 배경rgba(20,22,30,.85)
--tm-card-radius카드 모서리6px
--tm-card-pad카드 안쪽 여백10px 14px
--tm-card-gap카드 사이 간격8px
--tm-card-shadow카드 그림자0 2px 12px rgba(0,0,0,.3)
--tm-accent여유 있을 때 색 (막대·강조)#4ade80
--tm-warn5분 이하 색#fbbf24
--tm-danger1분 이하 색#ef4444
--tm-nick-fg닉네임 색#94a3b8
--tm-result-size결과 이름 크기16px
--tm-remaining-size남은 시간 숫자 크기22px
--tm-remaining-font남은 시간 숫자 글꼴'Courier New', monospace
--tm-track-bg진행 막대 바탕색rgba(255,255,255,.1)
--tm-empty-fg비었을 때 문구 색#64748b

상태별로 고르기

선택자언제
.timer.expiring-soon5분 이하 남음
.timer.expiring-very-soon1분 이하 남음
.timer[data-result="노방종"]결과 이름이 '노방종'인 타이머만
.empty-state타이머 없을 때 문구

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

1분 남으면 깜빡이기
@keyframes blink { 50% { opacity: .35; } }
.timer.expiring-very-soon { animation: blink 1s infinite; }
특정 결과만 금색 테두리 data-result 속성으로 고릅니다. 결과 이름을 정확히 적으세요.
.timer[data-result="24시간 노방종"] { outline: 2px solid #ffd43b; }
비었을 때 문구 숨기기
.empty-state { display: none; }
숫자를 크게, 막대는 얇게
:root { --tm-remaining-size: 34px; }
.timer-progress { height: 2px; }

룰렛 사용 패널 · 베팅 · 사다리 · 퀴즈 interactive

한 주소에 네 가지 화면이 번갈아 뜹니다: !룰렛사용 패널(오른쪽), 베팅 패널(오른쪽), 사다리(오른쪽, 6명 이상이면 넓어짐), 퀴즈(화면 가운데 큰 창).

권장 브라우저 소스 크기: 1920×1080 · 변수 접두사 --iv-

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

.interactive-panel                 ← !룰렛사용 패널 (닫힐 때 .exiting)
├ .panel-header (.panel-nickname · .panel-countdown — 30초 이하 .warn, 10초 이하 .crit)
├ .panel-title
├ .item-list > .item-row (.item-number · .item-info > .item-name / .item-duration / .item-aliases · .item-count)
├ .panel-progress > .panel-progress-fill
└ .panel-footer

.betting-panel                     ← 베팅
├ .bet-header (.bet-title · .bet-status-badge — 마감되면 .locked)
├ .bet-countdown (.warn / .crit)
├ .bet-options > .bet-option (방금 걸린 선택지는 .recent)
│    ├ .bet-option-bar           ← 비율 막대
│    └ .bet-option-content (.bet-option-name · .bet-option-stats > .pct)
├ .bet-footer (.bet-grand-total)
└ .bet-result (.bet-winner · .bet-winner-sub · .bet-top-winners > .bet-top-winner > .nick / .profit)

.ladder-panel                      ← 사다리 (6명 이상 .is-wide)
├ .ladder-header (.ladder-title > .ladder-emoji · .ladder-timer)
├ .ladder-info (.ladder-cmd · .ladder-cost)
├ .ladder-participants (.ladder-participants-title · .ladder-participant)
├ .ladder-svg-wrap                  ← 사다리 그림
└ .ladder-result-list > .ladder-result-row (.arrow · .label · .reward.positive / .negative)

#quiz-overlay                      ← 퀴즈 (보일 때 .qz-on)
└ .qz-panel
   ├ .qz-tag (포인트/후원 퀴즈) · .qz-by (by 닉네임)
   ├ .qz-q                         ← 문제 ("곧 출제됩니다"는 .qz-teaser)
   ├ .qz-opts > .qz-opt (.qz-n 번호 · .qz-t 보기) — 판정 때 .qz-picked → .qz-correct / .qz-wrong / .qz-dim
   └ .qz-bar > i                   ← 제한 시간 막대 (.qz-run 동안 줄어듦)
#quiz-verdict (.qz-show)            ← 큰 판정 글씨 .qz-vtxt (.qz-ok 정답 · .qz-bad 오답 · .qz-to 시간 초과 · .qz-voidc 무효) + .qz-vsub

CSS 변수 — 색·크기·위치를 바꾸는 가장 쉬운 방법

변수무엇을 바꾸나기본값
--iv-font글꼴 (네 화면 공통)'Pretendard', 'Noto Sans KR', system-ui, sans-serif
--iv-fg글자색#fff
--iv-right오른쪽 패널들의 오른쪽 여백32px
--iv-radius패널 모서리18px
--iv-shadow패널 그림자0 16px 40px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.1) inset
--iv-blur패널 뒤 흐림 정도10px
--iv-roulette-bg!룰렛사용 패널 배경linear-gradient(135deg, rgba(67,56,202,.92), rgba(124,58,237,.92))
--iv-roulette-pad!룰렛사용 패널 안쪽 여백20px 22px
--iv-roulette-minw!룰렛사용 패널 최소 너비280px
--iv-roulette-maxw!룰렛사용 패널 최대 너비360px
--iv-bet-bg베팅 패널 배경linear-gradient(135deg, rgba(220,38,38,.94), rgba(234,88,12,.94))
--iv-bet-pad베팅 패널 안쪽 여백18px 22px
--iv-bet-minw베팅 패널 최소 너비320px
--iv-bet-maxw베팅 패널 최대 너비380px
--iv-ladder-bg사다리 패널 배경linear-gradient(135deg, rgba(22,101,52,.94), rgba(34,197,94,.92))
--iv-ladder-pad사다리 패널 안쪽 여백20px 22px
--iv-ladder-minw사다리 패널 최소 너비320px
--iv-ladder-maxw사다리 패널 최대 너비480px
--iv-ladder-shadow사다리 패널 그림자0 12px 40px rgba(0,0,0,.35)
--iv-ladder-border사다리 패널 테두리2px solid rgba(255,255,255,.16)
--iv-ladder-wide-w참가자 6명 이상일 때 사다리 패널 너비min(1000px, 80vw)
--iv-quiz-w퀴즈 창 너비min(820px, 86vw)
--iv-quiz-bg퀴즈 창 배경rgba(16,20,34,.82)
--iv-quiz-border퀴즈 창 테두리1.5px solid rgba(120,160,255,.25)
--iv-quiz-radius퀴즈 창 모서리22px
--iv-quiz-pad퀴즈 창 안쪽 여백30px 34px 34px
--iv-quiz-fg퀴즈 글자색#e8ecf4
--iv-quiz-q-size퀴즈 문제 글자 크기30px
--iv-quiz-opt-size퀴즈 보기 글자 크기21px

상태별로 고르기

선택자언제
.panel-countdown.crit!룰렛사용 남은 시간 10초 이하
.bet-option.recent방금 누가 건 선택지 (잠깐)
.bet-status-badge.locked베팅 마감 후
.ladder-panel.is-wide사다리 참가자 6명 이상
.qz-opt.qz-correct퀴즈 정답 보기
.qz-opt.qz-wrong스트리머가 고른 틀린 보기
#quiz-verdict .qz-vtxt.qz-ok'정답!' 큰 글씨

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

패널을 왼쪽으로 오른쪽 패널 세 개(사용·베팅·사다리)를 왼쪽에 붙입니다.
.interactive-panel, .betting-panel, .ladder-panel { right: auto; left: 32px; }
베팅 패널 색 바꾸기
:root { --iv-bet-bg: linear-gradient(135deg, rgba(37,99,235,.94), rgba(30,64,175,.94)); }
퀴즈 창을 작게, 화면 위쪽에
:root { --iv-quiz-w: 640px; --iv-quiz-q-size: 24px; --iv-quiz-opt-size: 18px; }
#quiz-overlay { align-items: flex-start; padding-top: 60px; }
퀴즈 판정 글씨 줄이기
#quiz-verdict .qz-vtxt { font-size: 72px; }

현재 곡 nowplaying

지금 재생 중인 신청곡·BGM 제목을 한 줄로 보여 줍니다. 제목이 길면 자동으로 흐릅니다.

권장 브라우저 소스 크기: 900×120 · 변수 접두사 --np-

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

.np-root                     ← 전체 (곡 없음 .is-empty · 가운데 정렬 .is-center · ?bg=black → .bg-black)
├ .np-now
│  ├ .np-pill                ← "🎵 NOW" 배지 (재생 중 .is-playing · 영상 후원 중 .is-donation)
│  └ .np-title > .np-title-inner   ← 제목 (길면 .is-marquee 로 흐름)
└ .np-queue                  ← 다음 대기 곡 수 (?queue=0 이면 .no-queue 로 숨김)

CSS 변수 — 색·크기·위치를 바꾸는 가장 쉬운 방법

변수무엇을 바꾸나기본값
--np-fg글자색#ffffff
--np-fg-dim흐린 글자색 (대기열 등)rgba(255,255,255,.72)
--np-bg배경 (기본 투명)transparent
--np-size글자 크기28px
--np-font글꼴"Pretendard","Segoe UI","Malgun Gothic",-apple-system,sans-serif
--np-shadow글자 그림자0 2px 8px rgba(0,0,0,.85), 0 0 2px rgba(0,0,0,.9)
--np-accent재생 중 배지 색#37e6ff
--np-dono영상 후원 중 배지 색#ff4d6d
--np-pill-bg평소 배지 배경rgba(255,255,255,.14)
--np-gap배지와 제목 사이6px
--np-pad안쪽 여백12px 16px
--np-maxw최대 너비900px
--np-radius배경 모서리999px
--np-pill-fg-on재생 중 배지 글자색#03101a
--np-dono-fg영상 후원 배지 글자색#ffffff

상태별로 고르기

선택자언제
.np-root.is-empty재생 중인 곡이 없을 때
.np-pill.is-donation영상 후원 재생 중
.np-title-inner.is-marquee제목이 길어 흐르는 중

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

곡이 없으면 통째로 숨기기
.np-root.is-empty { opacity: 0; }
반투명 검은 띠 배경
:root { --np-bg: rgba(0,0,0,.55); --np-radius: 12px; --np-pad: 10px 18px; }
배지 글자 바꾸기 글자 자체는 CSS로 덮어씁니다.
.np-pill { font-size: 0; }
.np-pill::before { content: "♪ 지금 이 곡"; font-size: 20px; }

신청곡 플레이어 song

실제로 소리가 나는 소스입니다. 대시보드 '신청곡 설정'의 화면 모드에 따라 토스트(곡 시작 알림), 카드, 영상이 보입니다.

권장 브라우저 소스 크기: 1920×1080 · 변수 접두사 --vd-

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

body                         ← 재생 중 .playing · 마스크 끔 .nomask
├ #vid                       ← 영상 (영상 안 쓰는 모드면 화면 밖)
├ #mask-top · #mask-br       ← 영상 위·오른쪽 아래 유튜브 표시를 가리는 검은 띠
├ #donor-info.vd-toast       ← 곡 시작 토스트 (보일 때 .show · 위치 .bl .br .tl .tr)
│  ├ .nick (.vd-toast-nick)  ← 신청자
│  ├ .meta (.vd-toast-meta)  ← 곡 제목·정보
│  └ .msg  (.vd-toast-msg)   ← 메시지
└ #card                      ← 카드 모드 (보일 때 .on · 위치 .bl .br .tl .tr · 영상 후원으로 멈춤 .paused)
   ├ #thumb                  ← 썸네일
   └ #meta (#title · #who · #bar > #fill 진행 막대 · #badge 멈춤 안내)

CSS 변수 — 색·크기·위치를 바꾸는 가장 쉬운 방법

변수무엇을 바꾸나기본값
--vd-mask-bg가림 띠 색#000
--vd-mask-top-h위쪽 가림 띠 높이13%
--vd-mask-br-w오른쪽 아래 가림 너비32%
--vd-mask-br-h오른쪽 아래 가림 높이14%
--vd-toast-bg토스트 배경linear-gradient(135deg, rgba(102,126,234,.96), rgba(118,75,162,.96))
--vd-toast-fg토스트 글자색#fff
--vd-toast-pad토스트 안쪽 여백36px 56px
--vd-toast-radius토스트 모서리24px
--vd-toast-shadow토스트·카드 그림자0 16px 48px rgba(0,0,0,.55)
--vd-toast-bottom토스트 아래(위) 여백70px
--vd-toast-left토스트 왼쪽(오른쪽) 여백70px
--vd-toast-maxw토스트 최대 너비70%
--vd-toast-minw토스트 최소 너비520px
--vd-toast-nick-size신청자 글자 크기44px
--vd-toast-meta-size곡 정보 글자 크기28px
--vd-toast-msg-size메시지 글자 크기24px
--vd-toast-divider메시지 위 구분선 색rgba(255,255,255,.3)
--vd-font글꼴'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif
--vd-idle-bg대기 화면 배경#000
--vd-idle-fg대기 화면 글자색#555
--vd-status-fg상태 글자색rgba(255,255,255,.4)
--vd-card-bg카드 모드 배경 (안 정하면 토스트 배경과 같음)(토스트 배경과 같음)
--vd-card-radius카드 모서리14px

상태별로 고르기

선택자언제
#donor-info.show토스트가 보이는 동안
#card.paused영상 후원 때문에 멈춘 동안
body.playing곡 재생 중
#card.on카드가 보이는 동안

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

토스트 작게 1080p 화면에서 너무 크다면.
:root {
  --vd-toast-pad: 18px 28px;
  --vd-toast-minw: 320px;
  --vd-toast-nick-size: 26px;
  --vd-toast-meta-size: 18px;
  --vd-toast-msg-size: 16px;
}
카드 썸네일 숨기기
#thumb { display: none; }
카드 진행 막대 색
#fill { background: #ff4d6d; }
가림 띠 투명하게 영상 모드에서 유튜브 표시가 보여도 괜찮다면.
:root { --vd-mask-bg: transparent; }

🎧 모니터링 TTS monitor

스트리머만 듣는 음성 소스라 평소엔 화면에 아무것도 안 보입니다. 주소 뒤에 <code>?show=1</code>을 붙이면 최근 읽은 문장이 왼쪽 아래에 잠깐 뜹니다 (확인용).

권장 브라우저 소스 크기: 아무 크기 · 변수 접두사 --mo-

화면 구조 — 들여쓴 것이 안쪽 요소. 이 이름으로 골라서 꾸밉니다

#log                         ← ?show=1 일 때만 보임
└ .mo-line                   ← 읽은 문장 한 줄 (뒤의 small = '사용'·'테스트' 표시)

CSS 변수 — 색·크기·위치를 바꾸는 가장 쉬운 방법

변수무엇을 바꾸나기본값
--mo-font글꼴'Pretendard','Noto Sans KR',system-ui,sans-serif
--mo-fg글자색#fff
--mo-bg문장 배경rgba(10,12,18,.78)

상태별로 고르기

선택자언제
body.show?show=1 로 문장 표시 중

예시 — 복사해서 대시보드 CSS 칸에 붙여 넣고 저장

문장을 오른쪽 위에
#log { left: auto; right: 16px; bottom: auto; top: 16px; }
문장 글씨 작게
.mo-line { font-size: 14px; }

문제 해결