|
|
| 1번째 줄: |
1번째 줄: |
| /* 이 CSS 설정은 모든 스킨에 적용됩니다 */
| |
|
| |
|
| /* ===============================
| |
| Google Fonts: Inter
| |
| =============================== */
| |
| @import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
| |
|
| |
| /* ===============================
| |
| 기본 폰트
| |
| =============================== */
| |
| .mw-parser-output {
| |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont,
| |
| 'Apple SD Gothic Neo', 'Noto Sans KR',
| |
| system-ui, sans-serif;
| |
| }
| |
|
| |
| /* 문서 제목 + 섹션 제목 */
| |
| #firstHeading,
| |
| .mw-parser-output h2,
| |
| .mw-parser-output h3,
| |
| .mw-parser-output h4,
| |
| .mw-parser-output h5 {
| |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont,
| |
| 'Apple SD Gothic Neo', 'Noto Sans KR',
| |
| system-ui, sans-serif;
| |
| }
| |
|
| |
| /* ===============================
| |
| Heading 번호 매기기 (h2 ~ h5)
| |
| 1.
| |
| 1.1
| |
| 1.1.1
| |
| 1.1.1.1
| |
| =============================== */
| |
|
| |
| /* h2 기준 카운터 초기화 */
| |
| .mw-parser-output { counter-reset: h2; }
| |
|
| |
| /* ---------- h2 ---------- */
| |
| .mw-parser-output h2 {
| |
| counter-reset: h3;
| |
| font-size: 27px;
| |
| font-weight: 500;
| |
| }
| |
| .mw-parser-output h2 .mw-headline::before {
| |
| counter-increment: h2;
| |
| content: counter(h2) ". ";
| |
| margin-right: 2px;
| |
| font-size: 27px;
| |
| font-weight: 500;
| |
| }
| |
|
| |
| /* ---------- h3 ---------- */
| |
| .mw-parser-output h3 {
| |
| counter-reset: h4;
| |
| font-size: 22px;
| |
| font-weight: 500;
| |
| }
| |
| .mw-parser-output h3 .mw-headline::before {
| |
| counter-increment: h3;
| |
| content: counter(h2) "." counter(h3) " ";
| |
| margin-right: 2px;
| |
| font-size: 22px;
| |
| font-weight: 500;
| |
| }
| |
|
| |
| /* ---------- h4 ---------- */
| |
| .mw-parser-output h4 {
| |
| counter-reset: h5;
| |
| font-size: 20px;
| |
| font-weight: 500;
| |
| }
| |
| .mw-parser-output h4 .mw-headline::before {
| |
| counter-increment: h4;
| |
| content: counter(h2) "." counter(h3) "." counter(h4) " ";
| |
| margin-right: 2px;
| |
| font-size: 20px;
| |
| font-weight: 500;
| |
| }
| |
|
| |
| /* ---------- h5 ---------- */
| |
| .mw-parser-output h5 {
| |
| font-size: 18px;
| |
| font-weight: 500;
| |
| }
| |
| .mw-parser-output h5 .mw-headline::before {
| |
| counter-increment: h5;
| |
| content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) " ";
| |
| margin-right: 2px;
| |
| font-size: 18px;
| |
| font-weight: 500;
| |
| }
| |
|
| |
| /* ===============================
| |
| Heading 하단 구분선 + 여백 (h2 ~ h5)
| |
| =============================== */
| |
| .mw-parser-output h1,
| |
| .mw-parser-output h2,
| |
| .mw-parser-output h3,
| |
| .mw-parser-output h4,
| |
| .mw-parser-output h5 {
| |
| border-bottom: 1px solid #ccc;
| |
| padding-bottom: 5px;
| |
| margin: 1.2em 0 0.8em;
| |
|
| |
| /* 접기 UX */
| |
| cursor: pointer;
| |
| }
| |
|
| |
| /* ===============================
| |
| Heading 제목 ↔ 편집 링크 정렬
| |
| - :has() 제거
| |
| - 기본: flex-start
| |
| - JS가 .mw-has-editsection 클래스를 붙이면 space-between
| |
| =============================== */
| |
| .mw-parser-output h1,
| |
| .mw-parser-output h2,
| |
| .mw-parser-output h3,
| |
| .mw-parser-output h4,
| |
| .mw-parser-output h5 {
| |
| display: flex;
| |
| align-items: center;
| |
| justify-content: flex-start; /* 기본 */
| |
| }
| |
|
| |
| /* 제목 텍스트 */
| |
| .mw-parser-output .mw-headline {
| |
| flex: 1 1 auto;
| |
| min-width: 0; /* 긴 제목 줄바꿈 안정화 */
| |
| }
| |
|
| |
| /* 편집 링크 */
| |
| .mw-parser-output .mw-editsection {
| |
| flex: 0 0 auto;
| |
| font-size: 12px;
| |
| white-space: nowrap;
| |
| margin-left: 12px;
| |
| }
| |
|
| |
| /* 편집 링크가 있을 때만 양끝 정렬 (JS가 클래스 부여) */
| |
| .mw-parser-output h2.mw-has-editsection,
| |
| .mw-parser-output h3.mw-has-editsection,
| |
| .mw-parser-output h4.mw-has-editsection,
| |
| .mw-parser-output h5.mw-has-editsection {
| |
| justify-content: space-between;
| |
| }
| |
|
| |
| /* ===============================
| |
| [편집 | 원본편집] → [편집]
| |
| =============================== */
| |
|
| |
| /* '원본 편집' 링크 숨김 */
| |
| .mw-editsection a:last-of-type { display: none; }
| |
|
| |
| /* 구분자(|) 숨김 */
| |
| .mw-editsection .mw-editsection-divider { display: none; }
| |
|
| |
| /* ===============================
| |
| 접기/펼치기 (h2~h5)
| |
| - JS가 h2~h5에 아이콘(.mw-fold-icon)을 직계 자식으로 prepend
| |
| - 접힌 상태: .mw-fold-collapsed
| |
| =============================== */
| |
|
| |
| /* 접힌 상태에서 본문 숨김 */
| |
| .mw-parser-output .mw-fold-collapsed + .mw-fold-content {
| |
| display: none;
| |
| }
| |
|
| |
| /* 기본: 아이콘 없으면 패딩 없음 */
| |
| .mw-parser-output h2,
| |
| .mw-parser-output h3,
| |
| .mw-parser-output h4,
| |
| .mw-parser-output h5 {
| |
| position: relative;
| |
| padding-left: 0;
| |
| }
| |
|
| |
| /* JS가 붙이는 클래스(.mw-has-fold-icon)로 아이콘 자리만 확보 */
| |
| .mw-parser-output h2.mw-has-fold-icon,
| |
| .mw-parser-output h3.mw-has-fold-icon,
| |
| .mw-parser-output h4.mw-has-fold-icon,
| |
| .mw-parser-output h5.mw-has-fold-icon {
| |
| padding-left: 26px;
| |
| }
| |
|
| |
| /* 아이콘 */
| |
| .mw-parser-output .mw-fold-icon {
| |
| position: absolute;
| |
| left: 0;
| |
| top: 50%;
| |
| width: 20px;
| |
| height: 20px;
| |
|
| |
| transform: translateY(-50%) rotate(90deg); /* 기본: 펼침 */
| |
| transform-origin: 50% 50%;
| |
| transition: transform 150ms ease;
| |
|
| |
| background: no-repeat center / contain
| |
| url("https://interior.wiki/images/thumb/e/e3/Icon_caretright.png/600px-Icon_caretright.png?20260120083456");
| |
| }
| |
|
| |
| /* 접힘 상태 → 오른쪽 */
| |
| .mw-parser-output .mw-fold-collapsed .mw-fold-icon {
| |
| transform: translateY(-50%) rotate(0deg);
| |
| }
| |
|
| |
| /* ===============================
| |
| TOC(목차) 번호 표시
| |
| - Vector 2022(.vector-toc)
| |
| - 구형 TOC(#toc/.toc)
| |
| - 중복 tocnumber 숨김
| |
| =============================== */
| |
|
| |
| /* 구형 TOC 기본 숫자 숨김(중복 방지) */
| |
| #toc .tocnumber,
| |
| .toc .tocnumber { display: none; }
| |
|
| |
| /* Vector 2022 TOC: Top(처음 위치) 항목 숨김 */
| |
| .vector-toc a[href="#top"],
| |
| .vector-toc a[href="#mw-head"],
| |
| .vector-toc a[href^="#mw-head"],
| |
| .vector-toc a[rel="mw:PageProp/TOC"] {
| |
| display: none !important;
| |
| }
| |
|
| |
| /* Vector 2022: 카운터 초기화 */
| |
| .vector-toc { counter-reset: toc2; }
| |
| .vector-toc .vector-toc-level-1 { counter-reset: toc3; }
| |
| .vector-toc .vector-toc-level-2 { counter-reset: toc4; }
| |
| .vector-toc .vector-toc-level-3 { counter-reset: toc5; }
| |
|
| |
| /* 레벨1(h2): 1. */
| |
| .vector-toc .vector-toc-level-1 > a .vector-toc-text::before {
| |
| counter-increment: toc2;
| |
| content: counter(toc2) ". ";
| |
| margin-right: 2px;
| |
| font-weight: 600;
| |
| }
| |
|
| |
| /* 레벨2(h3): 1.1 */
| |
| .vector-toc .vector-toc-level-2 > a .vector-toc-text::before {
| |
| counter-increment: toc3;
| |
| content: counter(toc2) "." counter(toc3) " ";
| |
| margin-right: 2px;
| |
| font-weight: 500;
| |
| }
| |
|
| |
| /* 레벨3(h4): 1.1.1 */
| |
| .vector-toc .vector-toc-level-3 > a .vector-toc-text::before {
| |
| counter-increment: toc4;
| |
| content: counter(toc2) "." counter(toc3) "." counter(toc4) " ";
| |
| margin-right: 2px;
| |
| font-weight: 400;
| |
| }
| |
|
| |
| /* 레벨4(h5): 1.1.1.1 */
| |
| .vector-toc .vector-toc-level-4 > a .vector-toc-text::before {
| |
| counter-increment: toc5;
| |
| content: counter(toc2) "." counter(toc3) "." counter(toc4) "." counter(toc5) " ";
| |
| margin-right: 2px;
| |
| font-weight: 400;
| |
| }
| |
|
| |
| /* 최상위(=h2 레벨)에서 첫 항목(처음 위치)만 숨김 */
| |
| .vector-toc li.vector-toc-level-1:first-child {
| |
| display: none !important;
| |
| }
| |
|
| |
| /* ---- 구형 TOC(#toc/.toc) 번호 ---- */
| |
| #toc,
| |
| .toc { counter-reset: toc1; }
| |
|
| |
| #toc .toclevel-1,
| |
| .toc .toclevel-1 { counter-reset: toc2; }
| |
|
| |
| #toc .toclevel-2,
| |
| .toc .toclevel-2 { counter-reset: toc3; }
| |
|
| |
| #toc .toclevel-3,
| |
| .toc .toclevel-3 { counter-reset: toc4; }
| |
|
| |
| /* 1단계 */
| |
| #toc .toclevel-1 > a .toctext::before,
| |
| .toc .toclevel-1 > a .toctext::before {
| |
| counter-increment: toc1;
| |
| content: counter(toc1) ". ";
| |
| margin-right: 2px;
| |
| }
| |
|
| |
| /* 2단계 */
| |
| #toc .toclevel-2 > a .toctext::before,
| |
| .toc .toclevel-2 > a .toctext::before {
| |
| counter-increment: toc2;
| |
| content: counter(toc1) "." counter(toc2) " ";
| |
| margin-right: 2px;
| |
| }
| |
|
| |
| /* 3단계 */
| |
| #toc .toclevel-3 > a .toctext::before,
| |
| .toc .toclevel-3 > a .toctext::before {
| |
| counter-increment: toc3;
| |
| content: counter(toc1) "." counter(toc2) "." counter(toc3) " ";
| |
| margin-right: 2px;
| |
| }
| |
|
| |
| /* 4단계(h5) */
| |
| #toc .toclevel-4 > a .toctext::before,
| |
| .toc .toclevel-4 > a .toctext::before {
| |
| counter-increment: toc4;
| |
| content: counter(toc1) "." counter(toc2) "." counter(toc3) "." counter(toc4) " ";
| |
| margin-right: 2px;
| |
| }
| |
|
| |
| /* TOC 토글 숨김(원본 유지) */
| |
| span.toctogglespan { display: none; }
| |
|
| |
| /* ✅ Minerva에서는 TOC 토글(목차 열기 UI)이 필요할 수 있으니 복원 */
| |
| body.skin-minerva span.toctogglespan { display: inline !important; }
| |
|
| |
| h2#mw-toc-heading { margin: 4px 0 8px; }
| |
|
| |
| /* ===============================
| |
| Sticky header 폰트 (Vector 2022)
| |
| =============================== */
| |
| .vector-sticky-header-context-bar-primary,
| |
| .vector-sticky-header-context-bar-primary a,
| |
| .vector-sticky-header-context-bar-primary span {
| |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont,
| |
| 'Apple SD Gothic Neo', 'Noto Sans KR',
| |
| system-ui, sans-serif !important;
| |
| }
| |
|
| |
| /* ===============================
| |
| 레거시 Vector: TOC(좌) + 인포박스(우)
| |
| =============================== */
| |
| body.skin-vector:not(.skin-vector-2022) #toc.toc {
| |
| float: left;
| |
| margin: 0 16px 12px 0;
| |
| }
| |
|
| |
| body.skin-vector:not(.skin-vector-2022) .iw-matbox,
| |
| body.skin-vector:not(.skin-vector-2022) table.wikitable[style*="float:right"] {
| |
| width: 360px;
| |
| margin-bottom: 12px;
| |
| }
| |
|
| |
| body.skin-vector:not(.skin-vector-2022) .iw-topclear {
| |
| clear: both;
| |
| height: 8px;
| |
| }
| |
|
| |
| /* ===============================
| |
| 하단 분류 박스
| |
| =============================== */
| |
| div#catlinks.catlinks {
| |
| margin-top: 80px;
| |
| padding: 4px 8px;
| |
| font-size: 14px;
| |
| background: #fff;
| |
| border-radius: 4px;
| |
| }
| |
|
| |
| /* 레거시 Vector: TOC 옆으로 본문 텍스트가 말려 올라오는 현상 방지 */
| |
| body.skin-vector:not(.skin-vector-2022) #toc.toc + h2,
| |
| body.skin-vector:not(.skin-vector-2022) .toc + h2 {
| |
| clear: left;
| |
| }
| |
|
| |
| /* TOC 제목 접기 아이콘 완전 제거 */
| |
| #mw-toc-heading .mw-fold-icon {
| |
| display: none !important;
| |
| }
| |
|
| |
| /* 아이콘 공간 때문에 생긴 왼쪽 여백 제거 */
| |
| #mw-toc-heading.mw-has-fold-icon,
| |
| #mw-toc-heading.mw-fold-has-content {
| |
| padding-left: 0 !important;
| |
| margin-left: 0 !important;
| |
| text-indent: 0 !important;
| |
| }
| |
|
| |
| /* 가상요소까지 제거 */
| |
| #mw-toc-heading::before,
| |
| #mw-toc-heading::after {
| |
| content: none !important;
| |
| }
| |
|
| |
| /* 도움말 문서: 헤더 편집 링크 전체 숨김 */
| |
| .ns-12 .mw-editsection {
| |
| display: none;
| |
| }
| |
|
| |
| /* 1) TOC(목차) 내부는 무조건 불릿 제거 */
| |
| #toc ul, .toc ul {
| |
| list-style: none !important;
| |
| list-style-image: none !important;
| |
| }
| |
| #toc li::marker, .toc li::marker {
| |
| content: "" !important;
| |
| }
| |
|
| |
| /* 2) 본문 ul 중에서 "TOC 안에 있는 ul"만 제외하고 적용 */
| |
| #mw-content-text .mw-parser-output ul:not(#toc ul):not(.toc ul) {
| |
| list-style-image: none !important;
| |
| list-style-type: disc !important;
| |
| }
| |
| #mw-content-text .mw-parser-output ul:not(#toc ul):not(.toc ul) ul {
| |
| list-style-type: circle !important;
| |
| }
| |
| #mw-content-text .mw-parser-output ul:not(#toc ul):not(.toc ul) ul ul {
| |
| list-style-type: square !important;
| |
| }
| |
|
| |
| /* 대문에서만 내부 링크 색상 */
| |
| body.page-대문 .mw-parser-output a:not(.new) {
| |
| color: #202122;
| |
| }
| |
|
| |
| body.page-대문 .mw-parser-output a:not(.new):visited {
| |
| color: #202122;
| |
| }
| |
|
| |
| body.page-대문 .mw-parser-output a:not(.new):hover {
| |
| color: #202122;
| |
| text-decoration: underline;
| |
| }
| |
|
| |
| /* 빨간 링크 */
| |
| body.page-대문 .mw-parser-output a.new {
| |
| color: #d32f2f;
| |
| }
| |
|
| |
| /* ===============================
| |
| 로고수정
| |
| =============================== */
| |
|
| |
| #p-logo .mw-wiki-logo {
| |
| width: auto !important;
| |
| height: auto !important;
| |
| }
| |
|
| |
| #p-logo .mw-wiki-logo::after {
| |
| content: "인테리어 위키";
| |
| font-size: 20px;
| |
| font-weight: 600;
| |
| color: #1f2937;
| |
| line-height: 1;
| |
| }
| |
|
| |
| #p-logo {
| |
| padding-left: 16px;
| |
| padding-top: 16px;
| |
| height: 48px;
| |
| align-items: center !important;
| |
| }
| |
|
| |
| #p-logo a {
| |
| display: flex;
| |
| align-items: center;
| |
| text-decoration: none;
| |
| }
| |
|
| |
| /* ===============================
| |
| ✅ Minerva: TOC가 접기 시스템에 의해 숨겨지는 문제 방지(안전망)
| |
| =============================== */
| |
| body.skin-minerva #mw-toc-heading {
| |
| cursor: default !important;
| |
| display: block !important; /* 전역 flex 영향 차단 */
| |
| }
| |
|
| |
| /* TOC 제목 다음에 생기는 fold-content는 항상 노출 */
| |
| body.skin-minerva #mw-toc-heading + .mw-fold-content {
| |
| display: block !important;
| |
| height: auto !important;
| |
| overflow: visible !important;
| |
| }
| |
|
| |
| /* ===============================
| |
| Minerva: TOC(목차) 내용이 사라지는 문제 - 강제 표시(강제 복구)
| |
| =============================== */
| |
|
| |
| /* 1) 원래 구조(#toc 안에 ul)가 있으면 무조건 보이게 */
| |
| body.skin-minerva #toc.toc,
| |
| body.skin-minerva #toc.toc > ul,
| |
| body.skin-minerva #toc.toc ul {
| |
| display: block !important;
| |
| visibility: visible !important;
| |
| opacity: 1 !important;
| |
| height: auto !important;
| |
| max-height: none !important;
| |
| overflow: visible !important;
| |
| }
| |
|
| |
| /* 2) 토글 체크박스가 어떤 상태든 ul 숨김 규칙을 무력화 */
| |
| body.skin-minerva #toc.toc > .toctogglecheckbox:checked ~ ul,
| |
| body.skin-minerva #toc.toc > .toctogglecheckbox:not(:checked) ~ ul {
| |
| display: block !important;
| |
| height: auto !important;
| |
| max-height: none !important;
| |
| overflow: visible !important;
| |
| }
| |
|
| |
| /* 3) (중요) 접기 JS가 TOC ul을 .mw-fold-content로 옮겨버린 경우까지 커버
| |
| - #mw-toc-heading 주변에 생긴 fold-content / ul을 전부 강제 표시 */
| |
| body.skin-minerva #mw-toc-heading + .mw-fold-content,
| |
| body.skin-minerva #mw-toc-heading + .mw-fold-content ul,
| |
| body.skin-minerva #mw-toc-heading ~ ul {
| |
| display: block !important;
| |
| visibility: visible !important;
| |
| height: auto !important;
| |
| max-height: none !important;
| |
| overflow: visible !important;
| |
| }
| |
|
| |
| /* 4) Minerva에서 TOC 토글 UI는 혼동만 주면 숨김(원하면 삭제 가능) */
| |
| body.skin-minerva #toc.toc .toctogglespan {
| |
| display: none !important;
| |
| }
| |
|
| |
| /* ===============================
| |
| TOC(목차) 크기/여백/스타일 축소
| |
| =============================== */
| |
|
| |
| /* TOC 전체 박스 */
| |
| #toc.toc {
| |
| font-size: 14px;
| |
| line-height: 1.45;
| |
| padding: 10px 12px;
| |
| margin: 8px 0 16px;
| |
| display: inline-block;
| |
| width: fit-content;
| |
| max-width: 100%;
| |
| }
| |
|
| |
| /* TOC 제목(h2)은 "문서 섹션 제목" 스타일 적용 금지 */
| |
| #toc.toc #mw-toc-heading {
| |
| margin:0;
| |
| padding-top:0;
| |
| font-size: 14px;
| |
| font-weight: 600;
| |
| line-height: 1.2;
| |
| }
| |
|
| |
| /* "목차" 제목줄(toctitle) 정리 */
| |
| #toc.toc .toctitle {
| |
| display: flex;
| |
| align-items: center;
| |
| gap: 8px;
| |
| margin-bottom: 8px;
| |
| padding: 0;
| |
| border: 0;
| |
| min-height:fit-content;
| |
| }
| |
|
| |
| /* TOC 리스트 여백 축소 */
| |
| #toc.toc > ul {
| |
| margin: 0;
| |
| padding-left: 0; /* 불릿 제거를 이미 하고 있으니 0이 깔끔 */
| |
| width: fit-content;
| |
| max-width: 100%;
| |
| }
| |
|
| |
| /* TOC 항목 간격 축소 */
| |
| #toc.toc li {
| |
| margin: 2px 0;
| |
| padding: 0;
| |
| white-space: nowrap;
| |
| }
| |
|
| |
| /* TOC 링크 */
| |
| #toc.toc a {
| |
| font-size: 14px;
| |
| text-decoration: none;
| |
| }
| |
|
| |
| /* 하위 레벨 들여쓰기만 최소로 */
| |
| #toc.toc .toclevel-2 { padding-left: 0px; }
| |
| #toc.toc .toclevel-3 { padding-left: 0px; }
| |
| #toc.toc .toclevel-4 { padding-left: 0px; }
| |
|
| |
| /* 본문이 옆으로 흐르지 않게 차단 */
| |
| body.skin-minerva .mw-parser-output table[style*="float:right"] + * {
| |
| clear: both !important;
| |
| }
| |