# Icon Fairy

Icon Fairy 폴더 하트 로고

내 이미지로, 내 아이콘으로, 내 볼트를.

CI 최신 릴리스 MIT 라이선스 English

PNG, JPG, WebP, SVG 이미지를 업로드해 Obsidian의 폴더, 노트, 탭, 노트 제목, 본문 아이콘으로 사용하세요. 모든 데이터는 볼트 안에 저장됩니다. 스크린샷은 함께 제공되는 샘플 볼트를 Obsidian 라이트 모드로 실행해 직접 캡처했습니다. ![Programming Languages 폴더와 커스텀 아이콘을 적용한 샘플 Obsidian 볼트](assets/icon-fairy-overview.png) ## 2분 만에 시작하기 1. 파일이나 폴더를 우클릭하고 **Change icon…**을 선택합니다. 2. 라이브러리 아이콘을 고르거나 **Upload** 탭에서 이미지를 추가합니다. 3. 지정한 아이콘은 탐색기, 탭, 노트 제목에 함께 표시됩니다. 4. 인라인 아이콘을 활성화하고 노트에 `:ci-typescript:` 같은 shortcode를 입력합니다. | 할 수 있는 일 | 표시되는 곳 | | --- | --- | | 폴더에 아이콘 지정 | 파일 탐색기 | | 노트에 아이콘 지정 | 파일 탐색기, 탭, 노트 제목 | | `:ci-이름:` 삽입 | 라이브 프리뷰, 읽기 모드 | | 인라인 아이콘에 주석 추가 | 강조 점, Markdown 호버 카드 |

파일 메뉴의 커스텀 아이콘 변경 및 제거 명령 Icon Fairy 아이콘 라이브러리

피커에는 현재 작업과 대상이 표시되어 아이콘이 어디에 적용될지 바로 알 수 있습니다. 이름으로 검색하거나 **Random**으로 빠르게 고를 수 있습니다. 키보드에서는 `왼쪽`/`오른쪽` 방향키로 소스 탭을 바꾸고, 아이콘에 포커스를 옮긴 뒤 방향키와 `Enter`로 선택할 수 있습니다. 피커는 한 번에 하나만 열립니다. ## 실제 예시: 프로그래밍 언어 라이브러리 저장소에 포함된 [샘플 볼트](examples/programming-languages-vault)는 컬렉션 폴더와 각 언어를 한눈에 구분할 수 있게 구성했습니다. ```text Programming Languages/ 폴더 아이콘 ├── TypeScript.md TS 아이콘 ├── Python.md Python 아이콘 ├── Rust.md R 아이콘 ├── Go.md Go 아이콘 └── Swift.md Swift 아이콘 ``` 각 언어 노트 안에서도 같은 아이콘을 사용합니다. ```md # TypeScript :ci-typescript: 대규모 애플리케이션을 위한 타입 안전 JavaScript. ``` 파일명이나 frontmatter를 바꾸지 않아도 큰 볼트의 구조를 훨씬 빠르게 파악할 수 있습니다. ## 아이콘 업로드와 관리 파일 메뉴 또는 명령 팔레트에서 아이콘 피커를 열고 **Upload**를 선택하세요. 업로드 영역에 파일을 놓거나 **Browse files**를 선택하고, 클립보드 이미지를 붙여넣을 수도 있습니다. 키보드에서는 `Tab`으로 업로드 영역에 이동한 뒤 `Enter` 또는 `Space`를 누르면 됩니다. ![PNG, JPG, WebP, SVG 업로드 화면](assets/icon-fairy-upload.png) 여러 파일을 선택하면 한 번에 가져오기 전에 이름을 검토·수정하고 불필요한 항목을 제외할 수 있습니다. SVG는 래스터 이미지로 변환하지 않고 벡터 파일 그대로 보관합니다. ![PNG 한 개와 SVG 두 개를 일괄 가져오기 전에 이름을 검토하는 화면](assets/icon-fairy-batch-import.png) **Library** 탭에서는 현재 지정된 아이콘에 **Current**가 표시됩니다. 아이콘의 **더 보기(⋯)** 메뉴에서 **Rename** 또는 **Delete from library**를 선택할 수 있으며, 이름을 더블클릭해도 이름을 바꿀 수 있습니다. 라이브러리에서 삭제하면 해당 아이콘을 사용하던 지정도 함께 정리됩니다. 파일의 지정만 해제하려면 파일 메뉴의 **Remove assigned icon**을 사용하세요. 단일 업로드의 **Apply icon**은 선택한 파일·폴더에 적용합니다. **Save to library**를 선택하면 다시 사용할 수 있으며, SVG와 인라인 삽입에는 라이브러리 저장이 필요합니다. 일괄 업로드의 **Add N icons to library**는 라이브러리에만 추가하고 현재 지정은 바꾸지 않습니다. ## 인라인 아이콘과 Markdown 주석 플러그인 설정에서 인라인 아이콘을 활성화한 후 `:ci-`를 입력하면 자동완성이 열립니다. 명령 팔레트에서도 삽입할 수 있습니다. 기본 형식은 다음과 같습니다. ```text :ci-아이콘-ID: ``` 렌더링된 인라인 아이콘을 우클릭하고 **Add icon annotation** 또는 **Edit icon annotation**을 선택하세요. Markdown, `[[위키 링크]]`, `![[임베드]]`를 지원하며 실시간 미리보기와 `Cmd/Ctrl+Enter` 저장 단축키를 제공합니다. 주석이 있는 아이콘에는 작은 강조 점이 표시됩니다. ![위키 링크 미리보기가 있는 Markdown 주석 편집기](assets/icon-fairy-annotation.png) 주석은 아이콘이 등장한 위치별로 저장됩니다. `:ci-typescript~note-a1b2c3d4:`처럼 인스턴스 접미사가 자동으로 붙기 때문에 같은 아이콘을 여러 번 사용해도 서로 다른 메모를 남길 수 있습니다. ## 명령 팔레트 `Cmd/Ctrl+P`를 누르고 **Icon Fairy**를 검색하면 세 명령을 사용할 수 있습니다. - **Insert inline icon** - **Change icon for current file** - **Remove assigned icon from current file** ![Obsidian 명령 팔레트의 Icon Fairy 세 명령](assets/icon-fairy-commands.png) ## 설정 ![Icon Fairy 설정 화면](assets/icon-fairy-settings.png) | 설정 | 용도 | 기본값 | | --- | --- | --- | | Enable inline icons | `:ci-이름:` shortcode 렌더링 | 꺼짐 | | Inline icon size | 슬라이더로 12~64 px 조정, 변경 즉시 저장 | 20 px | | Inline icon prefix | `ci`를 원하는 접두사로 변경, 입력 변경 시 저장 | `ci` | ## 데스크톱과 모바일 탐색기 아이콘, 인라인 아이콘, 주석, 명령, 아이콘 피커는 Obsidian의 데스크톱과 모바일 레이아웃에 맞게 동작합니다. 아래 화면은 샘플 볼트를 라이트 모드에서 Obsidian 공식 데스크톱 모바일 에뮬레이션으로 실행해 직접 캡처했습니다. ![Obsidian 모바일 레이아웃에서 실행한 Icon Fairy 아이콘 피커와 프로그래밍 언어 아이콘](assets/icon-fairy-mobile.png) ## 설치 ### Obsidian 커뮤니티 플러그인 Icon Fairy(아이콘 요정)는 **Obsidian 1.5.7 이상**에서 [커뮤니티 플러그인](https://community.obsidian.md/plugins/icon-fairy)으로 설치하실 수 있습니다. 플러그인 ID는 `icon-fairy`, 저장소는 `t1seo/icon-fairy`입니다. 1. **설정 → 커뮤니티 플러그인 → 탐색**을 엽니다. 2. **Icon Fairy**를 검색합니다. 3. **설치** 후 **활성화**합니다. ### BRAT 1. [BRAT](https://obsidian.md/plugins?id=obsidian42-brat)을 설치하고 활성화합니다. 2. **BRAT: Add a beta plugin for testing**을 실행합니다. 3. `https://github.com/t1seo/icon-fairy`를 입력합니다. 4. **설정 → 커뮤니티 플러그인**에서 **Icon Fairy**를 활성화합니다. ### 수동 설치 1. [최신 릴리스](https://github.com/t1seo/icon-fairy/releases/latest)에서 `main.js`, `manifest.json`, `styles.css`를 받습니다. 2. 세 파일을 `<볼트>/.obsidian/plugins/icon-fairy/`에 넣습니다. 3. Obsidian을 다시 불러온 뒤 **Icon Fairy**를 활성화합니다. 3.0.0은 기존 [Folder Fairy 2.x](https://github.com/t1seo/icon-studio)의 `icon-studio` 및 [Custom Icon / Icon Studio 1.x](https://github.com/t1seo/obsidian-icon-studio)의 `custom-icon`과 별도로 설치됩니다. Icon Fairy는 같은 개발자가 만든 후속 플러그인이며, 두 이전 저장소와 릴리스는 보존됩니다. 기존 데이터·BRAT 구독·단축키는 자동으로 옮겨지지 않습니다. 아이콘·지정 정보·설정·주석을 유지하려면 이전 설치 중 정확히 하나를 원본으로 선택하여 [이관 안내](docs/MIGRATING.md)를 따라 주세요. `:ci-...:` 노트 문법은 그대로 사용할 수 있습니다. ## 샘플 볼트 저장소의 [examples/programming-languages-vault](examples/programming-languages-vault)는 README 스크린샷에 사용한 것과 같은 구조입니다. 릴리스의 세 파일을 샘플의 `.obsidian/plugins/icon-fairy/`에 복사한 뒤 해당 폴더를 Obsidian 볼트로 열면 됩니다. 자세한 내용은 [샘플 가이드](docs/SAMPLE-VAULT.md)를 참고하세요. ## 개인정보와 저장 위치 Icon Fairy는 네트워크 요청을 하지 않으며 런타임 의존성이 없습니다. 아이콘, 지정 정보, 설정, 주석은 모두 볼트의 `.obsidian/plugins/icon-fairy/` 아래에 로컬로 저장됩니다. ## 개발 및 릴리스 ```sh npm ci npm run verify ``` [기여 안내](CONTRIBUTING.md), [QA 근거](docs/QA-3.1.0.md), [UX/UI 리서치와 디자인 결정](docs/research/icon-fairy-ui-audit-2026-09-19.md), [릴리스 안내](docs/RELEASING.md), [GitHub 피드백 및 배포 문제 분석](docs/research/github-feedback.md), [커뮤니티 디렉터리 리서치](docs/research/obsidian-community-release.md)를 참고하세요. ## 지원 버그나 기능 요청은 [GitHub 이슈](https://github.com/t1seo/icon-fairy/issues)에 남겨주세요. [![Buy me a coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=taewonseo&button_colour=e3e7ef&font_colour=262626&font_family=Inter&outline_colour=262626&coffee_colour=a0522d)](https://www.buymeacoffee.com/taewonseo) ## 라이선스 [MIT](LICENSE)