Strona

DIN – problem z fontem

Klasyka — kit Adobe Fonts ma DIN 2014 tylko w Latin Basic (a-z, znaki podstawowe), więc dla ą ć ę ł ń ó ś ź ż browser spada do następnej czcionki w stacku (Barlow → Helvetica → system). Stąd „inny font” w polskich literach.

Dwa sposoby naprawy — pierwszy lepszy, drugi awaryjny.

✅ Sposób 1 (najlepszy) — włącz Polish w Adobe Fonts

  1. Wejdź na fonts.adobe.com → zaloguj się → My Fonts → Web Projects (lub My Adobe Fonts)
  2. Otwórz kit gyi8zov
  3. Przy DIN 2014 (i jego wariantach) kliknij Edit lub kafelek czcionki
  4. W sekcji Languages / Subsets zaznacz:
    • Pan-European (najszerszy) — pokrywa polski, czeski, węgierski, niemiecki itd.
    • lub minimum Polish
  5. Publish kit — zmiana propaguje się w 1–5 minut

Po publikacji DIN 2014 zaczyna mieć ł/ą/ś/ż — i polskie znaki renderują się tym samym fontem co reszta.

🛟 Sposób 2 (awaryjny) — wymuszony fallback przez unicode-range

Jeśli z jakiegoś powodu nie możesz/nie chcesz zmieniać kitu, mogę dodać CSS który świadomie używa Barlow z Google Fonts (już ładowany jako fallback) tylko dla polskich znaków, co da ci kontrolowany, spójny fallback (Barlow jest geometryczny jak DIN — różnica minimalna, znacznie mniejsza niż między DIN a system-ui).

Wstawiam to teraz na wszelki wypadek — działa niezależnie od poprawki kitu, zabezpiecza również gdyby kit kiedyś padł.Ran 2 commands, read a file, edited 2 files

Co zrobiłem

[kmst-pojazdy.css](/Users/rafalmateja/Downloads/claude code/kadence-child/kmst-pojazdy.css) — na początku pliku (przed :root) dodałem 4 deklaracje @font-face dla rodziny din-2014, ograniczone przez unicode-range do zakresów:

  • U+0100-017F — Latin Extended-A (zawiera polskie ą, ć, ę, ł, ń, ó, ś, ź, ż)
  • U+0180-024F — Latin Extended-B
  • U+1E00-1EFF — Latin Extended Additional

Każda z tych deklaracji ma src: local('Barlow' / 'Barlow-Bold' / 'Barlow-Medium' / 'Barlow-ExtraBold') — czyli wskazuje na Barlow zainstalowany lokalnie (lub z Google Fonts CDN, który już ładujesz w functions.php).

Jak to działa

CSS @font-face z różnymi unicode-range dla tej samej font-family to oficjalny sposób na dzielenie znaków między różne pliki czcionek:

  • Browser pobiera „a”, „b”, „c”… → szuka font-family: din-2014 → Adobe Fonts daje DIN ✓
  • Browser pobiera „ł” → szuka font-family: din-2014 → Adobe nie ma tego znaku w swojej deklaracji unicode-range → moja deklaracja MA → używa Barlow ✓

To deterministyczny fallback — zawsze Barlow dla polskich, nigdy Helvetica/system. Wynik wizualny: prawie nie do odróżnienia od pełnego DIN-a (Barlow to jego kuzyn — geometryczny humanist sans).

Jeśli wolisz „prawdziwy” DIN

→ idź na fonts.adobe.com → kit gyi8zov → DIN 2014 → Edit → Subsets → włącz „Polish” lub „Pan-European” → publish.

Po tym moja CSS-fallback nie aktywuje się (Adobe DIN ma już te znaki), więc nic nie szkodzi że została. Działa jak ubezpieczenie.