@allons-y/webc-oss-site 0.0.0-stage → 0.1.0-beta.1

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/LICENSE ADDED
@@ -0,0 +1,385 @@
1
+ Mozilla Public License Version 2.0
2
+ ==================================
3
+
4
+ 1. Definitions
5
+
6
+ --------------
7
+
8
+ 1.1. "Contributor"
9
+ means each individual or legal entity that creates, contributes to
10
+ the creation of, or owns Covered Software.
11
+
12
+ 1.2. "Contributor Version"
13
+ means the combination of the Contributions of others (if any) used
14
+ by a Contributor and that particular Contributor's Contribution.
15
+
16
+ 1.3. "Contribution"
17
+ means Covered Software of a particular Contributor.
18
+
19
+ 1.4. "Covered Software"
20
+ means Source Code Form to which the initial Contributor has attached
21
+ the notice in Exhibit A, the Executable Form of such Source Code
22
+ Form, and Modifications of such Source Code Form, in each case
23
+ including portions thereof.
24
+
25
+ 1.5. "Incompatible With Secondary Licenses"
26
+ means
27
+
28
+ (a) that the initial Contributor has attached the notice described
29
+ in Exhibit B to the Covered Software; or
30
+
31
+ (b) that the Covered Software was made available under the terms of
32
+ version 1.1 or earlier of the License, but not also under the
33
+ terms of a Secondary License.
34
+
35
+ 1.6. "Executable Form"
36
+ means any form of the work other than Source Code Form.
37
+
38
+ 1.7. "Larger Work"
39
+ means a work that combines Covered Software with other material, in
40
+ a separate file or files, that is not Covered Software.
41
+
42
+ 1.8. "License"
43
+ means this document.
44
+
45
+ 1.9. "Licensable"
46
+ means having the right to grant, to the maximum extent possible,
47
+ whether at the time of the initial grant or subsequently, any and
48
+ all of the rights conveyed by this License.
49
+
50
+ 1.10. "Modifications"
51
+ means any of the following:
52
+
53
+ (a) any file in Source Code Form that results from an addition to,
54
+ deletion from, or modification of the contents of Covered
55
+ Software; or
56
+
57
+ (b) any new file in Source Code Form that contains any Covered
58
+ Software.
59
+
60
+ 1.11. "Patent Claims" of a Contributor
61
+ means any patent claim(s), including without limitation, method,
62
+ process, and apparatus claims, in any patent Licensable by such
63
+ Contributor that would be infringed, but for the grant of the
64
+ License, by the making, using, selling, offering for sale, having
65
+ made, import, or transfer of either its Contributions or its
66
+ Contributor Version.
67
+
68
+ 1.12. "Secondary License"
69
+ means either the GNU General Public License, Version 2.0, the GNU
70
+ Lesser General Public License, Version 2.1, the GNU Affero General
71
+ Public License, Version 3.0, or any later versions of those
72
+ licenses.
73
+
74
+ 1.13. "Source Code Form"
75
+ means the form of the work preferred for making modifications.
76
+
77
+ 1.14. "You" (or "Your")
78
+ means an individual or a legal entity exercising rights under this
79
+ License. For legal entities, "You" includes any entity that
80
+ controls, is controlled by, or is under common control with You. For
81
+ purposes of this definition, "control" means (a) the power, direct
82
+ or indirect, to cause the direction or management of such entity,
83
+ whether by contract or otherwise, or (b) ownership of more than
84
+ fifty percent (50%) of the outstanding shares or beneficial
85
+ ownership of such entity.
86
+
87
+ 1. License Grants and Conditions
88
+
89
+ --------------------------------
90
+
91
+ 2.1. Grants
92
+
93
+ Each Contributor hereby grants You a world-wide, royalty-free,
94
+ non-exclusive license:
95
+
96
+ (a) under intellectual property rights (other than patent or trademark)
97
+ Licensable by such Contributor to use, reproduce, make available,
98
+ modify, display, perform, distribute, and otherwise exploit its
99
+ Contributions, either on an unmodified basis, with Modifications, or
100
+ as part of a Larger Work; and
101
+
102
+ (b) under Patent Claims of such Contributor to make, use, sell, offer
103
+ for sale, have made, import, and otherwise transfer either its
104
+ Contributions or its Contributor Version.
105
+
106
+ 2.2. Effective Date
107
+
108
+ The licenses granted in Section 2.1 with respect to any Contribution
109
+ become effective for each Contribution on the date the Contributor first
110
+ distributes such Contribution.
111
+
112
+ 2.3. Limitations on Grant Scope
113
+
114
+ The licenses granted in this Section 2 are the only rights granted under
115
+ this License. No additional rights or licenses will be implied from the
116
+ distribution or licensing of Covered Software under this License.
117
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
118
+ Contributor:
119
+
120
+ (a) for any code that a Contributor has removed from Covered Software;
121
+ or
122
+
123
+ (b) for infringements caused by: (i) Your and any other third party's
124
+ modifications of Covered Software, or (ii) the combination of its
125
+ Contributions with other software (except as part of its Contributor
126
+ Version); or
127
+
128
+ (c) under Patent Claims infringed by Covered Software in the absence of
129
+ its Contributions.
130
+
131
+ This License does not grant any rights in the trademarks, service marks,
132
+ or logos of any Contributor (except as may be necessary to comply with
133
+ the notice requirements in Section 3.4).
134
+
135
+ 2.4. Subsequent Licenses
136
+
137
+ No Contributor makes additional grants as a result of Your choice to
138
+ distribute the Covered Software under a subsequent version of this
139
+ License (see Section 10.2) or under the terms of a Secondary License (if
140
+ permitted under the terms of Section 3.3).
141
+
142
+ 2.5. Representation
143
+
144
+ Each Contributor represents that the Contributor believes its
145
+ Contributions are its original creation(s) or it has sufficient rights
146
+ to grant the rights to its Contributions conveyed by this License.
147
+
148
+ 2.6. Fair Use
149
+
150
+ This License is not intended to limit any rights You have under
151
+ applicable copyright doctrines of fair use, fair dealing, or other
152
+ equivalents.
153
+
154
+ 2.7. Conditions
155
+
156
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
157
+ in Section 2.1.
158
+
159
+ 1. Responsibilities
160
+
161
+ -------------------
162
+
163
+ 3.1. Distribution of Source Form
164
+
165
+ All distribution of Covered Software in Source Code Form, including any
166
+ Modifications that You create or to which You contribute, must be under
167
+ the terms of this License. You must inform recipients that the Source
168
+ Code Form of the Covered Software is governed by the terms of this
169
+ License, and how they can obtain a copy of this License. You may not
170
+ attempt to alter or restrict the recipients' rights in the Source Code
171
+ Form.
172
+
173
+ 3.2. Distribution of Executable Form
174
+
175
+ If You distribute Covered Software in Executable Form then:
176
+
177
+ (a) such Covered Software must also be made available in Source Code
178
+ Form, as described in Section 3.1, and You must inform recipients of
179
+ the Executable Form how they can obtain a copy of such Source Code
180
+ Form by reasonable means in a timely manner, at a charge no more
181
+ than the cost of distribution to the recipient; and
182
+
183
+ (b) You may distribute such Executable Form under the terms of this
184
+ License, or sublicense it under different terms, provided that the
185
+ license for the Executable Form does not attempt to limit or alter
186
+ the recipients' rights in the Source Code Form under this License.
187
+
188
+ 3.3. Distribution of a Larger Work
189
+
190
+ You may create and distribute a Larger Work under terms of Your choice,
191
+ provided that You also comply with the requirements of this License for
192
+ the Covered Software. If the Larger Work is a combination of Covered
193
+ Software with a work governed by one or more Secondary Licenses, and the
194
+ Covered Software is not Incompatible With Secondary Licenses, this
195
+ License permits You to additionally distribute such Covered Software
196
+ under the terms of such Secondary License(s), so that the recipient of
197
+ the Larger Work may, at their option, further distribute the Covered
198
+ Software under the terms of either this License or such Secondary
199
+ License(s).
200
+
201
+ 3.4. Notices
202
+
203
+ You may not remove or alter the substance of any license notices
204
+ (including copyright notices, patent notices, disclaimers of warranty,
205
+ or limitations of liability) contained within the Source Code Form of
206
+ the Covered Software, except that You may alter any license notices to
207
+ the extent required to remedy known factual inaccuracies.
208
+
209
+ 3.5. Application of Additional Terms
210
+
211
+ You may choose to offer, and to charge a fee for, warranty, support,
212
+ indemnity or liability obligations to one or more recipients of Covered
213
+ Software. However, You may do so only on Your own behalf, and not on
214
+ behalf of any Contributor. You must make it absolutely clear that any
215
+ such warranty, support, indemnity, or liability obligation is offered by
216
+ You alone, and You hereby agree to indemnify every Contributor for any
217
+ liability incurred by such Contributor as a result of warranty, support,
218
+ indemnity or liability terms You offer. You may include additional
219
+ disclaimers of warranty and limitations of liability specific to any
220
+ jurisdiction.
221
+
222
+ 1. Inability to Comply Due to Statute or Regulation
223
+
224
+ ---------------------------------------------------
225
+
226
+ If it is impossible for You to comply with any of the terms of this
227
+ License with respect to some or all of the Covered Software due to
228
+ statute, judicial order, or regulation then You must: (a) comply with
229
+ the terms of this License to the maximum extent possible; and (b)
230
+ describe the limitations and the code they affect. Such description must
231
+ be placed in a text file included with all distributions of the Covered
232
+ Software under this License. Except to the extent prohibited by statute
233
+ or regulation, such description must be sufficiently detailed for a
234
+ recipient of ordinary skill to be able to understand it.
235
+
236
+ 1. Termination
237
+
238
+ --------------
239
+
240
+ 5.1. The rights granted under this License will terminate automatically
241
+ if You fail to comply with any of its terms. However, if You become
242
+ compliant, then the rights granted under this License from a particular
243
+ Contributor are reinstated (a) provisionally, unless and until such
244
+ Contributor explicitly and finally terminates Your grants, and (b) on an
245
+ ongoing basis, if such Contributor fails to notify You of the
246
+ non-compliance by some reasonable means prior to 60 days after You have
247
+ come back into compliance. Moreover, Your grants from a particular
248
+ Contributor are reinstated on an ongoing basis if such Contributor
249
+ notifies You of the non-compliance by some reasonable means, this is the
250
+ first time You have received notice of non-compliance with this License
251
+ from such Contributor, and You become compliant prior to 30 days after
252
+ Your receipt of the notice.
253
+
254
+ 5.2. If You initiate litigation against any entity by asserting a patent
255
+ infringement claim (excluding declaratory judgment actions,
256
+ counter-claims, and cross-claims) alleging that a Contributor Version
257
+ directly or indirectly infringes any patent, then the rights granted to
258
+ You by any and all Contributors for the Covered Software under Section
259
+ 2.1 of this License shall terminate.
260
+
261
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
262
+ end user license agreements (excluding distributors and resellers) which
263
+ have been validly granted by You or Your distributors under this License
264
+ prior to termination shall survive termination.
265
+
266
+ ************************************************************************
267
+
268
+ * *
269
+ * 1. Disclaimer of Warranty *
270
+ * ------------------------- *
271
+ * *
272
+ * Covered Software is provided under this License on an "as is" *
273
+ * basis, without warranty of any kind, either expressed, implied, or *
274
+ * statutory, including, without limitation, warranties that the *
275
+ * Covered Software is free of defects, merchantable, fit for a *
276
+ * particular purpose or non-infringing. The entire risk as to the *
277
+ * quality and performance of the Covered Software is with You. *
278
+ * Should any Covered Software prove defective in any respect, You *
279
+ * (not any Contributor) assume the cost of any necessary servicing, *
280
+ * repair, or correction. This disclaimer of warranty constitutes an *
281
+ * essential part of this License. No use of any Covered Software is *
282
+ * authorized under this License except under this disclaimer. *
283
+ * *
284
+
285
+ ************************************************************************
286
+
287
+ ************************************************************************
288
+
289
+ * *
290
+ * 1. Limitation of Liability *
291
+ * -------------------------- *
292
+ * *
293
+ * Under no circumstances and under no legal theory, whether tort *
294
+ * (including negligence), contract, or otherwise, shall any *
295
+ * Contributor, or anyone who distributes Covered Software as *
296
+ * permitted above, be liable to You for any direct, indirect, *
297
+ * special, incidental, or consequential damages of any character *
298
+ * including, without limitation, damages for lost profits, loss of *
299
+ * goodwill, work stoppage, computer failure or malfunction, or any *
300
+ * and all other commercial damages or losses, even if such party *
301
+ * shall have been informed of the possibility of such damages. This *
302
+ * limitation of liability shall not apply to liability for death or *
303
+ * personal injury resulting from such party's negligence to the *
304
+ * extent applicable law prohibits such limitation. Some *
305
+ * jurisdictions do not allow the exclusion or limitation of *
306
+ * incidental or consequential damages, so this exclusion and *
307
+ * limitation may not apply to You. *
308
+ * *
309
+
310
+ ************************************************************************
311
+
312
+ 1. Litigation
313
+
314
+ -------------
315
+
316
+ Any litigation relating to this License may be brought only in the
317
+ courts of a jurisdiction where the defendant maintains its principal
318
+ place of business and such litigation shall be governed by laws of that
319
+ jurisdiction, without reference to its conflict-of-law provisions.
320
+ Nothing in this Section shall prevent a party's ability to bring
321
+ cross-claims or counter-claims.
322
+
323
+ 1. Miscellaneous
324
+
325
+ ----------------
326
+
327
+ This License represents the complete agreement concerning the subject
328
+ matter hereof. If any provision of this License is held to be
329
+ unenforceable, such provision shall be reformed only to the extent
330
+ necessary to make it enforceable. Any law or regulation which provides
331
+ that the language of a contract shall be construed against the drafter
332
+ shall not be used to construe this License against a Contributor.
333
+
334
+ 1. Versions of the License
335
+
336
+ ---------------------------
337
+
338
+ 10.1. New Versions
339
+
340
+ Mozilla Foundation is the license steward. Except as provided in Section
341
+ 10.3, no one other than the license steward has the right to modify or
342
+ publish new versions of this License. Each version will be given a
343
+ distinguishing version number.
344
+
345
+ 10.2. Effect of New Versions
346
+
347
+ You may distribute the Covered Software under the terms of the version
348
+ of the License under which You originally received the Covered Software,
349
+ or under the terms of any subsequent version published by the license
350
+ steward.
351
+
352
+ 10.3. Modified Versions
353
+
354
+ If you create software not governed by this License, and you want to
355
+ create a new license for such software, you may create and use a
356
+ modified version of this License if you rename the license and remove
357
+ any references to the name of the license steward (except to note that
358
+ such modified license differs from this License).
359
+
360
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
361
+ Licenses
362
+
363
+ If You choose to distribute Source Code Form that is Incompatible With
364
+ Secondary Licenses under the terms of this version of the License, the
365
+ notice described in Exhibit B of this License must be attached.
366
+
367
+ Exhibit A - Source Code Form License Notice
368
+ -------------------------------------------
369
+
370
+ This Source Code Form is subject to the terms of the Mozilla Public
371
+ License, v. 2.0. If a copy of the MPL was not distributed with this
372
+ file, You can obtain one at <http://mozilla.org/MPL/2.0/>.
373
+
374
+ If it is not possible or desirable to put the notice in a particular
375
+ file, then You may include the notice in a location (such as a LICENSE
376
+ file in a relevant directory) where a recipient would be likely to look
377
+ for such a notice.
378
+
379
+ You may add additional accurate notices of copyright ownership.
380
+
381
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
382
+ ---------------------------------------------------------
383
+
384
+ This Source Code Form is "Incompatible With Secondary Licenses", as
385
+ defined by the Mozilla Public License, v. 2.0.
package/README.md CHANGED
@@ -1,3 +1,135 @@
1
- # Temporary Holding Version
1
+ # @allons-y/webc-oss-site
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ The OSS site theme for [Norn](https://github.com/allonsy-studio/webc-resources#readme) sites: the Allons-y Studio brand tokens, the self-hosted fonts, and the locked OSS banner, call to action, and footer credit. Everything generic, the layouts and the data builders included, lives in [`@allons-y/webc-patterns`](https://github.com/allonsy-studio/webc-resources/tree/main/packages/webc-patterns#readme).
4
+
5
+ See it in the [component preview](https://allonsy-studio.github.io/webc-resources/).
6
+
7
+ ## Status
8
+
9
+ Beta. Versions are `0.1.0-beta.N` until 1.0.
10
+
11
+ ## Install
12
+
13
+ ```sh
14
+ npm install --save-dev @11ty/eleventy @11ty/eleventy-plugin-webc @allons-y/webc-oss-site @allons-y/webc-patterns
15
+ npm install --save-dev @allons-y/webc-code-sample # optional: highlighted code samples
16
+ ```
17
+
18
+ `@allons-y/webc-patterns` is a peer dependency: the OSS site plugin adds its Norn plugin. The project is an ES module (`"type": "module"`). Node 22 or later.
19
+
20
+ Evergreen browsers from about 2024. Features newer than that degrade gracefully.
21
+
22
+ ## Use it
23
+
24
+ Add the OSS site plugin in place of the Norn plugin, with the same options. It adds the Norn plugin with the OSS components, fills `norn-base`'s hooks, embeds the brand tokens, sets the theme color, and copies the fonts to `assets/fonts`:
25
+
26
+ ```js
27
+ import path from "node:path";
28
+
29
+ import { HtmlBasePlugin } from "@11ty/eleventy";
30
+ import { fillHooks } from "@allons-y/webc-patterns/plugin";
31
+ import oss, { ossProps } from "@allons-y/webc-oss-site";
32
+
33
+ const docsOf = (data) => (data.collections?.docs ?? []).map((page) => ({ href: page.url, title: page.data.title, description: page.data.description }));
34
+
35
+ export default function (config) {
36
+ config.addPlugin(oss, {
37
+ props: (data) => ({ ...ossProps(data.site, data.project, { docs: docsOf(data), anchors: data.anchors === true }), title: data.title, docs: docsOf(data) }),
38
+ });
39
+ fillHooks(config, { head: '<link rel="stylesheet" href="/assets/styles/project.css" webc:keep />' });
40
+ config.addPlugin(HtmlBasePlugin);
41
+
42
+ return { markdownTemplateEngine: false /* …dir, templateFormats, pathPrefix */ };
43
+ }
44
+ ```
45
+
46
+ Pages pick a layout from the patterns package: `norn-landing.webc`, `norn-docs-home.webc` and `norn-docs.webc`, or `norn-workspaces-home.webc` and `norn-workspace.webc`. Its README lists each layout's props and shows how to [copy a layout](https://github.com/allonsy-studio/webc-resources/tree/main/packages/webc-patterns#copy-a-layout) to change it. Don't add the Norn plugin as well: the OSS site plugin adds it, and a second one fails the build. The project's own `fillHooks` calls append after the theme's.
47
+
48
+ The site data comes from the patterns package's builders, one line per data file. Pass the theme's `host` so a project without its own URL gets its path on Allons-y Studio's pages host:
49
+
50
+ ```js
51
+ // _data/site.js
52
+ import path from "node:path";
53
+ import { buildSite } from "@allons-y/webc-patterns/project";
54
+ import { host } from "@allons-y/webc-oss-site";
55
+
56
+ export default () =>
57
+ buildSite({
58
+ packagePath: path.resolve(import.meta.dirname, "../../package.json"),
59
+ projectPath: path.join(import.meta.dirname, "project.json"),
60
+ host,
61
+ });
62
+ ```
63
+
64
+ For the npm badges in the footer, add `npmRelease` and `badgeColor` to the site data, from the patterns package's `npmRelease` and `accentHex`. The [landing](https://github.com/allonsy-studio/webc-resources/tree/main/fixtures/landing), [docs](https://github.com/allonsy-studio/webc-resources/tree/main/fixtures/docs), and [workspaces](https://github.com/allonsy-studio/webc-resources/tree/main/fixtures/workspaces) fixtures are complete working projects.
65
+
66
+ ### ossProps
67
+
68
+ `ossProps(site, project, { docs, anchors, oss })` maps the site facts from `buildSite` and a `project.json` to the layout props, with the OSS site theme's link set in English: the header's section anchors (with `anchors`), Docs (with a book icon, when `docs` has pages), GitHub, and npm links; the footer's name, tagline, npm badges once the package is released, license, and the Project and Help groups. Conduct and security links come from the project's own files first, then Allons-y Studio's policies; `oss: false` leaves them out. A project adds its page's own props, such as `title`, `docs`, and `ogImage`, after it. It never throws on missing data.
69
+
70
+ ## Components
71
+
72
+ | Component | Locked | What it does |
73
+ | --- | --- | --- |
74
+ | `oss-bar` | Yes | The banner, in the `banner` hook before the header |
75
+ | `oss-cta` | Yes | The call to action that closes `main`, in the `cta` hook, with the Allons-y Studio name signed in Yellowtail. The only place Allons-y Studio's contact address appears |
76
+ | `oss-credit` | Yes | The footer credit, in the `credit` hook, light or dark by the visitor's scheme, cropped to the art |
77
+ | `oss-head` | No | The `head` hook: the PT Mono preload and the self-hosted `@font-face` rules, with a fallback matched to each font's metrics |
78
+
79
+ The Allons-y Studio SVGs are inlined into the three locked components when the package is packed, from the org's `.github` repository, so the package exports no asset folder for them. Each has an accessible name, or is marked decorative. A packed install needs network access once, at pack time; set `OSS_ASSETS` to a local checkout's `assets` folder to pack offline.
80
+
81
+ ## The brand
82
+
83
+ The theme is two files in the `norn.oss` layer, which the plugin embeds in every page's bundle: `css/tokens.css` sets shared tokens, and `css/brand.css` styles the Norn components by their tags. A project's unlayered CSS still wins over each of them.
84
+
85
+ | Token | Allons-y Studio value |
86
+ | --- | --- |
87
+ | `--norn-font-mono` | PT Mono, Allons-y Studio's locked monospace |
88
+
89
+ | Rule in `css/brand.css` | Allons-y Studio look |
90
+ | --- | --- |
91
+ | `norn-header > header::after` | The four-color strip along the header bar |
92
+ | `norn-footer > footer > div:first-child > :first-child strong:first-of-type` | The footer's project name in the accent color and the mono face, at 1.2rem |
93
+
94
+ The plugin also sets the theme color, `#33394e`, and `og:locale`, `en_US`, as prop defaults under the project's mapping.
95
+
96
+ ## Exports
97
+
98
+ | Export | Purpose |
99
+ | --- | --- |
100
+ | `default` | The OSS site plugin, `config.addPlugin(oss, options)`, with the Norn plugin's options |
101
+ | `ossProps(site, project, options)` | Layout props from the site facts and `project.json`, with the OSS site theme's link set |
102
+ | `ossEnabled({ packagePath })` | False when the project's `package.json` sets `"oss-docs": { "oss": false }` |
103
+ | `host` | Allons-y Studio's pages host, for `buildSite` |
104
+ | `policies` | Allons-y Studio's conduct and security policy URLs |
105
+ | `components` | Absolute glob for the OSS components, which the plugin adds |
106
+ | `tokens` | Absolute path to `css/tokens.css` |
107
+ | `brand` | Absolute path to `css/brand.css` |
108
+ | `fonts` | Absolute path to the self-hosted font files, which the plugin copies to `assets/fonts` |
109
+
110
+ The schema for the `oss-docs` settings is exported as `@allons-y/webc-oss-site/schema/oss-docs.schema.json`, the brand tokens as `@allons-y/webc-oss-site/css/tokens.css`, and the brand rules as `@allons-y/webc-oss-site/css/brand.css`.
111
+
112
+ ## The OSS lock
113
+
114
+ A project component named `oss-bar.webc`, `oss-cta.webc`, or `oss-credit.webc` collides with the packaged one and fails the build, and no page data can remove the hook fills. Opting out is a setting: with `"oss-docs": { "oss": false }` in the project's `package.json`, the project's config adds the Norn plugin in place of the OSS site plugin (`ossEnabled` reads the setting), and passes `oss: false` to `ossProps`. No banner, call to action, credit, OSS CSS, or Allons-y Studio link is left on the page.
115
+
116
+ ## Notes
117
+
118
+ - **Icons come from `norn-icon`.** The Docs link carries a book, the hero facts a check, and a docs page may name a sidebar icon. Footer links and card badges have none, and `features[].icon` is not in the schema.
119
+ - **Conduct and security links** use the project's own `CODE_OF_CONDUCT.md` and `SECURITY.md` when it keeps them, and show Allons-y Studio's only when the OSS site layer is on.
120
+ - **The workspaces sidebar** is labeled "Packages", not "Documentation".
121
+ - **The OSS credit and call to action** are inline SVGs, not image files.
122
+
123
+ ## License
124
+
125
+ [MPL-2.0](LICENSE): use freely, modify as needed; changes to MPL-licensed files should be shared back under the same license.
126
+
127
+ <p align="center">
128
+ <a href="https://allons-y.studio">
129
+ <picture>
130
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/allonsy-studio/.github/main/assets/png/oss-footer-dark.png">
131
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/allonsy-studio/.github/main/assets/png/oss-footer-light.png">
132
+ <img id="user-content-logo" src="https://raw.githubusercontent.com/allonsy-studio/.github/main/assets/png/oss-footer-light.png" alt="Brought to you by Allons-y Studio" width="400">
133
+ </picture>
134
+ </a>
135
+ </p>
@@ -0,0 +1,35 @@
1
+ <!---
2
+ /*
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7
+ */
8
+ --->
9
+ <a href="https://allons-y.studio"><svg role="img" aria-label="Brought to you by Allons-y Studio" width="500" height="64" xmlns="http://www.w3.org/2000/svg" viewBox="551 0 500 64"><rect width="1600" height="64" fill="#33394E"/><g transform="translate(572.11 12.00) scale(0.07812)"><path d="M 433.41 375.67 A 214 214 0 0 1 209.68 464.93" fill="none" stroke="#7BD1E6" stroke-width="42" stroke-linecap="butt"/><circle cx="433.41" cy="375.67" r="21.00" fill="#7BD1E6"/><path d="M 188.10 458.94 A 214 214 0 0 1 42.29 267.20" fill="none" stroke="#C92C6B" stroke-width="42" stroke-linecap="butt"/><path d="M 42.29 244.80 A 214 214 0 0 1 188.10 53.06" fill="none" stroke="#FF9A56" stroke-width="42" stroke-linecap="butt"/><path d="M 209.68 47.07 A 214 214 0 0 1 433.41 136.33" fill="none" stroke="#FFD36C" stroke-width="42" stroke-linecap="butt"/><circle cx="433.41" cy="136.33" r="21.00" fill="#FFD36C"/><rect x="374" y="224" width="118" height="64" rx="26" fill="#33394E" stroke="#FBF9F3" stroke-width="16"/><circle cx="256" cy="256" r="150" fill="#33394E" stroke="#FBF9F3" stroke-width="16"/><circle cx="256" cy="256" r="104" fill="#C2B1A6"/></g><path d="M1.8199999999999998 0.0V-0.884H4.81Q5.668 -0.884 6.175 -1.3519999999999999Q6.6819999999999995 -1.8199999999999998 6.6819999999999995 -2.613Q6.6819999999999995 -3.4579999999999997 6.148999999999999 -3.965Q5.616 -4.4719999999999995 4.718999999999999 -4.4719999999999995H1.8199999999999998V-5.33H4.576Q5.46 -5.33 5.954 -5.759Q6.4479999999999995 -6.188 6.4479999999999995 -6.968Q6.4479999999999995 -7.696 5.9864999999999995 -8.085999999999999Q5.5249999999999995 -8.475999999999999 4.641 -8.475999999999999H1.8199999999999998V-9.36H4.732Q6.019 -9.36 6.7665 -8.748999999999999Q7.513999999999999 -8.138 7.513999999999999 -7.085Q7.513999999999999 -6.422 7.215 -5.901999999999999Q6.9159999999999995 -5.382 6.395999999999999 -5.089499999999999Q5.8759999999999994 -4.797 5.2 -4.797L5.265 -5.069999999999999Q5.9799999999999995 -5.069999999999999 6.5455 -4.731999999999999Q7.111 -4.394 7.4425 -3.8155Q7.774 -3.2369999999999997 7.774 -2.496Q7.774 -1.755 7.416499999999999 -1.1895Q7.058999999999999 -0.624 6.408999999999999 -0.312Q5.7589999999999995 0.0 4.901 0.0ZM1.1179999999999999 0.0V-9.36H2.1839999999999997V0.0Z M12.584000000000001 0.0V-9.36H16.042Q17.043 -9.36 17.745 -9.035Q18.447000000000003 -8.709999999999999 18.817500000000003 -8.131499999999999Q19.188000000000002 -7.553 19.188000000000002 -6.76Q19.188000000000002 -5.967 18.817500000000003 -5.3755Q18.447000000000003 -4.784 17.745 -4.4525Q17.043 -4.1209999999999996 16.042 -4.1209999999999996H13.364V-5.0569999999999995H16.003Q17.043 -5.0569999999999995 17.5825 -5.512Q18.122 -5.967 18.122 -6.76Q18.122 -7.54 17.589 -7.981999999999999Q17.056 -8.424 16.003 -8.424H13.65V0.0ZM18.07 0.0 13.091000000000001 -4.641H14.547L19.682000000000002 0.0Z M28.106 0.13Q27.131000000000004 0.13 26.318500000000004 -0.22749999999999998Q25.506000000000004 -0.585 24.908 -1.2414999999999998Q24.310000000000002 -1.898 23.978500000000004 -2.782Q23.647000000000002 -3.666 23.647000000000002 -4.718999999999999Q23.647000000000002 -6.109999999999999 24.219 -7.188999999999999Q24.791000000000004 -8.267999999999999 25.798500000000004 -8.879Q26.806000000000004 -9.49 28.093000000000004 -9.49Q29.406000000000002 -9.49 30.413500000000003 -8.879Q31.421000000000003 -8.267999999999999 31.993000000000002 -7.188999999999999Q32.565000000000005 -6.109999999999999 32.565000000000005 -4.7059999999999995Q32.565000000000005 -3.653 32.23350000000001 -2.769Q31.902 -1.885 31.304000000000002 -1.2349999999999999Q30.706000000000003 -0.585 29.887000000000004 -0.22749999999999998Q29.068000000000005 0.13 28.106 0.13ZM28.093000000000004 -0.832Q29.094 -0.832 29.8545 -1.3325Q30.615000000000002 -1.833 31.044000000000004 -2.717Q31.473000000000003 -3.601 31.473000000000003 -4.732Q31.473000000000003 -5.85 31.050500000000003 -6.708Q30.628000000000004 -7.566 29.867500000000003 -8.047Q29.107000000000003 -8.528 28.093000000000004 -8.528Q27.079000000000004 -8.528 26.325000000000003 -8.047Q25.571000000000005 -7.566 25.155000000000005 -6.714499999999999Q24.739000000000004 -5.8629999999999995 24.739000000000004 -4.732Q24.739000000000004 -3.5879999999999996 25.161500000000004 -2.7104999999999997Q25.584000000000003 -1.833 26.338 -1.3325Q27.092000000000002 -0.832 28.093000000000004 -0.832Z M40.95 0.13Q39.26 0.13 38.317499999999995 -0.9035Q37.375 -1.9369999999999998 37.375 -3.796V-9.36H38.441V-3.7439999999999998Q38.441 -2.34 39.091 -1.5859999999999999Q39.741 -0.832 40.95 -0.832Q42.185 -0.832 42.835 -1.5795Q43.485 -2.327 43.485 -3.7439999999999998V-9.36H44.551V-3.783Q44.551 -1.9369999999999998 43.602000000000004 -0.9035Q42.653 0.13 40.95 0.13Z M54.041 0.13Q52.611 0.13 51.55799999999999 -0.455Q50.504999999999995 -1.04 49.93299999999999 -2.0995Q49.361 -3.159 49.361 -4.601999999999999Q49.361 -6.045 49.9265 -7.1434999999999995Q50.492 -8.241999999999999 51.4995 -8.866Q52.507 -9.49 53.82 -9.49Q54.847 -9.49 55.685500000000005 -9.1Q56.524 -8.709999999999999 57.0635 -8.020999999999999Q57.602999999999994 -7.332 57.72 -6.422H56.653999999999996Q56.524 -7.3839999999999995 55.7635 -7.9559999999999995Q55.003 -8.528 53.858999999999995 -8.528Q52.832 -8.528 52.065 -8.0405Q51.298 -7.553 50.8755 -6.682Q50.452999999999996 -5.811 50.452999999999996 -4.628Q50.452999999999996 -3.445 50.88849999999999 -2.5934999999999997Q51.324 -1.742 52.1495 -1.287Q52.975 -0.832 54.132 -0.832Q54.925 -0.832 55.549 -1.0594999999999999Q56.173 -1.287 56.68 -1.768L57.745999999999995 -1.378Q57.031 -0.624 56.1015 -0.247Q55.172 0.13 54.041 0.13ZM56.68 -1.378V-4.407L57.083 -4.004H54.119V-4.9399999999999995H57.745999999999995V-1.378Z M62.894 0.0V-9.36H63.959999999999994V0.0ZM69.16 0.0V-9.36H70.226V0.0ZM63.44 -5.343H69.628V-4.407H63.44Z M78.143 0.0V-8.424H74.932V-9.36H82.42V-8.424H79.209V0.0Z M95.40700000000001 0.0V-8.424H92.19600000000001V-9.36H99.68400000000001V-8.424H96.47300000000001V0.0Z M107.66600000000001 0.13Q106.69100000000002 0.13 105.87850000000002 -0.22749999999999998Q105.06600000000002 -0.585 104.46800000000002 -1.2414999999999998Q103.87000000000002 -1.898 103.53850000000003 -2.782Q103.20700000000002 -3.666 103.20700000000002 -4.718999999999999Q103.20700000000002 -6.109999999999999 103.77900000000002 -7.188999999999999Q104.35100000000001 -8.267999999999999 105.35850000000002 -8.879Q106.36600000000001 -9.49 107.65300000000002 -9.49Q108.96600000000002 -9.49 109.97350000000003 -8.879Q110.98100000000002 -8.267999999999999 111.55300000000003 -7.188999999999999Q112.12500000000001 -6.109999999999999 112.12500000000001 -4.7059999999999995Q112.12500000000001 -3.653 111.79350000000002 -2.769Q111.46200000000002 -1.885 110.86400000000002 -1.2349999999999999Q110.26600000000002 -0.585 109.44700000000002 -0.22749999999999998Q108.62800000000001 0.13 107.66600000000001 0.13ZM107.65300000000002 -0.832Q108.65400000000001 -0.832 109.4145 -1.3325Q110.17500000000001 -1.833 110.60400000000001 -2.717Q111.03300000000002 -3.601 111.03300000000002 -4.732Q111.03300000000002 -5.85 110.61050000000002 -6.708Q110.18800000000002 -7.566 109.42750000000001 -8.047Q108.66700000000002 -8.528 107.65300000000002 -8.528Q106.63900000000001 -8.528 105.88500000000002 -8.047Q105.13100000000001 -7.566 104.71500000000002 -6.714499999999999Q104.29900000000002 -5.8629999999999995 104.29900000000002 -4.732Q104.29900000000002 -3.5879999999999996 104.72150000000002 -2.7104999999999997Q105.14400000000002 -1.833 105.89800000000002 -1.3325Q106.65200000000002 -0.832 107.65300000000002 -0.832Z M125.47600000000003 0.0V-4.2379999999999995L121.92700000000002 -9.36H123.22700000000002L126.30800000000002 -4.862H125.81400000000002L128.895 -9.36H130.091L126.54200000000003 -4.2379999999999995V0.0Z M137.87800000000004 0.13Q136.90300000000002 0.13 136.09050000000002 -0.22749999999999998Q135.27800000000002 -0.585 134.68 -1.2414999999999998Q134.08200000000002 -1.898 133.75050000000005 -2.782Q133.41900000000004 -3.666 133.41900000000004 -4.718999999999999Q133.41900000000004 -6.109999999999999 133.99100000000004 -7.188999999999999Q134.56300000000005 -8.267999999999999 135.57050000000004 -8.879Q136.57800000000003 -9.49 137.86500000000004 -9.49Q139.17800000000003 -9.49 140.18550000000005 -8.879Q141.19300000000004 -8.267999999999999 141.76500000000004 -7.188999999999999Q142.33700000000005 -6.109999999999999 142.33700000000005 -4.7059999999999995Q142.33700000000005 -3.653 142.00550000000004 -2.769Q141.67400000000004 -1.885 141.07600000000002 -1.2349999999999999Q140.47800000000004 -0.585 139.65900000000005 -0.22749999999999998Q138.84000000000003 0.13 137.87800000000004 0.13ZM137.86500000000004 -0.832Q138.86600000000004 -0.832 139.62650000000002 -1.3325Q140.38700000000003 -1.833 140.81600000000003 -2.717Q141.24500000000003 -3.601 141.24500000000003 -4.732Q141.24500000000003 -5.85 140.82250000000005 -6.708Q140.40000000000003 -7.566 139.63950000000003 -8.047Q138.87900000000002 -8.528 137.86500000000004 -8.528Q136.85100000000003 -8.528 136.09700000000004 -8.047Q135.34300000000005 -7.566 134.92700000000002 -6.714499999999999Q134.51100000000002 -5.8629999999999995 134.51100000000002 -4.732Q134.51100000000002 -3.5879999999999996 134.93350000000004 -2.7104999999999997Q135.35600000000002 -1.833 136.11 -1.3325Q136.86400000000003 -0.832 137.86500000000004 -0.832Z M150.72200000000004 0.13Q149.03200000000004 0.13 148.08950000000004 -0.9035Q147.14700000000002 -1.9369999999999998 147.14700000000002 -3.796V-9.36H148.21300000000002V-3.7439999999999998Q148.21300000000002 -2.34 148.86300000000003 -1.5859999999999999Q149.51300000000003 -0.832 150.72200000000004 -0.832Q151.95700000000002 -0.832 152.60700000000003 -1.5795Q153.25700000000003 -2.327 153.25700000000003 -3.7439999999999998V-9.36H154.32300000000004V-3.783Q154.32300000000004 -1.9369999999999998 153.37400000000002 -0.9035Q152.42500000000004 0.13 150.72200000000004 0.13Z M166.02300000000002 0.0V-0.884H169.01300000000003Q169.87100000000004 -0.884 170.37800000000004 -1.3519999999999999Q170.88500000000002 -1.8199999999999998 170.88500000000002 -2.613Q170.88500000000002 -3.4579999999999997 170.35200000000003 -3.965Q169.81900000000002 -4.4719999999999995 168.92200000000003 -4.4719999999999995H166.02300000000002V-5.33H168.77900000000002Q169.66300000000004 -5.33 170.15700000000004 -5.759Q170.65100000000004 -6.188 170.65100000000004 -6.968Q170.65100000000004 -7.696 170.18950000000004 -8.085999999999999Q169.72800000000004 -8.475999999999999 168.84400000000002 -8.475999999999999H166.02300000000002V-9.36H168.93500000000003Q170.22200000000004 -9.36 170.96950000000004 -8.748999999999999Q171.71700000000004 -8.138 171.71700000000004 -7.085Q171.71700000000004 -6.422 171.41800000000003 -5.901999999999999Q171.11900000000003 -5.382 170.59900000000005 -5.089499999999999Q170.07900000000004 -4.797 169.40300000000002 -4.797L169.46800000000002 -5.069999999999999Q170.18300000000002 -5.069999999999999 170.74850000000004 -4.731999999999999Q171.31400000000002 -4.394 171.64550000000003 -3.8155Q171.97700000000003 -3.2369999999999997 171.97700000000003 -2.496Q171.97700000000003 -1.755 171.61950000000002 -1.1895Q171.26200000000003 -0.624 170.61200000000002 -0.312Q169.96200000000002 0.0 169.10400000000004 0.0ZM165.32100000000003 0.0V-9.36H166.38700000000003V0.0Z M179.04900000000004 0.0V-4.2379999999999995L175.50000000000006 -9.36H176.80000000000004L179.88100000000006 -4.862H179.38700000000006L182.46800000000005 -9.36H183.66400000000004L180.11500000000004 -4.2379999999999995V0.0Z" fill="#ABAFBE" transform="translate(630.11 36.68)"/><g transform="translate(836.08 38.30)"><path d="M20.4638671875 -20.5517578125Q20.91796875 -21.5625 21.1083984375 -21.5625H21.181640625Q21.4013671875 -21.5625 22.0751953125 -21.09375Q22.7490234375 -20.625 22.7490234375 -20.21484375Q22.7490234375 -19.6435546875 18.9990234375 -11.3671875Q15.2490234375 -3.0908203125 14.69970703125 -2.08740234375Q14.150390625 -1.083984375 13.9453125 -0.7470703125Q13.740234375 -0.41015625 13.388671875 0.0Q12.7587890625 0.7763671875 11.8212890625 0.7763671875Q11.4404296875 0.7763671875 11.1474609375 0.87158203125Q10.8544921875 0.966796875 10.7958984375 0.966796875Q10.3271484375 0.966796875 10.3271484375 0.7470703125Q10.3271484375 0.703125 10.45166015625 0.38818359375Q10.576171875 0.0732421875 13.798828125 -6.7236328125Q10.3564453125 -6.85546875 7.7490234375 -6.9287109375Q5.244140625 -3.779296875 3.2080078125 -0.3369140625Q2.958984375 0.146484375 2.7392578125 0.34423828125Q2.51953125 0.5419921875 2.138671875 0.5419921875Q1.7578125 0.5419921875 1.318359375 0.15380859375Q0.87890625 -0.234375 0.87890625 -0.7470703125Q0.87890625 -2.2119140625 4.658203125 -7.0166015625Q2.8857421875 -7.0166015625 2.40966796875 -6.9287109375Q1.93359375 -6.8408203125 1.8017578125 -6.8408203125Q1.40625 -6.8408203125 1.40625 -7.50732421875Q1.40625 -8.173828125 2.18994140625 -8.67919921875Q2.9736328125 -9.1845703125 4.2919921875 -9.1845703125Q4.39453125 -9.1845703125 4.658203125 -9.19921875Q5.56640625 -9.2431640625 6.5185546875 -9.2724609375Q9.7119140625 -13.0224609375 13.1982421875 -16.23046875Q16.6845703125 -19.4384765625 19.2333984375 -20.7275390625Q19.6435546875 -20.9326171875 19.88525390625 -20.92529296875Q20.126953125 -20.91796875 20.4638671875 -20.5517578125ZM19.4384765625 -18.486328125Q14.091796875 -14.4287109375 9.66796875 -9.2724609375Q12.2607421875 -9.2138671875 14.912109375 -9.052734375Q17.578125 -14.6630859375 19.4384765625 -18.486328125Z M26.4697265625 -10.3125Q23.9208984375 -7.060546875 21.5771484375 -4.4677734375Q21.5625 -4.2919921875 21.45263671875 -3.81591796875Q21.3427734375 -3.33984375 21.3427734375 -2.8564453125Q21.3427734375 -2.373046875 21.78955078125 -1.98486328125Q22.236328125 -1.5966796875 22.8955078125 -1.5966796875Q23.5546875 -1.5966796875 24.30908203125 -2.0654296875Q25.0634765625 -2.5341796875 25.6201171875 -3.10546875Q27.0849609375 -4.6142578125 27.4365234375 -4.6142578125Q27.7880859375 -4.6142578125 27.7880859375 -3.544921875V-3.251953125Q27.7880859375 -2.6806640625 27.5830078125 -2.4169921875Q26.3525390625 -0.908203125 24.814453125 -0.16845703125Q23.2763671875 0.5712890625 21.8994140625 0.5712890625Q20.5224609375 0.5712890625 19.8046875 -0.27099609375Q19.0869140625 -1.11328125 19.0869140625 -2.578125Q19.0869140625 -5.4345703125 20.61767578125 -9.29443359375Q22.1484375 -13.154296875 24.0673828125 -15.8642578125Q28.388671875 -21.9873046875 30.673828125 -21.9873046875Q31.376953125 -21.9873046875 31.91162109375 -21.56982421875Q32.4462890625 -21.15234375 32.4462890625 -20.33203125Q32.4462890625 -19.51171875 31.5380859375 -17.76123046875Q30.6298828125 -16.0107421875 29.35546875 -14.18701171875Q28.0810546875 -12.36328125 26.4697265625 -10.3125ZM30.0146484375 -19.5556640625Q30.0146484375 -19.775390625 29.8681640625 -19.775390625Q29.35546875 -19.775390625 27.1728515625 -16.845703125Q24.990234375 -13.916015625 24.01611328125 -12.1728515625Q23.0419921875 -10.4296875 22.177734375 -7.79296875Q23.90625 -9.84375 26.96044921875 -14.18701171875Q30.0146484375 -18.5302734375 30.0146484375 -19.5556640625Z M34.2041015625 -10.3125Q31.6552734375 -7.060546875 29.3115234375 -4.4677734375Q29.296875 -4.2919921875 29.18701171875 -3.81591796875Q29.0771484375 -3.33984375 29.0771484375 -2.8564453125Q29.0771484375 -2.373046875 29.52392578125 -1.98486328125Q29.970703125 -1.5966796875 30.6298828125 -1.5966796875Q31.2890625 -1.5966796875 32.04345703125 -2.0654296875Q32.7978515625 -2.5341796875 33.3544921875 -3.10546875Q34.8193359375 -4.6142578125 35.1708984375 -4.6142578125Q35.5224609375 -4.6142578125 35.5224609375 -3.544921875V-3.251953125Q35.5224609375 -2.6806640625 35.3173828125 -2.4169921875Q34.0869140625 -0.908203125 32.548828125 -0.16845703125Q31.0107421875 0.5712890625 29.6337890625 0.5712890625Q28.2568359375 0.5712890625 27.5390625 -0.27099609375Q26.8212890625 -1.11328125 26.8212890625 -2.578125Q26.8212890625 -5.4345703125 28.35205078125 -9.29443359375Q29.8828125 -13.154296875 31.8017578125 -15.8642578125Q36.123046875 -21.9873046875 38.408203125 -21.9873046875Q39.111328125 -21.9873046875 39.64599609375 -21.56982421875Q40.1806640625 -21.15234375 40.1806640625 -20.33203125Q40.1806640625 -19.51171875 39.2724609375 -17.76123046875Q38.3642578125 -16.0107421875 37.08984375 -14.18701171875Q35.8154296875 -12.36328125 34.2041015625 -10.3125ZM37.7490234375 -19.5556640625Q37.7490234375 -19.775390625 37.6025390625 -19.775390625Q37.08984375 -19.775390625 34.9072265625 -16.845703125Q32.724609375 -13.916015625 31.75048828125 -12.1728515625Q30.7763671875 -10.4296875 29.912109375 -7.79296875Q31.640625 -9.84375 34.69482421875 -14.18701171875Q37.7490234375 -18.5302734375 37.7490234375 -19.5556640625Z M37.7490234375 -9.931640625Q40.13671875 -11.8505859375 41.9384765625 -11.8505859375Q42.744140625 -11.8505859375 43.154296875 -11.455078125Q43.30078125 -11.3232421875 43.30078125 -11.220703125V-11.1328125Q43.505859375 -11.162109375 43.9453125 -11.162109375Q44.384765625 -11.162109375 44.84619140625 -10.7666015625Q45.3076171875 -10.37109375 45.3076171875 -9.55810546875Q45.3076171875 -8.7451171875 44.736328125 -7.44873046875Q44.1650390625 -6.15234375 43.1689453125 -4.81201171875Q42.1728515625 -3.4716796875 40.97900390625 -2.29248046875Q39.78515625 -1.11328125 38.40087890625 -0.35888671875Q37.0166015625 0.3955078125 35.888671875 0.3955078125Q34.7607421875 0.3955078125 34.07958984375 -0.31494140625Q33.3984375 -1.025390625 33.3984375 -2.29248046875Q33.3984375 -3.5595703125 34.02099609375 -5.09765625Q34.6435546875 -6.6357421875 35.625 -7.81494140625Q36.6064453125 -8.994140625 37.7490234375 -9.931640625ZM42.4658203125 -9.2138671875H42.36328125Q41.8505859375 -9.2138671875 41.8505859375 -9.9609375Q40.78125 -9.609375 39.609375 -8.73046875Q38.4375 -7.8515625 37.5146484375 -6.650390625Q35.6396484375 -4.248046875 35.6103515625 -2.5927734375Q35.6103515625 -1.7724609375 36.2109375 -1.7724609375Q36.8115234375 -1.7724609375 37.998046875 -2.5634765625Q39.1845703125 -3.3544921875 40.34912109375 -4.8193359375Q41.513671875 -6.2841796875 42.09228515625 -7.36083984375Q42.6708984375 -8.4375 42.6708984375 -8.82568359375Q42.6708984375 -9.2138671875 42.4658203125 -9.2138671875Z M52.6318359375 -2.255859375Q52.6318359375 -1.611328125 53.5107421875 -1.611328125Q53.9794921875 -1.611328125 54.68994140625 -2.080078125Q55.400390625 -2.548828125 55.9716796875 -3.10546875Q57.4951171875 -4.6142578125 57.7001953125 -4.6142578125Q58.0810546875 -4.6142578125 58.0810546875 -3.515625Q58.0810546875 -2.4169921875 57.392578125 -2.0068359375Q55.2978515625 -0.1171875 54.1552734375 0.29296875Q53.5107421875 0.5126953125 52.734375 0.498046875Q51.9580078125 0.4833984375 51.1962890625 -0.17578125Q50.4345703125 -0.8349609375 50.4345703125 -1.77978515625Q50.4345703125 -2.724609375 50.9326171875 -3.92578125Q51.4306640625 -5.126953125 51.95068359375 -5.98388671875Q52.470703125 -6.8408203125 53.232421875 -7.97607421875Q53.994140625 -9.111328125 54.0380859375 -9.3896484375L54.0087890625 -9.4189453125Q53.525390625 -9.375 51.61376953125 -7.5146484375Q49.7021484375 -5.654296875 48.45703125 -4.27734375Q47.2119140625 -2.900390625 45.4833984375 -0.6005859375Q45.0 0.029296875 44.6923828125 0.029296875Q44.384765625 0.029296875 43.86474609375 -0.16845703125Q43.3447265625 -0.3662109375 43.2275390625 -0.4541015625Q43.1103515625 -0.5419921875 43.1103515625 -0.7177734375Q43.1103515625 -0.8935546875 43.212890625 -1.14990234375Q43.3154296875 -1.40625 43.41064453125 -1.57470703125Q43.505859375 -1.7431640625 43.7255859375 -2.0947265625Q43.9453125 -2.4462890625 44.59716796875 -3.58154296875Q45.2490234375 -4.716796875 46.5966796875 -6.97265625Q47.9443359375 -9.228515625 48.2080078125 -9.697265625Q48.7646484375 -10.6640625 49.1162109375 -11.103515625Q49.775390625 -11.9384765625 51.3427734375 -11.9384765625Q51.6943359375 -11.9384765625 51.6943359375 -11.4990234375Q51.6943359375 -10.810546875 50.419921875 -8.90625L49.8046875 -7.9833984375Q52.3388671875 -10.7958984375 54.08203125 -11.54296875Q54.931640625 -11.9091796875 55.61279296875 -11.9091796875Q56.2939453125 -11.9091796875 56.69677734375 -11.54296875Q57.099609375 -11.1767578125 57.099609375 -10.72998046875Q57.099609375 -10.283203125 56.7919921875 -9.66064453125Q56.484375 -9.0380859375 56.16943359375 -8.54736328125Q55.8544921875 -8.056640625 55.341796875 -7.3095703125Q54.8291015625 -6.5625 54.78515625 -6.49658203125Q54.7412109375 -6.4306640625 54.55810546875 -6.14501953125Q54.375 -5.859375 54.287109375 -5.7275390625Q54.19921875 -5.595703125 53.994140625 -5.26611328125Q53.7890625 -4.9365234375 53.66455078125 -4.716796875Q53.5400390625 -4.4970703125 53.35693359375 -4.1748046875Q53.173828125 -3.8525390625 53.06396484375 -3.6181640625Q52.9541015625 -3.3837890625 52.8369140625 -3.10546875Q52.6318359375 -2.5927734375 52.6318359375 -2.255859375Z M58.3154296875 -2.9296875 58.30078125 -2.6953125Q58.30078125 -2.3291015625 58.5791015625 -2.0654296875Q58.857421875 -1.8017578125 59.091796875 -1.8017578125Q60.849609375 -1.8017578125 62.20458984375 -2.3291015625Q63.5595703125 -2.8564453125 63.5595703125 -3.3837890625Q63.5595703125 -3.6328125 63.06884765625 -3.81591796875Q62.578125 -3.9990234375 61.41357421875 -4.27001953125Q60.2490234375 -4.541015625 59.7216796875 -4.69482421875Q59.1943359375 -4.8486328125 58.88671875 -4.98046875Q58.5791015625 -5.1123046875 58.2568359375 -5.3466796875Q57.568359375 -5.830078125 57.568359375 -6.78955078125Q57.568359375 -7.7490234375 58.27880859375 -8.69384765625Q58.9892578125 -9.638671875 60.05859375 -10.3125Q61.1279296875 -10.986328125 62.3583984375 -11.4990234375Q64.7900390625 -12.509765625 66.4453125 -12.509765625Q68.0712890625 -12.509765625 68.4521484375 -11.806640625Q68.5693359375 -11.5576171875 68.5693359375 -11.25V-11.1474609375Q68.5693359375 -10.37109375 68.23974609375 -9.931640625Q67.91015625 -9.4921875 67.19970703125 -9.140625Q66.4892578125 -8.7890625 66.07177734375 -8.7890625Q65.654296875 -8.7890625 65.54443359375 -8.84765625Q65.4345703125 -8.90625 65.361328125 -9.00146484375Q65.2880859375 -9.0966796875 65.17822265625 -9.140625Q65.068359375 -9.1845703125 65.068359375 -9.3603515625Q65.068359375 -9.5361328125 65.21484375 -9.71923828125Q65.361328125 -9.90234375 65.419921875 -10.107421875Q64.453125 -10.0634765625 63.3984375 -9.66064453125Q62.34375 -9.2578125 61.58935546875 -8.759765625Q60.8349609375 -8.26171875 60.3369140625 -7.8076171875Q59.8388671875 -7.353515625 59.8388671875 -7.14111328125Q59.8388671875 -6.9287109375 60.5126953125 -6.796875Q63.544921875 -6.1962890625 64.4970703125 -5.7568359375Q65.44921875 -5.3173828125 65.8154296875 -4.7607421875Q66.181640625 -4.2041015625 66.181640625 -3.75Q66.181640625 -2.8125 65.4345703125 -1.9775390625Q64.6875 -1.142578125 63.5888671875 -0.615234375Q61.23046875 0.5419921875 59.47998046875 0.5419921875Q57.7294921875 0.5419921875 57.06298828125 0.00732421875Q56.396484375 -0.52734375 56.396484375 -1.259765625Q56.396484375 -1.9921875 56.77001953125 -2.61474609375Q57.1435546875 -3.2373046875 57.7294921875 -3.2373046875Q58.3154296875 -3.2373046875 58.3154296875 -2.9296875Z" fill="#FBF9F3"/><g transform="translate(73.43 -7.35) skewX(-12)"><rect x="-4.50" y="-1.57" width="9.00" height="3.15" rx="1.57" fill="#C92C6B"/></g><path d="M5.3466796875 4.86328125Q5.2734375 4.9365234375 4.89990234375 5.60302734375Q4.5263671875 6.26953125 4.1015625 6.95068359375Q3.6767578125 7.6318359375 3.05419921875 8.2470703125Q2.431640625 8.8623046875 2.01416015625 8.91357421875Q1.5966796875 8.96484375 1.4794921875 8.96484375Q0.1318359375 8.96484375 0.1318359375 7.6025390625Q0.1318359375 6.005859375 1.787109375 3.8671875Q2.4169921875 3.0615234375 3.369140625 2.13134765625Q4.3212890625 1.201171875 4.4091796875 1.07666015625Q4.4970703125 0.9521484375 6.6064453125 -3.0322265625Q5.2001953125 -1.494140625 3.9990234375 -0.53466796875Q2.7978515625 0.4248046875 1.6845703125 0.5419921875H1.58203125Q1.0107421875 0.5419921875 0.4541015625 0.16845703125Q-0.1025390625 -0.205078125 -0.1025390625 -1.142578125Q-0.1025390625 -2.5341796875 0.64453125 -3.837890625Q0.908203125 -4.2919921875 1.56005859375 -5.3759765625Q2.2119140625 -6.4599609375 2.7685546875 -7.470703125Q3.2958984375 -8.2763671875 3.8525390625 -9.345703125Q4.4091796875 -10.4150390625 4.7021484375 -10.87646484375Q4.9951171875 -11.337890625 5.2587890625 -11.337890625Q5.5224609375 -11.337890625 5.93994140625 -11.00830078125Q6.357421875 -10.6787109375 6.357421875 -10.224609375Q6.357421875 -9.7705078125 4.4384765625 -6.2841796875Q2.51953125 -2.7978515625 2.51953125 -2.314453125Q2.51953125 -2.197265625 2.63671875 -2.197265625Q3.0322265625 -2.197265625 4.38720703125 -3.31787109375Q5.7421875 -4.4384765625 7.3828125 -6.1962890625Q9.2138671875 -8.14453125 10.25390625 -9.755859375Q10.3857421875 -9.9609375 10.46630859375 -10.07080078125Q10.546875 -10.1806640625 10.67138671875 -10.36376953125Q10.7958984375 -10.546875 10.87646484375 -10.6494140625Q10.95703125 -10.751953125 11.06689453125 -10.89111328125Q11.1767578125 -11.0302734375 11.2646484375 -11.103515625Q11.3525390625 -11.1767578125 11.455078125 -11.25Q11.6162109375 -11.396484375 11.81396484375 -11.396484375Q12.01171875 -11.396484375 12.41455078125 -11.30859375Q12.8173828125 -11.220703125 12.89794921875 -11.1181640625Q12.978515625 -11.015625 13.06640625 -10.927734375Q13.212890625 -10.7666015625 13.212890625 -10.62744140625Q13.212890625 -10.48828125 13.095703125 -10.26123046875Q12.978515625 -10.0341796875 11.7333984375 -7.939453125Q8.0712890625 -1.7578125 6.6943359375 1.083984375Q8.9208984375 -0.791015625 12.9638671875 -4.4677734375Q13.125 -4.599609375 13.2861328125 -4.599609375Q13.740234375 -4.599609375 13.740234375 -3.2080078125Q13.740234375 -2.7978515625 13.59375 -2.666015625Q9.2138671875 0.703125 5.3466796875 4.86328125Z" fill="#FBF9F3" transform="translate(80.03 0)"/></g><path d="M5.775 0.15750000000000003Q3.5700000000000003 0.15750000000000003 2.2662500000000003 -0.9275000000000001Q0.9625000000000001 -2.0125 0.7350000000000001 -4.025H2.1350000000000002Q2.3275 -2.5725000000000002 3.2375 -1.8375000000000001Q4.1475 -1.1025 5.7575 -1.1025Q7.1225000000000005 -1.1025 7.813750000000001 -1.6187500000000001Q8.505 -2.1350000000000002 8.505 -3.1325000000000003Q8.505 -3.99 8.0325 -4.4975000000000005Q7.5600000000000005 -5.005000000000001 6.562500000000001 -5.3375L4.445 -6.072500000000001Q2.8350000000000004 -6.6325 2.0650000000000004 -7.428750000000001Q1.2950000000000002 -8.225000000000001 1.2950000000000002 -9.450000000000001Q1.2950000000000002 -10.465000000000002 1.8025000000000002 -11.208750000000002Q2.31 -11.9525 3.2375 -12.3725Q4.165 -12.7925 5.390000000000001 -12.7925Q7.280000000000001 -12.7925 8.4175 -11.80375Q9.555000000000001 -10.815000000000001 9.73 -8.995000000000001H8.33Q8.102500000000001 -10.307500000000001 7.393750000000001 -10.920000000000002Q6.6850000000000005 -11.5325 5.355 -11.5325Q4.095000000000001 -11.5325 3.3950000000000005 -11.025000000000002Q2.6950000000000003 -10.517500000000002 2.6950000000000003 -9.590000000000002Q2.6950000000000003 -8.8025 3.1850000000000005 -8.33Q3.6750000000000003 -7.857500000000001 4.7075000000000005 -7.5075L6.965000000000001 -6.720000000000001Q8.435 -6.2125 9.170000000000002 -5.34625Q9.905000000000001 -4.48 9.905000000000001 -3.1500000000000004Q9.905000000000001 -1.5750000000000002 8.828750000000001 -0.7087500000000001Q7.7525 0.15750000000000003 5.775 0.15750000000000003Z M19.372500000000002 0.0V-11.340000000000002H15.050000000000002V-12.600000000000001H25.130000000000003V-11.340000000000002H20.8075V0.0Z M35.875 0.17500000000000002Q33.6 0.17500000000000002 32.33125 -1.2162500000000003Q31.0625 -2.6075000000000004 31.0625 -5.11V-12.600000000000001H32.4975V-5.040000000000001Q32.4975 -3.1500000000000004 33.3725 -2.1350000000000002Q34.2475 -1.12 35.875 -1.12Q37.5375 -1.12 38.4125 -2.12625Q39.2875 -3.1325000000000003 39.2875 -5.040000000000001V-12.600000000000001H40.722500000000004V-5.0925Q40.722500000000004 -2.6075000000000004 39.44500000000001 -1.2162500000000003Q38.167500000000004 0.17500000000000002 35.875 0.17500000000000002Z M48.685 0.0V-1.2600000000000002H52.06250000000001Q53.6375 -1.2600000000000002 54.775000000000006 -1.8987500000000002Q55.91250000000001 -2.5375 56.525000000000006 -3.6925Q57.1375 -4.8475 57.1375 -6.370000000000001Q57.1375 -7.875000000000001 56.525000000000006 -8.995000000000001Q55.91250000000001 -10.115 54.78375000000001 -10.727500000000001Q53.65500000000001 -11.340000000000002 52.06250000000001 -11.340000000000002H48.685V-12.600000000000001H52.06250000000001Q54.040000000000006 -12.600000000000001 55.510000000000005 -11.821250000000001Q56.980000000000004 -11.0425 57.79375 -9.633750000000001Q58.60750000000001 -8.225000000000001 58.60750000000001 -6.335000000000001Q58.60750000000001 -4.445 57.78500000000001 -3.0187500000000003Q56.962500000000006 -1.5925000000000002 55.501250000000006 -0.7962500000000001Q54.040000000000006 0.0 52.080000000000005 0.0ZM47.82750000000001 0.0V-12.600000000000001H49.2625V0.0Z M65.18750000000001 0.0V-12.600000000000001H66.62250000000002V0.0Z M79.20500000000001 0.17500000000000002Q77.89250000000001 0.17500000000000002 76.79875000000001 -0.30625Q75.70500000000001 -0.7875000000000001 74.9 -1.6712500000000001Q74.09500000000001 -2.555 73.64875 -3.745Q73.20250000000001 -4.9350000000000005 73.20250000000001 -6.352500000000001Q73.20250000000001 -8.225000000000001 73.97250000000003 -9.677500000000002Q74.74250000000002 -11.13 76.09875000000002 -11.9525Q77.45500000000001 -12.775 79.18750000000001 -12.775Q80.95500000000001 -12.775 82.31125000000002 -11.9525Q83.66750000000002 -11.13 84.43750000000001 -9.677500000000002Q85.20750000000001 -8.225000000000001 85.20750000000001 -6.335000000000001Q85.20750000000001 -4.9175 84.76125000000002 -3.7275Q84.31500000000001 -2.5375 83.51000000000002 -1.6625Q82.70500000000001 -0.7875000000000001 81.60250000000002 -0.30625Q80.50000000000001 0.17500000000000002 79.20500000000001 0.17500000000000002ZM79.18750000000001 -1.12Q80.53500000000001 -1.12 81.55875 -1.7937500000000002Q82.58250000000001 -2.4675000000000002 83.16000000000001 -3.6575Q83.73750000000001 -4.8475 83.73750000000001 -6.370000000000001Q83.73750000000001 -7.875000000000001 83.16875000000002 -9.030000000000001Q82.60000000000002 -10.185 81.57625000000002 -10.8325Q80.55250000000001 -11.48 79.18750000000001 -11.48Q77.82250000000002 -11.48 76.80750000000002 -10.8325Q75.79250000000002 -10.185 75.23250000000002 -9.03875Q74.67250000000001 -7.892500000000001 74.67250000000001 -6.370000000000001Q74.67250000000001 -4.83 75.24125000000001 -3.64875Q75.81000000000002 -2.4675000000000002 76.82500000000002 -1.7937500000000002Q77.84000000000002 -1.12 79.18750000000001 -1.12Z" fill="#ABAFBE" transform="translate(941.81 38.30)"/></svg></a>
10
+ <style>
11
+ @layer norn.oss {
12
+ oss-bar {
13
+ --_navy: #33394e;
14
+ --_link: #ffd36b;
15
+ display: block;
16
+ background: var(--_navy);
17
+
18
+ & a {
19
+ display: block;
20
+
21
+ &:focus-visible {
22
+ outline-color: var(--_link);
23
+ }
24
+ }
25
+
26
+ & svg {
27
+ display: block;
28
+ inline-size: 100%;
29
+ max-inline-size: 31.25rem;
30
+ block-size: auto;
31
+ margin-inline: auto;
32
+ }
33
+ }
34
+ }
35
+ </style>
@@ -0,0 +1,35 @@
1
+ <!---
2
+ /*
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7
+ */
8
+ --->
9
+ <a href="https://allons-y.studio"><svg role="img" aria-label="Brought to you by Allons-y Studio" width="300" height="135" xmlns="http://www.w3.org/2000/svg" viewBox="273 0 334 150"><g transform="translate(285.93 27.00) scale(0.18750)"><path d="M 433.41 375.67 A 214 214 0 0 1 209.68 464.93" fill="none" stroke="#7BD1E6" stroke-width="42" stroke-linecap="butt"/><circle cx="433.41" cy="375.67" r="21.00" fill="#7BD1E6"/><path d="M 188.10 458.94 A 214 214 0 0 1 42.29 267.20" fill="none" stroke="#C92C6B" stroke-width="42" stroke-linecap="butt"/><path d="M 42.29 244.80 A 214 214 0 0 1 188.10 53.06" fill="none" stroke="#FF9A56" stroke-width="42" stroke-linecap="butt"/><path d="M 209.68 47.07 A 214 214 0 0 1 433.41 136.33" fill="none" stroke="#FFD36C" stroke-width="42" stroke-linecap="butt"/><circle cx="433.41" cy="136.33" r="21.00" fill="#FFD36C"/><rect x="374" y="224" width="118" height="64" rx="26" stroke-width="16" style="fill:light-dark(#EFEBDF,#33394E);stroke:light-dark(#33394E,#FBF9F3)"/><circle cx="256" cy="256" r="150" stroke-width="16" style="fill:light-dark(#EFEBDF,#33394E);stroke:light-dark(#33394E,#FBF9F3)"/><circle cx="256" cy="256" r="104" fill="#C2B1A6"/></g><path d="M2.288 0.0V-1.43H4.7059999999999995Q5.356 -1.43 5.6875 -1.7875Q6.019 -2.145 6.019 -2.782Q6.019 -3.432 5.6615 -3.809Q5.303999999999999 -4.186 4.641 -4.186H2.288V-5.616H4.537Q5.148 -5.616 5.4665 -5.9085Q5.785 -6.201 5.785 -6.773Q5.785 -7.345 5.4795 -7.637499999999999Q5.1739999999999995 -7.93 4.576 -7.93H2.288V-9.36H5.005Q6.253 -9.36 7.02 -8.722999999999999Q7.787 -8.086 7.787 -6.994Q7.787 -6.305 7.462 -5.811Q7.137 -5.317 6.590999999999999 -5.057Q6.045 -4.797 5.369 -4.797L5.434 -5.069999999999999Q6.162 -5.069999999999999 6.7535 -4.757999999999999Q7.345 -4.446 7.696 -3.8804999999999996Q8.046999999999999 -3.315 8.046999999999999 -2.548Q8.046999999999999 -1.781 7.689499999999999 -1.2025Q7.332 -0.624 6.6884999999999994 -0.312Q6.045 0.0 5.1739999999999995 0.0ZM0.65 0.0V-9.36H2.6519999999999997V0.0Z M12.090000000000002 0.0V-9.36H16.276Q17.29 -9.36 18.044 -9.0155Q18.798000000000002 -8.671 19.214000000000002 -8.047Q19.630000000000003 -7.423 19.630000000000003 -6.590999999999999Q19.630000000000003 -5.771999999999999 19.214000000000002 -5.1545Q18.798000000000002 -4.537 18.044 -4.1925Q17.29 -3.848 16.276 -3.848H13.676V-5.317H16.224Q16.939 -5.317 17.322499999999998 -5.6485Q17.706 -5.9799999999999995 17.706 -6.577999999999999Q17.706 -7.189 17.329 -7.5075Q16.952 -7.826 16.224 -7.826H14.092V0.0ZM17.368000000000002 0.0 13.611 -4.862H15.73L20.072000000000003 0.0Z M28.327000000000005 0.13Q27.287000000000006 0.13 26.409500000000005 -0.22099999999999997Q25.532000000000004 -0.572 24.888500000000004 -1.2155Q24.245000000000005 -1.859 23.887500000000003 -2.7495Q23.530000000000005 -3.6399999999999997 23.530000000000005 -4.718999999999999Q23.530000000000005 -6.149 24.141000000000005 -7.221500000000001Q24.752000000000002 -8.294 25.837500000000006 -8.892Q26.923000000000005 -9.49 28.314000000000004 -9.49Q29.731 -9.49 30.810000000000002 -8.892Q31.889000000000003 -8.294 32.5065 -7.215Q33.124 -6.136 33.124 -4.7059999999999995Q33.124 -3.6399999999999997 32.76650000000001 -2.7495Q32.409000000000006 -1.859 31.765500000000003 -1.2155Q31.122000000000003 -0.572 30.244500000000002 -0.22099999999999997Q29.367000000000004 0.13 28.327000000000005 0.13ZM28.314000000000004 -1.456Q29.133000000000003 -1.456 29.757000000000005 -1.8719999999999999Q30.381000000000004 -2.288 30.738500000000002 -3.0225Q31.096000000000004 -3.7569999999999997 31.096000000000004 -4.732Q31.096000000000004 -5.694 30.745000000000005 -6.409Q30.394000000000005 -7.124 29.770000000000003 -7.513999999999999Q29.146000000000004 -7.904 28.314000000000004 -7.904Q27.495000000000005 -7.904 26.871000000000002 -7.513999999999999Q26.247000000000003 -7.124 25.902500000000003 -6.4155Q25.558000000000003 -5.707 25.558000000000003 -4.732Q25.558000000000003 -3.7439999999999998 25.909000000000006 -3.0095Q26.260000000000005 -2.275 26.884000000000004 -1.8655Q27.508000000000003 -1.456 28.314000000000004 -1.456Z M41.197 0.13Q39.195 0.13 38.200500000000005 -0.9684999999999999Q37.206 -2.0669999999999997 37.206 -4.173V-9.36H39.208000000000006V-3.8219999999999996Q39.208000000000006 -2.6 39.741 -2.028Q40.274 -1.456 41.21 -1.456Q42.146 -1.456 42.679 -2.028Q43.212 -2.6 43.212 -3.8089999999999997V-9.36H45.214000000000006V-4.147Q45.214000000000006 -2.0669999999999997 44.21300000000001 -0.9684999999999999Q43.212 0.13 41.197 0.13Z M54.184 0.13Q52.663 0.13 51.571 -0.468Q50.479 -1.066 49.8875 -2.145Q49.296 -3.2239999999999998 49.296 -4.667Q49.296 -6.0969999999999995 49.894 -7.182499999999999Q50.492 -8.267999999999999 51.5515 -8.879Q52.611 -9.49 54.015 -9.49Q55.172 -9.49 56.088499999999996 -9.074Q57.004999999999995 -8.658 57.570499999999996 -7.9365Q58.135999999999996 -7.215 58.239999999999995 -6.266H56.238Q56.108 -7.0329999999999995 55.51649999999999 -7.4685Q54.925 -7.904 54.041 -7.904Q53.222 -7.904 52.611000000000004 -7.5205Q52.0 -7.137 51.662 -6.422Q51.324 -5.707 51.324 -4.7059999999999995Q51.324 -3.666 51.662 -2.9314999999999998Q52.0 -2.197 52.6565 -1.8135Q53.313 -1.43 54.275 -1.43Q55.055 -1.43 55.601 -1.625Q56.147 -1.8199999999999998 56.433 -2.171L58.330999999999996 -1.417Q57.577 -0.6629999999999999 56.582499999999996 -0.26649999999999996Q55.588 0.13 54.184 0.13ZM56.329 -1.417V-3.9909999999999997L56.732 -3.5879999999999996H54.262V-5.122H58.330999999999996V-1.417Z M62.59499999999999 0.0V-9.36H64.597V0.0ZM68.65299999999999 0.0V-9.36H70.65499999999999V0.0ZM63.53099999999999 -5.6419999999999995H69.56299999999999V-4.108H63.53099999999999Z M77.792 0.0V-7.826H74.737V-9.36H82.84899999999999V-7.826H79.794V0.0Z M95.23800000000001 0.0V-7.826H92.183V-9.36H100.29500000000002V-7.826H97.24000000000001V0.0Z M108.22500000000001 0.13Q107.18500000000002 0.13 106.3075 -0.22099999999999997Q105.43 -0.572 104.78650000000002 -1.2155Q104.14300000000001 -1.859 103.78550000000001 -2.7495Q103.42800000000001 -3.6399999999999997 103.42800000000001 -4.718999999999999Q103.42800000000001 -6.149 104.03900000000002 -7.221500000000001Q104.65 -8.294 105.7355 -8.892Q106.82100000000001 -9.49 108.21200000000002 -9.49Q109.629 -9.49 110.708 -8.892Q111.787 -8.294 112.40450000000001 -7.215Q113.022 -6.136 113.022 -4.7059999999999995Q113.022 -3.6399999999999997 112.6645 -2.7495Q112.30700000000002 -1.859 111.66350000000001 -1.2155Q111.02000000000001 -0.572 110.14250000000001 -0.22099999999999997Q109.26500000000001 0.13 108.22500000000001 0.13ZM108.21200000000002 -1.456Q109.031 -1.456 109.655 -1.8719999999999999Q110.27900000000001 -2.288 110.63650000000001 -3.0225Q110.99400000000001 -3.7569999999999997 110.99400000000001 -4.732Q110.99400000000001 -5.694 110.64300000000001 -6.409Q110.29200000000002 -7.124 109.668 -7.513999999999999Q109.04400000000001 -7.904 108.21200000000002 -7.904Q107.39300000000001 -7.904 106.769 -7.513999999999999Q106.14500000000001 -7.124 105.80050000000001 -6.4155Q105.45600000000002 -5.707 105.45600000000002 -4.732Q105.45600000000002 -3.7439999999999998 105.80700000000002 -3.0095Q106.15800000000002 -2.275 106.78200000000001 -1.8655Q107.406 -1.456 108.21200000000002 -1.456Z M125.74900000000001 0.0V-3.783L122.26500000000001 -9.36H124.67000000000002L127.42600000000002 -4.407H126.29500000000002L129.038 -9.36H131.235L127.75100000000002 -3.783V0.0Z M138.86600000000004 0.13Q137.82600000000002 0.13 136.94850000000002 -0.22099999999999997Q136.07100000000003 -0.572 135.4275 -1.2155Q134.78400000000002 -1.859 134.42650000000003 -2.7495Q134.06900000000002 -3.6399999999999997 134.06900000000002 -4.718999999999999Q134.06900000000002 -6.149 134.68 -7.221500000000001Q135.29100000000003 -8.294 136.37650000000002 -8.892Q137.46200000000002 -9.49 138.85300000000004 -9.49Q140.27000000000004 -9.49 141.34900000000005 -8.892Q142.42800000000003 -8.294 143.04550000000003 -7.215Q143.66300000000004 -6.136 143.66300000000004 -4.7059999999999995Q143.66300000000004 -3.6399999999999997 143.30550000000005 -2.7495Q142.94800000000004 -1.859 142.30450000000002 -1.2155Q141.66100000000003 -0.572 140.78350000000003 -0.22099999999999997Q139.90600000000003 0.13 138.86600000000004 0.13ZM138.85300000000004 -1.456Q139.67200000000003 -1.456 140.29600000000002 -1.8719999999999999Q140.92000000000002 -2.288 141.27750000000003 -3.0225Q141.63500000000002 -3.7569999999999997 141.63500000000002 -4.732Q141.63500000000002 -5.694 141.28400000000002 -6.409Q140.93300000000002 -7.124 140.30900000000003 -7.513999999999999Q139.68500000000003 -7.904 138.85300000000004 -7.904Q138.03400000000002 -7.904 137.41000000000003 -7.513999999999999Q136.78600000000003 -7.124 136.44150000000002 -6.4155Q136.09700000000004 -5.707 136.09700000000004 -4.732Q136.09700000000004 -3.7439999999999998 136.44800000000004 -3.0095Q136.79900000000004 -2.275 137.42300000000003 -1.8655Q138.04700000000003 -1.456 138.85300000000004 -1.456Z M151.73600000000005 0.13Q149.73400000000004 0.13 148.73950000000002 -0.9684999999999999Q147.74500000000003 -2.0669999999999997 147.74500000000003 -4.173V-9.36H149.74700000000004V-3.8219999999999996Q149.74700000000004 -2.6 150.28000000000003 -2.028Q150.81300000000005 -1.456 151.74900000000005 -1.456Q152.68500000000003 -1.456 153.21800000000002 -2.028Q153.75100000000003 -2.6 153.75100000000003 -3.8089999999999997V-9.36H155.75300000000004V-4.147Q155.75300000000004 -2.0669999999999997 154.75200000000004 -0.9684999999999999Q153.75100000000003 0.13 151.73600000000005 0.13Z M167.29700000000005 0.0V-1.43H169.71500000000003Q170.36500000000004 -1.43 170.69650000000004 -1.7875Q171.02800000000005 -2.145 171.02800000000005 -2.782Q171.02800000000005 -3.432 170.67050000000006 -3.809Q170.31300000000005 -4.186 169.65000000000003 -4.186H167.29700000000005V-5.616H169.54600000000005Q170.15700000000004 -5.616 170.47550000000004 -5.9085Q170.79400000000004 -6.201 170.79400000000004 -6.773Q170.79400000000004 -7.345 170.48850000000004 -7.637499999999999Q170.18300000000005 -7.93 169.58500000000004 -7.93H167.29700000000005V-9.36H170.01400000000004Q171.26200000000006 -9.36 172.02900000000005 -8.722999999999999Q172.79600000000005 -8.086 172.79600000000005 -6.994Q172.79600000000005 -6.305 172.47100000000006 -5.811Q172.14600000000004 -5.317 171.60000000000002 -5.057Q171.05400000000003 -4.797 170.37800000000004 -4.797L170.44300000000004 -5.069999999999999Q171.17100000000005 -5.069999999999999 171.76250000000005 -4.757999999999999Q172.35400000000004 -4.446 172.70500000000004 -3.8804999999999996Q173.05600000000004 -3.315 173.05600000000004 -2.548Q173.05600000000004 -1.781 172.69850000000002 -1.2025Q172.34100000000004 -0.624 171.69750000000005 -0.312Q171.05400000000003 0.0 170.18300000000005 0.0ZM165.65900000000005 0.0V-9.36H167.66100000000003V0.0Z M179.62100000000007 0.0V-3.783L176.13700000000006 -9.36H178.54200000000006L181.29800000000006 -4.407H180.16700000000006L182.91000000000005 -9.36H185.10700000000006L181.62300000000005 -3.783V0.0Z" transform="translate(408.81 38.34)" style="fill:light-dark(#6B6F80,#ABAFBE)"/><g transform="translate(408.81 91.38)"><g><path d="M35.470703125 -35.623046875Q36.2578125 -37.375 36.587890625 -37.375H36.71484375Q37.095703125 -37.375 38.263671875 -36.5625Q39.431640625 -35.75 39.431640625 -35.0390625Q39.431640625 -34.048828125 32.931640625 -19.703125Q26.431640625 -5.357421875 25.4794921875 -3.6181640625Q24.52734375 -1.87890625 24.171875 -1.294921875Q23.81640625 -0.7109375 23.20703125 0.0Q22.115234375 1.345703125 20.490234375 1.345703125Q19.830078125 1.345703125 19.322265625 1.5107421875Q18.814453125 1.67578125 18.712890625 1.67578125Q17.900390625 1.67578125 17.900390625 1.294921875Q17.900390625 1.21875 18.1162109375 0.6728515625Q18.33203125 0.126953125 23.91796875 -11.654296875Q17.951171875 -11.8828125 13.431640625 -12.009765625Q9.08984375 -6.55078125 5.560546875 -0.583984375Q5.12890625 0.25390625 4.748046875 0.5966796875Q4.3671875 0.939453125 3.70703125 0.939453125Q3.046875 0.939453125 2.28515625 0.2666015625Q1.5234375 -0.40625 1.5234375 -1.294921875Q1.5234375 -3.833984375 8.07421875 -12.162109375Q5.001953125 -12.162109375 4.1767578125 -12.009765625Q3.3515625 -11.857421875 3.123046875 -11.857421875Q2.4375 -11.857421875 2.4375 -13.0126953125Q2.4375 -14.16796875 3.7958984375 -15.0439453125Q5.154296875 -15.919921875 7.439453125 -15.919921875Q7.6171875 -15.919921875 8.07421875 -15.9453125Q9.6484375 -16.021484375 11.298828125 -16.072265625Q16.833984375 -22.572265625 22.876953125 -28.1328125Q28.919921875 -33.693359375 33.337890625 -35.927734375Q34.048828125 -36.283203125 34.4677734375 -36.2705078125Q34.88671875 -36.2578125 35.470703125 -35.623046875ZM33.693359375 -32.04296875Q24.42578125 -25.009765625 16.7578125 -16.072265625Q21.251953125 -15.970703125 25.84765625 -15.69140625Q30.46875 -25.416015625 33.693359375 -32.04296875Z M45.880859375 -17.875Q41.462890625 -12.23828125 37.400390625 -7.744140625Q37.375 -7.439453125 37.1845703125 -6.6142578125Q36.994140625 -5.7890625 36.994140625 -4.951171875Q36.994140625 -4.11328125 37.7685546875 -3.4404296875Q38.54296875 -2.767578125 39.685546875 -2.767578125Q40.828125 -2.767578125 42.1357421875 -3.580078125Q43.443359375 -4.392578125 44.408203125 -5.3828125Q46.947265625 -7.998046875 47.556640625 -7.998046875Q48.166015625 -7.998046875 48.166015625 -6.14453125V-5.63671875Q48.166015625 -4.646484375 47.810546875 -4.189453125Q45.677734375 -1.57421875 43.01171875 -0.2919921875Q40.345703125 0.990234375 37.958984375 0.990234375Q35.572265625 0.990234375 34.328125 -0.4697265625Q33.083984375 -1.9296875 33.083984375 -4.46875Q33.083984375 -9.419921875 35.7373046875 -16.1103515625Q38.390625 -22.80078125 41.716796875 -27.498046875Q49.20703125 -38.111328125 53.16796875 -38.111328125Q54.38671875 -38.111328125 55.3134765625 -37.3876953125Q56.240234375 -36.6640625 56.240234375 -35.2421875Q56.240234375 -33.8203125 54.666015625 -30.7861328125Q53.091796875 -27.751953125 50.8828125 -24.5908203125Q48.673828125 -21.4296875 45.880859375 -17.875ZM52.025390625 -33.896484375Q52.025390625 -34.27734375 51.771484375 -34.27734375Q50.8828125 -34.27734375 47.099609375 -29.19921875Q43.31640625 -24.12109375 41.6279296875 -21.099609375Q39.939453125 -18.078125 38.44140625 -13.5078125Q41.4375 -17.0625 46.7314453125 -24.5908203125Q52.025390625 -32.119140625 52.025390625 -33.896484375Z M59.287109375 -17.875Q54.869140625 -12.23828125 50.806640625 -7.744140625Q50.78125 -7.439453125 50.5908203125 -6.6142578125Q50.400390625 -5.7890625 50.400390625 -4.951171875Q50.400390625 -4.11328125 51.1748046875 -3.4404296875Q51.94921875 -2.767578125 53.091796875 -2.767578125Q54.234375 -2.767578125 55.5419921875 -3.580078125Q56.849609375 -4.392578125 57.814453125 -5.3828125Q60.353515625 -7.998046875 60.962890625 -7.998046875Q61.572265625 -7.998046875 61.572265625 -6.14453125V-5.63671875Q61.572265625 -4.646484375 61.216796875 -4.189453125Q59.083984375 -1.57421875 56.41796875 -0.2919921875Q53.751953125 0.990234375 51.365234375 0.990234375Q48.978515625 0.990234375 47.734375 -0.4697265625Q46.490234375 -1.9296875 46.490234375 -4.46875Q46.490234375 -9.419921875 49.1435546875 -16.1103515625Q51.796875 -22.80078125 55.123046875 -27.498046875Q62.61328125 -38.111328125 66.57421875 -38.111328125Q67.79296875 -38.111328125 68.7197265625 -37.3876953125Q69.646484375 -36.6640625 69.646484375 -35.2421875Q69.646484375 -33.8203125 68.072265625 -30.7861328125Q66.498046875 -27.751953125 64.2890625 -24.5908203125Q62.080078125 -21.4296875 59.287109375 -17.875ZM65.431640625 -33.896484375Q65.431640625 -34.27734375 65.177734375 -34.27734375Q64.2890625 -34.27734375 60.505859375 -29.19921875Q56.72265625 -24.12109375 55.0341796875 -21.099609375Q53.345703125 -18.078125 51.84765625 -13.5078125Q54.84375 -17.0625 60.1376953125 -24.5908203125Q65.431640625 -32.119140625 65.431640625 -33.896484375Z M65.431640625 -17.21484375Q69.5703125 -20.541015625 72.693359375 -20.541015625Q74.08984375 -20.541015625 74.80078125 -19.85546875Q75.0546875 -19.626953125 75.0546875 -19.44921875V-19.296875Q75.41015625 -19.34765625 76.171875 -19.34765625Q76.93359375 -19.34765625 77.7333984375 -18.662109375Q78.533203125 -17.9765625 78.533203125 -16.5673828125Q78.533203125 -15.158203125 77.54296875 -12.9111328125Q76.552734375 -10.6640625 74.826171875 -8.3408203125Q73.099609375 -6.017578125 71.0302734375 -3.9736328125Q68.9609375 -1.9296875 66.5615234375 -0.6220703125Q64.162109375 0.685546875 62.20703125 0.685546875Q60.251953125 0.685546875 59.0712890625 -0.5458984375Q57.890625 -1.77734375 57.890625 -3.9736328125Q57.890625 -6.169921875 58.9697265625 -8.8359375Q60.048828125 -11.501953125 61.75 -13.5458984375Q63.451171875 -15.58984375 65.431640625 -17.21484375ZM73.607421875 -15.970703125H73.4296875Q72.541015625 -15.970703125 72.541015625 -17.265625Q70.6875 -16.65625 68.65625 -15.1328125Q66.625 -13.609375 65.025390625 -11.52734375Q61.775390625 -7.36328125 61.724609375 -4.494140625Q61.724609375 -3.072265625 62.765625 -3.072265625Q63.806640625 -3.072265625 65.86328125 -4.443359375Q67.919921875 -5.814453125 69.9384765625 -8.353515625Q71.95703125 -10.892578125 72.9599609375 -12.7587890625Q73.962890625 -14.625 73.962890625 -15.2978515625Q73.962890625 -15.970703125 73.607421875 -15.970703125Z M91.228515625 -3.91015625Q91.228515625 -2.79296875 92.751953125 -2.79296875Q93.564453125 -2.79296875 94.7958984375 -3.60546875Q96.02734375 -4.41796875 97.017578125 -5.3828125Q99.658203125 -7.998046875 100.013671875 -7.998046875Q100.673828125 -7.998046875 100.673828125 -6.09375Q100.673828125 -4.189453125 99.48046875 -3.478515625Q95.849609375 -0.203125 93.869140625 0.5078125Q92.751953125 0.888671875 91.40625 0.86328125Q90.060546875 0.837890625 88.740234375 -0.3046875Q87.419921875 -1.447265625 87.419921875 -3.0849609375Q87.419921875 -4.72265625 88.283203125 -6.8046875Q89.146484375 -8.88671875 90.0478515625 -10.3720703125Q90.94921875 -11.857421875 92.26953125 -13.8251953125Q93.58984375 -15.79296875 93.666015625 -16.275390625L93.615234375 -16.326171875Q92.77734375 -16.25 89.4638671875 -13.025390625Q86.150390625 -9.80078125 83.9921875 -7.4140625Q81.833984375 -5.02734375 78.837890625 -1.041015625Q78.0 0.05078125 77.466796875 0.05078125Q76.93359375 0.05078125 76.0322265625 -0.2919921875Q75.130859375 -0.634765625 74.927734375 -0.787109375Q74.724609375 -0.939453125 74.724609375 -1.244140625Q74.724609375 -1.548828125 74.90234375 -1.9931640625Q75.080078125 -2.4375 75.2451171875 -2.7294921875Q75.41015625 -3.021484375 75.791015625 -3.630859375Q76.171875 -4.240234375 77.3017578125 -6.2080078125Q78.431640625 -8.17578125 80.767578125 -12.0859375Q83.103515625 -15.99609375 83.560546875 -16.80859375Q84.525390625 -18.484375 85.134765625 -19.24609375Q86.27734375 -20.693359375 88.994140625 -20.693359375Q89.603515625 -20.693359375 89.603515625 -19.931640625Q89.603515625 -18.73828125 87.39453125 -15.4375L86.328125 -13.837890625Q90.720703125 -18.712890625 93.7421875 -20.0078125Q95.21484375 -20.642578125 96.3955078125 -20.642578125Q97.576171875 -20.642578125 98.2744140625 -20.0078125Q98.97265625 -19.373046875 98.97265625 -18.5986328125Q98.97265625 -17.82421875 98.439453125 -16.7451171875Q97.90625 -15.666015625 97.3603515625 -14.8154296875Q96.814453125 -13.96484375 95.92578125 -12.669921875Q95.037109375 -11.375 94.9609375 -11.2607421875Q94.884765625 -11.146484375 94.5673828125 -10.6513671875Q94.25 -10.15625 94.09765625 -9.927734375Q93.9453125 -9.69921875 93.58984375 -9.1279296875Q93.234375 -8.556640625 93.0185546875 -8.17578125Q92.802734375 -7.794921875 92.4853515625 -7.236328125Q92.16796875 -6.677734375 91.9775390625 -6.271484375Q91.787109375 -5.865234375 91.583984375 -5.3828125Q91.228515625 -4.494140625 91.228515625 -3.91015625Z M101.080078125 -5.078125 101.0546875 -4.671875Q101.0546875 -4.037109375 101.537109375 -3.580078125Q102.01953125 -3.123046875 102.42578125 -3.123046875Q105.47265625 -3.123046875 107.8212890625 -4.037109375Q110.169921875 -4.951171875 110.169921875 -5.865234375Q110.169921875 -6.296875 109.3193359375 -6.6142578125Q108.46875 -6.931640625 106.4501953125 -7.4013671875Q104.431640625 -7.87109375 103.517578125 -8.1376953125Q102.603515625 -8.404296875 102.0703125 -8.6328125Q101.537109375 -8.861328125 100.978515625 -9.267578125Q99.78515625 -10.10546875 99.78515625 -11.7685546875Q99.78515625 -13.431640625 101.0166015625 -15.0693359375Q102.248046875 -16.70703125 104.1015625 -17.875Q105.955078125 -19.04296875 108.087890625 -19.931640625Q112.302734375 -21.68359375 115.171875 -21.68359375Q117.990234375 -21.68359375 118.650390625 -20.46484375Q118.853515625 -20.033203125 118.853515625 -19.5V-19.322265625Q118.853515625 -17.9765625 118.2822265625 -17.21484375Q117.7109375 -16.453125 116.4794921875 -15.84375Q115.248046875 -15.234375 114.5244140625 -15.234375Q113.80078125 -15.234375 113.6103515625 -15.3359375Q113.419921875 -15.4375 113.29296875 -15.6025390625Q113.166015625 -15.767578125 112.9755859375 -15.84375Q112.78515625 -15.919921875 112.78515625 -16.224609375Q112.78515625 -16.529296875 113.0390625 -16.8466796875Q113.29296875 -17.1640625 113.39453125 -17.51953125Q111.71875 -17.443359375 109.890625 -16.7451171875Q108.0625 -16.046875 106.7548828125 -15.18359375Q105.447265625 -14.3203125 104.583984375 -13.533203125Q103.720703125 -12.74609375 103.720703125 -12.3779296875Q103.720703125 -12.009765625 104.888671875 -11.78125Q110.14453125 -10.740234375 111.794921875 -9.978515625Q113.4453125 -9.216796875 114.080078125 -8.251953125Q114.71484375 -7.287109375 114.71484375 -6.5Q114.71484375 -4.875 113.419921875 -3.427734375Q112.125 -1.98046875 110.220703125 -1.06640625Q106.1328125 0.939453125 103.0986328125 0.939453125Q100.064453125 0.939453125 98.9091796875 0.0126953125Q97.75390625 -0.9140625 97.75390625 -2.18359375Q97.75390625 -3.453125 98.4013671875 -4.5322265625Q99.048828125 -5.611328125 100.064453125 -5.611328125Q101.080078125 -5.611328125 101.080078125 -5.078125Z" style="fill:light-dark(#33394E,#FBF9F3)"/><g transform="translate(127.27 -12.74) skewX(-12)"><rect x="-7.80" y="-2.73" width="15.60" height="5.46" rx="2.73" fill="#C92C6B"/></g><path d="M9.267578125 8.4296875Q9.140625 8.556640625 8.4931640625 9.7119140625Q7.845703125 10.8671875 7.109375 12.0478515625Q6.373046875 13.228515625 5.2939453125 14.294921875Q4.21484375 15.361328125 3.4912109375 15.4501953125Q2.767578125 15.5390625 2.564453125 15.5390625Q0.228515625 15.5390625 0.228515625 13.177734375Q0.228515625 10.41015625 3.09765625 6.703125Q4.189453125 5.306640625 5.83984375 3.6943359375Q7.490234375 2.08203125 7.642578125 1.8662109375Q7.794921875 1.650390625 11.451171875 -5.255859375Q9.013671875 -2.58984375 6.931640625 -0.9267578125Q4.849609375 0.736328125 2.919921875 0.939453125H2.7421875Q1.751953125 0.939453125 0.787109375 0.2919921875Q-0.177734375 -0.35546875 -0.177734375 -1.98046875Q-0.177734375 -4.392578125 1.1171875 -6.65234375Q1.57421875 -7.439453125 2.7041015625 -9.318359375Q3.833984375 -11.197265625 4.798828125 -12.94921875Q5.712890625 -14.345703125 6.677734375 -16.19921875Q7.642578125 -18.052734375 8.150390625 -18.8525390625Q8.658203125 -19.65234375 9.115234375 -19.65234375Q9.572265625 -19.65234375 10.2958984375 -19.0810546875Q11.01953125 -18.509765625 11.01953125 -17.72265625Q11.01953125 -16.935546875 7.693359375 -10.892578125Q4.3671875 -4.849609375 4.3671875 -4.01171875Q4.3671875 -3.80859375 4.5703125 -3.80859375Q5.255859375 -3.80859375 7.6044921875 -5.7509765625Q9.953125 -7.693359375 12.796875 -10.740234375Q15.970703125 -14.1171875 17.7734375 -16.91015625Q18.001953125 -17.265625 18.1416015625 -17.4560546875Q18.28125 -17.646484375 18.4970703125 -17.9638671875Q18.712890625 -18.28125 18.8525390625 -18.458984375Q18.9921875 -18.63671875 19.1826171875 -18.8779296875Q19.373046875 -19.119140625 19.525390625 -19.24609375Q19.677734375 -19.373046875 19.85546875 -19.5Q20.134765625 -19.75390625 20.4775390625 -19.75390625Q20.8203125 -19.75390625 21.5185546875 -19.6015625Q22.216796875 -19.44921875 22.3564453125 -19.271484375Q22.49609375 -19.09375 22.6484375 -18.94140625Q22.90234375 -18.662109375 22.90234375 -18.4208984375Q22.90234375 -18.1796875 22.69921875 -17.7861328125Q22.49609375 -17.392578125 20.337890625 -13.76171875Q13.990234375 -3.046875 11.603515625 1.87890625Q15.462890625 -1.37109375 22.470703125 -7.744140625Q22.75 -7.97265625 23.029296875 -7.97265625Q23.81640625 -7.97265625 23.81640625 -5.560546875Q23.81640625 -4.849609375 23.5625 -4.62109375Q15.970703125 1.21875 9.267578125 8.4296875Z" transform="translate(138.71 0)" style="fill:light-dark(#33394E,#FBF9F3)"/><path d="M5.148 0.1404Q3.1824 0.1404 2.0202 -0.8267999999999999Q0.858 -1.7939999999999998 0.6552 -3.5879999999999996H1.9032Q2.0747999999999998 -2.2931999999999997 2.886 -1.638Q3.6972 -0.9828 5.1324 -0.9828Q6.3492 -0.9828 6.9654 -1.443Q7.5816 -1.9032 7.5816 -2.7923999999999998Q7.5816 -3.5568 7.160399999999999 -4.0092Q6.739199999999999 -4.4616 5.85 -4.758L3.9623999999999997 -5.4132Q2.5271999999999997 -5.9124 1.8407999999999998 -6.622199999999999Q1.1543999999999999 -7.332 1.1543999999999999 -8.424Q1.1543999999999999 -9.3288 1.6067999999999998 -9.9918Q2.0591999999999997 -10.6548 2.8859999999999997 -11.0292Q3.7127999999999997 -11.403599999999999 4.8048 -11.403599999999999Q6.489599999999999 -11.403599999999999 7.5036 -10.522199999999998Q8.5176 -9.640799999999999 8.6736 -8.0184H7.425599999999999Q7.222799999999999 -9.1884 6.590999999999999 -9.7344Q5.9592 -10.2804 4.7736 -10.2804Q3.6504 -10.2804 3.0263999999999998 -9.828Q2.4024 -9.3756 2.4024 -8.5488Q2.4024 -7.8468 2.8392 -7.425599999999999Q3.276 -7.0043999999999995 4.1964 -6.6924L6.2088 -5.990399999999999Q7.5192 -5.537999999999999 8.174399999999999 -4.7658Q8.8296 -3.9936 8.8296 -2.808Q8.8296 -1.404 7.8702 -0.6317999999999999Q6.9108 0.1404 5.148 0.1404Z M33.721748125 0.0V-10.108799999999999H29.868548124999997V-11.232H38.854148124999995V-10.108799999999999H35.000948125V0.0Z M64.88509625 0.156Q62.85709625 0.156 61.72609625 -1.0841999999999998Q60.59509625 -2.3244 60.59509625 -4.5552V-11.232H61.87429625V-4.4928Q61.87429625 -2.808 62.65429625 -1.9032Q63.43429625 -0.9984 64.88509625 -0.9984Q66.36709625 -0.9984 67.14709625 -1.8954Q67.92709625 -2.7923999999999998 67.92709625 -4.4928V-11.232H69.20629625V-4.5396Q69.20629625 -2.3244 68.06749625 -1.0841999999999998Q66.92869625 0.156 64.88509625 0.156Z M92.75684437499999 0.0V-1.1232H95.76764437499999Q97.17164437499999 -1.1232 98.18564437499998 -1.6926Q99.19964437499999 -2.262 99.74564437499998 -3.2916Q100.29164437499999 -4.3212 100.29164437499999 -5.6784Q100.29164437499999 -7.02 99.74564437499998 -8.0184Q99.19964437499999 -9.0168 98.19344437499998 -9.5628Q97.18724437499999 -10.108799999999999 95.76764437499999 -10.108799999999999H92.75684437499999V-11.232H95.76764437499999Q97.53044437499999 -11.232 98.84084437499999 -10.5378Q100.15124437499999 -9.8436 100.87664437499998 -8.5878Q101.60204437499999 -7.332 101.60204437499999 -5.6472Q101.60204437499999 -3.9623999999999997 100.868844375 -2.691Q100.135644375 -1.4196 98.83304437499999 -0.7098Q97.53044437499999 0.0 95.783244375 0.0ZM91.99244437499999 0.0V-11.232H93.271644375V0.0Z M123.92019249999998 0.0V-11.232H125.19939249999999V0.0Z M152.86834062499997 0.156Q151.698340625 0.156 150.723340625 -0.27299999999999996Q149.74834062499997 -0.702 149.03074062499996 -1.4898Q148.313140625 -2.2776 147.915340625 -3.3384Q147.51754062499998 -4.3991999999999996 147.51754062499998 -5.6628Q147.51754062499998 -7.332 148.20394062499997 -8.6268Q148.890340625 -9.9216 150.09934062499997 -10.6548Q151.30834062499997 -11.388 152.85274062499997 -11.388Q154.42834062499998 -11.388 155.63734062499998 -10.6548Q156.84634062499998 -9.9216 157.53274062499997 -8.6268Q158.21914062499997 -7.332 158.21914062499997 -5.6472Q158.21914062499997 -4.3835999999999995 157.82134062499998 -3.3228Q157.423540625 -2.262 156.70594062499998 -1.482Q155.98834062499998 -0.702 155.00554062499998 -0.27299999999999996Q154.02274062499998 0.156 152.86834062499997 0.156ZM152.85274062499997 -0.9984Q154.05394062499997 -0.9984 154.966540625 -1.5989999999999998Q155.879140625 -2.1995999999999998 156.39394062499997 -3.2603999999999997Q156.90874062499998 -4.3212 156.90874062499998 -5.6784Q156.90874062499998 -7.02 156.40174062499997 -8.0496Q155.89474062499997 -9.0792 154.98214062499997 -9.6564Q154.06954062499997 -10.2336 152.85274062499997 -10.2336Q151.635940625 -10.2336 150.73114062499997 -9.6564Q149.82634062499997 -9.0792 149.32714062499997 -8.0574Q148.82794062499997 -7.0356 148.82794062499997 -5.6784Q148.82794062499997 -4.3056 149.33494062499997 -3.2526Q149.84194062499998 -2.1995999999999998 150.74674062499997 -1.5989999999999998Q151.65154062499997 -0.9984 152.85274062499997 -0.9984Z" transform="translate(0 33.28)" style="fill:light-dark(#6B6F80,#ABAFBE)"/></g></g></svg></a>
10
+ <style>
11
+ @layer norn.oss {
12
+ oss-credit {
13
+ display: block;
14
+ max-inline-size: min(100%, 20rem);
15
+
16
+ & a {
17
+ display: block;
18
+ inline-size: fit-content;
19
+ max-inline-size: 100%;
20
+ margin-inline-start: auto;
21
+ }
22
+
23
+ & svg {
24
+ display: block;
25
+ max-inline-size: 100%;
26
+ block-size: auto;
27
+ }
28
+ }
29
+
30
+ /* As a footer column. */
31
+ norn-footer oss-credit {
32
+ max-inline-size: min(100%, 13.75rem);
33
+ }
34
+ }
35
+ </style>
@@ -0,0 +1,109 @@
1
+ <!---
2
+ /*
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7
+ */
8
+ --->
9
+ <section>
10
+ <svg aria-hidden="true" width="72" height="72" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M 433.41 375.67 A 214 214 0 0 1 209.68 464.93" fill="none" stroke="#7BD1E6" stroke-width="42" stroke-linecap="butt"/><circle cx="433.41" cy="375.67" r="21.00" fill="#7BD1E6"/><path d="M 188.10 458.94 A 214 214 0 0 1 42.29 267.20" fill="none" stroke="#C92C6B" stroke-width="42" stroke-linecap="butt"/><path d="M 42.29 244.80 A 214 214 0 0 1 188.10 53.06" fill="none" stroke="#FF9A56" stroke-width="42" stroke-linecap="butt"/><path d="M 209.68 47.07 A 214 214 0 0 1 433.41 136.33" fill="none" stroke="#FFD36C" stroke-width="42" stroke-linecap="butt"/><circle cx="433.41" cy="136.33" r="21.00" fill="#FFD36C"/><rect x="374" y="224" width="118" height="64" rx="26" fill="#EFEBDF" stroke="#33394E" stroke-width="16"/><circle cx="256" cy="256" r="150" fill="#EFEBDF" stroke="#33394E" stroke-width="16"/><circle cx="256" cy="256" r="104" fill="#C2B1A6"/></svg>
11
+ <div>
12
+ <p><span data-signature>Allons-y Studio</span></p>
13
+ <h3 webc:if="Number(level) === 3">Let's build something great together</h3>
14
+ <h4 webc:elseif="Number(level) === 4">Let's build something great together</h4>
15
+ <h2 webc:else>Let's build something great together</h2>
16
+ <p>A front-end &amp; design systems studio helping teams ship consistent, accessible UI faster.</p>
17
+ </div>
18
+ <ul role="list">
19
+ <li><norn-link-button @href="https://scheduler.zoom.us/allonsy-studio/discovery">Book a discovery call</norn-link-button></li>
20
+ <li><norn-link-button @href="mailto:consulting@allons-y.studio" @variant="secondary">Email the studio</norn-link-button></li>
21
+ </ul>
22
+ </section>
23
+ <style>
24
+ @layer norn.oss {
25
+ oss-cta {
26
+ --_navy: #33394e;
27
+ --_ink: #ffffff;
28
+ --_link: #ffd36b;
29
+ --_signature: "Yellowtail", "Yellowtail Fallback", cursive;
30
+ --norn-ui-accent: var(--_link);
31
+ --norn-text-accent: var(--_link);
32
+ --norn-text-on-accent: var(--_navy);
33
+ display: block;
34
+ container-type: inline-size;
35
+ inline-size: min(100% - 2 * var(--norn-space-m, 1.25rem), 64rem);
36
+ margin: var(--norn-space-xl, 4rem) auto 0;
37
+
38
+ & section {
39
+ display: grid;
40
+ grid-template-columns: auto minmax(0, 1fr) auto;
41
+ align-items: center;
42
+ gap: var(--norn-space-m, 1.25rem) var(--norn-space-l, 2rem);
43
+ padding: var(--norn-space-l, 2rem);
44
+ border-radius: var(--norn-ui-border-radius, 6px);
45
+ background: var(--_navy);
46
+ color: var(--_ink);
47
+ }
48
+
49
+ & svg {
50
+ inline-size: 4.5rem;
51
+ block-size: auto;
52
+ }
53
+
54
+ & section > div {
55
+ display: grid;
56
+ gap: 0.4rem;
57
+ }
58
+
59
+ & p {
60
+ margin: 0;
61
+ }
62
+
63
+ & section > div > p:first-child {
64
+ font-weight: 600;
65
+ }
66
+
67
+ /* The Allons-y Studio name is signed. */
68
+ & [data-signature] {
69
+ font-family: var(--_signature);
70
+ font-size: 1.3em;
71
+ font-weight: 400;
72
+ line-height: 1;
73
+ }
74
+
75
+ & section > div > p:first-child [data-signature] {
76
+ font-size: 1.5em;
77
+ }
78
+
79
+ & section > div > :is(h2, h3, h4) {
80
+ margin: 0;
81
+ font-size: clamp(1.35rem, 3vw, 1.75rem);
82
+ }
83
+
84
+ & ul {
85
+ display: flex;
86
+ flex-direction: row;
87
+ flex-wrap: wrap;
88
+ gap: var(--norn-space-s, 0.75rem);
89
+ margin: 0;
90
+ padding: 0;
91
+ list-style: none;
92
+ }
93
+
94
+ & :focus-visible {
95
+ outline-color: var(--_link);
96
+ }
97
+
98
+ @container (max-width: 37.5rem) {
99
+ & section {
100
+ grid-template-columns: minmax(0, 1fr);
101
+ }
102
+ }
103
+
104
+ @media print {
105
+ display: none;
106
+ }
107
+ }
108
+ }
109
+ </style>
@@ -0,0 +1,77 @@
1
+ <!---
2
+ /*
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7
+ */
8
+ --->
9
+ <link rel="preload" href="/assets/fonts/pt-mono.woff2" as="font" type="font/woff2" crossorigin />
10
+ <style>
11
+ /* The fonts sit at assets/fonts: from the bundle, one level up. Each fallback matches its font's metrics. */
12
+ @font-face {
13
+ font-family: "PT Mono";
14
+ src: url("../assets/fonts/pt-mono.woff2") format("woff2");
15
+ font-weight: 400;
16
+ font-display: swap;
17
+ }
18
+
19
+ @font-face {
20
+ font-family: "PT Mono Fallback";
21
+ src: local("Courier New"), local("CourierNewPSMT"), local("Liberation Mono"), local("Courier");
22
+ size-adjust: 100%;
23
+ ascent-override: 88.5%;
24
+ descent-override: 23.5%;
25
+ line-gap-override: 0%;
26
+ }
27
+
28
+ @font-face {
29
+ font-family: "Instrument Sans";
30
+ src: url("../assets/fonts/instrument-sans-var.woff2") format("woff2");
31
+ font-weight: 400 700;
32
+ font-display: swap;
33
+ }
34
+
35
+ @font-face {
36
+ font-family: "Instrument Sans";
37
+ src: url("../assets/fonts/instrument-sans-italic-var.woff2") format("woff2");
38
+ font-style: italic;
39
+ font-weight: 400 700;
40
+ font-display: swap;
41
+ }
42
+
43
+ @font-face {
44
+ font-family: "Instrument Sans Fallback";
45
+ src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica");
46
+ size-adjust: 102.6%;
47
+ ascent-override: 94.54%;
48
+ descent-override: 24.37%;
49
+ line-gap-override: 0%;
50
+ }
51
+
52
+ @font-face {
53
+ font-family: "Instrument Sans Fallback";
54
+ src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique");
55
+ font-style: italic;
56
+ size-adjust: 102.52%;
57
+ ascent-override: 94.61%;
58
+ descent-override: 24.39%;
59
+ line-gap-override: 0%;
60
+ }
61
+
62
+ @font-face {
63
+ font-family: "Yellowtail";
64
+ src: url("../assets/fonts/yellowtail.woff2") format("woff2");
65
+ font-weight: 400;
66
+ font-display: swap;
67
+ }
68
+
69
+ @font-face {
70
+ font-family: "Yellowtail Fallback";
71
+ src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica");
72
+ size-adjust: 73.65%;
73
+ ascent-override: 131.93%;
74
+ descent-override: 40.91%;
75
+ line-gap-override: 12.2%;
76
+ }
77
+ </style>
package/css/brand.css ADDED
@@ -0,0 +1,25 @@
1
+ /*
2
+ * The Allons-y Studio brand on the Norn components, in the norn.oss layer: the OSS site plugin adds it to every page's bundle, after the brand tokens.
3
+ * Each rule starts at a component's tag and reaches its markup by a child path. A project's own unlayered CSS still wins over it.
4
+ */
5
+ @layer norn.oss {
6
+ /* The four-color strip along the header bar. */
7
+ norn-header > header {
8
+ position: relative;
9
+
10
+ &::after {
11
+ content: "";
12
+ position: absolute;
13
+ inset: auto 0 0;
14
+ block-size: 3px;
15
+ background: linear-gradient(90deg, #d22d6f 0 25%, #ff944d 25% 50%, #ffd36b 50% 75%, #1f91ad 75%);
16
+ }
17
+ }
18
+
19
+ /* The project name leads the footer: the lead column's first strong, in the accent color and the mono face. */
20
+ norn-footer > footer > div:first-child > :first-child strong:first-of-type {
21
+ color: var(--norn-text-accent, light-dark(oklch(from color-mix(in oklch, var(--norn-ui-accent, #2346d4) 82%, black) min(l, 0.5) c h), oklch(from color-mix(in oklch, var(--norn-ui-accent, #2346d4) 55%, white) max(l, 0.72) c h)));
22
+ font-family: var(--norn-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
23
+ font-size: 1.2rem;
24
+ }
25
+ }
package/css/tokens.css ADDED
@@ -0,0 +1,10 @@
1
+ /*
2
+ * The Allons-y Studio brand as Norn tokens, in the norn.oss layer: the OSS site plugin adds it to every page's bundle.
3
+ * It sets only shared tokens from tokens.json; css/brand.css styles the components. A project's own unlayered tokens.css still wins over it.
4
+ */
5
+ @layer norn.oss {
6
+ :root {
7
+ /* PT Mono, Allons-y Studio's locked monospace, which oss-head declares. */
8
+ --norn-font-mono: "PT Mono", "PT Mono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
9
+ }
10
+ }
Binary file
Binary file
Binary file
package/index.js ADDED
@@ -0,0 +1,157 @@
1
+ /*
2
+ * SPDX-License-Identifier: MPL-2.0
3
+ * This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
6
+ */
7
+
8
+ import fs from "node:fs";
9
+ import path from "node:path";
10
+
11
+ import norn, { fillHooks } from "@allons-y/webc-patterns/plugin";
12
+
13
+ const HERE = import.meta.dirname;
14
+ const posix = (file) => file.split(path.sep).join("/");
15
+
16
+ /** A folder path to put at the start of a glob: a backslash before each character a glob reads as syntax, so `Dropbox (Personal)` matches itself. */
17
+ const globPath = (folder) => posix(folder).replace(/[\\()*?[\]{|}]|[!+@](?=\()/g, "\\$&");
18
+
19
+ /** Absolute path to the self-hosted font files. The OSS site plugin copies them to `assets/fonts`. */
20
+ export const fonts = posix(path.join(HERE, "fonts"));
21
+
22
+ /** Absolute glob for the OSS components: `oss-head` and the locked `oss-bar`, `oss-cta`, and `oss-credit`. The OSS site plugin adds it. */
23
+ export const components = `${globPath(path.join(HERE, "components"))}/*.webc`;
24
+
25
+ /** Absolute path to the brand tokens, `css/tokens.css`, in the `norn.oss` layer. The OSS site plugin embeds it in every page's bundle. */
26
+ export const tokens = posix(path.join(HERE, "css", "tokens.css"));
27
+
28
+ /** Absolute path to the brand rules, `css/brand.css`, in the `norn.oss` layer: CSS against the Norn component tags, such as the header's strip. The OSS site plugin embeds it after the tokens. */
29
+ export const brand = posix(path.join(HERE, "css", "brand.css"));
30
+
31
+ /** The host that serves every Allons-y Studio project site, one path per repository: pass it to `buildSite` as `host`. */
32
+ export const host = "https://projects.allons-y.studio";
33
+
34
+ /** Allons-y Studio's own policies, linked from the footer when the project keeps none of its own. */
35
+ export const policies = Object.freeze({
36
+ conduct: "https://github.com/allonsy-studio/.github/blob/main/CODE_OF_CONDUCT.md",
37
+ security: "https://github.com/allonsy-studio/.github/blob/main/SECURITY.md",
38
+ });
39
+
40
+ /** The theme color the OSS site theme sets for both schemes: the banner's navy. */
41
+ const THEME_COLOR = "#33394e";
42
+
43
+ /**
44
+ * Whether the project keeps the OSS site layer: false only when its package.json sets `"oss-docs": { "oss": false }`.
45
+ * A project's config picks the OSS site plugin or the plain Norn one by it.
46
+ *
47
+ * @param {{ packagePath: string }} options
48
+ * @returns {boolean}
49
+ */
50
+ export function ossEnabled({ packagePath }) {
51
+ return JSON.parse(fs.readFileSync(packagePath, "utf8"))["oss-docs"]?.oss !== false;
52
+ }
53
+
54
+ const isObject = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
55
+ const list = (value) => (Array.isArray(value) ? value : []);
56
+ const iconOf = (file) => (typeof file === "string" && file ? `/assets/img/${file}` : undefined);
57
+
58
+ /**
59
+ * The layout props for an Allons-y Studio project site, from the facts `buildSite` returns and the project's `project.json`.
60
+ * The OSS site theme's link set and texts, in English: the header's anchors, Docs, GitHub, and npm links, the footer's Project and Help groups, and the npm badges once the package is released.
61
+ * Conduct and security links come from the project's own files first, then Allons-y Studio's policies, unless `oss` is false.
62
+ * It never throws on missing data, so it can run in a `props` mapping.
63
+ *
64
+ * @param {object} [site] - What `buildSite` returns, with `npmRelease` and `badgeColor` for the badges
65
+ * @param {object} [project] - The project's `project.json`
66
+ * @param {{ docs?: { href: string, title: string }[], anchors?: boolean, oss?: boolean }} [options] - The docs pages, for the Docs link; whether the header links the page's sections; and whether the OSS site layer is on
67
+ * @returns {object} Props for `norn-base` and the layouts. A mapping adds the page's own, such as `title` and `docs`.
68
+ */
69
+ export function ossProps(site, project, { docs = [], anchors = false, oss = true } = {}) {
70
+ const facts = isObject(site) ? site : {};
71
+ const own = isObject(project) ? project : {};
72
+ const features = list(own.features);
73
+ const pages = list(docs);
74
+ const pkg = facts.packageName || facts.name;
75
+ const install = own.install || (pkg ? `npm install ${pkg}` : undefined);
76
+ const color = facts.badgeColor || "2346d4";
77
+ const conduct = facts.conductUrl || (oss ? policies.conduct : null);
78
+ const security = facts.securityUrl || (oss ? policies.security : null);
79
+ return {
80
+ name: facts.name,
81
+ tagline: facts.tagline,
82
+ description: facts.description,
83
+ url: facts.url ?? undefined,
84
+ ogTitle: facts.name && facts.tagline ? `${facts.name}: ${facts.tagline}` : facts.name,
85
+ icon: iconOf(own.favicon),
86
+ touchIcon: iconOf(own.appleTouchIcon),
87
+ logo: own.logo ? { src: iconOf(own.logo), alt: facts.name } : undefined,
88
+ nav: [
89
+ ...(anchors ? [{ href: "#install", title: "Install" }] : []),
90
+ ...(anchors && own.usage ? [{ href: "#usage", title: "Usage" }] : []),
91
+ ...(anchors && features.length ? [{ href: "#features", title: "Features" }] : []),
92
+ ...(pages.length ? [{ href: pages[0].href, title: "Docs", icon: "book" }] : []),
93
+ ...(facts.repo ? [{ href: facts.repo, title: "GitHub" }] : []),
94
+ ...(facts.npm ? [{ href: facts.npm, title: "npm" }] : []),
95
+ ],
96
+ footer: {
97
+ name: pkg,
98
+ text: facts.tagline ? `${facts.tagline.replace(/\.$/, "")}.` : undefined,
99
+ badges: facts.npmRelease && pkg
100
+ ? [
101
+ { href: facts.npm, src: `https://img.shields.io/npm/v/${pkg}?logo=npm&labelColor=black&color=%23${color}`, alt: `npm version of ${pkg}`, width: 105, height: 20 },
102
+ { href: facts.npm, src: `https://img.shields.io/npm/dw/${pkg}?logo=npm&labelColor=black&color=%23${color}`, alt: `weekly npm downloads of ${pkg}`, width: 157, height: 20 },
103
+ ]
104
+ : [],
105
+ license: facts.license ? { name: facts.license, url: facts.licenseUrl } : undefined,
106
+ groups: [
107
+ {
108
+ heading: "Project",
109
+ links: [
110
+ ...(facts.repo ? [{ href: facts.repo, title: "GitHub" }] : []),
111
+ ...(facts.npm ? [{ href: facts.npm, title: "npm" }] : []),
112
+ ...(facts.changelogUrl ? [{ href: facts.changelogUrl, title: "Changelog" }] : []),
113
+ ],
114
+ },
115
+ {
116
+ heading: "Help",
117
+ links: [
118
+ ...(facts.issuesUrl ? [{ href: facts.issuesUrl, title: "Report an issue" }] : []),
119
+ ...(facts.contributingUrl ? [{ href: facts.contributingUrl, title: "Contributing guide" }] : []),
120
+ ...(conduct ? [{ href: conduct, title: "Code of conduct" }] : []),
121
+ ...(security ? [{ href: security, title: "Security policy" }] : []),
122
+ ],
123
+ },
124
+ ].filter((group) => group.links.length),
125
+ },
126
+ lede: own.lede,
127
+ install,
128
+ repo: facts.repo,
129
+ license: facts.license,
130
+ node: facts.node ?? undefined,
131
+ usage: isObject(own.usage) ? own.usage : undefined,
132
+ features,
133
+ packages: list(own.packages),
134
+ };
135
+ }
136
+
137
+ /**
138
+ * The OSS site theme, as an Eleventy plugin: it adds the Norn plugin with the OSS components, fills the hooks with the OSS head, banner,
139
+ * call to action, and credit, embeds the brand tokens and rules, sets the theme color, and copies the fonts. Add it in place of the Norn plugin, with the same options.
140
+ *
141
+ * @param {import("@11ty/eleventy").UserConfig} config
142
+ * @param {object} [options] - The Norn plugin's options: `props`, `layouts`, `components`, `exclude`, `strings`, `markdown`, `defaults`, `icons`
143
+ */
144
+ export default function oss(config, options = {}) {
145
+ config.addPlugin(norn, {
146
+ ...options,
147
+ components: [components, ...list(options.components)],
148
+ defaults: { themeColor: THEME_COLOR, locale: "en_US", ...options.defaults },
149
+ });
150
+ fillHooks(config, {
151
+ head: `<meta webc:is="oss-head" webc:nokeep />\n<style>${[tokens, brand].map((file) => fs.readFileSync(file, "utf8").trim()).join("\n")}</style>`,
152
+ banner: "<oss-bar></oss-bar>",
153
+ cta: "<oss-cta></oss-cta>",
154
+ credit: "<oss-credit></oss-credit>",
155
+ });
156
+ config.addPassthroughCopy({ [fonts]: "assets/fonts" });
157
+ }
package/package.json CHANGED
@@ -1,6 +1,55 @@
1
1
  {
2
- "name": "@allons-y/webc-oss-site",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
2
+ "name": "@allons-y/webc-oss-site",
3
+ "version": "0.1.0-beta.1",
4
+ "description": "The OSS site theme for Norn sites: Allons-y Studio brand tokens, self-hosted fonts, and the locked OSS banner, call to action, and footer credit.",
5
+ "license": "MPL-2.0",
6
+ "author": "Cassondra Roberts <castastrophe@users.noreply.github.com> (https://allons-y.studio)",
7
+ "homepage": "https://github.com/allonsy-studio/webc-resources/tree/main/packages/webc-oss-site#readme",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/allonsy-studio/webc-resources.git",
11
+ "directory": "packages/webc-oss-site"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/allonsy-studio/webc-resources/issues"
15
+ },
16
+ "publishConfig": {
17
+ "access": "public",
18
+ "registry": "https://registry.npmjs.org/"
19
+ },
20
+ "type": "module",
21
+ "exports": {
22
+ ".": "./index.js",
23
+ "./css/tokens.css": "./css/tokens.css",
24
+ "./css/brand.css": "./css/brand.css",
25
+ "./schema/oss-docs.schema.json": "./schema/oss-docs.schema.json",
26
+ "./package.json": "./package.json"
27
+ },
28
+ "files": [
29
+ "components/",
30
+ "css/",
31
+ "fonts/",
32
+ "schema/",
33
+ "index.js",
34
+ "LICENSE",
35
+ "README.md"
36
+ ],
37
+ "scripts": {
38
+ "prepack": "node ../../scripts/build-components.js webc-oss-site && yarn copy:svg && yarn copy:fonts",
39
+ "copy:fonts": "node scripts/copy-fonts.js",
40
+ "copy:svg": "node scripts/inline-svg.js"
41
+ },
42
+ "peerDependencies": {
43
+ "@11ty/eleventy": "^3.0.0",
44
+ "@11ty/eleventy-plugin-webc": "^0.11.0",
45
+ "@allons-y/webc-patterns": "^0.1.0-beta.0"
46
+ },
47
+ "keywords": [
48
+ "webc",
49
+ "eleventy",
50
+ "11ty"
51
+ ],
52
+ "engines": {
53
+ "node": ">=22"
54
+ }
55
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://raw.githubusercontent.com/allonsy-studio/webc-resources/main/packages/webc-oss-site/schema/oss-docs.schema.json",
4
+ "title": "oss-docs settings",
5
+ "description": "How a project's site is built: the value of the `oss-docs` key in its package.json.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "site": {
10
+ "description": "Site directory, relative to the repository root & inside it.",
11
+ "type": "string",
12
+ "default": "docs",
13
+ "pattern": "^(?!\\s*$)(?![/\\\\]|[A-Za-z]:)(?!(?:.*[/\\\\])?\\.\\.(?:[/\\\\].*)?$)."
14
+ },
15
+ "flavor": {
16
+ "description": "The confirmed site flavor, used without asking.",
17
+ "enum": [
18
+ "landing",
19
+ "docs",
20
+ "workspaces"
21
+ ]
22
+ },
23
+ "oss": {
24
+ "description": "false opts out of the OSS site layer: no banner, call to action, or footer credit.",
25
+ "type": "boolean",
26
+ "default": true
27
+ },
28
+ "signals": {
29
+ "description": "The maintainer's answers to the two flavor judgment calls.",
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "properties": {
33
+ "nestedDocs": {
34
+ "description": "Each workspace gets its own docs page.",
35
+ "type": "boolean"
36
+ },
37
+ "singleAction": {
38
+ "description": "One page covers install & usage.",
39
+ "type": "boolean"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }