Шрифтът, който не знае буквите ти
Пуснах пет AI модела да направят една и съща страница. Три от тях избраха шрифт, който не съдържа кирилица. И нито един не забеляза.
Задачата беше проста и нарочно неясна: направи HTML5 лендинг страница, действай като професионалист, да има ефект уау, искам да спечели конкурс за дизайн. Нищо повече. Без бриф, без палитра, без указания за съдържанието.
Пуснах я на пет модела един след друг. Целта не беше да намеря кой пише по-хубав CSS. Целта беше да видя какво прави всеки, когато му се даде свобода и никакъв надзор.
Резултатът излезе там, където не го търсех.
Находката
Страницата трябваше да е на български. Всички пет модела знаеха това - езикът беше в промпта, в примерния текст, в
lang="bg" на самия HTML, който те самите написаха.Ето какъв шрифт избра всеки за заглавията:
| Модел | Шрифт за заглавия | Кирилица? |
|---|---|---|
| GPT | Impact | Не |
| DeepSeek | Space Grotesk | Не |
| Grok | Outfit | Не |
| Gemini | Inter | Да |
| Claude | Unbounded / Golos Text | Да |
Три от пет. Не са го сгрешили леко - избрали са шрифт, който физически не съдържа буквите, с които страницата ще бъде написана.
Impact покрива латиница и нищо друго. Няма кирилица, няма и гръцки. Стар Monotype шрифт от деветдесетте, направен за англоезични вестникарски заглавия.
Space Grotesk в Google Fonts има подсетове latin, latin-ext и vietnamese. Кирилица няма.
Outfit има latin и latin-ext. Това е всичко.
И трите изглеждат страхотно в примерната картинка, която моделът рисува в главата ти, докато описва дизайна. И трите се разпадат в момента, в който на екрана застане българска дума.
Защо това е коварно, а не просто грешка
Ако шрифтът липсваше изцяло, щеше да гръмне и веднага да го хванеш. Но браузърът не гърми. Той прави точно каквото стандартът му казва: върви по веригата надолу, докато намери шрифт, който съдържа исканата буква.
Затова се получава следното.
При GPT стекът беше
Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif. Haettenschweiler също няма кирилица. "Arial Narrow Bold" изобщо не е валидно име на фамилия и се прескача. Резултат: цялото заглавие пада до обикновен Arial. Дизайнът, който моделът описваше с цели абзаци възхищение, се превръща в системен шрифт по подразбиране.При Grok случаят е още по-подъл. Стекът е
'Outfit', system-ui, sans-serif. Латиницата се изписва с Outfit. Кирилицата пада на system-ui, тоест Segoe UI под Windows или SF Pro под macOS. И двата са прилични шрифтове.Тоест страницата не изглежда счупена. Изглежда леко несглобена. На един и същи ред стоят два различни шрифта, с различна ширина на буквата и различна височина на малките букви, и никой не е решил това. Никой не може и да каже защо усещането е странно.
Най-опасният дефект не е този, който гърми. Той е този, който изглежда като вкус.
Как се проверява за трийсет секунди
Не е нужно да си типограф. Нужни са две неща.
1. Проверка преди избора
- Отваряш шрифта в Google Fonts и гледаш списъка Languages или Glyphs. Ако Cyrillic го няма там, няма го и в шрифта.
- Ако шрифтът е системен (Impact, Tahoma, Verdana), проверяваш в кой Unicode блок попада. Кирилицата е U+0400 до U+04FF.
- Най-бързият тест: пишеш „Ъгъл Щ Ю Я" в примерното поле. Ако буквите изглеждат различно от останалите, шрифтът вече е паднал на резервен.
2. Локално вграждане с unicode-range
Изтегляш woff2 файловете, слагаш ги при страницата и ги декларираш сам. Така страницата работи офлайн, зарежда се по-бързо и нищо не зависи от чужд CDN.
Code:
@font-face{
font-family:"Oswald";
font-style:normal;
font-weight:200 700;
font-display:swap;
src:url("./fonts/oswald-cyrillic-wght-normal.woff2") format("woff2-variations");
unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
font-family:"Oswald";
font-style:normal;
font-weight:200 700;
font-display:swap;
src:url("./fonts/oswald-latin-wght-normal.woff2") format("woff2-variations");
unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122;
}
unicode-range казва на браузъра кой файл за кои букви отговаря. Латиницата не изтегля кирилския файл и обратно. Целият комплект от три семейства с кирилица ми излезе на 176 килобайта - по-малко от една средна снимка.Забележка от практиката: когато смениш свръхсбит шрифт като Impact с нещо по-нормално, трябва да отпуснеш и разредката. При
letter-spacing: -0.065em, настроен за Impact, буквите на кирилицата започват да се допират.Другите тихи дефекти
Шрифтът не беше единственият. Понеже прегледах всичките пет реда по ред, ето какво още излезе - все неща, които не гърмят и затова остават.
- Релативен og:image.
content="./assets/og.png"не работи никъде. Facebook, LinkedIn и Telegram искат абсолютен адрес. Споделяш линка и няма картинка. - Canonical към чужд домейн. Генераторът беше оставил адреса на собствената си хостинг платформа. Качваш го така и си казал на Google: истинската страница е другаде, индексирай нея.
- cursor: none без резерва. Два модела скриха системния курсор заради собствен рисуван. Ако JavaScript не се зареди, курсорът просто изчезва и потребителят не знае къде е.
- Частици с квадратична сложност. Два модела нарисуваха модното „съзвездие" от свързани точки. Единият изчислява броя им от площта на екрана - на 4K това стават над девет милиона сравнения в секунда, вечно, без спиране при скрито табче.
- Нула ARIA атрибути. Три от петте страници нямаха нито един. Иконките бяха голи текстови символи, които екранен четец произнася като безсмислици.
- Липсващ prefers-reduced-motion. Две страници пускат осемдесет летящи неонови точки в лицето на човек, който изрично е поискал системата му да намали движението.
Естетиката по подразбиране
Има и втора находка, по-малко техническа, но също толкова показателна.
Четири от пет модела отидоха на почти черен фон с неонов акцент, стъклени карти и летящи частици. Циан и лилаво при два от тях, буква по буква същите нюанси.
Това не е стил. Това е настройка по подразбиране - каквото излиза, когато поискаш „уау" и не дадеш нищо друго. Ако утре искаш страница, която да не прилича на всяка втора AI генерация, най-евтиният начин е да забраниш точно тези три неща в промпта.
Кой какво направи
Уговорка първо: тази подредба е правена с участието на един от участниците. Аз ползвам Claude за писането и той се постави на второ място, не на първо. Вярвам, че е вярно. Но читателят има право да знае, че оценяващият е бил в списъка, и да ми се доверява точно толкова, колкото сметне за редно.
GPT беше единственият, който направи страница за някого. Прочете контекста, който му бях дал, и построи автопортрет: реален визуален актив, разказ с посока, Open Graph, структурирани данни, готов пакет с инструкции за качване на български. Типографията му беше счупена, но конструкцията отдолу издържа.
Grok написа най-добрия текст в целия тест. Не имена, а неща. Терминален блок с
whoami и motd, ред за заваряването и кода като една и съща воля, подпис „Вълкът от Врачеш". Кодът му беше вторият най-чист. Загуби заради Outfit.Claude донесе най-точния занаят: истински шрифтове, генеративен подпис на canvas, палитра, извлечена от предмета, а не от вкуса. Структурата му беше най-плитка.
Gemini уцели единствения шрифт с кирилица и знаеше имената на реалните проекти. Но описа форум за коли и заварки като „механично-дигитална симбиоза" - изречение, което работи еднакво добре за архитектурно бюро. И написа частици, които биха стопили среден телефон.
DeepSeek направи компетентен CSS върху абсолютно нищо. Страницата се казва NEXUS, секциите са „Светкавична скорост" и „Иновация", а във футъра буквално пише, че е създадена за конкурса за дизайн. Годината е сгрешена.
Какво всъщност измери тестът
Не компетентност. Всичките пет пишат валиден, съвременен CSS. Разликата не беше в това колко ефекти могат да напишат.
Разликата беше в едно: дали изобщо се запитаха за кого е страницата - и дали провериха собствения си избор, преди да го обявят за завършен.
Никой от тримата, които избраха шрифт без кирилица, не сгреши от незнание. Информацията е публична и се проверява за трийсет секунди. Те просто не провериха, защото не им хрумна, че има какво да се проверява. Латиницата е подразбиращото се състояние на света, от който са научени.
И тук е неудобната част за нас: българският потребител е закръгляне надолу. Не злонамерено. Просто статистически. Ако в примерите, върху които е учен един модел, кирилицата се среща рядко, той няма да я забрави - той няма да се сети, че съществува като въпрос.
Затова проверката остава наша работа. Не защото инструментът е лош, а защото инструментът е настроен за друг материал.
Чукът може да кове. Не може да реши какво.
От гаража
Накрая не избрах нито една от петте. Взех структурата и визуалния актив на GPT, гласа на Grok и типографията, която липсваше на всички. Смених Impact с Oswald, Arial с Golos Text, Courier New с JetBrains Mono - и трите с локални woff2 и пълна кирилица.
После оправих релативния og:image, абсолютизирах canonical, свих social картата от 2,2 мегабайта на 168 килобайта, дадох резерва на скрития курсор и спрях анимационния цикъл, когато мишката не мърда.
И направих терминалния блок да работи наистина. Беше картинка на терминал -
<pre> с мигащ курсор. Сега приема команди, има история, Tab допълване и екраниран вход. Ако JavaScript не се зареди, полето изобщо не се показва.Това последното е принципът, който изнесох от целия тест. Не слагай на страницата нещо, което изглежда като терминал и не отговаря. Металът ме научи на същото много преди кода: шев, който изглежда като шев, но не държи, е по-опасен от липсващ шев.
Ключови думи: AI, шрифтове, кирилица, unicode-range, woff2, Google Fonts, Impact, Space Grotesk, Outfit, Oswald, Golos Text, уеб дизайн, Open Graph, canonical, достъпност, prefers-reduced-motion, ARIA, тест на AI модели, GPT, Grok, Gemini, DeepSeek, Claude
Източници и проверка: подсетовете на всеки шрифт са проверени директно в пакетите на Fontsource и в списъка Languages на Google Fonts. Unicode блокът за кирилица е U+0400 до U+04FF по стандарта на Unicode Consortium. Тестът е проведен на 22.08.2026 с по един опит на модел и еднакъв промпт. Извадката е една - това е наблюдение, не бенчмарк.
toni@dtgarage:~$ whoami
Тони Ангелчовски | Ексклузивно за DTGaraGe
toni@dtgarage:~$ cat LICENSE
Копирането и препубликуването без разрешение не е позволено.
toni@dtgarage:~$ ./support.sh
Подкрепи DTGaraGe и независимото техническо съдържание
toni@dtgarage:~$ █
Тони Ангелчовски | Ексклузивно за DTGaraGe
toni@dtgarage:~$ cat LICENSE
toni@dtgarage:~$ ./support.sh
toni@dtgarage:~$ █