Skip to content

Все для WordPress, веб-розробки — і не тільки

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

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

Приклад коду з лігатурами 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', '&#35;&#35;', 0x0, ''
7);
8for ($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}
16echo implode('', $out);

З Fira Code

1/**
2 * Стрелки --> и -->> иллюстрируют поток данных.
3 */
4$out = array('');
5$pieces = array(
6 '<!-- HTML -->', 'https://www.example.com/#!', 'red', '&#35;&#35;', 0x0, ''
7);
8for ($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}
16echo 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 і l
  • cv11-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 на тиждень. Відкат на старий шрифт відчуєте швидше, ніж очікуєте: око звикає зчитувати оператори як цілісні токени, і повернення до «розібраних» символів сприймається як крок назад. Найгірше, що станеться: видалите шрифт через сім днів. Найкраще: знайдете свій інструмент на роки вперед.