@cogenta/theme-canonical 1.3.7 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"logos.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/logos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,KAAK,WAAW,EAAK,MAAM,YAAY,CAAA;AA4BhD,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAiB9E"}
1
+ {"version":3,"file":"logos.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/logos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,KAAK,WAAW,EAAK,MAAM,YAAY,CAAA;AAiChD,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAiB9E"}
@@ -15,7 +15,12 @@ function renderItem(item, ctx) {
15
15
  });
16
16
  return h('li', { class: 'cg-logo' }, item.url === undefined
17
17
  ? logo
18
- : h('a', { class: 'cg-logo__link', href: ctx.link(item.url), rel: 'noopener noreferrer' }, logo));
18
+ : h('a', {
19
+ class: 'cg-logo__link',
20
+ href: ctx.link(item.url),
21
+ 'aria-label': item.name,
22
+ rel: 'noopener noreferrer',
23
+ }, logo));
19
24
  }
20
25
  export function renderLogos(block, ctx) {
21
26
  return h('section', { class: 'cg-block cg-logos', 'data-block': 'logos' }, block.title === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"logos.js","sourceRoot":"","sources":["../../../../src/render/blocks/logos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAoB,CAAC,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAc,EAAE,GAAkB;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE;QAClC,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;KAC5B,CAAC,CAAA;IACF,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,IAAI,CAAC,GAAG,KAAK,SAAS;QACpB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CACC,GAAG,EACH,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,EAChF,IAAI,CACL,CACN,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,GAAkB;IAC/D,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,OAAO,EAAE,EACrD,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CACL,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,EAChC,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,EACnD,KAAK,CAAC,KAAK,CACZ,EACL,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACjD,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"logos.js","sourceRoot":"","sources":["../../../../src/render/blocks/logos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAoB,CAAC,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAc,EAAE,GAAkB;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE;QAClC,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;KAC5B,CAAC,CAAA;IACF,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,IAAI,CAAC,GAAG,KAAK,SAAS;QACpB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CACC,GAAG,EACH;YACE,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACxB,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,GAAG,EAAE,qBAAqB;SAC3B,EACD,IAAI,CACL,CACN,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,GAAkB;IAC/D,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,OAAO,EAAE,EACrD,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CACL,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,EAChC,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,EACnD,KAAK,CAAC,KAAK,CACZ,EACL,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACjD,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,93 @@
1
+ Copyright 2022 The Instrument Sans Project Authors (https://github.com/Instrument/instrument-sans)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ https://scripts.sil.org/OFL
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,93 @@
1
+ Copyright 2022 The Instrument Serif Project Authors (https://github.com/Instrument/instrument-serif)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ https://scripts.sil.org/OFL
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,48 @@
1
+ # Fonts of `@cogenta/theme-canonical`
2
+
3
+ Served by the site itself at `/_cogenta/fonts/canonical/<file>`. A page of this
4
+ theme makes **no request to a font provider**.
5
+
6
+ | Family | Style | Subset | Weight | File | Size |
7
+ |---|---|---|---|---|---|
8
+ | Instrument Sans | italic | latin-ext | 400 700 (width 100%) | `instrument-sans-italic-latin-ext-2c2d6eb0.woff2` | 11.4 KiB |
9
+ | Instrument Sans | italic | latin | 400 700 (width 100%) | `instrument-sans-italic-latin-77210cdd.woff2` | 31.1 KiB |
10
+ | Instrument Sans | normal | latin-ext | 400 700 (width 100%) | `instrument-sans-normal-latin-ext-c4fcfea4.woff2` | 10.9 KiB |
11
+ | Instrument Sans | normal | latin | 400 700 (width 100%) | `instrument-sans-normal-latin-2ee17598.woff2` | 29.4 KiB |
12
+ | Instrument Serif | italic | latin-ext | 400 | `instrument-serif-italic-latin-ext-d0014821.woff2` | 12.1 KiB |
13
+ | Instrument Serif | italic | latin | 400 | `instrument-serif-italic-latin-5a51946d.woff2` | 21.6 KiB |
14
+ | Instrument Serif | normal | latin-ext | 400 | `instrument-serif-normal-latin-ext-290e6267.woff2` | 11.3 KiB |
15
+ | Instrument Serif | normal | latin | 400 | `instrument-serif-normal-latin-5eb09b5a.woff2` | 20.5 KiB |
16
+
17
+ Total: 8 files, 148.3 KiB.
18
+
19
+ ## Licence
20
+
21
+ - **Instrument Sans**: SIL Open Font License 1.1, text in `OFL-instrument-sans.txt`
22
+ - **Instrument Serif**: SIL Open Font License 1.1, text in `OFL-instrument-serif.txt`
23
+
24
+ The OFL permits bundling and redistributing these files with this package, as
25
+ long as the licence text travels with them (it does) and the fonts are not sold
26
+ on their own.
27
+
28
+ ## Source and subsets
29
+
30
+ The files are the variable WOFF2 builds that the Google Fonts `css2` API
31
+ serves, taken from the `google/fonts` open-source repository's distribution.
32
+ Only the `latin` and `latin-ext` subsets are kept: together they cover
33
+ French (œ Œ ’ « » and every accented capital), the other Western European
34
+ languages, and the euro sign. A language written in another script falls back to
35
+ the next family of the theme's stack.
36
+
37
+ ## How they were fetched
38
+
39
+ ```sh
40
+ node scripts/fetch-theme-fonts.mjs canonical
41
+ ```
42
+
43
+ The script asks `https://fonts.googleapis.com/css2` with a modern User-Agent for
44
+ exactly the families, axes and weights this theme used before it was
45
+ self-hosted, downloads each `latin`/`latin-ext` file, names it after a hash of
46
+ its bytes (so a changed file gets a new URL and can be cached for a year), and
47
+ rewrites `src/styles/fonts.css`. It needs the network once, when it is run, and
48
+ never when a site is built, tested or served.
@@ -0,0 +1,69 @@
1
+ {
2
+ "theme": "canonical",
3
+ "faces": [
4
+ {
5
+ "family": "Instrument Sans",
6
+ "style": "italic",
7
+ "weight": "400 700",
8
+ "subset": "latin-ext",
9
+ "file": "instrument-sans-italic-latin-ext-2c2d6eb0.woff2",
10
+ "css": "@font-face {\n font-family: 'Instrument Sans';\n font-style: italic;\n font-weight: 400 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-sans-italic-latin-ext-2c2d6eb0.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}"
11
+ },
12
+ {
13
+ "family": "Instrument Sans",
14
+ "style": "italic",
15
+ "weight": "400 700",
16
+ "subset": "latin",
17
+ "file": "instrument-sans-italic-latin-77210cdd.woff2",
18
+ "css": "@font-face {\n font-family: 'Instrument Sans';\n font-style: italic;\n font-weight: 400 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-sans-italic-latin-77210cdd.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}"
19
+ },
20
+ {
21
+ "family": "Instrument Sans",
22
+ "style": "normal",
23
+ "weight": "400 700",
24
+ "subset": "latin-ext",
25
+ "file": "instrument-sans-normal-latin-ext-c4fcfea4.woff2",
26
+ "css": "@font-face {\n font-family: 'Instrument Sans';\n font-style: normal;\n font-weight: 400 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-sans-normal-latin-ext-c4fcfea4.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}"
27
+ },
28
+ {
29
+ "family": "Instrument Sans",
30
+ "style": "normal",
31
+ "weight": "400 700",
32
+ "subset": "latin",
33
+ "file": "instrument-sans-normal-latin-2ee17598.woff2",
34
+ "css": "@font-face {\n font-family: 'Instrument Sans';\n font-style: normal;\n font-weight: 400 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-sans-normal-latin-2ee17598.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}"
35
+ },
36
+ {
37
+ "family": "Instrument Serif",
38
+ "style": "italic",
39
+ "weight": "400",
40
+ "subset": "latin-ext",
41
+ "file": "instrument-serif-italic-latin-ext-d0014821.woff2",
42
+ "css": "@font-face {\n font-family: 'Instrument Serif';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-serif-italic-latin-ext-d0014821.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}"
43
+ },
44
+ {
45
+ "family": "Instrument Serif",
46
+ "style": "italic",
47
+ "weight": "400",
48
+ "subset": "latin",
49
+ "file": "instrument-serif-italic-latin-5a51946d.woff2",
50
+ "css": "@font-face {\n font-family: 'Instrument Serif';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-serif-italic-latin-5a51946d.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}"
51
+ },
52
+ {
53
+ "family": "Instrument Serif",
54
+ "style": "normal",
55
+ "weight": "400",
56
+ "subset": "latin-ext",
57
+ "file": "instrument-serif-normal-latin-ext-290e6267.woff2",
58
+ "css": "@font-face {\n font-family: 'Instrument Serif';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-serif-normal-latin-ext-290e6267.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}"
59
+ },
60
+ {
61
+ "family": "Instrument Serif",
62
+ "style": "normal",
63
+ "weight": "400",
64
+ "subset": "latin",
65
+ "file": "instrument-serif-normal-latin-5eb09b5a.woff2",
66
+ "css": "@font-face {\n font-family: 'Instrument Serif';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_cogenta/fonts/canonical/instrument-serif-normal-latin-5eb09b5a.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}"
67
+ }
68
+ ]
69
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogenta/theme-canonical",
3
- "version": "1.3.7",
3
+ "version": "1.4.0",
4
4
  "description": "The reference Cogenta theme: all seventeen vocabulary blocks on a twelve-column grid, set in Instrument Sans and Instrument Serif, accessible, with zero client JavaScript.",
5
5
  "license": "MPL-2.0",
6
6
  "type": "module",
@@ -19,10 +19,13 @@
19
19
  "./layouts/*.astro": "./src/layouts/*.astro",
20
20
  "./components/*.astro": "./src/components/*.astro",
21
21
  "./styles/theme.css": "./src/styles/theme.css",
22
- "./styles/*.css": "./src/styles/*.css"
22
+ "./styles/*.css": "./src/styles/*.css",
23
+ "./fonts/*.woff2": "./fonts/*.woff2",
24
+ "./fonts/manifest.json": "./fonts/manifest.json"
23
25
  },
24
26
  "files": [
25
27
  "dist",
28
+ "fonts",
26
29
  "src",
27
30
  "tokens.json"
28
31
  ],
@@ -39,17 +42,17 @@
39
42
  "directory": "packages/theme-canonical"
40
43
  },
41
44
  "dependencies": {
42
- "@cogenta/theme-kit": "0.7.1",
43
- "@cogenta/render": "0.5.0",
44
- "@cogenta/blocks": "1.1.6"
45
+ "@cogenta/render": "0.6.0",
46
+ "@cogenta/theme-kit": "0.7.2",
47
+ "@cogenta/blocks": "1.1.7"
45
48
  },
46
49
  "peerDependencies": {
47
- "astro": "^7.2.1"
50
+ "astro": "^7.2.8"
48
51
  },
49
52
  "devDependencies": {
50
- "astro": "^7.2.1",
53
+ "astro": "^7.2.8",
51
54
  "typescript": "^7.0.2",
52
- "vitest": "^4.1.10"
55
+ "vitest": "^4.1.11"
53
56
  },
54
57
  "scripts": {
55
58
  "build": "tsc -p tsconfig.json",
@@ -23,7 +23,12 @@ function renderItem(item: LogoItem, ctx: RenderContext): HtmlElement {
23
23
  ? logo
24
24
  : h(
25
25
  'a',
26
- { class: 'cg-logo__link', href: ctx.link(item.url), rel: 'noopener noreferrer' },
26
+ {
27
+ class: 'cg-logo__link',
28
+ href: ctx.link(item.url),
29
+ 'aria-label': item.name,
30
+ rel: 'noopener noreferrer',
31
+ },
27
32
  logo,
28
33
  ),
29
34
  )
@@ -0,0 +1,89 @@
1
+ /*
2
+ * The web fonts of `@cogenta/theme-canonical`, served by the site itself.
3
+ *
4
+ * GENERATED by `scripts/fetch-theme-fonts.mjs` — edit that script, not this
5
+ * file. The faces live in this package's `fonts/` directory and are sent by
6
+ * `cogenta serve` at `/_cogenta/fonts/canonical/<file>`; no request leaves the
7
+ * site, so a visitor's address is never handed to a font provider. See
8
+ * `fonts/README.md` for the families, their licence and their source.
9
+ *
10
+ * `font-display: swap` keeps text visible in a system face while a file loads,
11
+ * and `unicode-range` splits Latin from Latin Extended so a French page
12
+ * downloads only the first.
13
+ */
14
+
15
+ @font-face {
16
+ font-family: 'Instrument Sans';
17
+ font-style: italic;
18
+ font-weight: 400 700;
19
+ font-stretch: 100%;
20
+ font-display: swap;
21
+ src: url(/_cogenta/fonts/canonical/instrument-sans-italic-latin-ext-2c2d6eb0.woff2) format('woff2');
22
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
23
+ }
24
+
25
+ @font-face {
26
+ font-family: 'Instrument Sans';
27
+ font-style: italic;
28
+ font-weight: 400 700;
29
+ font-stretch: 100%;
30
+ font-display: swap;
31
+ src: url(/_cogenta/fonts/canonical/instrument-sans-italic-latin-77210cdd.woff2) format('woff2');
32
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
33
+ }
34
+
35
+ @font-face {
36
+ font-family: 'Instrument Sans';
37
+ font-style: normal;
38
+ font-weight: 400 700;
39
+ font-stretch: 100%;
40
+ font-display: swap;
41
+ src: url(/_cogenta/fonts/canonical/instrument-sans-normal-latin-ext-c4fcfea4.woff2) format('woff2');
42
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
43
+ }
44
+
45
+ @font-face {
46
+ font-family: 'Instrument Sans';
47
+ font-style: normal;
48
+ font-weight: 400 700;
49
+ font-stretch: 100%;
50
+ font-display: swap;
51
+ src: url(/_cogenta/fonts/canonical/instrument-sans-normal-latin-2ee17598.woff2) format('woff2');
52
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
53
+ }
54
+
55
+ @font-face {
56
+ font-family: 'Instrument Serif';
57
+ font-style: italic;
58
+ font-weight: 400;
59
+ font-display: swap;
60
+ src: url(/_cogenta/fonts/canonical/instrument-serif-italic-latin-ext-d0014821.woff2) format('woff2');
61
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
62
+ }
63
+
64
+ @font-face {
65
+ font-family: 'Instrument Serif';
66
+ font-style: italic;
67
+ font-weight: 400;
68
+ font-display: swap;
69
+ src: url(/_cogenta/fonts/canonical/instrument-serif-italic-latin-5a51946d.woff2) format('woff2');
70
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
71
+ }
72
+
73
+ @font-face {
74
+ font-family: 'Instrument Serif';
75
+ font-style: normal;
76
+ font-weight: 400;
77
+ font-display: swap;
78
+ src: url(/_cogenta/fonts/canonical/instrument-serif-normal-latin-ext-290e6267.woff2) format('woff2');
79
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
80
+ }
81
+
82
+ @font-face {
83
+ font-family: 'Instrument Serif';
84
+ font-style: normal;
85
+ font-weight: 400;
86
+ font-display: swap;
87
+ src: url(/_cogenta/fonts/canonical/instrument-serif-normal-latin-5eb09b5a.woff2) format('woff2');
88
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
89
+ }
@@ -16,19 +16,19 @@
16
16
  * Not one colour is written literally in any of them: every value comes from
17
17
  * a `--cogenta-*` property or from a `--cg-*` property composed from those.
18
18
  *
19
- * The one thing this file adds on its own is the Google Fonts request for the
19
+ * The one thing this file adds on its own is the self-hosted `fonts.css` faces for the
20
20
  * two families the default skin names: Instrument Sans for everything a
21
21
  * visitor reads, Instrument Serif for the display line of a page and for
22
22
  * quotations. A skin only names a family; it never fetches one. A site whose
23
23
  * skin names other families simply never uses these faces, and a browser does
24
24
  * not download a face nothing uses. `display=swap` keeps text visible while
25
- * they load, and `cogenta serve` hoists this `@import` above the skin's rules.
25
+ * they load, and `cogenta serve` serves the faces itself, from `/_cogenta/fonts/`.
26
26
  *
27
27
  * The relative `@import`s are flattened at build time by Astro, and by
28
28
  * `@cogenta/cli`'s inliner when `cogenta serve` renders without a build.
29
29
  */
30
30
 
31
- @import url("https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400..700;1,400..700&family=Instrument+Serif:ital@0;1&display=swap");
31
+ @import "./fonts.css";
32
32
 
33
33
  @import "./tokens.css";
34
34
  @import "./base.css";