@krigsvold/theme 0.0.0-stage → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE.md +11 -0
- package/README.md +51 -2
- package/dist/capabilities.json +101 -0
- package/dist/components.css +32 -0
- package/dist/dark.css +91 -0
- package/dist/dark.json +96 -0
- package/dist/design.json +49 -0
- package/dist/fonts.css +14 -0
- package/dist/foundation.css +86 -0
- package/dist/foundation.json +146 -0
- package/dist/full.css +5 -0
- package/dist/highlight-dark.css +20 -0
- package/dist/highlight-light.css +20 -0
- package/dist/index.cjs +4 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +5 -0
- package/dist/layout.css +51 -0
- package/dist/layout.json +60 -0
- package/dist/legacy.css +97 -0
- package/dist/licenses/roboto-mono.txt +93 -0
- package/dist/licenses/roboto-slab.txt +201 -0
- package/dist/licenses/roboto.txt +93 -0
- package/dist/light.css +91 -0
- package/dist/light.json +96 -0
- package/dist/theme.css +183 -0
- package/dist/tokens.json +566 -0
- package/dist/typography.css +9 -0
- package/docs/layout.md +20 -0
- package/docs/provenance.md +27 -0
- package/docs/releasing.md +27 -0
- package/package.json +71 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 James P. Howard, II
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/NOTICE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Font notices
|
|
2
|
+
|
|
3
|
+
Krigsvold code and design definitions are MIT licensed. The pinned Fontsource dependencies retain their own licenses:
|
|
4
|
+
|
|
5
|
+
- Roboto: OFL-1.1, @fontsource/roboto/LICENSE.
|
|
6
|
+
- Roboto Slab: Apache-2.0, @fontsource/roboto-slab/LICENSE.
|
|
7
|
+
- Roboto Mono: OFL-1.1, @fontsource/roboto-mono/LICENSE.
|
|
8
|
+
|
|
9
|
+
Verbatim license copies ship in dist/licenses/. fonts.css resolves local dependency assets through the consuming bundler and makes no Google Fonts or CDN request. Retain these notices when copying or redistributing font files outside npm's dependency layout.
|
|
10
|
+
|
|
11
|
+
The package includes no arms, badges, site content, tracking identifiers, consent policy, Material Icons, Bootstrap, or Material Kit code.
|
package/README.md
CHANGED
|
@@ -1,3 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Krigsvold core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`@krigsvold/theme` is the framework-independent source of truth for Krigsvold. It contains Light/Dark semantic colors and the typography, spacing, shape, depth, and interaction definitions extracted from krigsvold.org.
|
|
4
|
+
|
|
5
|
+
## Choose what to adopt
|
|
6
|
+
|
|
7
|
+
| Import | Effect |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `@krigsvold/theme/css` | Original scoped Light/Dark color variables only; unchanged from v1 |
|
|
10
|
+
| `@krigsvold/theme/foundation.css` | Namespaced design variables; no font loading or element styles |
|
|
11
|
+
| `@krigsvold/theme/typography.css` | Text roles inside `.krigsvold`; requires foundation variables |
|
|
12
|
+
| `@krigsvold/theme/fonts.css` | Optional, locally bundled Roboto, Roboto Slab, and Roboto Mono assets through Fontsource |
|
|
13
|
+
| `@krigsvold/theme/components.css` | Optional namespaced interface primitives; requires colors and foundation |
|
|
14
|
+
| `@krigsvold/theme/full.css` | Colors, foundation, typography, and components; fonts remain optional |
|
|
15
|
+
| `@krigsvold/theme/legacy.css` | Optional variable aliases for incremental website migration |
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
import '@krigsvold/theme/full.css';
|
|
19
|
+
import '@krigsvold/theme/fonts.css';
|
|
20
|
+
import { light, dark, foundation, design, capabilities } from '@krigsvold/theme';
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Set `data-krigsvold="light"` or `data-krigsvold="dark"` on the element to theme; add `class="krigsvold"` to opt into typography and interface styling. Modes may coexist on the same page. CSS remains available without JavaScript; font package imports require a CSS-capable bundler. ESM and CommonJS exports, TypeScript declarations, per-mode JSON, `tokens.json`, `foundation.json`, `design.json`, `capabilities.json`, and highlight.js styles are explicit package exports.
|
|
24
|
+
|
|
25
|
+
## Typography and overrides
|
|
26
|
+
|
|
27
|
+
- Serif: Roboto Slab, for editorial headings, introductory text, and quotations.
|
|
28
|
+
- Sans: Roboto, for body prose, controls, navigation, and metadata.
|
|
29
|
+
- Display: Roboto Slab, for hero text and titles. Its role is independent even though it shares the serif family.
|
|
30
|
+
- Monospace: Roboto Mono, the agreed public companion for code and terminal text.
|
|
31
|
+
|
|
32
|
+
The serif, display, and sans roles are extracted from the originating krigsvold.org website. Roboto Mono is a new companion chosen for the Roboto family. See [the provenance record](docs/provenance.md) for source selectors, exact commit, inherited Material Kit values, and accessibility normalizations. Each role can be overridden independently through its namespaced CSS variable. See NOTICE.md for font licenses.
|
|
33
|
+
|
|
34
|
+
The optional full stylesheet is not a site template: it includes no personal identity, content, analytics, or consent policy. See [`@krigsvold/astro`](https://github.com/krigsvoldtheme/astro) for Astro composition and a neutral starter.
|
|
35
|
+
|
|
36
|
+
## Source and releases
|
|
37
|
+
|
|
38
|
+
Edit `source.json` here; run `npm ci --ignore-scripts`, `npm run build`, `npm test`, and `npm pack`. Generated `dist/` is committed for review and reproducibility. Fontsource dependencies are pinned; lockfiles retain their integrity. The source website's original colors are retained as separate identity tokens rather than silently replacing existing semantic app colors. Reduced-motion preferences zero the shared motion tokens.
|
|
39
|
+
|
|
40
|
+
The `capabilities` export records what each integration applies, requires separate configuration for, or cannot support. A browser color theme does not change fonts. Editors and terminals use the monospace role only where their host allows it.
|
|
41
|
+
|
|
42
|
+
The npm scope is `krigsvold`. Install the published core with `npm install @krigsvold/theme`. Package versions are independent of application-port versions.
|
|
43
|
+
|
|
44
|
+
Application port generators in `krigsvoldtheme/krigsvoldtheme` consume this package. They must not regenerate it. CI never publishes automatically.
|
|
45
|
+
|
|
46
|
+
## Layouts
|
|
47
|
+
|
|
48
|
+
Version 2.1 adds optional [`layout.css`](docs/layout.md), the `layout` JavaScript export, and `layout.json`. Layout primitives cover containers, vertical stacks, wrapping clusters, bounded grids, sidebars, and paired regions. Import `@krigsvold/theme/full.css` for the complete styling layer or add `@krigsvold/theme/layout.css` after `foundation.css` for structural classes alone. See [source observations and responsive rules](docs/layout.md).
|
|
49
|
+
|
|
50
|
+
## Releases
|
|
51
|
+
|
|
52
|
+
Stable GitHub releases can publish automatically through npm trusted publishing. See [release setup](docs/releasing.md) for the one-time package authorization and release order.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"web-core": {
|
|
3
|
+
"applied": [
|
|
4
|
+
"colors",
|
|
5
|
+
"typography variables",
|
|
6
|
+
"spacing",
|
|
7
|
+
"shape",
|
|
8
|
+
"depth",
|
|
9
|
+
"interaction variables",
|
|
10
|
+
"layout primitives"
|
|
11
|
+
],
|
|
12
|
+
"optional": [
|
|
13
|
+
"font loading",
|
|
14
|
+
"element typography",
|
|
15
|
+
"components"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"astro": {
|
|
19
|
+
"applied": [
|
|
20
|
+
"web-core",
|
|
21
|
+
"document shell",
|
|
22
|
+
"container",
|
|
23
|
+
"section heading",
|
|
24
|
+
"card",
|
|
25
|
+
"button",
|
|
26
|
+
"page header",
|
|
27
|
+
"site header",
|
|
28
|
+
"site footer",
|
|
29
|
+
"article layout",
|
|
30
|
+
"landing layout",
|
|
31
|
+
"documentation layout"
|
|
32
|
+
],
|
|
33
|
+
"hostOwned": [
|
|
34
|
+
"navigation",
|
|
35
|
+
"content",
|
|
36
|
+
"consent",
|
|
37
|
+
"analytics",
|
|
38
|
+
"personal identity"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"vim": {
|
|
42
|
+
"applied": [
|
|
43
|
+
"colors",
|
|
44
|
+
"syntax"
|
|
45
|
+
],
|
|
46
|
+
"separateConfiguration": [
|
|
47
|
+
"monospace font"
|
|
48
|
+
],
|
|
49
|
+
"unsupported": [
|
|
50
|
+
"web layout",
|
|
51
|
+
"proportional typography"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"emacs": {
|
|
55
|
+
"applied": [
|
|
56
|
+
"colors",
|
|
57
|
+
"syntax"
|
|
58
|
+
],
|
|
59
|
+
"separateConfiguration": [
|
|
60
|
+
"font roles"
|
|
61
|
+
],
|
|
62
|
+
"unsupported": [
|
|
63
|
+
"web layout"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"terminal": {
|
|
67
|
+
"applied": [
|
|
68
|
+
"colors"
|
|
69
|
+
],
|
|
70
|
+
"separateConfiguration": [
|
|
71
|
+
"monospace font"
|
|
72
|
+
],
|
|
73
|
+
"unsupported": [
|
|
74
|
+
"web layout",
|
|
75
|
+
"serif",
|
|
76
|
+
"sans"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"firefox": {
|
|
80
|
+
"applied": [
|
|
81
|
+
"browser chrome colors"
|
|
82
|
+
],
|
|
83
|
+
"unsupported": [
|
|
84
|
+
"fonts",
|
|
85
|
+
"website content",
|
|
86
|
+
"spacing",
|
|
87
|
+
"components"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
"chrome": {
|
|
91
|
+
"applied": [
|
|
92
|
+
"browser chrome colors"
|
|
93
|
+
],
|
|
94
|
+
"unsupported": [
|
|
95
|
+
"fonts",
|
|
96
|
+
"website content",
|
|
97
|
+
"spacing",
|
|
98
|
+
"components"
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* Optional, namespaced primitives. All visual values belong to the core. */
|
|
2
|
+
.krigsvold { color: var(--krigsvold-text); background: var(--krigsvold-bg); }
|
|
3
|
+
.krigsvold *, .krigsvold *::before, .krigsvold *::after { box-sizing: border-box; }
|
|
4
|
+
.krigsvold :where(img,svg,video) { max-inline-size: 100%; block-size: auto; }
|
|
5
|
+
.krigsvold :where(a) { color: var(--krigsvold-link); text-underline-offset: var(--krigsvold-link-underline-offset); }
|
|
6
|
+
.krigsvold :where(a:hover) { color: var(--krigsvold-link-hover); }
|
|
7
|
+
.krigsvold :where(:focus-visible) { outline: var(--krigsvold-focus-width) solid var(--krigsvold-focus-ring); outline-offset: var(--krigsvold-focus-gap); }
|
|
8
|
+
.krigsvold :where(pre) { max-inline-size: 100%; overflow: auto; padding: var(--krigsvold-space-4); border-radius: var(--krigsvold-radius-md); color: var(--krigsvold-code-text); background: var(--krigsvold-code-bg); }
|
|
9
|
+
.krigsvold :where(input,select,textarea) { max-inline-size: 100%; min-inline-size: 0; min-block-size: var(--krigsvold-control-height); padding: var(--krigsvold-control-padding); border: var(--krigsvold-border-width) solid var(--krigsvold-input-border); border-radius: var(--krigsvold-radius-sm); color: var(--krigsvold-input-text); background: var(--krigsvold-input-bg); }
|
|
10
|
+
.krigsvold :where(button) { cursor: pointer; }
|
|
11
|
+
.krigsvold :where(button:disabled) { cursor: not-allowed; }
|
|
12
|
+
.krigsvold ::selection { color: var(--krigsvold-selection-text); background: var(--krigsvold-selection); }
|
|
13
|
+
.krigsvold-container { inline-size: min(calc(100% - var(--krigsvold-gutter) * 2), var(--krigsvold-content-width)); margin-inline: auto; min-inline-size: 0; }
|
|
14
|
+
.krigsvold-container--reading { max-inline-size: var(--krigsvold-reading-width); }
|
|
15
|
+
.krigsvold-container--archive { max-inline-size: var(--krigsvold-archive-width); }
|
|
16
|
+
.krigsvold-section { padding-block: var(--krigsvold-section-space); }
|
|
17
|
+
.krigsvold-section-heading { max-inline-size: var(--krigsvold-reading-width); margin-block-end: var(--krigsvold-space-8); }
|
|
18
|
+
.krigsvold-section-heading--center { margin-inline: auto; text-align: center; }
|
|
19
|
+
.krigsvold-section-heading :where(h2,h3) { margin: 0; }
|
|
20
|
+
.krigsvold-eyebrow { font: 700 .78rem var(--krigsvold-font-sans); letter-spacing: var(--krigsvold-tracking-label); text-transform: uppercase; color: var(--krigsvold-accent); }
|
|
21
|
+
.krigsvold-rule { inline-size: var(--krigsvold-divider-width); block-size: var(--krigsvold-divider-thickness); margin-block: var(--krigsvold-space-3); background: var(--krigsvold-accent); }
|
|
22
|
+
.krigsvold-section-heading--center .krigsvold-rule { margin-inline: auto; }
|
|
23
|
+
.krigsvold-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--krigsvold-space-2); min-block-size: var(--krigsvold-control-height); padding: var(--krigsvold-button-padding); border: var(--krigsvold-border-width) solid var(--krigsvold-accent); border-radius: var(--krigsvold-radius-control); background: var(--krigsvold-accent); color: var(--krigsvold-on-accent); font: 700 var(--krigsvold-text-button)/var(--krigsvold-leading-button) var(--krigsvold-font-sans); letter-spacing: var(--krigsvold-tracking-button); text-transform: uppercase; text-decoration: none; transition: background-color var(--krigsvold-transition-ui), border-color var(--krigsvold-transition-ui); }
|
|
24
|
+
.krigsvold-button:hover { background: var(--krigsvold-accent-hover); color: var(--krigsvold-on-accent); }
|
|
25
|
+
.krigsvold-button:disabled { background: var(--krigsvold-disabled-bg); color: var(--krigsvold-disabled-text); border-color: var(--krigsvold-disabled-bg); }
|
|
26
|
+
.krigsvold-card { min-inline-size: 0; padding: var(--krigsvold-space-4); border: 0; border-top: var(--krigsvold-divider-thickness) solid var(--krigsvold-accent); border-radius: var(--krigsvold-radius-card); background: var(--krigsvold-panel); color: var(--krigsvold-text); box-shadow: var(--krigsvold-shadow-card); }
|
|
27
|
+
.krigsvold-skip-link { position: absolute; inset-block-start: var(--krigsvold-space-2); inset-inline-start: var(--krigsvold-space-2); z-index: 1000; transform: translateY(-200%); padding: var(--krigsvold-space-3); background: var(--krigsvold-bg); color: var(--krigsvold-text); font-family: var(--krigsvold-font-sans); }
|
|
28
|
+
.krigsvold-skip-link:focus { transform: none; }
|
|
29
|
+
|
|
30
|
+
.krigsvold-display { font-family: var(--krigsvold-font-display); font-size: var(--krigsvold-text-display); font-weight: 700; line-height: var(--krigsvold-leading-display); letter-spacing: var(--krigsvold-tracking-display); text-wrap: balance; }
|
|
31
|
+
.krigsvold-section-heading :where(h2) { font-size: var(--krigsvold-text-section); }
|
|
32
|
+
@media (max-width: 767.98px) { .krigsvold-section { padding-block: 4rem; } }
|
package/dist/dark.css
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
[data-krigsvold="dark"] {
|
|
2
|
+
color-scheme: dark;
|
|
3
|
+
--krigsvold-bg: #061325;
|
|
4
|
+
--krigsvold-panel: #0a1d35;
|
|
5
|
+
--krigsvold-panel2: #123456;
|
|
6
|
+
--krigsvold-text: #eef8fa;
|
|
7
|
+
--krigsvold-muted: #b3ccd5;
|
|
8
|
+
--krigsvold-accent: #9ed5e6;
|
|
9
|
+
--krigsvold-accent2: #d9b876;
|
|
10
|
+
--krigsvold-on-accent: #061325;
|
|
11
|
+
--krigsvold-accent-hover: #d9eef4;
|
|
12
|
+
--krigsvold-line: #345066;
|
|
13
|
+
--krigsvold-control-line: #7a929f;
|
|
14
|
+
--krigsvold-focus: #9ed5e6;
|
|
15
|
+
--krigsvold-selection: #244c61;
|
|
16
|
+
--krigsvold-selection-text: #eef8fa;
|
|
17
|
+
--krigsvold-green: #a6cfb5;
|
|
18
|
+
--krigsvold-danger: #f0a4af;
|
|
19
|
+
--krigsvold-warning: #e0bf84;
|
|
20
|
+
--krigsvold-error-bg: #302335;
|
|
21
|
+
--krigsvold-error-text: #f0a4af;
|
|
22
|
+
--krigsvold-shadow: 0 10px 40px #00000055;
|
|
23
|
+
--krigsvold-surface-canvas: #061325;
|
|
24
|
+
--krigsvold-surface-subtle: #07182b;
|
|
25
|
+
--krigsvold-surface-sunken: #040e1c;
|
|
26
|
+
--krigsvold-surface-overlay: #123456;
|
|
27
|
+
--krigsvold-text-strong: #fbfaf7;
|
|
28
|
+
--krigsvold-text-subtle: #b3ccd5;
|
|
29
|
+
--krigsvold-text-disabled: #8ba4b2;
|
|
30
|
+
--krigsvold-text-inverse: #061325;
|
|
31
|
+
--krigsvold-link: #9ed5e6;
|
|
32
|
+
--krigsvold-link-hover: #d9eef4;
|
|
33
|
+
--krigsvold-link-visited: #c6b6db;
|
|
34
|
+
--krigsvold-border-subtle: #345066;
|
|
35
|
+
--krigsvold-border-strong: #7a929f;
|
|
36
|
+
--krigsvold-input-bg: #0a1d35;
|
|
37
|
+
--krigsvold-input-text: #eef8fa;
|
|
38
|
+
--krigsvold-input-placeholder: #b3ccd5;
|
|
39
|
+
--krigsvold-input-border: #7a929f;
|
|
40
|
+
--krigsvold-button-secondary-bg: #123456;
|
|
41
|
+
--krigsvold-button-secondary-text: #eef8fa;
|
|
42
|
+
--krigsvold-button-secondary-hover: #1c4565;
|
|
43
|
+
--krigsvold-disabled-bg: #183044;
|
|
44
|
+
--krigsvold-disabled-text: #8ba4b2;
|
|
45
|
+
--krigsvold-focus-ring: #9ed5e6;
|
|
46
|
+
--krigsvold-focus-offset: #061325;
|
|
47
|
+
--krigsvold-hover-bg: #123456;
|
|
48
|
+
--krigsvold-active-bg: #1c4565;
|
|
49
|
+
--krigsvold-code-bg: #0a1d35;
|
|
50
|
+
--krigsvold-code-text: #eef8fa;
|
|
51
|
+
--krigsvold-quote-border: #9ed5e6;
|
|
52
|
+
--krigsvold-table-stripe: #0a1d35;
|
|
53
|
+
--krigsvold-scrollbar-track: #0a1d35;
|
|
54
|
+
--krigsvold-scrollbar-thumb: #607b8d;
|
|
55
|
+
--krigsvold-overlay-scrim: #061325cc;
|
|
56
|
+
--krigsvold-info: #9ed5e6;
|
|
57
|
+
--krigsvold-info-bg: #103549;
|
|
58
|
+
--krigsvold-info-text: #d9eef4;
|
|
59
|
+
--krigsvold-success: #a6cfb5;
|
|
60
|
+
--krigsvold-success-bg: #16362b;
|
|
61
|
+
--krigsvold-success-text: #b7ddc3;
|
|
62
|
+
--krigsvold-warning-bg: #3b301f;
|
|
63
|
+
--krigsvold-warning-text: #e8cb97;
|
|
64
|
+
--krigsvold-danger-bg: #3d2330;
|
|
65
|
+
--krigsvold-danger-text: #f4b4bc;
|
|
66
|
+
--krigsvold-chart-1: #9ed5e6;
|
|
67
|
+
--krigsvold-chart-2: #d9b876;
|
|
68
|
+
--krigsvold-chart-3: #a6cfb5;
|
|
69
|
+
--krigsvold-chart-4: #f0a4af;
|
|
70
|
+
--krigsvold-chart-5: #c6b6db;
|
|
71
|
+
--krigsvold-chart-6: #8fcbc7;
|
|
72
|
+
--krigsvold-chart-7: #e1ac90;
|
|
73
|
+
--krigsvold-chart-8: #d4d8d9;
|
|
74
|
+
--krigsvold-chart-grid: #345066;
|
|
75
|
+
--krigsvold-chart-axis: #b3ccd5;
|
|
76
|
+
--krigsvold-syntax-keyword: #9ed5e6;
|
|
77
|
+
--krigsvold-syntax-string: #a6cfb5;
|
|
78
|
+
--krigsvold-syntax-function: #c2e4ef;
|
|
79
|
+
--krigsvold-syntax-type: #d9b876;
|
|
80
|
+
--krigsvold-syntax-variable: #eef8fa;
|
|
81
|
+
--krigsvold-syntax-comment: #b3ccd5;
|
|
82
|
+
--krigsvold-syntax-number: #f0a4af;
|
|
83
|
+
--krigsvold-syntax-operator: #b3ccd5;
|
|
84
|
+
--krigsvold-syntax-constant: #c6b6db;
|
|
85
|
+
--krigsvold-syntax-tag: #9ed5e6;
|
|
86
|
+
--krigsvold-syntax-attribute: #d9b876;
|
|
87
|
+
--krigsvold-syntax-regexp: #a6cfb5;
|
|
88
|
+
--krigsvold-syntax-invalid: #f0a4af;
|
|
89
|
+
--krigsvold-syntax-property: #c2e4ef;
|
|
90
|
+
--krigsvold-syntax-decorator: #c6b6db;
|
|
91
|
+
}
|
package/dist/dark.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.1.0",
|
|
3
|
+
"id": "krigsvold-dark",
|
|
4
|
+
"name": "Krigsvold Dark",
|
|
5
|
+
"mode": "dark",
|
|
6
|
+
"tokens": {
|
|
7
|
+
"bg": "#061325",
|
|
8
|
+
"panel": "#0A1D35",
|
|
9
|
+
"panel2": "#123456",
|
|
10
|
+
"text": "#EEF8FA",
|
|
11
|
+
"muted": "#B3CCD5",
|
|
12
|
+
"accent": "#9ED5E6",
|
|
13
|
+
"accent2": "#D9B876",
|
|
14
|
+
"on-accent": "#061325",
|
|
15
|
+
"accent-hover": "#D9EEF4",
|
|
16
|
+
"line": "#345066",
|
|
17
|
+
"control-line": "#7A929F",
|
|
18
|
+
"focus": "#9ED5E6",
|
|
19
|
+
"selection": "#244C61",
|
|
20
|
+
"selection-text": "#EEF8FA",
|
|
21
|
+
"green": "#A6CFB5",
|
|
22
|
+
"danger": "#F0A4AF",
|
|
23
|
+
"warning": "#E0BF84",
|
|
24
|
+
"error-bg": "#302335",
|
|
25
|
+
"error-text": "#F0A4AF",
|
|
26
|
+
"shadow": "0 10px 40px #00000055",
|
|
27
|
+
"surface-canvas": "#061325",
|
|
28
|
+
"surface-subtle": "#07182B",
|
|
29
|
+
"surface-sunken": "#040E1C",
|
|
30
|
+
"surface-overlay": "#123456",
|
|
31
|
+
"text-strong": "#FBFAF7",
|
|
32
|
+
"text-subtle": "#B3CCD5",
|
|
33
|
+
"text-disabled": "#8BA4B2",
|
|
34
|
+
"text-inverse": "#061325",
|
|
35
|
+
"link": "#9ED5E6",
|
|
36
|
+
"link-hover": "#D9EEF4",
|
|
37
|
+
"link-visited": "#C6B6DB",
|
|
38
|
+
"border-subtle": "#345066",
|
|
39
|
+
"border-strong": "#7A929F",
|
|
40
|
+
"input-bg": "#0A1D35",
|
|
41
|
+
"input-text": "#EEF8FA",
|
|
42
|
+
"input-placeholder": "#B3CCD5",
|
|
43
|
+
"input-border": "#7A929F",
|
|
44
|
+
"button-secondary-bg": "#123456",
|
|
45
|
+
"button-secondary-text": "#EEF8FA",
|
|
46
|
+
"button-secondary-hover": "#1C4565",
|
|
47
|
+
"disabled-bg": "#183044",
|
|
48
|
+
"disabled-text": "#8BA4B2",
|
|
49
|
+
"focus-ring": "#9ED5E6",
|
|
50
|
+
"focus-offset": "#061325",
|
|
51
|
+
"hover-bg": "#123456",
|
|
52
|
+
"active-bg": "#1C4565",
|
|
53
|
+
"code-bg": "#0A1D35",
|
|
54
|
+
"code-text": "#EEF8FA",
|
|
55
|
+
"quote-border": "#9ED5E6",
|
|
56
|
+
"table-stripe": "#0A1D35",
|
|
57
|
+
"scrollbar-track": "#0A1D35",
|
|
58
|
+
"scrollbar-thumb": "#607B8D",
|
|
59
|
+
"overlay-scrim": "#061325CC",
|
|
60
|
+
"info": "#9ED5E6",
|
|
61
|
+
"info-bg": "#103549",
|
|
62
|
+
"info-text": "#D9EEF4",
|
|
63
|
+
"success": "#A6CFB5",
|
|
64
|
+
"success-bg": "#16362B",
|
|
65
|
+
"success-text": "#B7DDC3",
|
|
66
|
+
"warning-bg": "#3B301F",
|
|
67
|
+
"warning-text": "#E8CB97",
|
|
68
|
+
"danger-bg": "#3D2330",
|
|
69
|
+
"danger-text": "#F4B4BC",
|
|
70
|
+
"chart-1": "#9ED5E6",
|
|
71
|
+
"chart-2": "#D9B876",
|
|
72
|
+
"chart-3": "#A6CFB5",
|
|
73
|
+
"chart-4": "#F0A4AF",
|
|
74
|
+
"chart-5": "#C6B6DB",
|
|
75
|
+
"chart-6": "#8FCBC7",
|
|
76
|
+
"chart-7": "#E1AC90",
|
|
77
|
+
"chart-8": "#D4D8D9",
|
|
78
|
+
"chart-grid": "#345066",
|
|
79
|
+
"chart-axis": "#B3CCD5",
|
|
80
|
+
"syntax-keyword": "#9ED5E6",
|
|
81
|
+
"syntax-string": "#A6CFB5",
|
|
82
|
+
"syntax-function": "#C2E4EF",
|
|
83
|
+
"syntax-type": "#D9B876",
|
|
84
|
+
"syntax-variable": "#EEF8FA",
|
|
85
|
+
"syntax-comment": "#B3CCD5",
|
|
86
|
+
"syntax-number": "#F0A4AF",
|
|
87
|
+
"syntax-operator": "#B3CCD5",
|
|
88
|
+
"syntax-constant": "#C6B6DB",
|
|
89
|
+
"syntax-tag": "#9ED5E6",
|
|
90
|
+
"syntax-attribute": "#D9B876",
|
|
91
|
+
"syntax-regexp": "#A6CFB5",
|
|
92
|
+
"syntax-invalid": "#F0A4AF",
|
|
93
|
+
"syntax-property": "#C2E4EF",
|
|
94
|
+
"syntax-decorator": "#C6B6DB"
|
|
95
|
+
}
|
|
96
|
+
}
|
package/dist/design.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"radius": {
|
|
3
|
+
"sm": ".15rem",
|
|
4
|
+
"md": ".3rem",
|
|
5
|
+
"lg": ".4rem",
|
|
6
|
+
"control": ".15rem",
|
|
7
|
+
"card": "0"
|
|
8
|
+
},
|
|
9
|
+
"spacing": {
|
|
10
|
+
"1": ".25rem",
|
|
11
|
+
"2": ".5rem",
|
|
12
|
+
"3": ".75rem",
|
|
13
|
+
"4": "1rem",
|
|
14
|
+
"6": "1.5rem",
|
|
15
|
+
"8": "2rem",
|
|
16
|
+
"12": "3rem",
|
|
17
|
+
"16": "4rem",
|
|
18
|
+
"24": "6rem"
|
|
19
|
+
},
|
|
20
|
+
"fonts": {
|
|
21
|
+
"serif": "'Roboto Slab', Georgia, serif",
|
|
22
|
+
"sans": "'Roboto', Arial, sans-serif",
|
|
23
|
+
"display": "'Roboto Slab', Georgia, serif",
|
|
24
|
+
"mono": "'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",
|
|
25
|
+
"ui": "'Roboto', Arial, sans-serif",
|
|
26
|
+
"code": "'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"
|
|
27
|
+
},
|
|
28
|
+
"widths": {
|
|
29
|
+
"reading-width": "760px",
|
|
30
|
+
"content-width": "1320px",
|
|
31
|
+
"archive-width": "1320px"
|
|
32
|
+
},
|
|
33
|
+
"shadows": {
|
|
34
|
+
"shadow-sm": "0 10px 35px rgb(0 0 0 / 12%)",
|
|
35
|
+
"shadow-md": "0 18px 44px rgb(6 19 37 / 18%)",
|
|
36
|
+
"shadow-lg": "0 24px 65px rgb(10 29 53 / 12%)"
|
|
37
|
+
},
|
|
38
|
+
"motion": {
|
|
39
|
+
"transition": ".15s ease-in",
|
|
40
|
+
"reduced": "0s"
|
|
41
|
+
},
|
|
42
|
+
"breakpoints": {
|
|
43
|
+
"sm": "576px",
|
|
44
|
+
"md": "768px",
|
|
45
|
+
"lg": "992px",
|
|
46
|
+
"xl": "1200px",
|
|
47
|
+
"xxl": "1400px"
|
|
48
|
+
}
|
|
49
|
+
}
|
package/dist/fonts.css
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@import '@fontsource/roboto/400.css';
|
|
2
|
+
@import '@fontsource/roboto/400-italic.css';
|
|
3
|
+
@import '@fontsource/roboto/500.css';
|
|
4
|
+
@import '@fontsource/roboto/500-italic.css';
|
|
5
|
+
@import '@fontsource/roboto/700.css';
|
|
6
|
+
@import '@fontsource/roboto/700-italic.css';
|
|
7
|
+
@import '@fontsource/roboto-slab/400.css';
|
|
8
|
+
@import '@fontsource/roboto-slab/700.css';
|
|
9
|
+
@import '@fontsource/roboto-mono/400.css';
|
|
10
|
+
@import '@fontsource/roboto-mono/400-italic.css';
|
|
11
|
+
@import '@fontsource/roboto-mono/500.css';
|
|
12
|
+
@import '@fontsource/roboto-mono/500-italic.css';
|
|
13
|
+
@import '@fontsource/roboto-mono/700.css';
|
|
14
|
+
@import '@fontsource/roboto-mono/700-italic.css';
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* Origin: krigsvold.org. Variables only; no element styles or font downloads. */
|
|
2
|
+
:root, [data-krigsvold] {
|
|
3
|
+
--krigsvold-color-navy-950: #061325;
|
|
4
|
+
--krigsvold-color-navy-900: #0a1d35;
|
|
5
|
+
--krigsvold-color-navy-800: #123456;
|
|
6
|
+
--krigsvold-color-blue-600: #286a9d;
|
|
7
|
+
--krigsvold-color-ice-400: #9ed5e6;
|
|
8
|
+
--krigsvold-color-ice-200: #d9eef4;
|
|
9
|
+
--krigsvold-color-ice-100: #eef8fa;
|
|
10
|
+
--krigsvold-color-paper: #fbfaf7;
|
|
11
|
+
--krigsvold-color-ink: #17202a;
|
|
12
|
+
--krigsvold-color-muted: #56616c;
|
|
13
|
+
--krigsvold-color-rule: #d9dee2;
|
|
14
|
+
--krigsvold-color-gold: #b58a3b;
|
|
15
|
+
--krigsvold-font-serif: 'Roboto Slab', Georgia, serif;
|
|
16
|
+
--krigsvold-font-display: 'Roboto Slab', Georgia, serif;
|
|
17
|
+
--krigsvold-font-sans: 'Roboto', Arial, sans-serif;
|
|
18
|
+
--krigsvold-font-mono: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
19
|
+
--krigsvold-space-1: .25rem;
|
|
20
|
+
--krigsvold-space-2: .5rem;
|
|
21
|
+
--krigsvold-space-3: .75rem;
|
|
22
|
+
--krigsvold-space-4: 1rem;
|
|
23
|
+
--krigsvold-space-6: 1.5rem;
|
|
24
|
+
--krigsvold-space-8: 2rem;
|
|
25
|
+
--krigsvold-space-12: 3rem;
|
|
26
|
+
--krigsvold-space-16: 4rem;
|
|
27
|
+
--krigsvold-space-24: 6rem;
|
|
28
|
+
--krigsvold-reading-width: 760px;
|
|
29
|
+
--krigsvold-content-width: 1320px;
|
|
30
|
+
--krigsvold-archive-width: 1320px;
|
|
31
|
+
--krigsvold-radius-sm: .15rem;
|
|
32
|
+
--krigsvold-radius-md: .3rem;
|
|
33
|
+
--krigsvold-radius-lg: .4rem;
|
|
34
|
+
--krigsvold-radius-control: .15rem;
|
|
35
|
+
--krigsvold-radius-card: 0;
|
|
36
|
+
--krigsvold-shadow-sm: 0 10px 35px rgb(0 0 0 / 12%);
|
|
37
|
+
--krigsvold-shadow-md: 0 18px 44px rgb(6 19 37 / 18%);
|
|
38
|
+
--krigsvold-shadow-lg: 0 24px 65px rgb(10 29 53 / 12%);
|
|
39
|
+
--krigsvold-shadow-card: none;
|
|
40
|
+
--krigsvold-transition-ui: .15s ease-in;
|
|
41
|
+
--krigsvold-motion-duration: .15s;
|
|
42
|
+
--krigsvold-text-body: 1.06rem;
|
|
43
|
+
--krigsvold-text-h1: clamp(2.8rem, 6vw, 5.5rem);
|
|
44
|
+
--krigsvold-text-h2: 2.1rem;
|
|
45
|
+
--krigsvold-text-h3: 1.42rem;
|
|
46
|
+
--krigsvold-text-display: clamp(3.4rem, 7vw, 6.8rem);
|
|
47
|
+
--krigsvold-text-section: clamp(2rem, 4vw, 3.5rem);
|
|
48
|
+
--krigsvold-leading-body: 1.65;
|
|
49
|
+
--krigsvold-leading-heading: 1.13;
|
|
50
|
+
--krigsvold-leading-display: .98;
|
|
51
|
+
--krigsvold-weight-heading: 700;
|
|
52
|
+
--krigsvold-tracking-heading: -.025em;
|
|
53
|
+
--krigsvold-tracking-display: -.045em;
|
|
54
|
+
--krigsvold-tracking-label: .16em;
|
|
55
|
+
--krigsvold-tracking-button: .035em;
|
|
56
|
+
--krigsvold-border-width: 1px;
|
|
57
|
+
--krigsvold-focus-width: 3px;
|
|
58
|
+
--krigsvold-focus-gap: 3px;
|
|
59
|
+
--krigsvold-gutter: .75rem;
|
|
60
|
+
--krigsvold-section-space: clamp(4.5rem, 8vw, 7.5rem);
|
|
61
|
+
--krigsvold-control-height: 2.75rem;
|
|
62
|
+
--krigsvold-control-padding: .9rem;
|
|
63
|
+
--krigsvold-button-padding: .625rem 1.5rem;
|
|
64
|
+
--krigsvold-text-button: .75rem;
|
|
65
|
+
--krigsvold-leading-button: 1.667;
|
|
66
|
+
--krigsvold-divider-width: 3rem;
|
|
67
|
+
--krigsvold-divider-thickness: 3px;
|
|
68
|
+
--krigsvold-link-underline-offset: .18em;
|
|
69
|
+
--krigsvold-hero-overlay: linear-gradient(90deg, rgba(3,15,30,.93) 0%, rgba(6,27,51,.76) 52%, rgba(7,28,48,.42) 100%);
|
|
70
|
+
--krigsvold-breakpoint-sm: 576px;
|
|
71
|
+
--krigsvold-breakpoint-md: 768px;
|
|
72
|
+
--krigsvold-breakpoint-lg: 992px;
|
|
73
|
+
--krigsvold-breakpoint-xl: 1200px;
|
|
74
|
+
--krigsvold-breakpoint-xxl: 1400px;
|
|
75
|
+
--krigsvold-layout-gap: 2rem;
|
|
76
|
+
--krigsvold-layout-gap-small: 1rem;
|
|
77
|
+
--krigsvold-layout-gap-large: 3rem;
|
|
78
|
+
--krigsvold-layout-sidebar-width: 20rem;
|
|
79
|
+
--krigsvold-layout-main-min: 30rem;
|
|
80
|
+
--krigsvold-layout-grid-min: 20rem;
|
|
81
|
+
--krigsvold-layout-split-min: 22rem;
|
|
82
|
+
--krigsvold-layout-section-space: clamp(4.5rem, 8vw, 7.5rem);
|
|
83
|
+
}
|
|
84
|
+
@media (prefers-reduced-motion: reduce) {
|
|
85
|
+
:root, [data-krigsvold] { --krigsvold-transition-ui: 0s; --krigsvold-motion-duration: 0s; }
|
|
86
|
+
}
|