대시보드 → 오버레이 탭 → '디자인 바꾸기 (CSS)'에 넣는 글의 사용법입니다. 오버레이를 고르고, 여기 예시를 복사해 붙여 넣은 뒤 저장하면 5초 안에 OBS에 반영됩니다.
@import와 url(http…)는 저장할 때 빠집니다. 그래서 웹 글꼴이나 인터넷 이미지 주소는 쓸 수 없습니다.url(data:…)처럼 글자로 바꾼 작은 이미지(아이콘)는 쓸 수 있습니다. 다만 30,000자 안에 들어가야 합니다.'Pretendard', 'Black Han Sans').?css=를 붙이면 저장된 CSS 대신 그 값을 씁니다. 잠깐 시험해 볼 때만 쓰세요. 예: …/stack?demo=1&css=:root{--ov-res-size:30px}오버레이마다 색·크기·위치를 정하는 변수가 있습니다. :root { } 안에 변수: 값;을 적으면 됩니다. 아래 오버레이별 표의 변수만 바꿔도 대부분 해결됩니다.
:root {
--ov-item-accent: #00ffa3; /* 강조선 색 */
--ov-res-size: 26px; /* 결과 글자 크기 */
}화면의 각 부분에는 이름(클래스 .이름, 아이디 #이름)이 있습니다. 이름 { 속성: 값; }으로 꾸밉니다.
.ov-nick { color: #ffd43b; font-weight: 900; } /* 닉네임 노랗게 굵게 */
.ov-meta { display: none; } /* 시각 숨기기 */| 하고 싶은 것 | 속성 | 예 |
|---|---|---|
| 숨기기 | display | display: none; |
| 글자 색 · 크기 · 굵기 | color font-size font-weight | color:#fff; font-size:24px; font-weight:800; |
| 글꼴 | font-family | font-family: 'Pretendard', sans-serif; |
| 배경 (단색 · 반투명 · 그라데이션) | background | background: rgba(0,0,0,.5); · linear-gradient(135deg,#a78bfa,#ec4899) |
| 모서리 · 테두리 · 그림자 | border-radius border box-shadow | border-radius:16px; border:2px solid #fff; |
| 위치 옮기기 | top right bottom left | left:40px; right:auto; (반대쪽은 auto로 풀기) |
| 여백 | padding(안) margin(밖) | padding: 10px 16px; |
| 투명도 · 크기 배율 | opacity transform | opacity:.8; transform: scale(1.2); |
| 글자 테두리 (방송용) | -webkit-text-stroke text-shadow | text-shadow: 0 0 4px #000, 0 0 8px #000; |
#ff4d6d — 16진수 색 (색상표에서 복사)rgba(0,0,0,.5) — 마지막 숫자가 투명도 (0 투명 ~ 1 불투명)linear-gradient(135deg, 색1, 색2) — 대각선 그라데이션transparent — 완전 투명@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로 읽어 줍니다. 기본 위치는 오른쪽 아래입니다.
권장 브라우저 소스 크기: 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 ← 아래 작은 글씨 (룰렛 이름·금액 등)
| 변수 | 무엇을 바꾸나 | 기본값 |
|---|---|---|
--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-only | TTS만 쓰는 모드(?mode=tts)일 때 화면 숨김 |
.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; }: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;
}룰렛이 돌 때 그 룰렛의 연출(원판 또는 슬롯머신)과 디자인대로 화면 가운데 크게 보여 줍니다. 추첨할 때는 같은 자리에 이름 슬롯이 나옵니다. 원판은 그림(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 | 리롤 결과 줄 |
#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; }#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; }아직 수행하지 않은 룰렛 결과를 최신순으로 보여 줍니다. 위에 대기 개수가 붙습니다.
권장 브라우저 소스 크기: 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 이면 안 보임)
| 변수 | 무엇을 바꾸나 | 기본값 |
|---|---|---|
--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번째부터 (긴 목록 자르기) |
.ov-item:nth-child(n+11) { display: none; }.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; }시간 항목(예: 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 ← 진행 중인 타이머가 없을 때
| 변수 | 무엇을 바꾸나 | 기본값 |
|---|---|---|
--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-warn | 5분 이하 색 | #fbbf24 |
--tm-danger | 1분 이하 색 | #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-soon | 5분 이하 남음 |
.timer.expiring-very-soon | 1분 이하 남음 |
.timer[data-result="노방종"] | 결과 이름이 '노방종'인 타이머만 |
.empty-state | 타이머 없을 때 문구 |
@keyframes blink { 50% { opacity: .35; } }
.timer.expiring-very-soon { animation: blink 1s infinite; }.timer[data-result="24시간 노방종"] { outline: 2px solid #ffd43b; }.empty-state { display: none; }:root { --tm-remaining-size: 34px; }
.timer-progress { height: 2px; }한 주소에 네 가지 화면이 번갈아 뜹니다: !룰렛사용 패널(오른쪽), 베팅 패널(오른쪽), 사다리(오른쪽, 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
| 변수 | 무엇을 바꾸나 | 기본값 |
|---|---|---|
--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 | '정답!' 큰 글씨 |
.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; }지금 재생 중인 신청곡·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 로 숨김)
| 변수 | 무엇을 바꾸나 | 기본값 |
|---|---|---|
--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 | 제목이 길어 흐르는 중 |
.np-root.is-empty { opacity: 0; }:root { --np-bg: rgba(0,0,0,.55); --np-radius: 12px; --np-pad: 10px 18px; }.np-pill { font-size: 0; }
.np-pill::before { content: "♪ 지금 이 곡"; font-size: 20px; }실제로 소리가 나는 소스입니다. 대시보드 '신청곡 설정'의 화면 모드에 따라 토스트(곡 시작 알림), 카드, 영상이 보입니다.
권장 브라우저 소스 크기: 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 멈춤 안내)
| 변수 | 무엇을 바꾸나 | 기본값 |
|---|---|---|
--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 | 카드가 보이는 동안 |
: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; }스트리머만 듣는 음성 소스라 평소엔 화면에 아무것도 안 보입니다. 주소 뒤에 <code>?show=1</code>을 붙이면 최근 읽은 문장이 왼쪽 아래에 잠깐 뜹니다 (확인용).
권장 브라우저 소스 크기: 아무 크기 · 변수 접두사 --mo-
#log ← ?show=1 일 때만 보임 └ .mo-line ← 읽은 문장 한 줄 (뒤의 small = '사용'·'테스트' 표시)
| 변수 | 무엇을 바꾸나 | 기본값 |
|---|---|---|
--mo-font | 글꼴 | 'Pretendard','Noto Sans KR',system-ui,sans-serif |
--mo-fg | 글자색 | #fff |
--mo-bg | 문장 배경 | rgba(10,12,18,.78) |
| 선택자 | 언제 |
|---|---|
body.show | ?show=1 로 문장 표시 중 |
#log { left: auto; right: 16px; bottom: auto; top: 16px; }.mo-line { font-size: 14px; }; })를 확인하세요. 한 줄이 틀리면 그 뒤가 무시될 수 있습니다. 오버레이 이름을 맞게 골랐는지도 확인하세요.--al-wheel-c1~c8로 바꿀 수 있습니다.auto로 풀어야 합니다.?mode=toast)으로 바꿉니다.