mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
## What? Render the filename in the "edit the … file" line using **Geist Mono** across all `create-next-app` templates, so the preloaded font is actually used. ## Why? Every fresh app logged a browser warning: the Geist Mono `.woff2` is preloaded but never used, because the redesign in #81945 dropped the last monospace element (the old `<code>app/page.tsx</code>`). Rather than stop preloading the font (this PR's original approach), we _use_ it — the filename renders in Geist Mono. That clears the warning at its source and keeps the template showcasing both flagship fonts (two fonts, no flash of unstyled text). ## How? - Reverted the `preload: false` change. - Wrapped the filename in the intro line in a `<code>` rendered in Geist Mono, styled as a small inline code chip (slightly smaller size, subtle rounded background, padding) so it reads as a code token rather than plain heading text: - Tailwind templates → utility classes (`font-mono` maps to `--font-geist-mono` via `@theme inline`). - CSS-module templates → a `.code` class using `var(--font-geist-mono)`; the chip background uses `color-mix(currentColor …)` so it adapts to light/dark automatically. - Applied across all four families (`app`, `app-tw`, `default`, `default-tw`), JS + TS. ## Screenshots | | Before | After | | --------- | --------------------------------------------------- | -------------------------------------------- | | **Light** | <img width="2400" height="1520" alt="cna-geist-mono-before" src="https://github.com/user-attachments/assets/cf374265-7fdf-4c3b-9f66-05436f966fc9" /> | <img width="2400" height="1520" alt="cna-geist-mono-after" src="https://github.com/user-attachments/assets/ae55166d-26d8-4cc2-8268-90c5996d2431" /> | | **Dark** | <img width="2400" height="1520" alt="cna-geist-mono-before-dark" src="https://github.com/user-attachments/assets/d813adac-85c0-4044-813f-9489b0b4faa7" /> | <img width="2400" height="1520" alt="cna-geist-mono-after-dark" src="https://github.com/user-attachments/assets/01199df9-4842-46e0-a73e-a3ba0ef78ad2" /> | Before: filename in Geist Sans, preloaded-but-unused warning in the console. After: filename in Geist Mono, no warning. <!-- NEXT_JS_LLM_PR -->
150 lines
2.5 KiB
CSS
150 lines
2.5 KiB
CSS
.page {
|
|
--background: #fafafa;
|
|
--foreground: #fff;
|
|
|
|
--text-primary: #000;
|
|
--text-secondary: #666;
|
|
|
|
--button-primary-hover: #383838;
|
|
--button-secondary-hover: #f2f2f2;
|
|
--button-secondary-border: #ebebeb;
|
|
|
|
display: flex;
|
|
min-height: 100vh;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-family: var(--font-geist-sans);
|
|
background-color: var(--background);
|
|
}
|
|
|
|
.main {
|
|
display: flex;
|
|
min-height: 100vh;
|
|
width: 100%;
|
|
max-width: 800px;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
background-color: var(--foreground);
|
|
padding: 120px 60px;
|
|
}
|
|
|
|
.intro {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
text-align: left;
|
|
gap: 24px;
|
|
}
|
|
|
|
.intro h1 {
|
|
max-width: 320px;
|
|
font-size: 40px;
|
|
font-weight: 600;
|
|
line-height: 48px;
|
|
letter-spacing: -2.4px;
|
|
text-wrap: balance;
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.intro p {
|
|
max-width: 440px;
|
|
font-size: 18px;
|
|
line-height: 32px;
|
|
text-wrap: balance;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.intro a {
|
|
font-weight: 500;
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.ctas {
|
|
display: flex;
|
|
flex-direction: row;
|
|
width: 100%;
|
|
max-width: 440px;
|
|
gap: 16px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.ctas a {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
height: 40px;
|
|
padding: 0 16px;
|
|
border-radius: 128px;
|
|
border: 1px solid transparent;
|
|
transition: 0.2s;
|
|
cursor: pointer;
|
|
width: fit-content;
|
|
font-weight: 500;
|
|
}
|
|
|
|
a.primary {
|
|
background: var(--text-primary);
|
|
color: var(--background);
|
|
gap: 8px;
|
|
}
|
|
|
|
a.secondary {
|
|
border-color: var(--button-secondary-border);
|
|
}
|
|
|
|
/* Enable hover only on non-touch devices */
|
|
@media (hover: hover) and (pointer: fine) {
|
|
a.primary:hover {
|
|
background: var(--button-primary-hover);
|
|
border-color: transparent;
|
|
}
|
|
|
|
a.secondary:hover {
|
|
background: var(--button-secondary-hover);
|
|
border-color: transparent;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 600px) {
|
|
.main {
|
|
padding: 48px 24px;
|
|
}
|
|
|
|
.intro {
|
|
gap: 16px;
|
|
}
|
|
|
|
.intro h1 {
|
|
font-size: 32px;
|
|
line-height: 40px;
|
|
letter-spacing: -1.92px;
|
|
}
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
.logo {
|
|
filter: invert();
|
|
}
|
|
|
|
.page {
|
|
--background: #000;
|
|
--foreground: #000;
|
|
|
|
--text-primary: #ededed;
|
|
--text-secondary: #999;
|
|
|
|
--button-primary-hover: #ccc;
|
|
--button-secondary-hover: #1a1a1a;
|
|
--button-secondary-border: #1a1a1a;
|
|
}
|
|
}
|
|
|
|
.code {
|
|
font-family: var(--font-geist-mono);
|
|
font-size: 0.9em;
|
|
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
padding: 0.1em 0.4em;
|
|
border-radius: 6px;
|
|
}
|