@aitrien/motifspec 1.13.0 → 1.13.2

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.
Files changed (83) hide show
  1. package/CHANGELOG.md +269 -257
  2. package/LICENSE +21 -21
  3. package/README.md +150 -150
  4. package/dist/backdrop.html +1 -1
  5. package/dist/chroma.css +36 -36
  6. package/dist/codex.css +1145 -1145
  7. package/dist/codex.js +126 -126
  8. package/dist/contrast.md +101 -101
  9. package/dist/fonts.css +3 -3
  10. package/dist/icons.svg +18 -18
  11. package/dist/plate.html +1 -1
  12. package/dist/plate.js +292 -292
  13. package/dist/theme-init.js +1 -1
  14. package/dist/tokens.css +466 -466
  15. package/dist/tokens.js +3330 -3330
  16. package/dist/tokens.json +3330 -3330
  17. package/docs/components/_template.md +37 -37
  18. package/docs/components/accession-label.md +106 -106
  19. package/docs/components/backdrop.md +83 -83
  20. package/docs/components/button-and-link.md +87 -87
  21. package/docs/components/callout.md +75 -75
  22. package/docs/components/code-block.md +109 -109
  23. package/docs/components/data-table.md +73 -73
  24. package/docs/components/figure.md +68 -68
  25. package/docs/components/heading-anchor.md +76 -76
  26. package/docs/components/icon.md +63 -63
  27. package/docs/components/ornament.md +77 -77
  28. package/docs/components/pagination.md +78 -78
  29. package/docs/components/post-list-item.md +91 -91
  30. package/docs/components/project-card.md +82 -82
  31. package/docs/components/prose.md +122 -122
  32. package/docs/components/site-footer.md +99 -99
  33. package/docs/components/site-header.md +133 -133
  34. package/docs/components/specimen-plate.md +92 -92
  35. package/docs/components/table-of-contents.md +83 -83
  36. package/docs/components/tag.md +70 -70
  37. package/docs/components/tooltip.md +67 -67
  38. package/docs/hugo.md +120 -120
  39. package/docs/syntax-highlighting.md +55 -55
  40. package/docs/templates.md +30 -30
  41. package/fonts/OFL-jetbrains-mono.txt +93 -93
  42. package/fonts/OFL-national-park.txt +93 -93
  43. package/fonts/OFL-yarndings-12.txt +93 -93
  44. package/icons/LICENSE +202 -202
  45. package/icons/manifest.json +75 -75
  46. package/layouts/_markup/render-blockquote.html +30 -30
  47. package/layouts/_markup/render-codeblock.html +18 -18
  48. package/layouts/_markup/render-heading.html +2 -2
  49. package/layouts/_markup/render-image.html +14 -14
  50. package/layouts/_markup/render-link.html +14 -14
  51. package/layouts/_markup/render-table.html +31 -31
  52. package/layouts/_partials/motifspec/accession/id.html +2 -2
  53. package/layouts/_partials/motifspec/accession/label.html +18 -18
  54. package/layouts/_partials/motifspec/accession/status.html +2 -2
  55. package/layouts/_partials/motifspec/article.html +24 -24
  56. package/layouts/_partials/motifspec/back-link.html +2 -2
  57. package/layouts/_partials/motifspec/body-end.html +5 -5
  58. package/layouts/_partials/motifspec/body-start.html +5 -5
  59. package/layouts/_partials/motifspec/figure.html +14 -14
  60. package/layouts/_partials/motifspec/filed-under.html +5 -5
  61. package/layouts/_partials/motifspec/h2s.html +7 -7
  62. package/layouts/_partials/motifspec/head.html +15 -15
  63. package/layouts/_partials/motifspec/pagination-entries.html +34 -34
  64. package/layouts/_partials/motifspec/pagination-pages.html +30 -30
  65. package/layouts/_partials/motifspec/post-list-item.html +15 -15
  66. package/layouts/_partials/motifspec/project-card.html +23 -23
  67. package/layouts/_partials/motifspec/section-heading.html +3 -3
  68. package/layouts/_partials/motifspec/site-header.html +27 -27
  69. package/layouts/_partials/motifspec/table-of-contents.html +21 -21
  70. package/layouts/_partials/motifspec/tag-filter.html +22 -22
  71. package/layouts/_partials/motifspec/tags.html +8 -8
  72. package/layouts/_partials/motifspec/tokens.html +9 -9
  73. package/package.json +68 -68
  74. package/scripts/check.mjs +153 -153
  75. package/scripts/lib.mjs +176 -176
  76. package/tokens/README.md +3 -3
  77. package/tokens/border.json +63 -63
  78. package/tokens/color.json +1902 -1902
  79. package/tokens/motion.json +207 -207
  80. package/tokens/radius.json +53 -53
  81. package/tokens/size.json +378 -378
  82. package/tokens/space.json +289 -289
  83. package/tokens/typography.json +859 -859
package/dist/codex.js CHANGED
@@ -1,126 +1,126 @@
1
- // MotifSpec behaviour: theme toggle, the backdrop header's scroll state, tooltip dismissal, code copy buttons,
2
- // TOC docking and active section.
3
- // Shipped as dist/codex.js (@aitrien/motifspec/codex.js) and inlined into the showcase, so there is one implementation.
4
- // Enhancement only. Without this script: themes follow the system, code is selectable, the TOC is a plain open list,
5
- // and every control that needs script stays hidden. Load it with `defer`; it also works inline at the end of <body>.
6
- // Pair it with dist/theme-init.js inline in <head>, which applies a stored theme before first paint.
7
- (function () {
8
- 'use strict';
9
- var root = document.documentElement;
10
- var KEY = 'cx-theme';
11
- var system = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
12
- var sys = function () { return system && system.matches ? 'dark' : 'light'; };
13
-
14
- function read() { try { var v = localStorage.getItem(KEY); return v === 'light' || v === 'dark' ? v : 'auto'; } catch (e) { return 'auto'; } }
15
- function write(v) { try { if (v === 'auto') localStorage.removeItem(KEY); else localStorage.setItem(KEY, v); } catch (e) { /* storage blocked: theme still applies for this view */ } }
16
- var shown = function (pref) { return pref === 'auto' ? sys() : pref; };
17
- function apply(pref) {
18
- if (pref === 'auto') root.removeAttribute('data-theme'); else root.setAttribute('data-theme', pref);
19
- var label = 'Switch to ' + (shown(pref) === 'dark' ? 'light' : 'dark') + ' theme';
20
- document.querySelectorAll('[data-theme-toggle]').forEach(function (b) {
21
- b.setAttribute('aria-label', label);
22
- var tip = b.querySelector('.cx-tooltip'); if (tip) tip.textContent = label;
23
- });
24
- }
25
-
26
- // Durations come from the tokens, never from literals in this file.
27
- function ms(name) {
28
- var v = getComputedStyle(root).getPropertyValue(name).trim();
29
- return v.endsWith('ms') ? parseFloat(v) : parseFloat(v) * 1000;
30
- }
31
-
32
- var theme = read();
33
- apply(theme);
34
- if (system && system.addEventListener) system.addEventListener('change', function () { apply(theme); });
35
-
36
- function ready(fn) { if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', fn); else fn(); }
37
-
38
- ready(function () {
39
- apply(theme);
40
- document.querySelectorAll('[data-theme-toggle]').forEach(function (b) {
41
- b.hidden = false;
42
- b.addEventListener('click', function () {
43
- var next = shown(theme) === 'dark' ? 'light' : 'dark';
44
- theme = next === sys() ? 'auto' : next; // matching the system again means following it again
45
- apply(theme); write(theme);
46
- });
47
- });
48
-
49
- // Escape hides any open tooltip without moving the pointer or focus (WCAG 1.4.13).
50
- document.addEventListener('keydown', function (e) {
51
- if (e.key !== 'Escape') return;
52
- document.querySelectorAll('.cx-tooltip').forEach(function (t) { t.parentElement.classList.add('is-tooltip-dismissed'); });
53
- });
54
- document.querySelectorAll('.cx-tooltip').forEach(function (t) {
55
- var host = t.parentElement;
56
- var reset = function () { host.classList.remove('is-tooltip-dismissed'); };
57
- host.addEventListener('mouseleave', reset);
58
- host.addEventListener('focusout', reset);
59
- });
60
-
61
- // The sticky header's height, for scroll-padding-top and the docked TOC: it wraps to two rows on narrow screens.
62
- var header = document.querySelector('.cx-header');
63
- if (header) {
64
- var end = header.querySelector('.cx-header__end'), mark = header.querySelector('.cx-wordmark');
65
- var measure = function () {
66
- root.style.setProperty('--_header-height', header.offsetHeight + 'px');
67
- // When the nav and controls wrap below the wordmark, mark the header so the nav aligns with the page text.
68
- if (end && mark) header.toggleAttribute('data-wrapped', end.offsetTop > mark.offsetTop + mark.offsetHeight / 2);
69
- };
70
- measure();
71
- if ('ResizeObserver' in window) new ResizeObserver(measure).observe(header); else window.addEventListener('resize', measure);
72
- }
73
-
74
- // Backdrop pages: the header starts on the frost and scrolls with the page. Once the script marks it, it sticks,
75
- // and data-scrolled="true" fades its surface in as soon as the page leaves the top; back at the top it fades out.
76
- // Without this script it keeps scrolling away, which is safe: it never sits see-through over the text.
77
- document.querySelectorAll('.cx-backdrop-page .cx-header').forEach(function (header) {
78
- var queued = false;
79
- var set = function () { queued = false; header.setAttribute('data-scrolled', window.scrollY > 0 ? 'true' : 'false'); };
80
- set();
81
- window.addEventListener('scroll', function () { if (!queued) { queued = true; window.requestAnimationFrame(set); } }, { passive: true });
82
- });
83
-
84
- // Copy buttons on code blocks.
85
- document.querySelectorAll('.cx-code').forEach(function (block) {
86
- var btn = block.querySelector('.cx-code__copy');
87
- var code = block.querySelector('pre code');
88
- if (!btn || !code) return;
89
- btn.hidden = false;
90
- btn.addEventListener('click', function () {
91
- var text = Array.prototype.map.call(code.querySelectorAll('.cl'), function (l) { return l.textContent; }).join('') || code.textContent;
92
- var label = btn.querySelector('.cx-code__copy-label');
93
- var icon = btn.querySelector('[data-copy-icon]');
94
- var set = function (state, text, iconId) {
95
- btn.dataset.state = state; label.textContent = text;
96
- if (icon) icon.setAttribute('href', '#cx-icon-' + iconId);
97
- };
98
- var done = function (ok) {
99
- set(ok ? 'copied' : 'selected', ok ? 'Copied' : 'Selected, press Ctrl+C', ok ? 'check' : 'content-copy');
100
- setTimeout(function () { set('', 'Copy', 'content-copy'); }, ms('--cx-motion-duration-plate'));
101
- };
102
- var select = function () { var r = document.createRange(); r.selectNodeContents(code); var s = getSelection(); s.removeAllRanges(); s.addRange(r); done(false); };
103
- if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(text).then(function () { done(true); }, select);
104
- else select();
105
- });
106
- });
107
-
108
- // Table of contents: dock beside the article when there is room, and mark the current section.
109
- document.querySelectorAll('.cx-article').forEach(function (article) {
110
- var toc = article.querySelector('.cx-toc');
111
- var main = article.querySelector('.cx-article__main');
112
- if (!toc || !main) return;
113
- var dock = function () { toc.classList.toggle('is-docked', Math.abs(toc.offsetTop - main.offsetTop) < 1); };
114
- dock(); window.addEventListener('resize', dock);
115
- var links = Array.prototype.slice.call(toc.querySelectorAll('a[href^="#"]'));
116
- if (!('IntersectionObserver' in window)) return;
117
- var io = new IntersectionObserver(function (entries) {
118
- entries.forEach(function (e) {
119
- if (!e.isIntersecting) return;
120
- links.forEach(function (a) { a.setAttribute('aria-current', a.getAttribute('href') === '#' + e.target.id ? 'true' : 'false'); });
121
- });
122
- }, { rootMargin: '0px 0px -70% 0px' });
123
- links.forEach(function (a) { var t = document.getElementById(a.getAttribute('href').slice(1)); if (t) io.observe(t); });
124
- });
125
- });
126
- })();
1
+ // MotifSpec behaviour: theme toggle, the backdrop header's scroll state, tooltip dismissal, code copy buttons,
2
+ // TOC docking and active section.
3
+ // Shipped as dist/codex.js (@aitrien/motifspec/codex.js) and inlined into the showcase, so there is one implementation.
4
+ // Enhancement only. Without this script: themes follow the system, code is selectable, the TOC is a plain open list,
5
+ // and every control that needs script stays hidden. Load it with `defer`; it also works inline at the end of <body>.
6
+ // Pair it with dist/theme-init.js inline in <head>, which applies a stored theme before first paint.
7
+ (function () {
8
+ 'use strict';
9
+ var root = document.documentElement;
10
+ var KEY = 'cx-theme';
11
+ var system = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
12
+ var sys = function () { return system && system.matches ? 'dark' : 'light'; };
13
+
14
+ function read() { try { var v = localStorage.getItem(KEY); return v === 'light' || v === 'dark' ? v : 'auto'; } catch (e) { return 'auto'; } }
15
+ function write(v) { try { if (v === 'auto') localStorage.removeItem(KEY); else localStorage.setItem(KEY, v); } catch (e) { /* storage blocked: theme still applies for this view */ } }
16
+ var shown = function (pref) { return pref === 'auto' ? sys() : pref; };
17
+ function apply(pref) {
18
+ if (pref === 'auto') root.removeAttribute('data-theme'); else root.setAttribute('data-theme', pref);
19
+ var label = 'Switch to ' + (shown(pref) === 'dark' ? 'light' : 'dark') + ' theme';
20
+ document.querySelectorAll('[data-theme-toggle]').forEach(function (b) {
21
+ b.setAttribute('aria-label', label);
22
+ var tip = b.querySelector('.cx-tooltip'); if (tip) tip.textContent = label;
23
+ });
24
+ }
25
+
26
+ // Durations come from the tokens, never from literals in this file.
27
+ function ms(name) {
28
+ var v = getComputedStyle(root).getPropertyValue(name).trim();
29
+ return v.endsWith('ms') ? parseFloat(v) : parseFloat(v) * 1000;
30
+ }
31
+
32
+ var theme = read();
33
+ apply(theme);
34
+ if (system && system.addEventListener) system.addEventListener('change', function () { apply(theme); });
35
+
36
+ function ready(fn) { if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', fn); else fn(); }
37
+
38
+ ready(function () {
39
+ apply(theme);
40
+ document.querySelectorAll('[data-theme-toggle]').forEach(function (b) {
41
+ b.hidden = false;
42
+ b.addEventListener('click', function () {
43
+ var next = shown(theme) === 'dark' ? 'light' : 'dark';
44
+ theme = next === sys() ? 'auto' : next; // matching the system again means following it again
45
+ apply(theme); write(theme);
46
+ });
47
+ });
48
+
49
+ // Escape hides any open tooltip without moving the pointer or focus (WCAG 1.4.13).
50
+ document.addEventListener('keydown', function (e) {
51
+ if (e.key !== 'Escape') return;
52
+ document.querySelectorAll('.cx-tooltip').forEach(function (t) { t.parentElement.classList.add('is-tooltip-dismissed'); });
53
+ });
54
+ document.querySelectorAll('.cx-tooltip').forEach(function (t) {
55
+ var host = t.parentElement;
56
+ var reset = function () { host.classList.remove('is-tooltip-dismissed'); };
57
+ host.addEventListener('mouseleave', reset);
58
+ host.addEventListener('focusout', reset);
59
+ });
60
+
61
+ // The sticky header's height, for scroll-padding-top and the docked TOC: it wraps to two rows on narrow screens.
62
+ var header = document.querySelector('.cx-header');
63
+ if (header) {
64
+ var end = header.querySelector('.cx-header__end'), mark = header.querySelector('.cx-wordmark');
65
+ var measure = function () {
66
+ root.style.setProperty('--_header-height', header.offsetHeight + 'px');
67
+ // When the nav and controls wrap below the wordmark, mark the header so the nav aligns with the page text.
68
+ if (end && mark) header.toggleAttribute('data-wrapped', end.offsetTop > mark.offsetTop + mark.offsetHeight / 2);
69
+ };
70
+ measure();
71
+ if ('ResizeObserver' in window) new ResizeObserver(measure).observe(header); else window.addEventListener('resize', measure);
72
+ }
73
+
74
+ // Backdrop pages: the header starts on the frost and scrolls with the page. Once the script marks it, it sticks,
75
+ // and data-scrolled="true" fades its surface in as soon as the page leaves the top; back at the top it fades out.
76
+ // Without this script it keeps scrolling away, which is safe: it never sits see-through over the text.
77
+ document.querySelectorAll('.cx-backdrop-page .cx-header').forEach(function (header) {
78
+ var queued = false;
79
+ var set = function () { queued = false; header.setAttribute('data-scrolled', window.scrollY > 0 ? 'true' : 'false'); };
80
+ set();
81
+ window.addEventListener('scroll', function () { if (!queued) { queued = true; window.requestAnimationFrame(set); } }, { passive: true });
82
+ });
83
+
84
+ // Copy buttons on code blocks.
85
+ document.querySelectorAll('.cx-code').forEach(function (block) {
86
+ var btn = block.querySelector('.cx-code__copy');
87
+ var code = block.querySelector('pre code');
88
+ if (!btn || !code) return;
89
+ btn.hidden = false;
90
+ btn.addEventListener('click', function () {
91
+ var text = Array.prototype.map.call(code.querySelectorAll('.cl'), function (l) { return l.textContent; }).join('') || code.textContent;
92
+ var label = btn.querySelector('.cx-code__copy-label');
93
+ var icon = btn.querySelector('[data-copy-icon]');
94
+ var set = function (state, text, iconId) {
95
+ btn.dataset.state = state; label.textContent = text;
96
+ if (icon) icon.setAttribute('href', '#cx-icon-' + iconId);
97
+ };
98
+ var done = function (ok) {
99
+ set(ok ? 'copied' : 'selected', ok ? 'Copied' : 'Selected, press Ctrl+C', ok ? 'check' : 'content-copy');
100
+ setTimeout(function () { set('', 'Copy', 'content-copy'); }, ms('--cx-motion-duration-plate'));
101
+ };
102
+ var select = function () { var r = document.createRange(); r.selectNodeContents(code); var s = getSelection(); s.removeAllRanges(); s.addRange(r); done(false); };
103
+ if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(text).then(function () { done(true); }, select);
104
+ else select();
105
+ });
106
+ });
107
+
108
+ // Table of contents: dock beside the article when there is room, and mark the current section.
109
+ document.querySelectorAll('.cx-article').forEach(function (article) {
110
+ var toc = article.querySelector('.cx-toc');
111
+ var main = article.querySelector('.cx-article__main');
112
+ if (!toc || !main) return;
113
+ var dock = function () { toc.classList.toggle('is-docked', Math.abs(toc.offsetTop - main.offsetTop) < 1); };
114
+ dock(); window.addEventListener('resize', dock);
115
+ var links = Array.prototype.slice.call(toc.querySelectorAll('a[href^="#"]'));
116
+ if (!('IntersectionObserver' in window)) return;
117
+ var io = new IntersectionObserver(function (entries) {
118
+ entries.forEach(function (e) {
119
+ if (!e.isIntersecting) return;
120
+ links.forEach(function (a) { a.setAttribute('aria-current', a.getAttribute('href') === '#' + e.target.id ? 'true' : 'false'); });
121
+ });
122
+ }, { rootMargin: '0px 0px -70% 0px' });
123
+ links.forEach(function (a) { var t = document.getElementById(a.getAttribute('href').slice(1)); if (t) io.observe(t); });
124
+ });
125
+ });
126
+ })();
package/dist/contrast.md CHANGED
@@ -1,101 +1,101 @@
1
- # Contrast report (generated)
2
-
3
- 95 declared pairs, each measured in both themes. Target is the pair's `min`.
4
-
5
- | Foreground | Background | Min | Light | Dark | Result |
6
- |---|---|---|---|---|---|
7
- | `color.text.primary` | `color.surface.base` | 7 | 16.36 | 12.71 | pass |
8
- | `color.text.primary` | `color.surface.raised` | 7 | 17.27 | 11.25 | pass |
9
- | `color.text.primary` | `color.surface.sunken` | 7 | 15.28 | 15.28 | pass |
10
- | `color.text.primary` | `color.surface.hover` | 7 | 15.28 | 10.21 | pass |
11
- | `color.text.primary` | `color.surface.highlight` | 7 | 15.47 | 9.91 | pass |
12
- | `color.text.primary` | `color.status.success.surface` | 7 | 16.48 | 15.12 | pass |
13
- | `color.text.primary` | `color.status.warning.surface` | 7 | 16.29 | 15.28 | pass |
14
- | `color.text.primary` | `color.status.danger.surface` | 7 | 16.23 | 15.57 | pass |
15
- | `color.text.primary` | `color.status.info.surface` | 7 | 16.28 | 15.26 | pass |
16
- | `color.text.secondary` | `color.surface.base` | 7 | 10.92 | 8.96 | pass |
17
- | `color.text.secondary` | `color.surface.raised` | 7 | 11.53 | 7.93 | pass |
18
- | `color.text.secondary` | `color.surface.sunken` | 7 | 10.21 | 10.78 | pass |
19
- | `color.text.secondary` | `color.surface.hover` | 7 | 10.21 | 7.20 | pass |
20
- | `color.text.muted` | `color.surface.base` | 4.5 | 6.74 | 6.34 | pass |
21
- | `color.text.muted` | `color.surface.raised` | 4.5 | 7.11 | 5.61 | pass |
22
- | `color.text.muted` | `color.surface.sunken` | 4.5 | 6.29 | 7.62 | pass |
23
- | `color.text.muted` | `color.surface.hover` | 4.5 | 6.29 | 5.09 | pass |
24
- | `color.text.accent` | `color.surface.base` | 4.5 | 6.41 | 9.18 | pass |
25
- | `color.text.accent` | `color.surface.raised` | 4.5 | 6.77 | 8.12 | pass |
26
- | `color.text.inverse` | `color.surface.inverse` | 7 | 13.61 | 12.71 | pass |
27
- | `color.text.on-accent` | `color.accent.fill.rest` | 4.5 | 6.77 | 12.02 | pass |
28
- | `color.text.on-accent` | `color.accent.fill.hover` | 4.5 | 11.20 | 15.03 | pass |
29
- | `color.link.rest` | `color.surface.base` | 7 | 10.61 | 9.18 | pass |
30
- | `color.link.rest` | `color.surface.raised` | 7 | 11.20 | 8.12 | pass |
31
- | `color.link.rest` | `color.surface.sunken` | 7 | 9.91 | 11.03 | pass |
32
- | `color.link.hover` | `color.surface.base` | 7 | 13.21 | 11.47 | pass |
33
- | `color.link.hover` | `color.surface.raised` | 7 | 13.94 | 10.15 | pass |
34
- | `color.link.hover` | `color.surface.hover` | 7 | 12.34 | 9.21 | pass |
35
- | `color.border.strong` | `color.surface.base` | 3 | 3.23 | 4.21 | pass |
36
- | `color.border.strong` | `color.surface.raised` | 3 | 3.41 | 3.73 | pass |
37
- | `color.accent.fill.rest` | `color.surface.base` | 3 | 6.41 | 9.18 | pass |
38
- | `color.accent.fill.rest` | `color.surface.raised` | 3 | 6.77 | 8.12 | pass |
39
- | `color.accent.fill.hover` | `color.surface.base` | 3 | 10.61 | 11.47 | pass |
40
- | `color.accent.border` | `color.surface.base` | 3 | 4.46 | 6.57 | pass |
41
- | `color.accent.border` | `color.surface.raised` | 3 | 4.71 | 5.81 | pass |
42
- | `color.focus.ring` | `color.surface.base` | 3 | 6.76 | 8.95 | pass |
43
- | `color.focus.ring` | `color.surface.raised` | 3 | 7.13 | 7.92 | pass |
44
- | `color.focus.ring` | `color.surface.sunken` | 3 | 6.31 | 10.76 | pass |
45
- | `color.ornament.rest` | `color.surface.base` | 3 | 4.46 | 6.57 | pass |
46
- | `color.status.success.text` | `color.status.success.surface` | 4.5 | 6.46 | 10.91 | pass |
47
- | `color.status.success.text` | `color.surface.base` | 4.5 | 6.41 | 9.18 | pass |
48
- | `color.status.success.text` | `color.surface.raised` | 4.5 | 6.77 | 8.12 | pass |
49
- | `color.status.success.border` | `color.status.success.surface` | 3 | 4.49 | 7.81 | pass |
50
- | `color.status.warning.text` | `color.status.warning.surface` | 4.5 | 6.79 | 10.70 | pass |
51
- | `color.status.warning.text` | `color.surface.base` | 4.5 | 6.82 | 8.90 | pass |
52
- | `color.status.warning.text` | `color.surface.raised` | 4.5 | 7.20 | 7.88 | pass |
53
- | `color.status.warning.border` | `color.status.warning.surface` | 3 | 4.73 | 7.56 | pass |
54
- | `color.status.danger.text` | `color.status.danger.surface` | 4.5 | 7.21 | 10.56 | pass |
55
- | `color.status.danger.text` | `color.surface.base` | 4.5 | 7.27 | 8.62 | pass |
56
- | `color.status.danger.text` | `color.surface.raised` | 4.5 | 7.67 | 7.63 | pass |
57
- | `color.status.danger.border` | `color.status.danger.surface` | 3 | 5.04 | 7.39 | pass |
58
- | `color.status.info.text` | `color.status.info.surface` | 4.5 | 6.72 | 10.74 | pass |
59
- | `color.status.info.text` | `color.surface.base` | 4.5 | 6.76 | 8.95 | pass |
60
- | `color.status.info.text` | `color.surface.raised` | 4.5 | 7.13 | 7.92 | pass |
61
- | `color.status.info.border` | `color.status.info.surface` | 3 | 4.70 | 7.64 | pass |
62
- | `color.syntax.comment` | `color.surface.sunken` | 4.5 | 6.29 | 7.62 | pass |
63
- | `color.syntax.comment` | `color.syntax.line-highlight` | 4.5 | 5.55 | 6.34 | pass |
64
- | `color.syntax.keyword` | `color.surface.sunken` | 4.5 | 6.79 | 10.36 | pass |
65
- | `color.syntax.keyword` | `color.syntax.line-highlight` | 4.5 | 5.98 | 8.62 | pass |
66
- | `color.syntax.string` | `color.surface.sunken` | 4.5 | 5.99 | 11.03 | pass |
67
- | `color.syntax.string` | `color.syntax.line-highlight` | 4.5 | 5.28 | 9.18 | pass |
68
- | `color.syntax.number` | `color.surface.sunken` | 4.5 | 6.37 | 10.70 | pass |
69
- | `color.syntax.number` | `color.syntax.line-highlight` | 4.5 | 5.61 | 8.90 | pass |
70
- | `color.syntax.function` | `color.surface.sunken` | 4.5 | 6.31 | 10.76 | pass |
71
- | `color.syntax.function` | `color.syntax.line-highlight` | 4.5 | 5.56 | 8.95 | pass |
72
- | `color.syntax.type` | `color.surface.sunken` | 4.5 | 10.27 | 13.46 | pass |
73
- | `color.syntax.type` | `color.syntax.line-highlight` | 4.5 | 9.05 | 11.19 | pass |
74
- | `color.syntax.tag` | `color.surface.sunken` | 4.5 | 10.75 | 13.18 | pass |
75
- | `color.syntax.tag` | `color.syntax.line-highlight` | 4.5 | 9.47 | 10.96 | pass |
76
- | `color.syntax.attribute` | `color.surface.sunken` | 4.5 | 10.30 | 13.43 | pass |
77
- | `color.syntax.attribute` | `color.syntax.line-highlight` | 4.5 | 9.08 | 11.18 | pass |
78
- | `color.syntax.variable` | `color.surface.sunken` | 4.5 | 15.28 | 15.28 | pass |
79
- | `color.syntax.variable` | `color.syntax.line-highlight` | 4.5 | 13.47 | 12.71 | pass |
80
- | `color.syntax.operator` | `color.surface.sunken` | 4.5 | 10.21 | 10.78 | pass |
81
- | `color.syntax.operator` | `color.syntax.line-highlight` | 4.5 | 9.00 | 8.96 | pass |
82
- | `color.syntax.meta` | `color.surface.sunken` | 4.5 | 9.91 | 13.79 | pass |
83
- | `color.syntax.meta` | `color.syntax.line-highlight` | 4.5 | 8.74 | 11.47 | pass |
84
- | `color.syntax.inserted` | `color.surface.sunken` | 4.5 | 9.91 | 13.79 | pass |
85
- | `color.syntax.inserted` | `color.syntax.line-highlight` | 4.5 | 8.74 | 11.47 | pass |
86
- | `color.syntax.deleted` | `color.surface.sunken` | 4.5 | 10.75 | 13.18 | pass |
87
- | `color.syntax.deleted` | `color.syntax.line-highlight` | 4.5 | 9.47 | 10.96 | pass |
88
- | `color.syntax.heading` | `color.surface.sunken` | 4.5 | 10.27 | 13.46 | pass |
89
- | `color.syntax.heading` | `color.syntax.line-highlight` | 4.5 | 9.05 | 11.19 | pass |
90
- | `color.syntax.line-number` | `color.surface.sunken` | 4.5 | 6.29 | 7.62 | pass |
91
- | `color.syntax.line-number` | `color.syntax.line-highlight` | 4.5 | 5.55 | 6.34 | pass |
92
- | `color.data.1` | `color.surface.base` | 3 | 4.73 | 6.37 | pass |
93
- | `color.data.1` | `color.surface.raised` | 3 | 4.99 | 5.64 | pass |
94
- | `color.data.2` | `color.surface.base` | 3 | 4.46 | 6.57 | pass |
95
- | `color.data.2` | `color.surface.raised` | 3 | 4.71 | 5.81 | pass |
96
- | `color.data.3` | `color.surface.base` | 3 | 5.08 | 6.04 | pass |
97
- | `color.data.3` | `color.surface.raised` | 3 | 5.37 | 5.34 | pass |
98
- | `color.data.4` | `color.surface.base` | 3 | 4.75 | 6.29 | pass |
99
- | `color.data.4` | `color.surface.raised` | 3 | 5.02 | 5.57 | pass |
100
- | `color.data.5` | `color.surface.base` | 3 | 4.69 | 6.34 | pass |
101
- | `color.data.5` | `color.surface.raised` | 3 | 4.95 | 5.61 | pass |
1
+ # Contrast report (generated)
2
+
3
+ 95 declared pairs, each measured in both themes. Target is the pair's `min`.
4
+
5
+ | Foreground | Background | Min | Light | Dark | Result |
6
+ |---|---|---|---|---|---|
7
+ | `color.text.primary` | `color.surface.base` | 7 | 16.36 | 12.71 | pass |
8
+ | `color.text.primary` | `color.surface.raised` | 7 | 17.27 | 11.25 | pass |
9
+ | `color.text.primary` | `color.surface.sunken` | 7 | 15.28 | 15.28 | pass |
10
+ | `color.text.primary` | `color.surface.hover` | 7 | 15.28 | 10.21 | pass |
11
+ | `color.text.primary` | `color.surface.highlight` | 7 | 15.47 | 9.91 | pass |
12
+ | `color.text.primary` | `color.status.success.surface` | 7 | 16.48 | 15.12 | pass |
13
+ | `color.text.primary` | `color.status.warning.surface` | 7 | 16.29 | 15.28 | pass |
14
+ | `color.text.primary` | `color.status.danger.surface` | 7 | 16.23 | 15.57 | pass |
15
+ | `color.text.primary` | `color.status.info.surface` | 7 | 16.28 | 15.26 | pass |
16
+ | `color.text.secondary` | `color.surface.base` | 7 | 10.92 | 8.96 | pass |
17
+ | `color.text.secondary` | `color.surface.raised` | 7 | 11.53 | 7.93 | pass |
18
+ | `color.text.secondary` | `color.surface.sunken` | 7 | 10.21 | 10.78 | pass |
19
+ | `color.text.secondary` | `color.surface.hover` | 7 | 10.21 | 7.20 | pass |
20
+ | `color.text.muted` | `color.surface.base` | 4.5 | 6.74 | 6.34 | pass |
21
+ | `color.text.muted` | `color.surface.raised` | 4.5 | 7.11 | 5.61 | pass |
22
+ | `color.text.muted` | `color.surface.sunken` | 4.5 | 6.29 | 7.62 | pass |
23
+ | `color.text.muted` | `color.surface.hover` | 4.5 | 6.29 | 5.09 | pass |
24
+ | `color.text.accent` | `color.surface.base` | 4.5 | 6.41 | 9.18 | pass |
25
+ | `color.text.accent` | `color.surface.raised` | 4.5 | 6.77 | 8.12 | pass |
26
+ | `color.text.inverse` | `color.surface.inverse` | 7 | 13.61 | 12.71 | pass |
27
+ | `color.text.on-accent` | `color.accent.fill.rest` | 4.5 | 6.77 | 12.02 | pass |
28
+ | `color.text.on-accent` | `color.accent.fill.hover` | 4.5 | 11.20 | 15.03 | pass |
29
+ | `color.link.rest` | `color.surface.base` | 7 | 10.61 | 9.18 | pass |
30
+ | `color.link.rest` | `color.surface.raised` | 7 | 11.20 | 8.12 | pass |
31
+ | `color.link.rest` | `color.surface.sunken` | 7 | 9.91 | 11.03 | pass |
32
+ | `color.link.hover` | `color.surface.base` | 7 | 13.21 | 11.47 | pass |
33
+ | `color.link.hover` | `color.surface.raised` | 7 | 13.94 | 10.15 | pass |
34
+ | `color.link.hover` | `color.surface.hover` | 7 | 12.34 | 9.21 | pass |
35
+ | `color.border.strong` | `color.surface.base` | 3 | 3.23 | 4.21 | pass |
36
+ | `color.border.strong` | `color.surface.raised` | 3 | 3.41 | 3.73 | pass |
37
+ | `color.accent.fill.rest` | `color.surface.base` | 3 | 6.41 | 9.18 | pass |
38
+ | `color.accent.fill.rest` | `color.surface.raised` | 3 | 6.77 | 8.12 | pass |
39
+ | `color.accent.fill.hover` | `color.surface.base` | 3 | 10.61 | 11.47 | pass |
40
+ | `color.accent.border` | `color.surface.base` | 3 | 4.46 | 6.57 | pass |
41
+ | `color.accent.border` | `color.surface.raised` | 3 | 4.71 | 5.81 | pass |
42
+ | `color.focus.ring` | `color.surface.base` | 3 | 6.76 | 8.95 | pass |
43
+ | `color.focus.ring` | `color.surface.raised` | 3 | 7.13 | 7.92 | pass |
44
+ | `color.focus.ring` | `color.surface.sunken` | 3 | 6.31 | 10.76 | pass |
45
+ | `color.ornament.rest` | `color.surface.base` | 3 | 4.46 | 6.57 | pass |
46
+ | `color.status.success.text` | `color.status.success.surface` | 4.5 | 6.46 | 10.91 | pass |
47
+ | `color.status.success.text` | `color.surface.base` | 4.5 | 6.41 | 9.18 | pass |
48
+ | `color.status.success.text` | `color.surface.raised` | 4.5 | 6.77 | 8.12 | pass |
49
+ | `color.status.success.border` | `color.status.success.surface` | 3 | 4.49 | 7.81 | pass |
50
+ | `color.status.warning.text` | `color.status.warning.surface` | 4.5 | 6.79 | 10.70 | pass |
51
+ | `color.status.warning.text` | `color.surface.base` | 4.5 | 6.82 | 8.90 | pass |
52
+ | `color.status.warning.text` | `color.surface.raised` | 4.5 | 7.20 | 7.88 | pass |
53
+ | `color.status.warning.border` | `color.status.warning.surface` | 3 | 4.73 | 7.56 | pass |
54
+ | `color.status.danger.text` | `color.status.danger.surface` | 4.5 | 7.21 | 10.56 | pass |
55
+ | `color.status.danger.text` | `color.surface.base` | 4.5 | 7.27 | 8.62 | pass |
56
+ | `color.status.danger.text` | `color.surface.raised` | 4.5 | 7.67 | 7.63 | pass |
57
+ | `color.status.danger.border` | `color.status.danger.surface` | 3 | 5.04 | 7.39 | pass |
58
+ | `color.status.info.text` | `color.status.info.surface` | 4.5 | 6.72 | 10.74 | pass |
59
+ | `color.status.info.text` | `color.surface.base` | 4.5 | 6.76 | 8.95 | pass |
60
+ | `color.status.info.text` | `color.surface.raised` | 4.5 | 7.13 | 7.92 | pass |
61
+ | `color.status.info.border` | `color.status.info.surface` | 3 | 4.70 | 7.64 | pass |
62
+ | `color.syntax.comment` | `color.surface.sunken` | 4.5 | 6.29 | 7.62 | pass |
63
+ | `color.syntax.comment` | `color.syntax.line-highlight` | 4.5 | 5.55 | 6.34 | pass |
64
+ | `color.syntax.keyword` | `color.surface.sunken` | 4.5 | 6.79 | 10.36 | pass |
65
+ | `color.syntax.keyword` | `color.syntax.line-highlight` | 4.5 | 5.98 | 8.62 | pass |
66
+ | `color.syntax.string` | `color.surface.sunken` | 4.5 | 5.99 | 11.03 | pass |
67
+ | `color.syntax.string` | `color.syntax.line-highlight` | 4.5 | 5.28 | 9.18 | pass |
68
+ | `color.syntax.number` | `color.surface.sunken` | 4.5 | 6.37 | 10.70 | pass |
69
+ | `color.syntax.number` | `color.syntax.line-highlight` | 4.5 | 5.61 | 8.90 | pass |
70
+ | `color.syntax.function` | `color.surface.sunken` | 4.5 | 6.31 | 10.76 | pass |
71
+ | `color.syntax.function` | `color.syntax.line-highlight` | 4.5 | 5.56 | 8.95 | pass |
72
+ | `color.syntax.type` | `color.surface.sunken` | 4.5 | 10.27 | 13.46 | pass |
73
+ | `color.syntax.type` | `color.syntax.line-highlight` | 4.5 | 9.05 | 11.19 | pass |
74
+ | `color.syntax.tag` | `color.surface.sunken` | 4.5 | 10.75 | 13.18 | pass |
75
+ | `color.syntax.tag` | `color.syntax.line-highlight` | 4.5 | 9.47 | 10.96 | pass |
76
+ | `color.syntax.attribute` | `color.surface.sunken` | 4.5 | 10.30 | 13.43 | pass |
77
+ | `color.syntax.attribute` | `color.syntax.line-highlight` | 4.5 | 9.08 | 11.18 | pass |
78
+ | `color.syntax.variable` | `color.surface.sunken` | 4.5 | 15.28 | 15.28 | pass |
79
+ | `color.syntax.variable` | `color.syntax.line-highlight` | 4.5 | 13.47 | 12.71 | pass |
80
+ | `color.syntax.operator` | `color.surface.sunken` | 4.5 | 10.21 | 10.78 | pass |
81
+ | `color.syntax.operator` | `color.syntax.line-highlight` | 4.5 | 9.00 | 8.96 | pass |
82
+ | `color.syntax.meta` | `color.surface.sunken` | 4.5 | 9.91 | 13.79 | pass |
83
+ | `color.syntax.meta` | `color.syntax.line-highlight` | 4.5 | 8.74 | 11.47 | pass |
84
+ | `color.syntax.inserted` | `color.surface.sunken` | 4.5 | 9.91 | 13.79 | pass |
85
+ | `color.syntax.inserted` | `color.syntax.line-highlight` | 4.5 | 8.74 | 11.47 | pass |
86
+ | `color.syntax.deleted` | `color.surface.sunken` | 4.5 | 10.75 | 13.18 | pass |
87
+ | `color.syntax.deleted` | `color.syntax.line-highlight` | 4.5 | 9.47 | 10.96 | pass |
88
+ | `color.syntax.heading` | `color.surface.sunken` | 4.5 | 10.27 | 13.46 | pass |
89
+ | `color.syntax.heading` | `color.syntax.line-highlight` | 4.5 | 9.05 | 11.19 | pass |
90
+ | `color.syntax.line-number` | `color.surface.sunken` | 4.5 | 6.29 | 7.62 | pass |
91
+ | `color.syntax.line-number` | `color.syntax.line-highlight` | 4.5 | 5.55 | 6.34 | pass |
92
+ | `color.data.1` | `color.surface.base` | 3 | 4.73 | 6.37 | pass |
93
+ | `color.data.1` | `color.surface.raised` | 3 | 4.99 | 5.64 | pass |
94
+ | `color.data.2` | `color.surface.base` | 3 | 4.46 | 6.57 | pass |
95
+ | `color.data.2` | `color.surface.raised` | 3 | 4.71 | 5.81 | pass |
96
+ | `color.data.3` | `color.surface.base` | 3 | 5.08 | 6.04 | pass |
97
+ | `color.data.3` | `color.surface.raised` | 3 | 5.37 | 5.34 | pass |
98
+ | `color.data.4` | `color.surface.base` | 3 | 4.75 | 6.29 | pass |
99
+ | `color.data.4` | `color.surface.raised` | 3 | 5.02 | 5.57 | pass |
100
+ | `color.data.5` | `color.surface.base` | 3 | 4.69 | 6.34 | pass |
101
+ | `color.data.5` | `color.surface.raised` | 3 | 4.95 | 5.61 | pass |
package/dist/fonts.css CHANGED
@@ -1,3 +1,3 @@
1
- @font-face { font-family: "National Park"; src: url("../fonts/national-park-latin-wght.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }
2
- @font-face { font-family: "JetBrains Mono"; src: url("../fonts/jetbrains-mono-latin-wght.woff2") format("woff2"); font-weight: 100 800; font-style: normal; font-display: swap; }
3
- @font-face { font-family: "Yarndings 12"; src: url("../fonts/yarndings-12-latin.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
1
+ @font-face { font-family: "National Park"; src: url("../fonts/national-park-latin-wght.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }
2
+ @font-face { font-family: "JetBrains Mono"; src: url("../fonts/jetbrains-mono-latin-wght.woff2") format("woff2"); font-weight: 100 800; font-style: normal; font-display: swap; }
3
+ @font-face { font-family: "Yarndings 12"; src: url("../fonts/yarndings-12-latin.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
package/dist/icons.svg CHANGED
@@ -1,18 +1,18 @@
1
- <svg xmlns="http://www.w3.org/2000/svg">
2
- <symbol id="cx-icon-arrow-forward" viewBox="0 -960 960 960"><path d="M693.69-457.31H180v-45.38h513.69L448.39-748 480-780l300 300-300 300-31.61-32 245.3-245.31Z"/></symbol>
3
- <symbol id="cx-icon-arrow-back" viewBox="0 -960 960 960"><path d="M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z"/></symbol>
4
- <symbol id="cx-icon-arrow-upward" viewBox="0 -960 960 960"><path d="M457.31-180v-513.69L212-448.39 180-480l300-300 300 300-32 31.61-245.31-245.3V-180h-45.38Z"/></symbol>
5
- <symbol id="cx-icon-arrow-outward" viewBox="0 -960 960 960"><path d="M241.62-258.69 210-290.31l413.92-414.31H241.31V-750h460v460h-45.39v-382.62l-414.3 413.93Z"/></symbol>
6
- <symbol id="cx-icon-content-copy" viewBox="0 -960 960 960"><path d="M260.77-230.77V-860H770v629.23H260.77Zm45.38-45.39h418.46v-538.45H306.15v538.45ZM150-120v-616.92h45.39v571.53h451.53V-120H150Zm156.15-156.16v-538.45 538.45Z"/></symbol>
7
- <symbol id="cx-icon-check" viewBox="0 -960 960 960"><path d="M379.15-258.31 168.62-468.85l32.61-32.23 177.92 177.93 379-379.39 32.62 32.62-411.62 411.61Z"/></symbol>
8
- <symbol id="cx-icon-theme-light" viewBox="0 -960 960 960"><path d="M575.15-384.85q39.46-39.46 39.46-95.15 0-55.69-39.46-95.15-39.46-39.46-95.15-39.46-55.69 0-95.15 39.46-39.46 39.46-39.46 95.15 0 55.69 39.46 95.15 39.46 39.46 95.15 39.46 55.69 0 95.15-39.46Zm-222.61 32.31Q300-405.08 300-480q0-74.92 52.54-127.46Q405.08-660 480-660q74.92 0 127.46 52.54Q660-554.92 660-480q0 74.92-52.54 127.46Q554.92-300 480-300q-74.92 0-127.46-52.54ZM200-457.31H50v-45.38h150v45.38Zm710 0H760v-45.38h150v45.38ZM457.31-760v-150h45.38v150h-45.38Zm0 710v-150h45.38v150h-45.38ZM267.39-662.62l-93.08-90.46 32.23-33.61L296.77-694l-29.38 31.38Zm486.69 488.7-91.46-92.7L693.61-298l92.08 91.08-31.61 33ZM662-693.61l91.08-92.08 33.61 31.61-92.08 91.46L662-693.61ZM173.92-206.54 266-298l31.23 31.23-90.69 92.85-32.62-32.62ZM480-480Z"/></symbol>
9
- <symbol id="cx-icon-theme-dark" viewBox="0 -960 960 960"><path d="M481.15-140q-141.66 0-240.83-99.17-99.16-99.16-99.16-240.83 0-135.77 92.11-232.88 92.11-97.12 225.57-105.2 4.16 0 9.12.31 4.96.31 13.96.49-27.15 30.9-41.96 71.74-14.81 40.85-14.81 85.54 0 98.33 68.84 167.17Q562.82-424 661.15-424q44.31 0 85.35-13.69 41.04-13.69 71.5-38.61.23 7.38.54 11.23.3 3.84.3 7.38-7.69 133.46-104.8 225.57Q616.92-140 481.15-140Zm0-45.39q103.23 0 181.35-62.49 78.11-62.5 101.19-149.66-23.46 9.46-49.82 14.19-26.36 4.74-52.72 4.74-116.92 0-199.15-82.23T379.77-660q0-23.23 4.42-48.62 4.42-25.38 15.5-56.15-92.61 28.16-152.88 107.47-60.27 79.31-60.27 177.3 0 122.77 85.92 208.69t208.69 85.92Zm-5.53-289.69Z"/></symbol>
10
- <symbol id="cx-icon-note" viewBox="0 -960 960 960"><path d="M459.54-290h45.38v-230h-45.38v230Zm39.73-301.56q7.96-7.57 7.96-19.05 0-11.95-7.85-19.9-7.85-7.95-19.36-7.95-11.9 0-19.58 7.95-7.67 7.95-7.67 19.9 0 11.48 7.94 19.05 7.95 7.56 19.27 7.56 11.33 0 19.29-7.56ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z"/></symbol>
11
- <symbol id="cx-icon-tip" viewBox="0 -960 960 960"><path d="M426.92-117.92q-22.15-21-23.69-51.93h153.54q-1.54 30.93-23.69 51.93-22.16 21-53.08 21-30.92 0-53.08-21Zm-98.53-123.54v-45.39h303.22v45.39H328.39Zm2.69-116q-60.62-40.69-95.85-100.39Q200-517.54 200-592.38q0-114.7 82.65-197.35 82.66-82.65 197.35-82.65t197.35 82.65Q760-707.08 760-592.38q0 74.84-34.92 134.53-34.93 59.7-96.16 100.39H331.08Zm16.23-45.39h266q47.23-32 74.27-81.84 27.03-49.85 27.03-107.69 0-97.08-68.76-165.85Q577.08-827 480-827t-165.85 68.77q-68.76 68.77-68.76 165.85 0 57.84 27.03 107.69 27.04 49.84 74.89 81.84Zm132.69 0Z"/></symbol>
12
- <symbol id="cx-icon-warning" viewBox="0 -960 960 960"><path d="M74.62-140 480-840l405.38 700H74.62Zm78.61-45.39h653.54L480-749.23 153.23-185.39Zm347.46-67.41q7.16-7.33 7.16-17.84t-7.34-17.67q-7.34-7.15-17.85-7.15-10.51 0-17.66 7.33-7.15 7.34-7.15 17.85 0 10.51 7.33 17.66 7.34 7.16 17.85 7.16 10.51 0 17.66-7.34Zm-40.54-90.58h45.39v-217.85h-45.39v217.85ZM480-467.31Z"/></symbol>
13
- <symbol id="cx-icon-danger" viewBox="0 -960 960 960"><path d="M480-292.15q11.88 0 20.37-8.58 8.48-8.58 8.48-20.08 0-11.5-8.48-20.07-8.49-8.58-20.37-8.58t-20.17 8.58q-8.29 8.57-8.29 20.07t8.29 20.08q8.29 8.58 20.17 8.58ZM457.31-420h45.38v-258h-45.38v258ZM338.46-140 140-338.28v-283.26L338.28-820h283.26L820-621.72v283.26L621.72-140H338.46Zm18.74-45.39h245.49L774.61-357.2v-245.49L602.8-774.61H357.31L185.39-602.8v245.49L357.2-185.39ZM480-480Z"/></symbol>
14
- <symbol id="cx-icon-rss" viewBox="0 -960 960 960"><path d="M157.96-158.1Q140-176.2 140-201.2q0-24.61 18.1-42.67 18.1-18.05 43.1-18.05 24.61 0 42.67 18 18.05 18.01 18.05 43 0 25-18 42.96-18.01 17.96-43 17.96-25 0-42.96-18.1ZM712.69-140q0-119.16-44.7-222.83Q623.3-466.5 544.7-544.71 466.5-623.3 362.75-668 259-712.69 140-712.69V-780q133.54 0 249.42 50.12 115.89 50.11 203.12 137.34T729.88-389.5Q780-273.7 780-140h-67.31Zm-243.77 0q0-69.23-25.6-129.75-25.61-60.51-70.63-106.41-45-46.23-104.25-72.34-59.26-26.12-128.44-26.12v-67.3q83.62 0 155.31 31.38Q367-479.15 420.83-424.2q53.83 54.94 84.62 127.69 30.78 72.75 30.78 156.51h-67.31Z"/></symbol>
15
- <symbol id="cx-icon-expand" viewBox="0 -960 960 960"><path d="M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z"/></symbol>
16
- <symbol id="cx-icon-pause" viewBox="0 -960 960 960"><path d="M533.85-220v-520H740v520H533.85ZM220-220v-520h206.54v520H220Zm359.23-45.39h115.38v-429.22H579.23v429.22Zm-313.84 0h115.76v-429.22H265.39v429.22Zm0-429.22v429.22-429.22Zm313.84 0v429.22-429.22Z"/></symbol>
17
- <symbol id="cx-icon-play" viewBox="0 -960 960 960"><path d="M340-238.39v-487.68l383.07 243.84L340-238.39Zm45.39-243.84Zm0 161 253.99-161-253.99-161v322Z"/></symbol>
18
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="cx-icon-arrow-forward" viewBox="0 -960 960 960"><path d="M693.69-457.31H180v-45.38h513.69L448.39-748 480-780l300 300-300 300-31.61-32 245.3-245.31Z"/></symbol>
3
+ <symbol id="cx-icon-arrow-back" viewBox="0 -960 960 960"><path d="M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z"/></symbol>
4
+ <symbol id="cx-icon-arrow-upward" viewBox="0 -960 960 960"><path d="M457.31-180v-513.69L212-448.39 180-480l300-300 300 300-32 31.61-245.31-245.3V-180h-45.38Z"/></symbol>
5
+ <symbol id="cx-icon-arrow-outward" viewBox="0 -960 960 960"><path d="M241.62-258.69 210-290.31l413.92-414.31H241.31V-750h460v460h-45.39v-382.62l-414.3 413.93Z"/></symbol>
6
+ <symbol id="cx-icon-content-copy" viewBox="0 -960 960 960"><path d="M260.77-230.77V-860H770v629.23H260.77Zm45.38-45.39h418.46v-538.45H306.15v538.45ZM150-120v-616.92h45.39v571.53h451.53V-120H150Zm156.15-156.16v-538.45 538.45Z"/></symbol>
7
+ <symbol id="cx-icon-check" viewBox="0 -960 960 960"><path d="M379.15-258.31 168.62-468.85l32.61-32.23 177.92 177.93 379-379.39 32.62 32.62-411.62 411.61Z"/></symbol>
8
+ <symbol id="cx-icon-theme-light" viewBox="0 -960 960 960"><path d="M575.15-384.85q39.46-39.46 39.46-95.15 0-55.69-39.46-95.15-39.46-39.46-95.15-39.46-55.69 0-95.15 39.46-39.46 39.46-39.46 95.15 0 55.69 39.46 95.15 39.46 39.46 95.15 39.46 55.69 0 95.15-39.46Zm-222.61 32.31Q300-405.08 300-480q0-74.92 52.54-127.46Q405.08-660 480-660q74.92 0 127.46 52.54Q660-554.92 660-480q0 74.92-52.54 127.46Q554.92-300 480-300q-74.92 0-127.46-52.54ZM200-457.31H50v-45.38h150v45.38Zm710 0H760v-45.38h150v45.38ZM457.31-760v-150h45.38v150h-45.38Zm0 710v-150h45.38v150h-45.38ZM267.39-662.62l-93.08-90.46 32.23-33.61L296.77-694l-29.38 31.38Zm486.69 488.7-91.46-92.7L693.61-298l92.08 91.08-31.61 33ZM662-693.61l91.08-92.08 33.61 31.61-92.08 91.46L662-693.61ZM173.92-206.54 266-298l31.23 31.23-90.69 92.85-32.62-32.62ZM480-480Z"/></symbol>
9
+ <symbol id="cx-icon-theme-dark" viewBox="0 -960 960 960"><path d="M481.15-140q-141.66 0-240.83-99.17-99.16-99.16-99.16-240.83 0-135.77 92.11-232.88 92.11-97.12 225.57-105.2 4.16 0 9.12.31 4.96.31 13.96.49-27.15 30.9-41.96 71.74-14.81 40.85-14.81 85.54 0 98.33 68.84 167.17Q562.82-424 661.15-424q44.31 0 85.35-13.69 41.04-13.69 71.5-38.61.23 7.38.54 11.23.3 3.84.3 7.38-7.69 133.46-104.8 225.57Q616.92-140 481.15-140Zm0-45.39q103.23 0 181.35-62.49 78.11-62.5 101.19-149.66-23.46 9.46-49.82 14.19-26.36 4.74-52.72 4.74-116.92 0-199.15-82.23T379.77-660q0-23.23 4.42-48.62 4.42-25.38 15.5-56.15-92.61 28.16-152.88 107.47-60.27 79.31-60.27 177.3 0 122.77 85.92 208.69t208.69 85.92Zm-5.53-289.69Z"/></symbol>
10
+ <symbol id="cx-icon-note" viewBox="0 -960 960 960"><path d="M459.54-290h45.38v-230h-45.38v230Zm39.73-301.56q7.96-7.57 7.96-19.05 0-11.95-7.85-19.9-7.85-7.95-19.36-7.95-11.9 0-19.58 7.95-7.67 7.95-7.67 19.9 0 11.48 7.94 19.05 7.95 7.56 19.27 7.56 11.33 0 19.29-7.56ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z"/></symbol>
11
+ <symbol id="cx-icon-tip" viewBox="0 -960 960 960"><path d="M426.92-117.92q-22.15-21-23.69-51.93h153.54q-1.54 30.93-23.69 51.93-22.16 21-53.08 21-30.92 0-53.08-21Zm-98.53-123.54v-45.39h303.22v45.39H328.39Zm2.69-116q-60.62-40.69-95.85-100.39Q200-517.54 200-592.38q0-114.7 82.65-197.35 82.66-82.65 197.35-82.65t197.35 82.65Q760-707.08 760-592.38q0 74.84-34.92 134.53-34.93 59.7-96.16 100.39H331.08Zm16.23-45.39h266q47.23-32 74.27-81.84 27.03-49.85 27.03-107.69 0-97.08-68.76-165.85Q577.08-827 480-827t-165.85 68.77q-68.76 68.77-68.76 165.85 0 57.84 27.03 107.69 27.04 49.84 74.89 81.84Zm132.69 0Z"/></symbol>
12
+ <symbol id="cx-icon-warning" viewBox="0 -960 960 960"><path d="M74.62-140 480-840l405.38 700H74.62Zm78.61-45.39h653.54L480-749.23 153.23-185.39Zm347.46-67.41q7.16-7.33 7.16-17.84t-7.34-17.67q-7.34-7.15-17.85-7.15-10.51 0-17.66 7.33-7.15 7.34-7.15 17.85 0 10.51 7.33 17.66 7.34 7.16 17.85 7.16 10.51 0 17.66-7.34Zm-40.54-90.58h45.39v-217.85h-45.39v217.85ZM480-467.31Z"/></symbol>
13
+ <symbol id="cx-icon-danger" viewBox="0 -960 960 960"><path d="M480-292.15q11.88 0 20.37-8.58 8.48-8.58 8.48-20.08 0-11.5-8.48-20.07-8.49-8.58-20.37-8.58t-20.17 8.58q-8.29 8.57-8.29 20.07t8.29 20.08q8.29 8.58 20.17 8.58ZM457.31-420h45.38v-258h-45.38v258ZM338.46-140 140-338.28v-283.26L338.28-820h283.26L820-621.72v283.26L621.72-140H338.46Zm18.74-45.39h245.49L774.61-357.2v-245.49L602.8-774.61H357.31L185.39-602.8v245.49L357.2-185.39ZM480-480Z"/></symbol>
14
+ <symbol id="cx-icon-rss" viewBox="0 -960 960 960"><path d="M157.96-158.1Q140-176.2 140-201.2q0-24.61 18.1-42.67 18.1-18.05 43.1-18.05 24.61 0 42.67 18 18.05 18.01 18.05 43 0 25-18 42.96-18.01 17.96-43 17.96-25 0-42.96-18.1ZM712.69-140q0-119.16-44.7-222.83Q623.3-466.5 544.7-544.71 466.5-623.3 362.75-668 259-712.69 140-712.69V-780q133.54 0 249.42 50.12 115.89 50.11 203.12 137.34T729.88-389.5Q780-273.7 780-140h-67.31Zm-243.77 0q0-69.23-25.6-129.75-25.61-60.51-70.63-106.41-45-46.23-104.25-72.34-59.26-26.12-128.44-26.12v-67.3q83.62 0 155.31 31.38Q367-479.15 420.83-424.2q53.83 54.94 84.62 127.69 30.78 72.75 30.78 156.51h-67.31Z"/></symbol>
15
+ <symbol id="cx-icon-expand" viewBox="0 -960 960 960"><path d="M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z"/></symbol>
16
+ <symbol id="cx-icon-pause" viewBox="0 -960 960 960"><path d="M533.85-220v-520H740v520H533.85ZM220-220v-520h206.54v520H220Zm359.23-45.39h115.38v-429.22H579.23v429.22Zm-313.84 0h115.76v-429.22H265.39v429.22Zm0-429.22v429.22-429.22Zm313.84 0v429.22-429.22Z"/></symbol>
17
+ <symbol id="cx-icon-play" viewBox="0 -960 960 960"><path d="M340-238.39v-487.68l383.07 243.84L340-238.39Zm45.39-243.84Zm0 161 253.99-161-253.99-161v322Z"/></symbol>
18
+ </svg>