Skip to content

Commit 3f5c79f

Browse files
authored
Merge pull request abue-ammar#12 from abue-ammar/ui-migration
feat: preload and optimize font loading to reduce shifting and improv…
2 parents d36bc76 + 4c4da0a commit 3f5c79f

2 files changed

Lines changed: 48 additions & 7 deletions

File tree

index.html

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,24 @@
3030
/>
3131
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
3232
<title>Image Compressor</title>
33+
34+
<!-- Preload font for better performance and reduce font shifting -->
35+
<link rel="preconnect" href="https://fonts.googleapis.com" />
36+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
37+
<link
38+
href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"
39+
rel="stylesheet"
40+
/>
41+
42+
<style>
43+
/* Prevent font shifting during initial load */
44+
body {
45+
font-family:
46+
"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", Consolas,
47+
"Courier New", monospace;
48+
font-display: swap;
49+
}
50+
</style>
3351
</head>
3452
<body>
3553
<div id="root"></div>

src/index.css

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap");
21
@import "tailwindcss";
32
@import "tw-animate-css";
43

54
@custom-variant dark (&:is(.dark *));
65

76
html {
87
scroll-behavior: smooth;
8+
/* Ensure font rendering is optimized */
9+
font-display: swap;
910
}
1011

1112
:root {
@@ -45,9 +46,15 @@ html {
4546
--sidebar-accent-foreground: oklch(0.205 0 0);
4647
--sidebar-border: oklch(0.922 0 0);
4748
--sidebar-ring: oklch(0.708 0 0);
48-
--font-sans: Roboto Mono, monospace;
49-
--font-serif: Roboto Mono, monospace;
50-
--font-mono: Roboto Mono, monospace;
49+
--font-sans:
50+
"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas,
51+
"Courier New", monospace;
52+
--font-serif:
53+
"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas,
54+
"Courier New", monospace;
55+
--font-mono:
56+
"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas,
57+
"Courier New", monospace;
5158
--radius: 0.625rem;
5259
--shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
5360
--shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
@@ -100,9 +107,15 @@ html {
100107
--sidebar-accent-foreground: oklch(0.985 0 0);
101108
--sidebar-border: oklch(0.275 0 0);
102109
--sidebar-ring: oklch(0.439 0 0);
103-
--font-sans: Roboto Mono, monospace;
104-
--font-serif: Roboto Mono, monospace;
105-
--font-mono: Roboto Mono, monospace;
110+
--font-sans:
111+
"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas,
112+
"Courier New", monospace;
113+
--font-serif:
114+
"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas,
115+
"Courier New", monospace;
116+
--font-mono:
117+
"Roboto Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas,
118+
"Courier New", monospace;
106119
--radius: 0.625rem;
107120
--shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
108121
--shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
@@ -181,6 +194,16 @@ html {
181194
}
182195
body {
183196
@apply bg-background text-foreground;
197+
/* Reduce font shifting by ensuring consistent baseline */
198+
font-kerning: auto;
199+
font-variant-ligatures: contextual;
200+
text-rendering: optimizeLegibility;
201+
font-feature-settings:
202+
"kern" 1,
203+
"liga" 1,
204+
"calt" 1;
205+
/* Prevent layout shift during font loading */
206+
font-display: swap;
184207
}
185208
}
186209

0 commit comments

Comments
 (0)