Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!30.06.2024
Власні значки в стилях для Obsidian
В реалізації стилів для канви залишався недолік: для значків я був обмежений символами звичайного шрифту — що незручно ще до того, як згадати, що шрифт може змінюватись. Зміст значка в мене утворюється директивою CSS content
. Пробував замінити його на SVG - не зміг редагувати колір того SVG (в межах CSS).
Сьогодні розвʼязав цю задачу остаточно. По-перше, знайомтеся, Nerd Fonts. Це шрифт, в якому зібрано 10 тисяч (!) значків з різних відкритих наборів. Шрифт мене влаштовує краще, ніж SVG, бо з ним можна працювати як зі звичайним текстом. Але тепер, як додати його прямо у CSS?
Виявляється, CSS вміє завантажувати шрифти з data URL
. Може, то й очевидно, але я з data URL стикався тільки для зображень. А тут можна отак:
@font-face {
font-family: "Nerd Fonts Symbols Embedded";
src: url(data:application/font-woff2;base64,d09... ще мільйон символів);
}
Тільки один нюанс: шрифт розповсюджується в форматі .TTF
- це зручно для використання в редакторі, але для Obsidian потрібний шрифт .WOFF2
, бо він побудований на вебтехнологіях. Дізнався, що насправді WOFF2 це лише добре запакований TTF, та для перетворення є проста утиліта.
Нарешті, останній момент: щоб використати той значок в CSS, треба писати щось на кшталт content: "\f128"
; код символу береться з каталогу. (Або тягнути вбудований CSS Nerd Fonts, але мені то заради пʼяти значків занадто. До речі… сам шрифт пізніше теж можна було б підрізати точно під потребу.)