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
- Wejdź na fonts.adobe.com → zaloguj się → My Fonts → Web Projects (lub My Adobe Fonts)
- Otwórz kit
gyi8zov - Przy DIN 2014 (i jego wariantach) kliknij Edit lub kafelek czcionki
- W sekcji Languages / Subsets zaznacz:
- Pan-European (najszerszy) — pokrywa polski, czeski, węgierski, niemiecki itd.
- lub minimum Polish
- 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-BU+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 deklaracjiunicode-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.
