이 νŠœν† λ¦¬μ–Όμ—μ„œλŠ” Obsidian용 ν…Œλ§ˆ κ°œλ°œμ„ μ‹œμž‘ν•˜λŠ” 방법을 λ°°μ›λ‹ˆλ‹€. ν…Œλ§ˆλ₯Ό μ‚¬μš©ν•˜λ©΄ CSSλ₯Ό μ‚¬μš©ν•˜μ—¬ Obsidian의 λͺ¨μ–‘κ³Ό λŠλ‚Œμ„ μ‚¬μš©μž μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν•™μŠ΅ λ‚΄μš©

이 νŠœν† λ¦¬μ–Όμ„ μ™„λ£Œν•˜λ©΄ λ‹€μŒμ„ ν•  수 있게 λ©λ‹ˆλ‹€:

  • Obsidian ν…Œλ§ˆ κ°œλ°œμ„ μœ„ν•œ ν™˜κ²½ ꡬ성
  • CSS λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ Obsidian의 λͺ¨μ–‘ λ³€κ²½
  • 라이트 및 닀크 색상 κ΅¬μ„±ν‘œλ₯Ό λͺ¨λ‘ μ§€μ›ν•˜λŠ” ν…Œλ§ˆ λ§Œλ“€κΈ°

ν•„μˆ˜ 쑰건

이 νŠœν† λ¦¬μ–Όμ„ μ™„λ£Œν•˜λ €λ©΄ λ‹€μŒμ΄ ν•„μš”ν•©λ‹ˆλ‹€:

  • 둜컬 머신에 μ„€μΉ˜λœ Git
  • Visual Studio Code와 같은 μ½”λ“œ 에디터

1단계: μƒ˜ν”Œ ν…Œλ§ˆ λ‹€μš΄λ‘œλ“œ

이 λ‹¨κ³„μ—μ„œλŠ” Obsidian이 찾을 수 μžˆλ„λ‘ 볼트의 .obsidian 디렉토리 λ‚΄ themes 디렉토리에 μƒ˜ν”Œ ν…Œλ§ˆλ₯Ό λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

이 νŠœν† λ¦¬μ–Όμ—μ„œ μ‚¬μš©ν•  μƒ˜ν”Œ ν…Œλ§ˆλŠ” GitHub μ €μž₯μ†Œμ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. 터미널 창을 μ—΄κ³  ν”„λ‘œμ νŠΈ 디렉토리λ₯Ό themes λ””λ ‰ν† λ¦¬λ‘œ λ³€κ²½ν•©λ‹ˆλ‹€.

    cd path/to/vault/.obsidian/themes
  2. Git을 μ‚¬μš©ν•˜μ—¬ μƒ˜ν”Œ ν…Œλ§ˆλ₯Ό λ³΅μ œν•©λ‹ˆλ‹€.

    git clone https://github.com/obsidianmd/obsidian-sample-theme.git "Sample Theme"

GitHub ν…œν”Œλ¦Ώ μ €μž₯μ†Œ

μƒ˜ν”Œ ν…Œλ§ˆμ˜ μ €μž₯μ†ŒλŠ” GitHub ν…œν”Œλ¦Ώ μ €μž₯μ†Œμ΄λ―€λ‘œ μƒ˜ν”Œ ν…Œλ§ˆμ—μ„œ μžμ‹ λ§Œμ˜ μ €μž₯μ†Œλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 방법을 μ•Œμ•„λ³΄λ €λ©΄ ν…œν”Œλ¦Ώμ—μ„œ μ €μž₯μ†Œ λ§Œλ“€κΈ°λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

μƒ˜ν”Œ ν…Œλ§ˆλ₯Ό λ³΅μ œν•  λ•ŒλŠ” μžμ‹ μ˜ μ €μž₯μ†Œ URL을 μ‚¬μš©ν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ„Έμš”.

2단계: ν…Œλ§ˆ ν™œμ„±ν™”

  1. Obsidianμ—μ„œ 섀정을 μ—½λ‹ˆλ‹€.
  2. μ‚¬μ΄λ“œ λ©”λ‰΄μ—μ„œ λͺ¨μ–‘을 μ„ νƒν•©λ‹ˆλ‹€.
  3. ν…Œλ§ˆ μ˜†μ˜ λ“œλ‘­λ‹€μš΄ λͺ©λ‘μ—μ„œ Sample Theme을 μ„ νƒν•©λ‹ˆλ‹€.

μƒ˜ν”Œ ν…Œλ§ˆλ₯Ό ν™œμ„±ν™”ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμœΌλ‘œ λͺ‡ κ°€μ§€ λ³€κ²½ 사항을 μ μš©ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

3단계: λ§€λ‹ˆνŽ˜μŠ€νŠΈ μ—…λ°μ΄νŠΈ

이 λ‹¨κ³„μ—μ„œλŠ” λ§€λ‹ˆνŽ˜μŠ€νŠΈ manifest.json을 μ—…λ°μ΄νŠΈν•˜μ—¬ ν…Œλ§ˆ 이름을 λ³€κ²½ν•©λ‹ˆλ‹€. λ§€λ‹ˆνŽ˜μŠ€νŠΈμ—λŠ” ν…Œλ§ˆμ˜ 이름과 μ„€λͺ… 같은 정보가 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

  1. μ½”λ“œ μ—λ””ν„°μ—μ„œ manifest.json을 μ—½λ‹ˆλ‹€.

  2. name을 "Disco Lights"와 같은 μ‚¬μš©μž μΉœν™”μ μΈ μ΄λ¦„μœΌλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€.

  3. themes μ•„λž˜μ˜ ν…Œλ§ˆ 디렉토리 이름을 λ™μΌν•œ μ΄λ¦„μœΌλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€. ν…Œλ§ˆ 디렉토리 이름은 manifest.json의 name 속성과 μ •ν™•νžˆ μΌμΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

    mv "Sample Theme" "Disco Lights"
  4. λ§€λ‹ˆνŽ˜μŠ€νŠΈμ˜ μƒˆ λ³€κ²½ 사항을 λ‘œλ“œν•˜λ €λ©΄ Obsidian을 λ‹€μ‹œ μ‹œμž‘ν•©λ‹ˆλ‹€.

μ„€μ • β†’ λͺ¨μ–‘ β†’ ν…Œλ§ˆλ‘œ λŒμ•„κ°€μ„œ ν…Œλ§ˆ 이름이 λ³€κ²½λœ 것을 ν™•μΈν•˜μ„Έμš”.

manifest.json을 λ³€κ²½ν•  λ•Œλ§ˆλ‹€ Obsidian을 λ‹€μ‹œ μ‹œμž‘ν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ„Έμš”.

4단계: κΈ€κΌ΄ λ³€κ²½

Obsidian은 CSS λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό μŠ€νƒ€μΌλ§ν•©λ‹ˆλ‹€. 이 λ‹¨κ³„μ—μ„œλŠ” CSS λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ—λ””ν„°μ˜ 글꼴을 λ³€κ²½ν•©λ‹ˆλ‹€.

  1. 예λ₯Ό λ“€μ–΄ β€œν…Œλ§ˆ κ°œλ°œβ€μ΄λΌλŠ” μƒˆ λ…ΈνŠΈλ₯Ό λ§Œλ“­λ‹ˆλ‹€.

  2. λ…ΈνŠΈμ— λ‹€μŒ ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€:

    ν…Œλ§ˆλ₯Ό μ‚¬μš©ν•˜λ©΄ [Obsidian](https://obsidian.md)을 μ›ν•˜λŠ” λŒ€λ‘œ κΎΈλ°€ 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. theme.css에 λ‹€μŒμ„ μΆ”κ°€ν•©λ‹ˆλ‹€:

    body {
      --font-text-theme: Georgia, serif;
    }

μ—λ””ν„°λŠ” μ •μ˜ν•œ 글꼴을 μ‚¬μš©ν•˜μ—¬ λ…ΈνŠΈλ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

5단계: 배경색 λ³€κ²½

ν…Œλ§ˆλŠ” 라이트 및 닀크 색상 κ΅¬μ„±ν‘œλ₯Ό λͺ¨λ‘ 지원할 수 μžˆμŠ΅λ‹ˆλ‹€. .theme-dark λ˜λŠ” .theme-light μ•„λž˜μ— CSS λ³€μˆ˜λ₯Ό μ •μ˜ν•˜μ„Έμš”.

  1. theme.css에 λ‹€μŒμ„ μΆ”κ°€ν•©λ‹ˆλ‹€:

    .theme-dark {
      --background-primary: #18004F;
      --background-secondary: #220070;
    }
     
    .theme-light {
      --background-primary: #ECE4FF;
      --background-secondary: #D9C9FF;
    }
  2. Obsidianμ—μ„œ 섀정을 μ—½λ‹ˆλ‹€.

  3. λͺ¨μ–‘ μ•„λž˜μ—μ„œ κΈ°λ³Έ 색상 κ΅¬μ„±ν‘œλ₯Ό β€œλΌμ΄νŠΈβ€μ™€ β€œλ‹€ν¬β€ μ‚¬μ΄μ—μ„œ μ „ν™˜ν•©λ‹ˆλ‹€.

Obsidian이 μ„ νƒν•œ 색상 κ΅¬μ„±ν‘œμ— 따라 색상을 μ„ νƒν•˜λŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 더 극적인 λ³€ν™”λ₯Ό μœ„ν•΄ 색상을 red, green λ˜λŠ” blue둜 λ³€κ²½ν•΄ λ³΄μ„Έμš”.

6단계: μž…λ ₯ ν•„λ“œ ν˜Έλ²„ ν…Œλ‘λ¦¬ 색상 λ³€κ²½

:root μ„ νƒμžλŠ” ν…Œλ§ˆ λ‚΄μ˜ λͺ¨λ“  μžμ‹ μš”μ†Œμ—μ„œ λ³€μˆ˜μ— μ•‘μ„ΈμŠ€ν•˜λ €λŠ” 경우 일반적으둜 μ‚¬μš©λ©λ‹ˆλ‹€. 이 μ„ νƒμžλŠ” μ’…μ’… ν”ŒλŸ¬κ·ΈμΈ λ³€μˆ˜λ‘œ μ±„μ›Œμ§‘λ‹ˆλ‹€.

μ‚¬μš©λ²•μ„ μ„€λͺ…ν•˜λŠ” μ˜ˆλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

Example

μ„€μ • 및 λ…ΈνŠΈ λ‚΄μš©κ³Ό 같이 Obsidian λ‚΄ λ‹€μ–‘ν•œ μœ„μΉ˜μ—μ„œ 찾을 수 μžˆλŠ” μž…λ ₯ ν•„λ“œλ₯Ό 생각해 λ³΄κ² μŠ΅λ‹ˆλ‹€. 이 μž…λ ₯ ν•„λ“œμ— νŠΉμ •ν•œ λ³€μˆ˜λ₯Ό μ •μ˜ν•˜λ €λ©΄ :root μ„ νƒμžλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

:root {
   --input-focus-border-color: Highlight;
   --input-focus-outline: 1px solid Canvas;
   --input-unfocused-border-color: transparent;
   --input-disabled-border-color: transparent;
   --input-hover-border-color: black;
   /* λ£¨νŠΈμ— λŒ€ν•œ κΈ°λ³Έ μž…λ ₯ λ³€μˆ˜ */
}

이제 CSSμ—μ„œ ν˜Έλ²„ ν…Œλ‘λ¦¬ 색상을 μˆ˜μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€:

:root {
   --input-hover-border-color: red;
/* κ²€μ€μƒ‰μ—μ„œ λΉ¨κ°„μƒ‰μœΌλ‘œ λ³€κ²½ */
}

이 μ—…λ°μ΄νŠΈλ₯Ό 톡해 μž…λ ₯ ν•„λ“œ μœ„λ‘œ 마우슀λ₯Ό κ°€μ Έκ°€λ©΄ ν…Œλ‘λ¦¬ 색상이 밝은 λΉ¨κ°„μƒ‰μœΌλ‘œ λ³€κ²½λ©λ‹ˆλ‹€.

Tip

라이트 및 닀크 ν…Œλ§ˆ λͺ¨λ‘μ—μ„œ λ™μΌν•˜κ²Œ μœ μ§€λ˜μ–΄μ•Ό ν•˜λŠ” μŠ€νƒ€μΌμ„ μ •μ˜ν•  λ•ŒλŠ” body μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

라이트 및 닀크 ν…Œλ§ˆ 간에 μ „ν™˜ν•  λ•Œ μŠ€νƒ€μΌμ΄ λ³€κ²½λ˜κΈ°λ₯Ό μ›ν•˜λŠ” κ²½μš°μ—λ§Œ .theme-dark λ˜λŠ” .theme-light μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

λ˜ν•œ :rootλ₯Ό μ‹ μ€‘ν•˜κ³  κ³ λ €ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. λ³€μˆ˜λ₯Ό body, .theme-dark λ˜λŠ” .theme-light μ„ νƒμž 내에 λ°°μΉ˜ν•  수 μžˆλ‹€λ©΄ κ·Έλ ‡κ²Œ ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

7단계: μ‚¬μš© 쀑인 CSS λ³€μˆ˜ μ°ΎκΈ°

Obsidian은 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ˜ λ‹€μ–‘ν•œ 뢀뢄을 μ‚¬μš©μž μ •μ˜ν•˜κΈ° μœ„ν•΄ 400개 μ΄μƒμ˜ λ‹€μ–‘ν•œ CSS λ³€μˆ˜λ₯Ό λ…ΈμΆœν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ³€μˆ˜ 쀑 λ‹€μˆ˜λŠ” CSS variablesμ—μ„œ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜λŠ” 앱을 κ²€μ‚¬ν•˜μ—¬ νŠΉμ • μš”μ†Œλ₯Ό μŠ€νƒ€μΌλ§ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” λ³€μˆ˜λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ‹¨κ³„μ—μ„œλŠ” 리본 배경을 λ³€κ²½ν•˜κΈ° μœ„ν•œ CSS λ³€μˆ˜λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.

  1. Obsidianμ—μ„œ Ctrl+Shift+I(macOSμ—μ„œλŠ” Cmd+Option+I)λ₯Ό 눌러 개발자 도ꡬλ₯Ό μ—½λ‹ˆλ‹€.
  2. μ†ŒμŠ€ 탭을 μ—½λ‹ˆλ‹€.
  3. νŽ˜μ΄μ§€ β†’ top β†’ obsidian.md μ•„λž˜μ—μ„œ app.cssλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  4. app.css의 맨 μœ„λ‘œ μŠ€ν¬λ‘€ν•˜μ—¬ μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“  CSS λ³€μˆ˜λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.
  5. Ctrl+F(macOSμ—μ„œλŠ” Cmd+F)λ₯Ό λˆ„λ₯΄κ³  ” β€”ribbon-”을 μž…λ ₯ν•˜μ—¬ 리본과 κ΄€λ ¨λœ λ³€μˆ˜λ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€. 두 개의 곡백은 μ‚¬μš©μ²˜κ°€ μ•„λ‹Œ μ •μ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

κ²°κ³Ό 쀑 ν•˜λ‚˜λŠ” --ribbon-background이며, μœ λ§ν•΄ λ³΄μž…λ‹ˆλ‹€. ν™•μ‹€νžˆ ν•˜λ €λ©΄ HTML을 κ²€μ‚¬ν•˜μ—¬ νŠΉμ • μš”μ†Œμ—μ„œ μ‚¬μš©ν•˜λŠ” CSS λ³€μˆ˜λ₯Ό 찾을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

  1. 개발자 λ„κ΅¬μ˜ μ™Όμͺ½ 상단 λͺ¨μ„œλ¦¬μ—μ„œ μ‚¬κ°ν˜• μœ„μ— μ»€μ„œκ°€ μžˆλŠ” μ•„μ΄μ½˜μ„ μ„ νƒν•©λ‹ˆλ‹€.
  2. Obsidian μ°½ μ™Όμͺ½μ˜ 리본 쀑앙을 μ„ νƒν•©λ‹ˆλ‹€.

개발자 도ꡬ 였λ₯Έμͺ½μ˜ μŠ€νƒ€μΌ νƒ­μ—μ„œ μ„ νƒν•œ μš”μ†Œμ— 적용된 CSS(예: background-color: var(--ribbon-background))λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

이제 --ribbon-backgroundκ°€ 리본 배경색을 μ œμ–΄ν•œλ‹€λŠ” 것을 μ•Œμ•˜μœΌλ―€λ‘œ theme.css에 λ‹€μŒμ„ μΆ”κ°€ν•©λ‹ˆλ‹€:

body {
  --ribbon-background: magenta;
}

κ²°λ‘ 

이 νŠœν† λ¦¬μ–Όμ—μ„œλŠ” 첫 번째 Obsidian ν…Œλ§ˆλ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. ν…Œλ§ˆλ₯Ό μˆ˜μ •ν•˜κ³  λ‹€μ‹œ λ‘œλ“œν•˜μ—¬ Obsidian λ‚΄μ—μ„œ λ³€κ²½ 사항을 λ°˜μ˜ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ˜ νŠΉμ • 뢀뢄을 μŠ€νƒ€μΌλ§ν•˜κΈ° μœ„ν•œ CSS λ³€μˆ˜λ₯Ό μ°ΎλŠ” 방법도 λ°°μ› μŠ΅λ‹ˆλ‹€.