feat: WantedSans 폰트 로드 및 앱 아이콘 적용
Co-Authored-By: Claude Opus 5
@8ddeee0305a068c94ebdd38be92d955ca8648a16
+++ app/apple-icon.png
| Binary file is not shown |
+++ app/icon.png
| Binary file is not shown |
--- app/layout.tsx
+++ app/layout.tsx
... | ... | @@ -1,5 +1,6 @@ |
| 1 | 1 |
import type { Metadata } from "next";
|
| 2 |
-import { Geist, Geist_Mono } from "next/font/google";
|
|
| 2 |
+import { Geist_Mono } from "next/font/google";
|
|
| 3 |
+import localFont from "next/font/local"; |
|
| 3 | 4 |
import { ViewTransition } from "react";
|
| 4 | 5 |
import { FeedbackHost } from "@/app/_components/feedback-host";
|
| 5 | 6 |
import { FeedbackProvider } from "@/app/_components/feedback-provider";
|
... | ... | @@ -21,11 +22,38 @@ |
| 21 | 22 |
SPLASH_SHOWN_STORAGE_KEY |
| 22 | 23 |
)}))document.documentElement.setAttribute("data-splash-shown","")}catch(e){}})()`;
|
| 23 | 24 |
|
| 24 |
-const geistSans = Geist({
|
|
| 25 |
- variable: "--font-geist-sans", |
|
| 26 |
- subsets: ["latin"], |
|
| 25 |
+// 어드민 전체 기본 서체(edupay-app 일체화, design 전달 사양) — Geist는 대체되어 제거했다. |
|
| 26 |
+// globals.css `--font-sans`가 이 변수를 우선 참조하고, 로드 전에도 system-ui로 안전하게 |
|
| 27 |
+// 폴백하도록 이미 구성돼 있다. |
|
| 28 |
+const wantedSans = localFont({
|
|
| 29 |
+ src: [ |
|
| 30 |
+ {
|
|
| 31 |
+ path: "../public/fonts/wanted-sans-regular.ttf", |
|
| 32 |
+ weight: "400", |
|
| 33 |
+ style: "normal", |
|
| 34 |
+ }, |
|
| 35 |
+ {
|
|
| 36 |
+ path: "../public/fonts/wanted-sans-medium.ttf", |
|
| 37 |
+ weight: "500", |
|
| 38 |
+ style: "normal", |
|
| 39 |
+ }, |
|
| 40 |
+ {
|
|
| 41 |
+ path: "../public/fonts/wanted-sans-semibold.ttf", |
|
| 42 |
+ weight: "600", |
|
| 43 |
+ style: "normal", |
|
| 44 |
+ }, |
|
| 45 |
+ {
|
|
| 46 |
+ path: "../public/fonts/wanted-sans-bold.ttf", |
|
| 47 |
+ weight: "700", |
|
| 48 |
+ style: "normal", |
|
| 49 |
+ }, |
|
| 50 |
+ ], |
|
| 51 |
+ variable: "--font-wanted-sans", |
|
| 52 |
+ display: "swap", |
|
| 27 | 53 |
}); |
| 28 | 54 |
|
| 55 |
+// 코드/숫자 표기용 고정폭 서체 — globals.css `--font-mono`가 여전히 이 변수를 직접 참조하므로 |
|
| 56 |
+// (폴백 체인 없음) 유지한다. |
|
| 29 | 57 |
const geistMono = Geist_Mono({
|
| 30 | 58 |
variable: "--font-geist-mono", |
| 31 | 59 |
subsets: ["latin"], |
... | ... | @@ -60,7 +88,7 @@ |
| 60 | 88 |
<html |
| 61 | 89 |
lang="ko" |
| 62 | 90 |
suppressHydrationWarning |
| 63 |
- className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`}
|
|
| 91 |
+ className={`${wantedSans.variable} ${geistMono.variable} h-full antialiased`}
|
|
| 64 | 92 |
> |
| 65 | 93 |
<head> |
| 66 | 94 |
<style dangerouslySetInnerHTML={{ __html: SPLASH_HIDE_STYLE }} />
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?