diff --git a/app/root.tsx b/app/root.tsx
index 0e2edad8a..95e25611b 100644
--- a/app/root.tsx
+++ b/app/root.tsx
@@ -34,6 +34,7 @@ import * as NotificationRepository from "~/features/notifications/NotificationRe
import { NOTIFICATIONS } from "~/features/notifications/notifications-contants";
import { resolveSidebarData } from "~/features/sidebar/core/sidebar.server";
import { useDebounce } from "~/hooks/useDebounce";
+import lexendLatinUrl from "~/styles/fonts/lexend-latin.woff2?url";
import type { SendouRouteHandle } from "~/utils/remix.server";
import type { Route } from "./+types/root";
import { Catcher } from "./components/Catcher";
@@ -79,6 +80,7 @@ export const middleware: Route.MiddlewareFunction[] = [
i18nMiddleware,
];
+import "~/styles/fonts.css";
import "~/styles/vars.css";
import "~/styles/normalize.css";
import "~/styles/common.css";
@@ -481,14 +483,13 @@ function HydrationTestIndicator() {
function Fonts() {
return (
- <>
-
-
-
- >
+
);
}
diff --git a/app/styles/fonts.css b/app/styles/fonts.css
new file mode 100644
index 000000000..bc01b4ffa
--- /dev/null
+++ b/app/styles/fonts.css
@@ -0,0 +1,32 @@
+/*
+Lexend variable font, self-hosted. The weight range is capped at 700 to match
+`--weight-extra`, so `font-weight: bolder` keeps clamping there as it did when
+the four static weights were requested from Google Fonts.
+
+The vietnamese subset is intentionally omitted: no locale uses it.
+*/
+
+@font-face {
+ font-family: "Lexend";
+ font-style: normal;
+ font-weight: 400 700;
+ font-display: swap;
+ src: url("./fonts/lexend-latin.woff2") format("woff2");
+ unicode-range:
+ U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
+ U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
+ U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+@font-face {
+ font-family: "Lexend";
+ font-style: normal;
+ font-weight: 400 700;
+ font-display: swap;
+ src: url("./fonts/lexend-latin-ext.woff2") format("woff2");
+ unicode-range:
+ U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
+ U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
+ U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
+ U+A720-A7FF;
+}
diff --git a/app/styles/fonts/lexend-latin-ext.woff2 b/app/styles/fonts/lexend-latin-ext.woff2
new file mode 100644
index 000000000..9ca4e6a77
Binary files /dev/null and b/app/styles/fonts/lexend-latin-ext.woff2 differ
diff --git a/app/styles/fonts/lexend-latin.woff2 b/app/styles/fonts/lexend-latin.woff2
new file mode 100644
index 000000000..0968c152f
Binary files /dev/null and b/app/styles/fonts/lexend-latin.woff2 differ