
🔤 Fira Code — моноширинний шрифт з лігатурами для програмування

Що таке лігатури та навіщо вони в коді
Лігатура: об’єднання двох або трьох символів в один візуальний гліф. У типографіці цей прийом відомий століттями: літери «f» та «i» зливаються в fi, щоб не чіплятися одна за одну. У програмуванні та сама механіка працює з операторами.
Коли ви пишете !=, а слідом => і >= або ===, ваше око зчитує їх як єдиний логічний токен. Але на екрані це два або три окремі символи, і мозок витрачає мікрозусилля на склеювання. За робочий день таких мікрооперацій набираються тисячі. Лігатури розв’язують проблему: != перетворюється на перекреслений знак рівності (≠), => стає жирною стрілкою, >= виглядає як цілісний значок «більше або дорівнює».
Розробник Микита Прокопов (tonsky) побудував на цій ідеї цілий шрифт. Fira Code, вільне моноширинне сімейство на базі Fira Mono, розширене програмними лігатурами. Під капотом чистий ASCII: вихідний код не змінюється, рендеринг відбувається на рівні шрифту. Файл залишається тим самим, читається інакше.
💡 Швидкий огляд:
- Завантажте Fira Code з GitHub-релізу: ZIP ~2,5 МБ, версія 6.2, безплатно
- Установіть шрифт у систему та пропишіть у редакторі
editor.fontFamilyіeditor.fontLigatures - Доберіть stylistic sets і character variants на свій смак: від
ss01доcv31 - Звірте підтримку вашого редактора за офіційною таблицею сумісності на GitHub
Як Fira Code змінює читання коду
Перше, що впадає в око після встановлення: оператори порівняння. Там, де раніше було != (знак оклику + дорівнює), тепер єдиний перекреслений символ. <= і >= виглядають як математичні знаки з підручника, а не як два розрізнені ASCII-символи.
Стрілки: окрема магія. Будь-який ланцюжок із дефісів і кутових дужок збирається в неперервну лінію. Спробуйте -->, <-- і <-->, вони зливаються в суцільну стрілку. У Fira Code 4 розробник замінив 44 окремі лігатури стрілок на чотири комбінаторні правила. Тепер стрілки можуть бути довільної довжини. Працює навіть ---> і <---.
Багатосимвольні оператори теж збираються в єдині гліфи: === і !==, :: і //, |||. Коментарі <!-- --> виглядають акуратніше. Для любителів функційного програмування є |> і >>= з =<<, і десятки інших.
Нижче той самий PHP-код без Fira Code і з ним. Різниця не кричуща, але спробуйте «знайти відмінності»: око чіпляється за оператори швидше.
Без Fira Code
1 /** 2 * Стрелки --> и -->> иллюстрируют поток данных. 3 */ 4 $out = array(''); 5 $pieces = array( 6 '<!-- HTML -->', 'https://www.example.com/#!', 'red', '##', 0x0, '' 7 ); 8 for ($i = 0; $i <= 5; $i++) { 9 if ($i == '2' || $pieces[$i] === 'red') { 10 $hex__red = 0xca0000; 11 $out[] = $hex__red >> 15; // 404 12 } elseif ($i !== 3 && $pieces[$i] != false) { 13 $out[] = $pieces[$i]; 14 } 15 } 16 echo implode('', $out);
З Fira Code
1 /** 2 * Стрелки --> и -->> иллюстрируют поток данных. 3 */ 4 $out = array(''); 5 $pieces = array( 6 '<!-- HTML -->', 'https://www.example.com/#!', 'red', '##', 0x0, '' 7 ); 8 for ($i = 0; $i <= 5; $i++) { 9 if ($i == '2' || $pieces[$i] === 'red') { 10 $hex__red = 0xca0000; 11 $out[] = $hex__red >> 15; // 404 12 } elseif ($i !== 3 && $pieces[$i] != false) { 13 $out[] = $pieces[$i]; 14 } 15 } 16 echo implode('', $out);
Обидва блоки ідентичні посимвольно. Відрізняється лише шрифт. У другому випадку <= і >= стали цілісними знаками, != і !== виглядають перекресленими, а --> перетворився на стрілку. Читання пришвидшується не радикально, але відчутно. Особливо в довгих сесіях код-рев’ю.
Де працює Fira Code
Шрифт підтримують десятки редакторів: від VS Code і Sublime Text до Vim та Emacs. Повний список є в таблиці сумісності на GitHub.
Ключові платформи:
VS Code: нативна підтримка. У
settings.jsonпропишіть"editor.fontFamily": "'Fira Code'", "editor.fontLigatures": true. Стилістичні набори вмикаються через"editor.fontLigatures": "'calt', 'ss02', 'ss09'".JetBrains IDE (IntelliJ, PhpStorm, WebStorm, Rider): з версії 2016.2. Підключення: Editor → Font → обрати Fira Code → увімкнути Enable ligatures.
Sublime Text: починаючи з білда 3146. У користувацьких налаштуваннях:
"font_face": "Fira Code".Vim/Neovim: через
set guiligaturesу GUI-версіях і патчі для термінальних.Термінали: Windows Terminal, iTerm 2, Kitty, Konsole, Tabby, Hyper, WezTerm. Не працюють: Alacritty, GNOME Terminal, xterm, PuTTY.
Браузери: через jsdelivr CDN. Підключіть
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">і додайтеfont-feature-settings: "calt";для IE/старого Edge.
На практиці встановлення виглядає так: завантажили ZIP з релізу, установили TTF у систему, прописали шрифт у редакторі, увімкнули лігатури. Усе. Жодних плагінів, жодної магії, чистий @font-face на рівні ОС.
Тонке налаштування: варіанти та стилістичні набори
Головна перевага Fira Code перед конкурентами: гнучкість. Не подобається конкретна лігатура? Вимкніть її. Хочете інший рисунок літери? Оберіть character variant. Усе налаштовується точково.
Character variants (cv01-cv31) змінюють форму окремих символів:
cv01-cv10: альтернативні рисунки для літерaіg, а такожiіlcv11-cv13: варіанти нуля (з крапкою, без, перекреслений)cv14: альтернативна трійкаcv15: зірочка, притиснута до верху (зручно для C/C++ вказівників)cv31: альтернативні дужки()
Stylistic sets (ss01-ss10) керують лігатурами:
ss01: альтернативний рендеринг&&ss02:<=без нахилу, з горизонтальною рискоюss03:&у стилі старої друкарської машинкиss04: долар$без перекресленняss05:@без закрученого хвостаss09: повертає роздільні>>=/<<=/||=(у v6 прибрані з дефолту, докладніше на GitHub)
Окремої згадки заслуговують прогрес-бари. Fira Code: перший програмний шрифт, у якому символи U+EE00-U+EE0B рендеряться як смужка прогресу. Термінал виводить послідовність , а користувач бачить гарне залиття. Для виявлення підтримки запропоновано змінну середовища UNICODE_PROGRESS_BAR=true.
Альтернативи: з чим порівняти
Fira Code не єдиний шрифт із лігатурами. Ринок за останні роки розрісся, і в кожного варіанту свій акцент:
Шрифт | Ліцензія | Особливість |
|---|---|---|
JetBrains Mono | SIL OFL | Підвищена читаність, різна висота рядкових, немає заокруглень |
Cascadia Code | SIL OFL | Шрифт Microsoft для Terminal, підтримка Powerline, box drawing |
Iosevka | SIL OFL | Вузький шрифт, генерується кодом, максимально компактний |
Victor Mono | MIT | Справжній курсив із зарубками, не похилий |
Hasklig | SIL OFL | Відгалуження Source Code Pro з лігатурами для Haskell |
Monoid | MIT | Підтримка Powerline, настроювана ширина |
Fira Code виграє не красою окремих літер (тут смаковщина), а обсягом і зрілістю. 81 000 зірок на GitHub, шість мажорних релізів, сотні підтримуваних редакторів, 31 character variant, прогрес-бари, математичні символи, підтримка box drawing і Powerline. Коли обираєш шрифт на роки, екосистема важить не менше, ніж естетика.
⁉️🤔 Поширені запитання
Я поставив Fira Code, але лігатури не з’явилися. У чому річ?
Найімовірніше, редактор потребує окремого ввімкнення. У VS Code це
"editor.fontLigatures": true. У JetBrains IDE: позначка «Enable ligatures» у налаштуваннях шрифту. У терміналах перевірте, чи підтримує ваш емулятор лігатури: Windows Terminal підтримує, ConEmu, ні.
Лігатури відволікають. Чи можна залишити лише деякі?
Так. Стилістичні набори
ss01-ss10вмикають і вимикають групи лігатур. Наприклад,ss09повертає роздільні>>=і<<=. Для точкового налаштування можна перезібрати шрифт локально командою./script/build.sh --features "ss02,ss08,cv14".
Fira Code гальмує в редакторі. Це нормально?
На версії 4 була оптимізація рендерингу: 44 окремі лігатури стрілок замінили чотирма комбінаторними правилами, продуктивність зросла на 100-150%. Якщо гальмує зараз, перевірте, чи не ввімкнені паралельно інші шрифтові фічі (calt плюс ss-набори зазвичай не дають затримок).
Яка кирилиця у Fira Code?
Кириличний набір успадковано від Fira Mono: читабельний, нейтральний, без претензій. Для коду українською (коментарі, рядки) вистачає. Але якщо ви пишете документацію українською об’ємно, придивіться до JetBrains Mono: його кирилиця пропрацьована краще.
Чи варто переходити на Fira Code у 2026 році
Шрифт не оновлювався з грудня 2021-го. І це, хоч як дивно, добрий знак. Коли продукт доведений до стану «працює і не ламається», часті коміти не потрібні. За п’ять років без релізів ніхто не написав «Fira Code помер». Ним просто користуються.
Якщо ви проводите за кодом 4+ годин на день, установіть Fira Code на тиждень. Відкат на старий шрифт відчуєте швидше, ніж очікуєте: око звикає зчитувати оператори як цілісні токени, і повернення до «розібраних» символів сприймається як крок назад. Найгірше, що станеться: видалите шрифт через сім днів. Найкраще: знайдете свій інструмент на роки вперед.



