[Dev ๐ป/Front-end] - [CSS/JS] Tistory ๊ฐ๋ฐ ๋ธ๋ก๊ทธ ์ ์, ์ฌ์ด๋๋ฐ ๊พธ๋ฏธ๊ธฐ - 1
[Dev ๐ป/Front-end] - [CSS/JS] Tistory ๊ฐ๋ฐ ๋ธ๋ก๊ทธ ์ ์, ๋คํฌ๋ชจ๋ ํ ๊ธ ๊ตฌํ - 2
[Dev ๐ป/Front-end] - [CSS/JS] Tistory ๊ฐ๋ฐ ๋ธ๋ก๊ทธ ์ ์, ํธ์ ๊ธฐ๋ฅ ๊ตฌํ - 3
์ ๋ฒ์ ์ฌ์ด๋๋ฐ๋ฅผ ์ปค์คํ ํด์ ๊พธ๋ฏธ๋ ์์ ์ ํ๋ค.
์ด๋ฒ์๋ ์ ์ฒด์ ์ธ ๋ธ๋ก๊ทธ์ ์์์ ์ ํ๊ณ ,
๋คํฌ๋ชจ๋๋ก ์ ํ ํ ์ ์๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋ณด๋๋ก ํ๊ฒ ๋ค.
๋คํฌ๋ชจ๋ ํ ๊ธ ๊ธฐ๋ฅ ๊ตฌํ
๋จผ์ ๋คํฌ๋ชจ๋ ํ ๊ธ ๋ฒํผ์ ์ด๋์ ๋ฃ์ผ๋ฉด ์ข์ ๊น ํ๋ค,
ํค๋ ๋ถ๋ถ์ ์๋ ๋ฒํผ๋ค ์ฌ์ด์ ๋ฃ์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์,
html ๊ตฌ์กฐ๋ฅผ ํ์ ํด ๋ณด์๋ค.

util ํด๋์ค div ํ๊ทธ ์์ ๋คํฌ๋ชจ๋ ํ ๊ธ ๋ฒํผ์ ๊ตฌํํด ์ฃผ๊ณ
<button type="button" class="dark-mode-toggle">
<i class="fas fa-moon"></i>
<span class="screen_out">๋คํฌ ๋ชจ๋ ํ ๊ธ</span>
</button>
์ด๋ฒ์๋ jQuery๋ฅผ ์ด์ฉํ์ฌ ์ค์ ๋คํฌ๋ชจ๋๊ฐ ๋์๋๋ ๋ถ๋ถ์ ๊ตฌํํด ์ฃผ๋๋ก ํ์
์ ์ฒด ์์์ ์์ด์ฝ ๋ฑ์ ๋ณ์๋ก ์ ์ฅํ๊ณ ,
์ง๋ ๊ฒ์๊ธ์์ ๋ฑ๋กํ ๊นํ๋ธ ์์ ฏ๋ ๋คํฌ๋ชจ๋์ ๋ง๊ฒ ๋ฐ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์,
๋ชจ๋์ ๋ฐ๋ผ ํ๋ผ๋ฏธํฐ ๊ฐ์ ๋ค๋ฅด๊ฒ ์ค ์ ์๊ฒ ๋ณ์๋ก ์ ์ฅํ์๋ค.
var $body = $('body');
var $darkModeToggle = $('.dark-mode-toggle');
var $githubCard = $('#github-stats-card');
var darkIcon = 'fa-moon';
var lightIcon = 'fa-sun';
var darkModeKey = 'darkMode';
var baseUrl = 'https://github-readme-stats.vercel.app/api?username=101Sean&show_icons=true&include_all_commits=true&theme=transparent&hide=issues,prs,contribs&hide_rank=true';
var lightParams = '&text_color=777777&title_color=777777&icon_color=214726';
var darkParams = '&text_color=999999&title_color=999999&icon_color=70a379';
๊ทธ๋ฆฌ๊ณ ๊นํ๋ธ ์์ ฏ์ ์์ ๋ณ๊ฒฝ ํจ์์
function updateGithubCard(isDarkMode) {
if ($githubCard.length) {
var params = isDarkMode ? darkParams : lightParams;
$githubCard.attr('src', baseUrl + params);
}
}
์ค์ ํด๋ฆญ์, ๋คํฌ๋ชจ๋๋ก ์ ํํด์ฃผ๋ ํ ๊ธ ๊ธฐ๋ฅ์ ๊ตฌํํด ์ฃผ์๋ค.
๋, ํ์ฌ ์ํ๋ฅผ localStorage์ ์ ์ฅํ์ฌ, ์ํ ๊ฐ์ ์ ์งํ ์ ์๊ฒ ํด์ฃผ์๋ค.
$darkModeToggle.on('click', function() {
if ($body.hasClass('dark-mode')) {
$body.removeClass('dark-mode');
localStorage.setItem(darkModeKey, 'disabled');
$(this).find('i').removeClass(lightIcon).addClass(darkIcon);
updateGithubCard(false);
} else {
$body.addClass('dark-mode');
localStorage.setItem(darkModeKey, 'enabled');
$(this).find('i').removeClass(darkIcon).addClass(lightIcon);
updateGithubCard(true);
}
});
var savedMode = localStorage.getItem(darkModeKey);
if (savedMode === 'enabled') {
$body.addClass('dark-mode');
$darkModeToggle.find('i').removeClass(darkIcon).addClass(lightIcon);
updateGithubCard(true);
} else {
$body.removeClass('dark-mode');
$darkModeToggle.find('i').removeClass(lightIcon).addClass(darkIcon);
updateGithubCard(false);
}
๋คํฌ๋ชจ๋ ์คํ์ผ์ํธ ๊ตฌํ
์ด์ ๊ธฐ๋ฅ ์์ ์ ๋๋ง์ณค๋ค.
๋ค์์ผ๋ก๋ ๋ธ๋ก๊ทธ์ ์์๋ค์ ํ๋ํ๋ ์ฐพ์์, ๋์์ธ์ ์ ์ฉํด ์ฃผ์ด์ผ ํ๋ค.
์ ์ฒด์ ์ธ ์๊น ์ปจ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
|
|
๋ฐฐ๊ฒฝ์
|
ํ
๋๋ฆฌ์
|
ํ
์คํธ์
|
์๋ธ ํ
์คํธ์
|
๊ฐ์กฐ์
|
|
๋ผ์ดํธ ๋ชจ๋
|
#fafafa
|
#eeeeee
|
#555555
|
#999999
|
#214726
|
|
๋คํฌ ๋ชจ๋
|
#1e1e1e
|
#333333
|
#d4d4d4
|
#a1a1a1
|
#70a379
|
๋จผ์ ์ ์ฒด์ ์ธ ํ์ด์ง์ ์์ญ, ํ ๋๋ฆฌ์ ์์ ๋ฑ
๋คํฌ๋ชจ๋์์ ์ฌ์ฉ๋ ์์์ ์ง์ ํด ์ฃผ๊ณ ,
body.dark-mode {
background-color: #1E1E1E;
color: #D4D4D4;
}
body.dark-mode html,
body.dark-mode #wrap,
body.dark-mode #container,
...
body.dark-mode #aside {
background-color: #1E1E1E;
}
body.dark-mode #header,
body.dark-mode #footer {
border-color: #333333;
background-color: #1E1E1E;
}
๊ทธ ๋ค์ ๋งํฌ ํ ์คํธ์ ์์๊ณผ, ๊ฒ์๊ธ์ ๋ณธ๋ฌธ ํ ์คํธ ์์ ์ ์ฉ
body.dark-mode a,
body.dark-mode a:link,
body.dark-mode a:visited {
color: #D4D4D4;
}
body.dark-mode h1, body.dark-mode h2, ... {
color: #d4d4d4 ;
}
body.dark-mode .entry-content p:not(pre *),
...
body.dark-mode .entry-content li:not(pre *) {
color: #D4D4D4;
}
๊ฐ๋ฐ ๋ธ๋ก๊ทธ๋ค ๋ณด๋, ๊ฒ์๊ธ์ ์ฝ๋ ๋ธ๋ญ์๋ ๋คํฌ๋ชจ๋ ์ ์ฉ์ด ํ์ํ๋ฏ๋ก
์ญ์ ๋คํฌ๋ชจ๋์ ์๋ง๊ฒ ์ ์ฉ์ ํ์๋ค.
body.dark-mode pre,
body.dark-mode code {
background-color: #333333;
border: 1px solid #444444;
color: #D4D4D4;
}
body.dark-mode blockquote {
border-left-color: #70A379;
background-color: #1E1E1E;
}
body.dark-mode input[type=text]:not(#search),
body.dark-mode textarea {
background-color: #333333;
border-color: #555555;
color: #D4D4D4;
}
๋๊ธ ๋ฑ๋ก ๋ฒํผ, ๋ธ๋ก๊ทธ ํ์ดํ, ๊ฐ์กฐ ํ ์คํธ ๋ฑ
๊ฐ์กฐ์์ด ๋ค์ด๊ฐ๋ ๋ถ๋ถ๋ ์์์ ์ง์ ํด ์ฃผ๊ณ ,
body.dark-mode #header h1 a {
color: #70A379;
}
body.dark-mode .post-header h1 em {
color: #70A379;
}
body.dark-mode .tt_category .link_tit {
color: #70A379;
}
body.dark-mode .tt-comment-cont .tt-btn_register {
background-color: #70A379;
}
์ด๋ฏธ์ง ํํ๋ก ๋ค์ด๊ฐ, tistory ๊ธฐ๋ณธ ์์ด์ฝ๋ค์
์ ๋ฐ์ ์ผ๋ก ์์ฐ์ค๋ฝ๊ฒ ๊ตฌํํด ์ฃผ์๋ค.
body.dark-mode #menubar_wrapper .btn_menu_toolbar .ico_tistory_sign {
filter: invert(80%);
}
body.dark-mode .pagination .prev,
body.dark-mode .pagination .next {
filter: invert(80%);
}
๋ง์ง๋ง์ผ๋ก ๋ชจ๋ ์ ํ ์ ๋ถ๋๋ฌ์ด ํจ๊ณผ ์ฒ๋ฆฌ๋ฅผ ์ํด
ํธ๋์ง์ ๋ ๋ฃ์ด ์ฃผ์๋ค.
body {
transition: background-color 0.5s ease, color 0.5s ease;
}
์ด ์ธ์๋ ์ง์ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋ชจ๋๋ฅผ ์ผ์
์์ ๋ณ๊ฒฝ์ด ํ์ํ ๋ถ๋ถ์ ์ง์ ์ฐพ์์ ์ ๋ถ ์์ ์์ผ์ฃผ์๋ค.

GitHub - 101Sean/tistory_custom_skin: ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ ์ปค์คํ ์ฉ html
ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ ์ปค์คํ ์ฉ html. Contribute to 101Sean/tistory_custom_skin development by creating an account on GitHub.
github.com
์ ์ฉํ๊ณ ๋๋, ๋คํฌ ๋ชจ๋๋ก ๋ณด๋ ์น ํ์ด์ง๋ ์ ๋ฒ ๊น๋ํด์ ์ข์๋ค.

ํ ๊ธ ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ๋งค๋๋ฝ๊ฒ ๋คํฌ๋ชจ๋๋ก ๋ณํ๋๋ ๋ชจ์ต
๋์์ ์๋น์ค๊ฐ ์ข ๋ฃ๋์ด ํด๋น ์ฝํ ์ธ ๋ฅผ ์ฌ์ํ ์ ์์ต๋๋ค.
์ด๋ฒ ์์ ์ ํ๋ํ๋ ์์๋ฅผ ์ฐพ์ ๋ค,
์คํ์ผ์ํธ(css)๋ฅผ ์ ๋ณด๋ ์์ ์ด ๋ง์์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ๋๋ฐ
์์ฑํ๊ณ ๋๋ ์ด์๊ฒ ์ ์ฉ๋์ด์ ๋ฟ๋ฏํ๋ค.
๋ค์์๋ ๊ฒ์๊ธ์ ์์๋ค์ ์ธ๋ถ์ ์ธ ์กฐ์ ๊ณผ,
๊ฐ์ฌํ๊ฒ๋ ์ด๋ ค์ด ๊ธ์ ์ฝ์ด์ฃผ๋ ์ธ๊ตญ ์น๊ตฌ๋ค์ ์ํ ํ์ ๊ธฐ๋ฅ์ผ๋ก,
ํ์ด์ง ๋ฒ์ญ ๊ธฐ๋ฅ๋ ๋ง๋ค์ด์ ์ถ๊ฐ ํด ๋ณด๋๋ก ํ๊ฒ ๋ค.
์๋ณธ ๊ฒ์๊ธ
https://blog.naver.com/101artspace/224085372149
Tistory ๊ฐ๋ฐ ๋ธ๋ก๊ทธ ์ ์ํ๊ธฐ, ๋คํฌ๋ชจ๋ ํ ๊ธ ๊ตฌํ - 2
์ ๋ฒ์ ์ฌ์ด๋๋ฐ๋ฅผ ์ปค์คํ ํด์ ๊พธ๋ฏธ๋ ์์ ์ ํ๋ค. ์ด๋ฒ์๋ ์ ์ฒด์ ์ธ ๋ธ๋ก๊ทธ์ ์์์ ์ ํ๊ณ , ๋คํฌ๋ชจ๋...
blog.naver.com