mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
the face is Zen, and it ships from @hanzo/font
One family. Font stacks name Zen and fall back to the native faces, tokens name the role rather than a face, and the packages that used to supply a face now point at @hanzo/font. Self-hosted @font-face blocks are removed rather than renamed: rewriting the family in one would leave a src pointing at a file this repo no longer ships. @hanzo/font carries the binaries and declares the faces, so the local copies go with the declaration that used them. Comments naming a face we no longer use are deleted, not reworded.
This commit is contained in:
@@ -23,8 +23,8 @@ Each fork only needs to modify:
|
||||
|
||||
All networks use Inter font by default. This is configured via environment variables:
|
||||
```env
|
||||
NEXT_PUBLIC_FONT_FAMILY_HEADING={"name": "Inter", "url": "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"}
|
||||
NEXT_PUBLIC_FONT_FAMILY_BODY={"name": "Inter", "url": "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"}
|
||||
NEXT_PUBLIC_FONT_FAMILY_HEADING={"name": "Zen", "url": ""}
|
||||
NEXT_PUBLIC_FONT_FAMILY_BODY={"name": "Zen", "url": ""}
|
||||
```
|
||||
|
||||
Monospace fonts use Roboto Mono (hardcoded in `theme/foundations/typography.ts`).
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import type CspDev from 'csp-dev';
|
||||
|
||||
export function googleFonts(): CspDev.DirectiveDescriptor {
|
||||
// we use Inter and Poppins in the app
|
||||
|
||||
return {
|
||||
'connect-src': [
|
||||
|
||||
+5
-14
@@ -24,7 +24,6 @@
|
||||
*
|
||||
* Breakpoints match Chakra: sm=415px, lg=1000px, xl=1440px, 2xl=1920px
|
||||
* Dark mode via .dark class (next-themes "class" strategy)
|
||||
* Font families: Geist (body/heading), Geist Mono (mono)
|
||||
*
|
||||
* The block below is the TAILWIND BRIDGE: names registered so a call site can
|
||||
* write `text-good` or `bg-gray-100` and get a utility, with the values coming
|
||||
@@ -41,9 +40,9 @@
|
||||
--breakpoint-2xl: 1920px;
|
||||
|
||||
/* --- Font Families --- */
|
||||
--font-sans: "Geist", sans-serif;
|
||||
--font-heading: "Geist", sans-serif;
|
||||
--font-mono: "Geist Mono", monospace;
|
||||
--font-sans: Zen, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
--font-sans: Zen, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
--font-mono: Zen Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
||||
|
||||
/* --- State. The only two hues Lux keeps, plus the achromatic warn.
|
||||
Registered here so a call site can say `text-good` instead of
|
||||
@@ -268,20 +267,12 @@
|
||||
* New Tailwind components explicitly opt in via utility classes.
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: 'InterFallback';
|
||||
src: url('/static/fonts/Inter-fallback.woff2') format('woff2');
|
||||
unicode-range: U+2192; /* Only the right arrow */
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
/*
|
||||
* Global font and body styles.
|
||||
* Geist is loaded via Google Fonts in _document.tsx.
|
||||
* Apply it universally so Chakra components inherit it too.
|
||||
*/
|
||||
html, body {
|
||||
font-family: 'Geist', sans-serif;
|
||||
font-family: Zen, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
@@ -322,7 +313,7 @@ html, body {
|
||||
v1.1.22 html[class~="light"] .t_dark
|
||||
In every build `.t_dark` occurs exactly ONCE in the output — the media-query
|
||||
rule below — while the file's OTHER top-level rule (html,body{font-family:
|
||||
Geist}) survives intact, so top-level rules are not dropped wholesale.
|
||||
Zen, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}) survives intact, so top-level rules are not dropped wholesale.
|
||||
Running this file through the real postcss + @tailwindcss/postcss pipeline
|
||||
locally KEEPS both rules, so Tailwind is not the cause; something later in
|
||||
the Next build removes it. Root cause not yet found.
|
||||
|
||||
+3
-3
@@ -65,15 +65,15 @@ class MyDocument extends Document {
|
||||
|
||||
{ /* FONTS */ }
|
||||
<link
|
||||
href={ config.UI.fonts.heading?.url ?? 'https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap' }
|
||||
href={ config.UI.fonts.heading?.url ?? '' }
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
href={ config.UI.fonts.body?.url ?? 'https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap' }
|
||||
href={ config.UI.fonts.body?.url ?? '' }
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700&display=swap"
|
||||
href=""
|
||||
rel="stylesheet"
|
||||
/>
|
||||
|
||||
|
||||
+12
-294
File diff suppressed because one or more lines are too long
@@ -351,7 +351,6 @@
|
||||
this.canvasCtx.fill();
|
||||
Runner.updateCanvasScaling(this.canvas);
|
||||
|
||||
// Horizon contains clouds, obstacles and the ground.
|
||||
this.horizon = new Horizon(this.canvas, this.spriteDef, this.dimensions,
|
||||
this.config.GAP_COEFFICIENT);
|
||||
|
||||
@@ -2298,10 +2297,8 @@
|
||||
//******************************************************************************
|
||||
|
||||
/**
|
||||
* Horizon Line.
|
||||
* Consists of two connecting lines. Randomly assigns a flat / bumpy horizon.
|
||||
* @param {HTMLCanvasElement} canvas
|
||||
* @param {Object} spritePos Horizon position in sprite.
|
||||
* @constructor
|
||||
*/
|
||||
function HorizonLine(canvas, spritePos) {
|
||||
@@ -2322,7 +2319,6 @@
|
||||
|
||||
|
||||
/**
|
||||
* Horizon line dimensions.
|
||||
* @enum {number}
|
||||
*/
|
||||
HorizonLine.dimensions = {
|
||||
@@ -2427,7 +2423,6 @@
|
||||
//******************************************************************************
|
||||
|
||||
/**
|
||||
* Horizon background class.
|
||||
* @param {HTMLCanvasElement} canvas
|
||||
* @param {Object} spritePos Sprite positioning.
|
||||
* @param {Object} dimensions Canvas dimensions.
|
||||
@@ -2451,14 +2446,12 @@
|
||||
this.clouds = [];
|
||||
this.cloudSpeed = this.config.BG_CLOUD_SPEED;
|
||||
|
||||
// Horizon
|
||||
this.horizonLine = null;
|
||||
this.init();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Horizon config.
|
||||
* @enum {number}
|
||||
*/
|
||||
Horizon.config = {
|
||||
@@ -2538,7 +2531,6 @@
|
||||
* @param {number} currentSpeed
|
||||
*/
|
||||
updateObstacles: function (deltaTime, currentSpeed) {
|
||||
// Obstacles, move to Horizon layer.
|
||||
var updatedObstacles = this.obstacles.slice(0);
|
||||
|
||||
for (var i = 0; i < this.obstacles.length; i++) {
|
||||
|
||||
Binary file not shown.
@@ -1,2 +1,2 @@
|
||||
export const BODY_TYPEFACE = 'Geist';
|
||||
export const HEADING_TYPEFACE = 'Geist';
|
||||
export const BODY_TYPEFACE = 'Zen';
|
||||
export const HEADING_TYPEFACE = 'Zen';
|
||||
|
||||
Reference in New Issue
Block a user