head 인라인 스크립트로 data-theme 선적용, 로고 캐시 스플래시 추가. 메인 커버는 업로드 후 저장 버튼에서 이미지·텍스트 일괄 반영. Co-authored-by: Cursor <cursoragent@cursor.com>
308 lines
6.3 KiB
CSS
308 lines
6.3 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
:root {
|
|
--site-bg: #fcfcfc;
|
|
--site-panel: #fcfcfc;
|
|
--site-panel-strong: #fcfcfc;
|
|
--site-text: #111111;
|
|
--site-muted: #454545;
|
|
--site-soft: #6f7480;
|
|
--site-line: #e2e2e0;
|
|
--site-input: #fcfcfc;
|
|
--site-accent: #ff4f2e;
|
|
--site-accent-text: #ffffff;
|
|
--site-invert: #111111;
|
|
--site-invert-text: #ffffff;
|
|
}
|
|
|
|
:root[data-theme='dark'] {
|
|
--site-bg: #050505;
|
|
--site-panel: #080808;
|
|
--site-panel-strong: #0d0d0d;
|
|
--site-text: #f4f4f2;
|
|
--site-muted: #c7c7c2;
|
|
--site-soft: #8b8e96;
|
|
--site-line: #252525;
|
|
--site-input: #171717;
|
|
--site-accent: #ff4f2e;
|
|
--site-accent-text: #ffffff;
|
|
--site-invert: #f4f4f2;
|
|
--site-invert-text: #111111;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
:root:not([data-theme='light']) {
|
|
--site-bg: #050505;
|
|
--site-panel: #080808;
|
|
--site-panel-strong: #0d0d0d;
|
|
--site-text: #f4f4f2;
|
|
--site-muted: #c7c7c2;
|
|
--site-soft: #8b8e96;
|
|
--site-line: #252525;
|
|
--site-input: #171717;
|
|
--site-accent: #ff4f2e;
|
|
--site-accent-text: #ffffff;
|
|
--site-invert: #f4f4f2;
|
|
--site-invert-text: #111111;
|
|
}
|
|
}
|
|
|
|
html {
|
|
font-family: Pretendard, ui-sans-serif, system-ui, sans-serif;
|
|
color: var(--site-text);
|
|
background: var(--site-bg);
|
|
}
|
|
|
|
.site-splash {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 9999;
|
|
display: grid;
|
|
place-items: center;
|
|
background: var(--site-bg);
|
|
transition: opacity 0.22s ease, visibility 0.22s ease;
|
|
}
|
|
|
|
html.site-app-ready .site-splash {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.site-splash__logo {
|
|
width: 5rem;
|
|
height: 5rem;
|
|
border-radius: 1rem;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.site-splash__text {
|
|
font-size: 1.25rem;
|
|
font-weight: 600;
|
|
letter-spacing: -0.02em;
|
|
color: var(--site-text);
|
|
}
|
|
|
|
html.site-mobile-nav-open {
|
|
overflow: hidden;
|
|
}
|
|
|
|
html.site-search-open {
|
|
overflow: hidden;
|
|
}
|
|
|
|
body {
|
|
min-width: 320px;
|
|
margin: 0;
|
|
background: var(--site-bg);
|
|
}
|
|
|
|
html.admin-post-editor-document,
|
|
body.admin-post-editor-document {
|
|
height: 100%;
|
|
overflow: hidden;
|
|
background: #ffffff;
|
|
}
|
|
|
|
html.admin-settings-document,
|
|
body.admin-settings-document {
|
|
height: 100%;
|
|
overflow: hidden;
|
|
background: #f7f8fa;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
@keyframes site-search-modal-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(-6px) scale(0.99);
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
}
|
|
|
|
.site-shell {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 100vh;
|
|
color: var(--site-text);
|
|
background: var(--site-bg);
|
|
}
|
|
|
|
.site-section {
|
|
border-bottom: 1px solid var(--site-line);
|
|
background: var(--site-bg);
|
|
}
|
|
|
|
.site-section-header {
|
|
@apply px-6 py-8;
|
|
}
|
|
|
|
.site-section-body {
|
|
@apply px-6 py-4;
|
|
}
|
|
|
|
.site-search-modal__panel--animate {
|
|
animation: site-search-modal-in 0.18s ease-out;
|
|
}
|
|
|
|
.post-prose {
|
|
@apply max-w-none text-[17px] leading-8;
|
|
color: var(--site-text);
|
|
}
|
|
|
|
.site-header {
|
|
height: 57px;
|
|
border-bottom: 1px solid var(--site-line);
|
|
background: var(--site-panel);
|
|
color: var(--site-text);
|
|
}
|
|
|
|
.site-main {
|
|
min-height: 0;
|
|
background: var(--site-bg);
|
|
}
|
|
|
|
.site-main--menu-closed {
|
|
border-left: 0;
|
|
}
|
|
|
|
.site-sidebar {
|
|
min-height: 0;
|
|
background: var(--site-panel);
|
|
color: var(--site-text);
|
|
}
|
|
|
|
/**
|
|
* 사이드바 내부 스크롤 영역 — 스크롤바만 숨기고 스크롤 동작은 유지한다.
|
|
*/
|
|
.site-sidebar-scroll {
|
|
overflow-y: auto;
|
|
scrollbar-width: none;
|
|
-ms-overflow-style: none;
|
|
}
|
|
|
|
.site-sidebar-scroll::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.site-sidebar-section {
|
|
border-bottom: 1px solid var(--site-line);
|
|
}
|
|
|
|
.site-muted {
|
|
color: var(--site-muted);
|
|
}
|
|
|
|
.site-soft {
|
|
color: var(--site-soft);
|
|
}
|
|
|
|
.site-input {
|
|
border: 1px solid var(--site-line);
|
|
background: var(--site-input);
|
|
color: var(--site-text);
|
|
transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
|
|
}
|
|
|
|
.site-button {
|
|
background: var(--site-invert);
|
|
color: var(--site-invert-text);
|
|
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
}
|
|
|
|
.site-button:hover {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.site-accent-button {
|
|
background: var(--site-accent);
|
|
color: var(--site-accent-text);
|
|
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
}
|
|
|
|
.site-accent-button:hover {
|
|
opacity: 0.92;
|
|
}
|
|
|
|
.site-interactive {
|
|
transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
|
|
}
|
|
|
|
.site-interactive:hover {
|
|
color: var(--site-text);
|
|
}
|
|
|
|
.site-input:hover,
|
|
.site-input:focus-visible {
|
|
border-color: color-mix(in srgb, var(--site-text) 24%, var(--site-line));
|
|
}
|
|
|
|
.site-panel-hover {
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.site-panel-hover:hover {
|
|
background: color-mix(in srgb, var(--site-panel) 72%, var(--site-text));
|
|
}
|
|
|
|
/**
|
|
* 왼쪽 사이드바 1차 네비·태그 카테고리·테마 점 등 행 호버 — 라이트 테마에서 밝은 크림 톤, 다크는 패널 대비 유지
|
|
*/
|
|
.site-sidebar-nav-row {
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.site-sidebar-nav-row:hover {
|
|
background-color: #f7f4ef;
|
|
}
|
|
|
|
:root[data-theme='dark'] .site-sidebar-nav-row:hover {
|
|
background: color-mix(in srgb, var(--site-panel) 72%, var(--site-text));
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
:root:not([data-theme='light']) .site-sidebar-nav-row:hover {
|
|
background: color-mix(in srgb, var(--site-panel) 72%, var(--site-text));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 다크 인증 폼(signin/signup) 텍스트 입력 — UA가 부모 color를 상속하지 않는 경우 대비
|
|
*/
|
|
.auth-form-input {
|
|
color: #f5f7fa;
|
|
caret-color: #2f6feb;
|
|
}
|
|
|
|
.auth-form-input::placeholder {
|
|
color: #5c6570;
|
|
}
|
|
|
|
.auth-form-input:-webkit-autofill,
|
|
.auth-form-input:-webkit-autofill:hover,
|
|
.auth-form-input:-webkit-autofill:focus {
|
|
-webkit-text-fill-color: #f5f7fa;
|
|
transition: background-color 9999s ease-out;
|
|
}
|
|
|
|
}
|
|
|
|
@layer utilities {
|
|
.no-scrollbar {
|
|
-ms-overflow-style: none;
|
|
scrollbar-width: none;
|
|
}
|
|
|
|
.no-scrollbar::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
}
|