mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
fix(flags): render flag emoji on Windows globally via a scoped flag font
Windows ships no glyphs for regional-indicator flag emoji, so flags fell back to country letters everywhere react-twemoji wasn't manually wrapped. Bundle the Twemoji country-flags woff2 locally (no runtime CDN — matters for our audience) and add it as an @font-face scoped with unicode-range to flag codepoints only, then put it first in every Tailwind font stack (sans/display/mono). The browser now uses it solely for flag characters, so every flag renders correctly app-wide with zero markup changes and no effect on any other text.
This commit is contained in:
BIN
public/fonts/TwemojiCountryFlags.woff2
Normal file
BIN
public/fonts/TwemojiCountryFlags.woff2
Normal file
Binary file not shown.
@@ -2,6 +2,18 @@
|
|||||||
@tailwind components;
|
@tailwind components;
|
||||||
@tailwind utilities;
|
@tailwind utilities;
|
||||||
|
|
||||||
|
/* Flag emoji polyfill — Windows has no glyphs for regional-indicator flags, so
|
||||||
|
they fall back to country letters. This locally-bundled Twemoji flag font is
|
||||||
|
scoped via unicode-range to ONLY flag codepoints, so adding it to the front
|
||||||
|
of the font stacks fixes every flag everywhere without touching any markup
|
||||||
|
and without affecting any other text. Root fix, not a per-component wrap. */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Twemoji Country Flags';
|
||||||
|
unicode-range: U+1F1E6-1F1FF, U+1F3F4, U+E0062-E007F;
|
||||||
|
src: url('/fonts/TwemojiCountryFlags.woff2') format('woff2');
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
/* Animated gradient border — @property enables CSS-only angle animation */
|
/* Animated gradient border — @property enables CSS-only angle animation */
|
||||||
@property --border-angle {
|
@property --border-angle {
|
||||||
syntax: '<angle>';
|
syntax: '<angle>';
|
||||||
|
|||||||
@@ -110,7 +110,11 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
|
// 'Twemoji Country Flags' is first in every stack so Windows renders flag
|
||||||
|
// emoji (it's unicode-range-scoped to flag codepoints only — see globals.css —
|
||||||
|
// so it never affects any other glyph). Global root fix for flags everywhere.
|
||||||
sans: [
|
sans: [
|
||||||
|
'Twemoji Country Flags',
|
||||||
'Manrope',
|
'Manrope',
|
||||||
'system-ui',
|
'system-ui',
|
||||||
'-apple-system',
|
'-apple-system',
|
||||||
@@ -119,8 +123,8 @@ export default {
|
|||||||
'Roboto',
|
'Roboto',
|
||||||
'sans-serif',
|
'sans-serif',
|
||||||
],
|
],
|
||||||
display: ['Outfit', 'Manrope', 'system-ui', 'sans-serif'],
|
display: ['Twemoji Country Flags', 'Outfit', 'Manrope', 'system-ui', 'sans-serif'],
|
||||||
mono: ['IBM Plex Mono', 'ui-monospace', 'monospace'],
|
mono: ['Twemoji Country Flags', 'IBM Plex Mono', 'ui-monospace', 'monospace'],
|
||||||
},
|
},
|
||||||
borderRadius: {
|
borderRadius: {
|
||||||
bento: '24px',
|
bento: '24px',
|
||||||
|
|||||||
Reference in New Issue
Block a user