@gjsify/adwaita-web 0.53.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/adwaita-web",
3
- "version": "0.53.0",
3
+ "version": "0.54.0",
4
4
  "description": "Adwaita/Libadwaita web components for browser targets",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -45,16 +45,16 @@
45
45
  "@codemirror/language": "^6.12.4",
46
46
  "@codemirror/state": "^6.7.0",
47
47
  "@codemirror/view": "^6.43.4",
48
- "@gjsify/adwaita-core": "^0.53.0",
49
- "@gjsify/adwaita-fonts": "^0.53.0",
50
- "@gjsify/adwaita-icons": "^0.53.0",
48
+ "@gjsify/adwaita-core": "^0.54.0",
49
+ "@gjsify/adwaita-fonts": "^0.54.0",
50
+ "@gjsify/adwaita-icons": "^0.54.0",
51
51
  "@lezer/highlight": "^1.2.3"
52
52
  },
53
53
  "devDependencies": {
54
- "@gjsify/blueprint": "^0.53.0",
55
- "@gjsify/cli": "^0.53.0",
56
- "@gjsify/unit": "^0.53.0",
57
- "@gjsify/vite-plugin-blueprint": "^0.53.0",
54
+ "@gjsify/blueprint": "^0.54.0",
55
+ "@gjsify/cli": "^0.54.0",
56
+ "@gjsify/unit": "^0.54.0",
57
+ "@gjsify/vite-plugin-blueprint": "^0.54.0",
58
58
  "sass": "^1.101.0",
59
59
  "typescript": "^6.0.3"
60
60
  },
@@ -118,21 +118,37 @@
118
118
  --spacing-l: 18px;
119
119
  --spacing-xl: 24px;
120
120
 
121
- // Typography — GNOME default: Adwaita Sans 11. The tail is a PLATFORM-NATIVE
122
- // ladder, and it is there because the families above it resolve on a GNOME desktop
123
- // and NOWHERE ELSE: 'Adwaita Sans' is NAMED, not shipped (`status/stylesheet-font-
124
- // families.json`), and 'Cantarell' is its predecessor. A macOS host has neither,
125
- // and the `sans-serif` generic is Helvetica there — #1817, a widget set that looks
126
- // right on the machine it was authored on and lands on Helvetica in every screenshot
127
- // a consumer takes. `system-ui` asks the host for its own UI face (San Francisco,
128
- // Segoe UI); `-apple-system` and 'Segoe UI' are the pre-`system-ui` spellings of
129
- // those same two answers, kept for the engines that need them.
121
+ // Typography — GNOME default: Adwaita Sans 11. The stack is a PROGRESSION, and the
122
+ // tail is what makes it one (#1817). 'Adwaita Sans' is installed on a GNOME desktop
123
+ // and nowhere else; 'Cantarell' is GNOME's own earlier UI face and the right second
124
+ // guess there; 'Inter' is the one cross-platform name an app usually has beside it.
130
125
  //
131
- // The caption is this block's FIRST SENTENCE on purpose: `generate-adwaita-tokens.mjs`
132
- // titles a group from the block touching its declaration, cut at the first `. `, so a
133
- // caption written as a trailing line is unreachable and an uncapped one becomes a
134
- // section header on the website's theming page.
135
- --font-family: 'Adwaita Sans', 'Cantarell', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
126
+ // What was MISSING is macOS, and it was missing in the worst place. With no Apple face
127
+ // named, `sans-serif` resolved to Helvetica — measured on a Mac carrying neither
128
+ // Adwaita Sans nor Cantarell — which is the one typeface no libadwaita application is
129
+ // meant to look like, and the stylesheet said nothing about it. `system-ui` and its
130
+ // `-apple-system` alias are the two spellings every current engine resolves to the
131
+ // platform's own UI face (SF on macOS, Segoe UI Variable on Windows, Cantarell on
132
+ // GNOME), so they go after the named faces and BEFORE the generic: a generic asks the
133
+ // host for its DEFAULT, which is the substitution this is about, while `system-ui` asks
134
+ // for its UI face, which is what an Adwaita app wants.
135
+ //
136
+ // 'Segoe UI' stays ahead of them as the EXPLICIT Windows face: `system-ui` reached it
137
+ // only from Windows 8 and Segoe UI Variable only from Windows 11, so the name is still
138
+ // the portable spelling there. Held honest by the `stylesheet-font-families`
139
+ // conformance rule, whose ledger carries the reason for 'Adwaita Sans' — never delete
140
+ // one without the other.
141
+ //
142
+ // THE PERIOD ending this first sentence, and the absence of a comment block between
143
+ // these declarations, are both load-bearing rather than stylistic.
144
+ // `scripts/generate-adwaita-tokens.mjs` titles each token group by the first sentence
145
+ // of the comment block touching its FIRST declaration, so a caption with no terminator
146
+ // runs on into the next words — and a block sitting between two declarations starts a
147
+ // NEW group, which is how a paragraph about this mechanism became a section title in
148
+ // the website before it was moved in here. Everything past the first sentence is prose
149
+ // for that one reader; `check-generated-website-data.mjs` holds both derived artifacts
150
+ // against the run.
151
+ --font-family: 'Adwaita Sans', 'Cantarell', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
136
152
  --font-size-base: 11pt;
137
153
  --font-size-small: 9pt;
138
154
  --font-size-heading: 12pt;
@@ -186,14 +202,20 @@
186
202
  // second lands on a font whose figures do not line up — the exact property
187
203
  // `.monospace` exists for.
188
204
  //
189
- // 'Consolas' is the same repair as `system-ui` beside it in `--font-family` (#1817):
190
- // `ui-monospace` is the right way to ask and is not universally supported, and the
191
- // engines without it fell to the `monospace` generic — Courier New on Windows. The
192
- // `'SF Mono'` / `'Menlo'` pair answers on macOS and `ui-monospace` on Linux, so this
193
- // is the Windows half, not a second opinion about the other two.
205
+ // The tail is the same PROGRESSION the sans stack is, for the same reason (#1817), and
206
+ // it had the gap in the other direction: `ui-monospace` covers macOS and GNOME but
207
+ // reaches Cascadia Mono only from Windows 10 1903, and no Windows face was named at
208
+ // all, so a Windows 10 host without it landed on the `monospace` GENERIC — Times New
209
+ // Roman, whose figures do not line up, which is the one thing this stack exists to
210
+ // provide. 'Cascadia Code' ships with Windows Terminal and 'Consolas' is on every
211
+ // Windows since Vista.
212
+ //
213
+ // ONE LINE, and not a style choice: the same generator reads this file with a line-based
214
+ // reader that REFUSES a declaration it cannot read rather than dropping the token
215
+ // without saying so, so a wrapped value makes it exit 1.
194
216
  --document-font-family: var(--font-family);
195
217
  --document-font-size: var(--font-size-base);
196
- --monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', 'Consolas', monospace;
218
+ --monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Cascadia Code', 'Consolas', 'Menlo', monospace;
197
219
  --monospace-font-size: var(--font-size-base);
198
220
  }
199
221
 
@@ -35,13 +35,19 @@ import {
35
35
  * `_variables.scss` is where that stack is argued about (it explains why
36
36
  * 'Cantarell' is dropped from it), so it is where it lives.
37
37
  *
38
- * The `var()` FALLBACK is a second copy by construction — it has to be, or a page
39
- * that loads the stylesheet without the theme tokens gets no stack at all — so it
40
- * is kept to the token's own value and nothing longer, and a tail entry landing in
41
- * `_variables.scss` (#1817 added 'Consolas') has to land here too.
38
+ * The repeat is still a SECOND COPY, and a copy of a value the conformance rule
39
+ * CAN see is the failure this constant was created to end — a tail edited in one
40
+ * place and not the other is an editor in one typeface and a label beside it in
41
+ * another, which is the same bug one argument shorter. It is a `var()` FALLBACK,
42
+ * so the token wins whenever the stylesheet is loaded and this only answers for a
43
+ * page that loaded the element without the theme. Nothing enforces the agreement:
44
+ * `stylesheet-font-families` reads `.css`/`.scss`, and reaching a TS string literal
45
+ * would make it a JS parser, which its own header rules out. So it stays a step of
46
+ * the same edit, and `status/open-todos/adwaita-web.md` § "`<adw-source-view>` has
47
+ * no browser suite" is where the missing check is tracked.
42
48
  */
43
49
  const MONO_FONT =
44
- "var(--monospace-font-family, 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', 'Consolas', monospace)";
50
+ "var(--monospace-font-family, 'Adwaita Mono', ui-monospace, 'SF Mono', 'Cascadia Code', 'Consolas', 'Menlo', monospace)";
45
51
 
46
52
  /** The CodeMirror EditorView theme mapping `.cm-*` chrome to Adwaita tokens. */
47
53
  export const adwaitaEditorTheme = EditorView.theme({