- ์์ ํ๋ ์ด์ด3
PC ์ต์ ํ๋ผ ๋ชจ๋ฐ์ผ์์ ๋์ค์ง ์์ต๋๋ค!


<!-- Font Awesome ํธ์ถ -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=DotGothic16&family=Coral+Pixels&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=New+Tegomin&display=swap" rel="stylesheet">
<div id="music-player-container">
<div class="player-wrapper">
<!-- 1. ํ๋ ์ด๋ฆฌ์คํธ (์ผ์ชฝ) -->
<div id="playlist-window" class="playlist-window">
<div class="pl-header">Playlist</div>
<div class="pl-body-box">
<ul id="playlist-ul">
<li>๋
ธ๋ ์ ๋ชฉ 1 - ๊ฐ์</li>
<li>๋
ธ๋ ์ ๋ชฉ 2 - ๊ฐ์</li>
</ul>
</div>
</div>
<!-- 2. ๋ฉ์ธ ํ๋ ์ด์ด ๋ณธ์ฒด (๋์ด ์กฐ์ ๋จ) -->
<div id="main-player-body" class="main-player">
<!-- ์ ๊ธฐ ๋ฒํผ (ใ
ก ๋ชจ์) -->
<div class="toggle-fold" onclick="toggleFold(event)">
<i class="fa-solid fa-minus"></i>
</div>
<!-- ๊ธฐ๋ณธ ์บ๋ฆญํฐ (๋ฐฐ์จ ์ ์ง, ์์น ์ฌ์กฐ์ ) -->
<div id="char-wrap" class="char-wrap" onclick="togglePlaylist()">
<div id="song-bubble" class="song-bubble"></div>
<img src="" id="main-char" class="character-img" alt="char">
</div>
<!-- ์ฌ์ ๋ฐ -->
<div class="progress-container" id="p-container">
<div class="progress-base">
<div class="progress-fill" id="p-bar">
<div class="progress-thumb"></div>
</div>
</div>
</div>
<!-- ์ปจํธ๋กค ๋ฒํผ -->
<div class="control-btns">
<div class="btn-circle" onclick="prevTrack()"><i class="fa-solid fa-backward-step"></i></div>
<div class="btn-circle main-play" onclick="togglePlay()">
<i class="fa-solid fa-play" id="play-pause-icon"></i>
</div>
<div class="btn-circle" onclick="nextTrack()"><i class="fa-solid fa-forward-step"></i></div>
</div>
<!-- ๋ณผ๋ฅจ ํ์ฑํ ๋ฒํผ -->
<i class="fa-solid fa-volume-high vol-toggle-btn" onclick="toggleVolume()"></i>
</div>
<!-- 3. ๋ณผ๋ฅจ ๋ฐ (์ค๋ฅธ์ชฝ ์) -->
<div id="vol-panel" class="vol-side-panel">
<div class="vol-base">
<input type="range" min="0" max="100" value="50" class="vol-range" id="vol-slider">
</div>
</div>
<!-- 4. ์ ํ์ ๋ ์ ์ฉ ์บ๋ฆญํฐ -->
<div id="folded-mode-area" style="display: none;" onclick="toggleFold(event)">
<div id="folded-bubble" class="song-bubble"></div>
<img src="์บ๋ฆญํฐ ์ด๋ฏธ์ง ์ฃผ์" id="folded-char" class="character-img" alt="folded-char">
</div>
</div>
</div>
<style>
:root {
--bg-main: #E4E4E4;
--btn-bg: #B9B9B9;
--icon-main: #7B7B7B;
--bar-base: #CECECE;
--bar-fill: #7B7B7B;
--bar-thumb: #5C5C5C;
--sub-icon: #ABABAB;
--pl-box: #B9B9B9;
--pl-text: #7F7F7F;
}
#music-player-container { position: fixed; bottom: 30px; left: 30px; z-index: 10000; font-family: 'Coral Pixels', 'New Tegomin', sans-serif; }
.player-wrapper { display: flex; align-items: flex-end; gap: 12px; position: relative; }
/* ๋ฉ์ธ ํ๋ ์ด์ด - ๋ฐํฌ๋ช
์ฒ๋ฆฌ */
.main-player { width: 340px; height: 90px; background: rgba(228, 228, 228, 0.75); backdrop-filter: blur(8px); border-radius: 20px;
padding: 10px 15px; box-sizing: border-box; display: flex; flex-direction: column;
justify-content: flex-end; align-items: center; position: relative; }
.char-wrap {
width: 80px;
position: absolute;
bottom: 64px;
transform: translateX(-50%);
cursor: pointer;
transition: left 0.1s linear;
z-index: 10;
}
/* src๊ฐ ๋น์ด์์ผ๋ฉด ์จ๊ฒจ์ ๊น๋นก์ ๋ฐฉ์ง */
.character-img { width: 100%; height: auto; display: block; pointer-events: none; }
.character-img[src=""] { visibility: hidden; }
/* ๋งํ์ ์คํ์ผ */
.song-bubble {
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
background: #fff;
color: #555;
font-size: 9px;
font-weight: 600;
padding: 4px 8px;
border-radius: 8px;
white-space: nowrap;
box-shadow: 0 2px 8px rgba(0,0,0,0.12);
margin-bottom: 6px;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
}
/* ๋งํ์ ๊ผฌ๋ฆฌ (์ผ๊ฐํ) */
.song-bubble::after {
content: '';
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
border: 5px solid transparent;
border-top-color: #fff;
}
.song-bubble.show { opacity: 1; }
.char-wrap.jumping { animation: jumpAnimWrap 1.0s infinite ease-in-out; }
@keyframes jumpAnimWrap { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-18px); } }
.jumping { animation: jumpAnim 1.0s infinite ease-in-out; }
@keyframes jumpAnim { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-18px); } }
.progress-container { width: 92%; margin-bottom: 12px; cursor: pointer; }
.progress-base { width: 100%; height: 5px; background: var(--bar-base); border-radius: 10px; position: relative; }
.progress-fill { width: 0%; height: 100%; background: var(--bar-fill); border-radius: 10px; position: relative; }
.progress-thumb { width: 10px; height: 10px; background: var(--bar-thumb); border-radius: 50%;
position: absolute; right: -5px; top: 50%; transform: translateY(-50%); }
.control-btns { display: flex; gap: 20px; align-items: center; justify-content: center; }
.btn-circle { width: 30px; height: 30px; background: var(--btn-bg); border-radius: 50%;
display: flex; justify-content: center; align-items: center; color: var(--icon-main); cursor: pointer; font-size: 12px; }
.btn-circle.main-play { width: 36px; height: 36px; font-size: 16px; }
.toggle-fold { position: absolute; left: 18px; bottom: 8px; cursor: pointer; color: var(--sub-icon); font-size: 12px; }
.vol-toggle-btn { position: absolute; right: 18px; bottom: 12px; cursor: pointer; color: var(--sub-icon); font-size: 12px; line-height: 12px; }
/* ๋ณผ๋ฅจ ํจ๋ - ๋ฐํฌ๋ช
์ฒ๋ฆฌ */
.vol-side-panel {
width: 0; opacity: 0; height: 90px; background: rgba(228, 228, 228, 0.75); backdrop-filter: blur(8px); border-radius: 15px;
display: flex; justify-content: center; align-items: center; overflow: hidden;
transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.vol-side-panel.active { width: 38px; opacity: 1; }
.vol-base { width: 5px; height: 75%; background: var(--bar-base); border-radius: 10px; display: flex; justify-content: center; }
.vol-range { appearance: slider-vertical; width: 4px; height: 100%; cursor: pointer; background: transparent; accent-color: var(--bar-fill); }
.vol-range::-webkit-slider-thumb { -webkit-appearance: none; width: 10px; height: 10px; background: var(--bar-thumb); border-radius: 50%; cursor: pointer; }
/* ํ๋ ์ด๋ฆฌ์คํธ - ๋ฐํฌ๋ช
์ฒ๋ฆฌ */
.playlist-window { width: 0; opacity: 0; height: 90px; background: rgba(228, 228, 228, 0.75); backdrop-filter: blur(8px); border-radius: 15px;
overflow: hidden; transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column; }
.playlist-window.active { width: 180px; opacity: 1; padding: 10px; margin-right: 8px; }
.pl-header { font-weight: bold; color: var(--pl-text); font-style: italic; font-size: 13px; margin-bottom: 5px; }
.pl-body-box { background: var(--pl-box); border-radius: 10px; flex-grow: 1; padding: 6px; color: var(--pl-text); font-size: 10px; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; }
.pl-body-box::-webkit-scrollbar { display: none; }
.pl-body-box ul { list-style: none; padding: 0; margin: 0; }
.pl-body-box ul li { padding: 4px 6px; border-radius: 6px; cursor: pointer; transition: background 0.2s; }
.pl-body-box ul li:hover { background: rgba(255,255,255,0.3); }
.pl-body-box ul li.active-track { background: rgba(255,255,255,0.45); font-weight: bold; }
.folded-mode .main-player, .folded-mode .playlist-window, .folded-mode .vol-side-panel { display: none !important; }
.folded-mode #folded-mode-area { display: block !important; width: 75px; cursor: pointer; position: relative; }
/* ๋ชจ๋ฐ์ผ์์ ํ๋ ์ด์ด ์จ๊น */
@media screen and (max-width: 768px) {
#music-player-container { display: none !important; }
}
/* ํ์ด์ง ๋ก๋ ์ ๊น๋นก์ ๋ฐฉ์ง */
#music-player-container { opacity: 0; transition: opacity 0.3s ease; }
#music-player-container.ready { opacity: 1; }
</style>
<script>
let isPlaying = false;
let isFolded = false;
let progress = 0;
let ticker;
let currentTrackIndex = 0;
const mainChar = document.getElementById('main-char');
const fChar = document.getElementById('folded-char');
const pIcon = document.getElementById('play-pause-icon');
const pBar = document.getElementById('p-bar');
const charWrap = document.getElementById('char-wrap');
const pContainer = document.getElementById('p-container');
/* ์บ๋ฆญํฐ ์ด๋ฏธ์ง ์ฃผ์ ์ค์ */
const charPlayImg = "์ฌ์ ์ค ์บ๋ฆญํฐ ์ด๋ฏธ์ง";
const charPauseImg = "์ ์ง ์บ๋ฆญํฐ ์ด๋ฏธ์ง";
/* ์ด๋ฏธ์ง ๋ฏธ๋ฆฌ ๋ก๋ — ์ฌ์/์ ์ง ์ ํ ์ ๊น๋นก์ ์์ ๋ฐฉ์ง */
const preloadPlay = new Image();
preloadPlay.src = charPlayImg;
const preloadPause = new Image();
preloadPause.src = charPauseImg;
const tracks = [
{
title: "๋
ธ๋ ์ ๋ชฉ",
artist: "๊ฐ์ ์ด๋ฆ",
src: "๊นํ๋ธ ๋งํฌ"
}
];
const audio = new Audio();
audio.volume = 0.5;
function renderPlaylist() {
const ul = document.getElementById('playlist-ul');
ul.innerHTML = '';
tracks.forEach((track, i) => {
const li = document.createElement('li');
li.textContent = track.title + ' - ' + track.artist;
if (i === currentTrackIndex) li.classList.add('active-track');
li.addEventListener('click', () => {
currentTrackIndex = i;
loadAndPlay();
});
ul.appendChild(li);
});
}
function loadAndPlay() {
if (tracks.length === 0) return;
audio.src = tracks[currentTrackIndex].src;
audio.load();
progress = 0;
drawUI();
renderPlaylist();
if (!isPlaying) togglePlay();
else { audio.play(); updateBubble(); }
}
audio.addEventListener('ended', () => {
nextTrack();
});
const songBubble = document.getElementById('song-bubble');
/* ๋งํ์ ์ ํ์ฌ ๊ณก ์ ๋ชฉ ํ์/์จ๊น (ํผ์นจ + ์ ํ ๋ ๋ค) */
function updateBubble() {
if (isPlaying && tracks.length > 0) {
songBubble.textContent = tracks[currentTrackIndex].title;
songBubble.classList.add('show');
foldedBubble.textContent = tracks[currentTrackIndex].title;
foldedBubble.classList.add('show');
} else {
songBubble.classList.remove('show');
foldedBubble.classList.remove('show');
}
}
const foldedArea = document.getElementById('folded-mode-area');
const foldedBubble = document.getElementById('folded-bubble');
function togglePlay() {
isPlaying = !isPlaying;
if (isPlaying) {
pIcon.classList.replace('fa-play', 'fa-pause');
charWrap.classList.add('jumping');
mainChar.src = charPlayImg;
foldedArea.classList.add('jumping');
if (tracks.length > 0) {
if (!audio.src || audio.src === location.href) {
audio.src = tracks[currentTrackIndex].src;
audio.load();
}
audio.play();
}
} else {
pIcon.classList.replace('fa-pause', 'fa-play');
charWrap.classList.remove('jumping');
mainChar.src = charPauseImg;
foldedArea.classList.remove('jumping');
audio.pause();
}
updateBubble();
}
function drawUI() {
pBar.style.width = progress + '%';
const containerRect = pContainer.getBoundingClientRect();
const barFillWidth = (progress / 100) * containerRect.width;
charWrap.style.left = (pContainer.offsetLeft + barFillWidth) + 'px';
}
function prevTrack() {
if (tracks.length === 0) return;
if (audio.currentTime > 3) {
audio.currentTime = 0;
progress = 0;
drawUI();
} else {
currentTrackIndex = (currentTrackIndex - 1 + tracks.length) % tracks.length;
loadAndPlay();
}
}
function nextTrack() {
if (tracks.length === 0) return;
currentTrackIndex = (currentTrackIndex + 1) % tracks.length;
loadAndPlay();
}
function togglePlaylist() {
if(!isFolded) {
document.getElementById('vol-panel').classList.remove('active');
document.getElementById('playlist-window').classList.toggle('active');
}
}
function toggleVolume() {
if(!isFolded) {
document.getElementById('playlist-window').classList.remove('active');
document.getElementById('vol-panel').classList.toggle('active');
}
}
function toggleFold(event) {
event.stopPropagation();
const root = document.getElementById('music-player-container');
isFolded = !isFolded;
if (isFolded) {
root.classList.add('folded-mode');
document.getElementById('playlist-window').classList.remove('active');
document.getElementById('vol-panel').classList.remove('active');
} else {
// ํผ์น ๋ ์บ๋ฆญํฐ transition์ ์ ๊น ๋๊ณ , ์์น ์ก์ ๋ค ๋ค์ ์ผฌ
charWrap.style.transition = 'none';
root.classList.remove('folded-mode');
requestAnimationFrame(() => {
drawUI();
// ์์น๊ฐ ์กํ ํ ๋ค์ ํ๋ ์์์ transition ๋ณต์
requestAnimationFrame(() => {
charWrap.style.transition = 'left 0.1s linear';
});
});
}
}
let isDragging = false;
function seekToPosition(e) {
const rect = pContainer.getBoundingClientRect();
let ratio = (e.clientX - rect.left) / rect.width;
ratio = Math.max(0, Math.min(1, ratio));
progress = ratio * 100;
if (audio.duration) {
audio.currentTime = ratio * audio.duration;
}
drawUI();
}
pContainer.addEventListener('mousedown', (e) => {
isDragging = true;
seekToPosition(e);
});
document.addEventListener('mousemove', (e) => {
if (isDragging) {
seekToPosition(e);
}
});
document.addEventListener('mouseup', () => {
isDragging = false;
});
document.getElementById('vol-slider').addEventListener('input', (e) => {
audio.volume = e.target.value / 100;
saveState();
});
/* ํ์ด์ง ์ด๋ ์ ์ฌ์ ์ํ ์ ์ง (localStorage) */
function saveState() {
localStorage.setItem('music_player_state', JSON.stringify({
index: currentTrackIndex,
time: audio.currentTime,
paused: audio.paused,
volume: audio.volume,
progress: progress
}));
}
function loadState() {
const saved = localStorage.getItem('music_player_state');
if (saved) {
const state = JSON.parse(saved);
currentTrackIndex = state.index || 0;
audio.volume = state.volume !== undefined ? state.volume : 0.5;
document.getElementById('vol-slider').value = audio.volume * 100;
if (tracks.length > 0 && tracks[currentTrackIndex]) {
audio.src = tracks[currentTrackIndex].src;
audio.currentTime = state.time || 0;
progress = state.progress || 0;
drawUI();
renderPlaylist();
if (!state.paused) {
audio.play().then(() => {
isPlaying = true;
pIcon.classList.replace('fa-play', 'fa-pause');
charWrap.classList.add('jumping');
mainChar.src = charPlayImg;
foldedArea.classList.add('jumping');
updateBubble();
}).catch(() => {
mainChar.src = charPauseImg;
});
} else {
mainChar.src = charPauseImg;
}
}
} else {
mainChar.src = charPauseImg;
renderPlaylist();
}
}
audio.addEventListener('timeupdate', function() {
if (audio.duration) {
progress = (audio.currentTime / audio.duration) * 100;
drawUI();
}
saveState();
});
window.addEventListener('beforeunload', saveState);
/* ์ด๊ธฐํ: ์ด๋ฏธ์ง๊ฐ ์ค๋น๋ ํ ํ๋ ์ด์ด ํ์ */
function initPlayer() {
loadState();
requestAnimationFrame(() => {
drawUI();
document.getElementById('music-player-container').classList.add('ready');
});
}
// ๋ฉ์ถค ์บ๋ฆญํฐ ์ด๋ฏธ์ง๊ฐ ๋ก๋ ์๋ฃ๋๋ฉด ํ๋ ์ด์ด ํ์
if (preloadPause.complete) {
initPlayer();
} else {
preloadPause.onload = initPlayer;
preloadPause.onerror = initPlayer;
}
</script>
์ฝ๋๋ </body> ์์ ๋ฃ์ผ์๋ฉด ๋ฉ๋๋ค!
- ์ปค์คํ ์ค๋ช ๋ฌธ
1. ์์ ์ถ๊ฐํ๊ธฐ
๊ธฐ์กด ๋ง์ง๋ง ์ฝ๋ ๋์ ์ผํ(,)๋ฅผ ์ฐ์ด ์ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ๋ค์ ์ ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ์ผ์ธ์.
*์์
const tracks = [
{ title: "๋
ธ๋ ์ ๋ชฉ", artist: "๊ฐ์", src: "mp3 ์ฃผ์" },
{ title: "๋ ๋ฒ์งธ ๊ณก", artist: "๊ฐ์", src: "mp3 ์ฃผ์" }// ← ์๋ก ์ถ๊ฐํ ์ฝ๋ (์ผํ X)
];
2. ์์ ์ ๊ฑฐํ๊ธฐ
์ง์ฐ๊ณ ์ถ์ { ... } ๋ฉ์ด๋ฆฌ๋ฅผ ํต์งธ๋ก ์ญ์ ํ์ธ์.
์ง์ฐ๊ณ ๋ ๋ค, ๋จ์์๋ ๋ง์ง๋ง ์ฝ๋ ๋ค์ ์ผํ(,)๊ฐ ๋ถ์ด์๋ค๋ฉด ๊ทธ๊ฒ๋ ๊ฐ์ด ์ง์์ค์ผ ํฉ๋๋ค.
*์์
์ ๊นํ๋ธ์ ์
๋ก๋ํด์ ์์
์ฃผ์๋ฅผ ๋ณต์ฌ, ๋ถ์ฌ๋ฃ๊ธฐ ํ์ต๋๋ค!*
(youtube ๋งํฌ๋ ๋๋์ง ์ ๋๋์ง ๋ชจ๋ฆ
๋๋ค... ๋๋๋ก์ด๋ฉด ๊นํ๋ธ์ ์
๋ก๋ํด์ ์ฐ๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค!)
3. ๊นํ๋ธ์ ์์
์
๋ก๋ ๋ฐฉ๋ฒ
- ๊นํ๋ธ ๊ฒ์ > ํ์๊ฐ์
> ๊นํ๋ธ ํ์์ new ํด๋ฆญ
Repository name (์ ์ฅ์ ์ด๋ฆ)
Description (์ค๋ช
)
๋งจ ์๋ ์ด๋ก ๋ฒํผ ํด๋ฆญ
๋ค์ ํ์ผ๋ก ๊ฐ์ ์ผ์ชฝ์ ์์ฑ๋ ์ ์ฅ์ ํด๋ฆญ
uploading an existing file ํด๋ฆญ ํ mp3 ํ์ผ ์
๋ก๋ > ๋งจ ์๋ ์ด๋ก ๋ฒํผ ํด๋ฆญ
Raw ๋ฒํผ ์ค๋ฅธ์ชฝ ํด๋ฆญ ํ ๋งํฌ ์ฃผ์ ๋ณต์ฌ
์ ์ฝ๋ url : " " ์์ ๋งํฌ ๋ถ์ฌ๋ฃ๊ธฐ ํ,
https://github.com/์ ์ ๋ช /์ ์ฅ์๋ช /raw/main/ํ์ผ๋ช .mp3
์์ ์ฃผ์๋ฅผ ์๋์ฒ๋ผ ๋ณ๊ฒฝํ์๋ฉด ๋!
https://cdn.jsdelivr.net/gh/์ ์ ๋ช /์ ์ฅ์๋ช @main/ํ์ผ๋ช .mp3
(์ด๋ ๊ฒ ํ๋ ์ด์ ๋ ๋ณด์ ์ ์ฑ ๋๋ฌธ์ ์์ ์ฌ์์ด ๋งํ ์ ์์ด์)
1. ์ด๋ฏธ์ง ๋ณ๊ฒฝ
<!-- 4. ์ ํ์ ๋ ์ ์ฉ ์บ๋ฆญํฐ -->
<div id="folded-mode-area" style="display: none;" onclick="toggleFold(event)">
<div id="folded-bubble" class="song-bubble"></div>
<img src="์บ๋ฆญํฐ ์ด๋ฏธ์ง ์ฃผ์" id="folded-char" class="character-img" alt="folded-char">
/* ์บ๋ฆญํฐ ์ด๋ฏธ์ง ์ฃผ์ ์ค์ */
const charPlayImg = "์ฌ์ ์ค ์บ๋ฆญํฐ ์ด๋ฏธ์ง";
const charPauseImg = "์ ์ง ์บ๋ฆญํฐ ์ด๋ฏธ์ง";
์ ์ฝ๋์์ ์จ์ ธ์๋ ๊ธ์ ๋ง๋ ์ด๋ฏธ์ง ์ฃผ์๋ฅผ ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค.
--bg-main: #E4E4E4;
/* ํ๋ ์ด์ด ๋ณธ์ฒด ๋ฐฐ๊ฒฝ์ */
--btn-bg: #B9B9B9;
/* ๋ฒํผ(์ด์ /์ฌ์/๋ค์) ๋ฐฐ๊ฒฝ์ */
--icon-main: #af3b49;
/* ๋ฒํผ ์ ์์ด์ฝ ์์ (์ฌ์ ์ผ๊ฐํ ๋ฑ) */
--bar-base: #CECECE;
/* ์ฌ์๋ฐ/๋ณผ๋ฅจ๋ฐ ๋น ๋ถ๋ถ ์์ */
--bar-fill: #af3b49;
/* ์ฌ์๋ฐ/๋ณผ๋ฅจ๋ฐ ์ฑ์์ง ๋ถ๋ถ ์์ */
--bar-thumb: #922532;
/* ์ฌ์๋ฐ ๋๊ทธ๋ ์์ก์ด ์์ */
--sub-icon: #ABABAB;
/* ์ ๊ธฐ(ใ
ก) ๋ฒํผ, ๋ณผ๋ฅจ ์์ด์ฝ ์์ */
--pl-box: #B9B9B9;
/* ํ๋ ์ด๋ฆฌ์คํธ ๋ชฉ๋ก ๋ฐ์ค ๋ฐฐ๊ฒฝ์ */
--pl-text: #7F7F7F;
/* ํ๋ ์ด๋ฆฌ์คํธ ๊ธ์ ์์ */
ํธํ๊ฒ ์ฌ์ฉํด์ฃผ์ธ์!
๋ง์ฝ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ๋ฌธ์ ๋ถํ๋๋ฆฝ๋๋ค. ๊ฐ์ฌํฉ๋๋ค~