Obsidian APIμ μ¬λ¬ UI κ΅¬μ± μμλ₯Ό μ¬μ©νλ©΄ ν¨κ» μ 곡λλ μμ΄μ½μ ꡬμ±ν μ μμ΅λλ€. λ΄μ₯λ μμ΄μ½ μ€ νλλ₯Ό μ ννκ±°λ μ§μ μΆκ°ν μ μμ΅λλ€.
μ¬μ© κ°λ₯ν μμ΄μ½ μ°Ύμ보기
lucide.devλ‘ μ΄λνμ¬ μ¬μ© κ°λ₯ν λͺ¨λ μμ΄μ½κ³Ό ν΄λΉ μ΄λ¦μ νμΈνμΈμ.
μ°Έκ³ : νμ¬ v0.446.0κΉμ§μ μμ΄μ½λ§ μ§μλ©λλ€.
μμ΄μ½ μ¬μ©νκΈ°
μ¬μ©μ μ μ μΈν°νμ΄μ€μμ μμ΄μ½μ μ¬μ©νλ €λ©΄ setIcon() μ νΈλ¦¬ν° ν¨μλ₯Ό μ¬μ©νμ¬ HTML μμμ μμ΄μ½μ μΆκ°νμΈμ. λ€μ μμ λ μν νμμ€μ μμ΄μ½μ μΆκ°ν©λλ€:
import { Plugin, setIcon } from 'obsidian';
export default class ExamplePlugin extends Plugin {
async onload() {
const item = this.addStatusBarItem();
setIcon(item, 'info');
}
}
μμ΄μ½ ν¬κΈ°λ₯Ό λ³κ²½νλ €λ©΄ μμ΄μ½μ ν¬ν¨νλ μμμ μ¬μ μ€μ λ ν¬κΈ°λ₯Ό μ¬μ©νμ¬ --icon-size
CSS λ³μλ₯Ό μ€μ νμΈμ:
div {
--icon-size: var(--icon-size-m);
}
λλ§μ μμ΄μ½ μΆκ°νκΈ°
νλ¬κ·ΈμΈμ μ¬μ©μ μ μ μμ΄μ½μ μΆκ°νλ €λ©΄ addIcon() μ νΈλ¦¬ν°λ₯Ό μ¬μ©νμΈμ:
import { addIcon, Plugin } from 'obsidian';
export default class ExamplePlugin extends Plugin {
async onload() {
addIcon('circle', `<circle cx="50" cy="50" r="50" fill="currentColor" />`);
this.addRibbonIcon('circle', 'Click me', () => {
console.log('Hello, you!');
});
}
}
addIcon
μ λ κ°μ μΈμλ₯Ό λ°μ΅λλ€:
- μμ΄μ½μ κ³ μ νκ² μλ³ν μ΄λ¦.
- μ£Όλ³
<svg>
νκ·Έλ₯Ό μ μΈν μμ΄μ½μ SVG λ΄μ©.
μμ΄μ½μ΄ μ λλ‘ κ·Έλ €μ§λ €λ©΄ 0 0 100 100
λ·° λ°μ€ μμ λ§μμΌ ν©λλ€.
addIcon
μ νΈμΆν νμλ λ΄μ₯λ μμ΄μ½μ²λΌ μμ΄μ½μ μ¬μ©ν μ μμ΅λλ€.
μμ΄μ½ λμμΈ κ°μ΄λλΌμΈ
Obsidian μΈν°νμ΄μ€μμ νΈνμ± λ° ν΅μΌμ±μ μν΄ μμ΄μ½μ Lucideμ κ°μ΄λλΌμΈμ λ°λΌμΌ ν©λλ€:
- μμ΄μ½μ 24x24 ν½μ μΊλ²μ€μμ λμμΈλμ΄μΌ ν©λλ€.
- μμ΄μ½μ μΊλ²μ€ λ΄μ μ΅μ 1ν½μ μ μ¬λ°±μ΄ μμ΄μΌ ν©λλ€.
- μμ΄μ½μ 2ν½μ μ ν λκ»λ₯Ό κ°μ ΈμΌ ν©λλ€.
- μμ΄μ½μ λ₯κ·Ό μ‘°μΈμ μ¬μ©ν΄μΌ ν©λλ€.
- μμ΄μ½μ λ₯κ·Ό μΊ‘μ μ¬μ©ν΄μΌ ν©λλ€.
- μμ΄μ½μ μ€μ μ λ ¬λ νμ μ¬μ©ν΄μΌ ν©λλ€.
- μμ΄μ½μ λν(μ: μ¬κ°ν)μ 2ν½μ μ ν λ리 λ°κ²½μ κ°μ ΈμΌ ν©λλ€.
- κ°λ³ μμλ μλ‘ 2ν½μ μ κ°κ²©μ΄ μμ΄μΌ ν©λλ€.
Lucideλ λν Illustrator, Figma, Inkscapeμ κ°μ λ²‘ν° νΈμ§κΈ°λ₯Ό μν ν νλ¦Ώκ³Ό κ°μ΄λλ₯Ό μ 곡ν©λλ€.