@iyulab/house-style 0.1.5 β 0.3.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/CHANGELOG.md +60 -0
- package/README.md +12 -1
- package/package.json +9 -8
- package/styles/components.css +53 -0
- package/styles/patterns.css +35 -29
- package/styles/tokens.css +35 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,65 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.0] - 2026-10-13
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- π΄**The house now sets the text between components.** Paragraphs, headings, lists and code spans an application
|
|
8
|
+
writes outside any component drew at the browser's defaults β a 16px body with `line-height: normal`, an `h2` of
|
|
9
|
+
1.5em that outranked every component title, 1em gaps above and below. They now take the house ladder: the body at
|
|
10
|
+
the body step (14px Β· 1.571), `h1`/`h2`/`h3` at display/title/subtitle, `h4`β`h6` at the body step in semibold;
|
|
11
|
+
one gap below each block (`--u-space-sm` after a heading, `--u-space-md` after a paragraph, list, quote, figure or
|
|
12
|
+
`pre`), none above and none after the last block in its box; `code`, `kbd`, `samp` and `pre` in the house monospace.
|
|
13
|
+
All zero-specificity inside `iyu.house` β your own rules win. A screen that relied on the browser's defaults draws
|
|
14
|
+
smaller and tighter; set your own rule on that element to keep the old look.
|
|
15
|
+
- **Native checkboxes, radios and ranges take the selection colour** (`accent-color`), and scrollbars the strong line
|
|
16
|
+
colour (`scrollbar-color`).
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **House chart colours** β `--u-chart-color-1` β¦ `-8`, light and dark. Slot one is the interaction blue (`#2F6FEB`;
|
|
21
|
+
dark `#628FEA`, the dark blue taken to the mark band), so a one-series chart draws in the colour the screen already
|
|
22
|
+
uses for links, focus and selection; the other seven are muted, warm-leaning hues chosen as a set β neighbours
|
|
23
|
+
ΞE β₯ 15 for full colour vision and β₯ 8 under redβgreen deficiency, no slot within ΞE 10 of a status colour, every
|
|
24
|
+
dark slot β₯ 3:1 on the surfaces. Light slot six (olive) is 2.8:1 on white: six or more series need a legend or
|
|
25
|
+
labels. Before, the house set no chart colours and series drew in the built-in Material palette. Charts drawn
|
|
26
|
+
through `@iyulab/u-widgets/themes/components.css` pick them up slot for slot.
|
|
27
|
+
- `--u-selection-color` / `--u-selection-txt-color` β the mark of a chosen option (a checked box, a selected radio) and
|
|
28
|
+
the check drawn on it: the interaction blue, light and dark, held to 3:1 against the surface and its check.
|
|
29
|
+
- `.hs-prose` and `--hs-measure` (70ch) β running text that can grow wider than reads well stops its paragraphs and
|
|
30
|
+
lists at the measure.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- **A hovered table header or toolbar strip is visibly different from its rest state.** `--u-bg-color-raised-hover`
|
|
35
|
+
(light) moves from `#EAEAE7` to `#E5E5E2` β the step from `--u-bg-color-raised` was 0.021 in OKLab lightness, below
|
|
36
|
+
what reads as a change. The token contract now holds state and depth steps to perception floors in both modes
|
|
37
|
+
(hover β₯ 0.03, press β₯ 0.05, selection β₯ 0.03, a surface step β₯ 0.025, which also carries a hairline edge).
|
|
38
|
+
|
|
39
|
+
### Guide and reference app
|
|
40
|
+
|
|
41
|
+
- The guide's prose follows the new document-flow layer and stops at the measure; the theme and deployment pages
|
|
42
|
+
take the same page layout as the others; the Β«Component depthΒ» cards say what the house draws (cards stay flat).
|
|
43
|
+
- Both sites follow the system theme (`Theme.init({ default: 'system' })`) and carry a favicon; the reference app
|
|
44
|
+
has a theme toggle.
|
|
45
|
+
- Reference app order detail: the items are a `u-rich-table` (the guide's Β«Line itemsΒ» pattern) β columns line up,
|
|
46
|
+
quantity edits in place, rows delete from the table β and the add-item line folds in a narrow pane instead of
|
|
47
|
+
scrolling it sideways.
|
|
48
|
+
|
|
49
|
+
## [0.2.0] - 2026-10-12
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- π΄**No size containment.** `.hs-detail` no longer establishes the `hs-detail` container, and the patterns no
|
|
54
|
+
longer use `@container` β in Chromium a size container could stay collapsed after a commit that changed layout
|
|
55
|
+
elsewhere on the page. Each pattern now folds by its own width:
|
|
56
|
+
- `.hs-grid-2` / `.hs-grid-3` drop to one column below 480px of grid width; `.hs-grid-3` shows two columns between
|
|
57
|
+
480px and 728px (it went from three straight to one before). Empty trailing cells are kept, as before.
|
|
58
|
+
- `.hs-stats` stacks when the strip is narrower than 640px β all stats at once, with the dividers turning
|
|
59
|
+
horizontal. Before, a strip outside a size container never stacked.
|
|
60
|
+
- `.hs-detail__cols` puts the side panel (340px) next to the main column when the columns are at least 960px wide.
|
|
61
|
+
If your CSS queried `@container hs-detail`, give that element `container: hs-detail / inline-size` yourself.
|
|
62
|
+
|
|
3
63
|
## [0.1.5] - 2026-10-09
|
|
4
64
|
|
|
5
65
|
### Fixed
|
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ so its preflight would beat the theme; `tailwind.css` imports the theme into Tai
|
|
|
37
37
|
| `styles/index.css` (package root) | everything below plus Pretendard β for apps without Tailwind |
|
|
38
38
|
| `styles/theme.css` | the theme without fonts (bring your own face) |
|
|
39
39
|
| `styles/tokens.css` | house values for the `--u-*` token axes, light and dark; brand tokens `--hs-brand*` |
|
|
40
|
-
| `styles/components.css` | sizes and finish for `u-button`, `u-card`, `u-drawer`, `flex-table`, the app shell |
|
|
40
|
+
| `styles/components.css` | the document flow (body text, `h1`β`h6`, block gaps, code spans, native control and scrollbar colours) and sizes and finish for `u-button`, `u-card`, `u-drawer`, `flex-table`, the app shell |
|
|
41
41
|
| `styles/patterns.css` | `hs-*` layout patterns β page head, saved views, filter bar, stat strip, table card, callout, form sections, side-sheet footer |
|
|
42
42
|
| `styles/tailwind.css` | the Tailwind v4 entry: fonts + theme (in Tailwind's `components` layer) + role utilities β `bg-canvas`, `text-ink-weak`, `border-line`, `bg-warning-soft`, `rounded-card` β¦ |
|
|
43
43
|
| `styles/tailwind-neutrals.css` | optional: Tailwind's grey ramps (`gray`, `slate`, `zinc`, `neutral`, `stone`) follow the house neutrals |
|
|
@@ -82,6 +82,17 @@ The type ladder is the `--u-text-*-size` steps plus two house steps derived from
|
|
|
82
82
|
`--hs-text-hero-size` (display + 6px: a headline figure). Every pattern reads a step, so rescaling the
|
|
83
83
|
ladder (a larger mode, a product system) carries the patterns along.
|
|
84
84
|
|
|
85
|
+
### Text outside components
|
|
86
|
+
|
|
87
|
+
The theme also sets the text an application writes between components, so a screen's own words match
|
|
88
|
+
the components around them: the body draws at the body step (14px Β· 1.571), `h1`/`h2`/`h3` at the
|
|
89
|
+
display/title/subtitle steps and `h4`β`h6` at the body step in semibold, and paragraphs, lists and
|
|
90
|
+
headings get one gap below (none above, none after the last block in a box). Code spans use the house
|
|
91
|
+
monospace. A checked native checkbox or radio takes the selection colour (`--u-selection-color`, the
|
|
92
|
+
interaction blue) and scrollbars the strong line colour. Running text that can grow wider than reads
|
|
93
|
+
well opts into the measure: `<div class="hs-prose">` stops its paragraphs and lists at `--hs-measure`
|
|
94
|
+
(70ch). All of it is zero-specificity in the house layer β any rule of yours wins.
|
|
95
|
+
|
|
85
96
|
## The guide
|
|
86
97
|
|
|
87
98
|
**Live**: https://iyulab.github.io/house-style/ β this is the guide. There is no
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iyulab/house-style",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "The iyulab house theme: a CSS-only theme for @iyulab components β tokens, component recipes, line-of-business layout patterns and a Tailwind CSS v4 preset β plus the guide site that documents it.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"check:guide": "node scripts/check-guide.mjs",
|
|
39
39
|
"check:a11y": "node scripts/check-a11y.mjs",
|
|
40
40
|
"check:ladder": "node scripts/check-ladder.mjs",
|
|
41
|
+
"check:leave": "node scripts/check-leave.mjs",
|
|
41
42
|
"check:start-here": "node scripts/check-start-here.mjs",
|
|
42
43
|
"check:start-here:local": "node scripts/check-start-here.mjs --local",
|
|
43
44
|
"pretest": "node -e \"if(require('fs').existsSync('../../scripts/sibling-dist-check.js'))require('child_process').execFileSync('node',['../../scripts/sibling-dist-check.js'],{stdio:'inherit'})\"",
|
|
@@ -70,13 +71,13 @@
|
|
|
70
71
|
}
|
|
71
72
|
},
|
|
72
73
|
"devDependencies": {
|
|
73
|
-
"@iyulab/components": "^2.
|
|
74
|
-
"@iyulab/data-components": "^0.
|
|
75
|
-
"@iyulab/enterprise": "^0.
|
|
76
|
-
"@iyulab/flex-table": "^0.
|
|
77
|
-
"@iyulab/modern-app": "^0.
|
|
78
|
-
"@iyulab/router": "^0.
|
|
79
|
-
"@iyulab/u-widgets": "^0.
|
|
74
|
+
"@iyulab/components": "^2.20.0",
|
|
75
|
+
"@iyulab/data-components": "^0.48.0",
|
|
76
|
+
"@iyulab/enterprise": "^0.32.0",
|
|
77
|
+
"@iyulab/flex-table": "^0.66.0",
|
|
78
|
+
"@iyulab/modern-app": "^0.53.0",
|
|
79
|
+
"@iyulab/router": "^0.24.0",
|
|
80
|
+
"@iyulab/u-widgets": "^0.31.0",
|
|
80
81
|
"@lit/react": "^1.0.8",
|
|
81
82
|
"@types/node": "^26.1.1",
|
|
82
83
|
"@types/react": "^19.3.0",
|
package/styles/components.css
CHANGED
|
@@ -21,6 +21,59 @@
|
|
|
21
21
|
color: var(--u-txt-color);
|
|
22
22
|
-webkit-font-smoothing: antialiased;
|
|
23
23
|
}
|
|
24
|
+
/* ββ Document flow β the text an application writes between components βββββββββββββββββββ *
|
|
25
|
+
* Paragraphs, headings, lists and code spans outside any component would draw at the browser's
|
|
26
|
+
* defaults β 16px body with `line-height: normal`, an h2 of 1.5em that outranks every component
|
|
27
|
+
* title, 1em gaps β so a screen's own words looked unlike the components around them. Here they
|
|
28
|
+
* take the house ladder. Zero specificity inside the house layer: any application rule wins. */
|
|
29
|
+
:where(body) {
|
|
30
|
+
font-size: var(--u-text-body-size);
|
|
31
|
+
line-height: var(--u-text-body-leading);
|
|
32
|
+
}
|
|
33
|
+
:where(h1) {
|
|
34
|
+
font-size: var(--u-text-display-size);
|
|
35
|
+
font-weight: var(--u-text-display-weight);
|
|
36
|
+
line-height: var(--u-text-display-leading);
|
|
37
|
+
}
|
|
38
|
+
:where(h2) {
|
|
39
|
+
font-size: var(--u-text-title-size);
|
|
40
|
+
font-weight: var(--u-text-title-weight);
|
|
41
|
+
line-height: var(--u-text-title-leading);
|
|
42
|
+
}
|
|
43
|
+
:where(h3) {
|
|
44
|
+
font-size: var(--u-text-subtitle-size);
|
|
45
|
+
font-weight: var(--u-text-subtitle-weight);
|
|
46
|
+
line-height: var(--u-text-subtitle-leading);
|
|
47
|
+
}
|
|
48
|
+
:where(h4, h5, h6) {
|
|
49
|
+
font-size: var(--u-text-body-size);
|
|
50
|
+
font-weight: 600;
|
|
51
|
+
line-height: var(--u-text-body-leading);
|
|
52
|
+
}
|
|
53
|
+
/* One gap below each block, none above β the gap between two blocks is one step, not two
|
|
54
|
+
* collapsed margins; the last block in its box adds none. */
|
|
55
|
+
:where(h1, h2, h3, h4, h5, h6) {
|
|
56
|
+
margin-block: 0 var(--u-space-sm);
|
|
57
|
+
}
|
|
58
|
+
:where(p, ul, ol, dl, blockquote, figure, pre) {
|
|
59
|
+
margin-block: 0 var(--u-space-md);
|
|
60
|
+
}
|
|
61
|
+
:where(h1, h2, h3, h4, h5, h6, p, ul, ol, dl, blockquote, figure, pre):where(:last-child) {
|
|
62
|
+
margin-block-end: 0;
|
|
63
|
+
}
|
|
64
|
+
:where(code, kbd, samp, pre) {
|
|
65
|
+
font-family: var(--u-font-mono);
|
|
66
|
+
}
|
|
67
|
+
/* A measure for running text β opt in where a paragraph can be wider than reads well. */
|
|
68
|
+
:where(.hs-prose) :where(p, ul, ol, dl, blockquote) {
|
|
69
|
+
max-inline-size: var(--hs-measure);
|
|
70
|
+
}
|
|
71
|
+
/* Native controls (a checkbox in a plain form, a range) and scrollbars take the house colours. */
|
|
72
|
+
:root {
|
|
73
|
+
accent-color: var(--u-selection-color);
|
|
74
|
+
scrollbar-color: var(--u-border-color-strong) transparent;
|
|
75
|
+
}
|
|
76
|
+
|
|
24
77
|
/* A plain link takes the house link colour instead of the browser's β in light and dark alike.
|
|
25
78
|
* Zero specificity: a class on the link (`hs-*`, an app's own) and any application rule win.
|
|
26
79
|
* Visited links keep the same colour (an application, not a document); the underline stays,
|
package/styles/patterns.css
CHANGED
|
@@ -147,21 +147,24 @@
|
|
|
147
147
|
|
|
148
148
|
/* ββ Stat strip β the result's totals as cells, not a sentence βββββββββββ
|
|
149
149
|
* 3β5 cells: label β value β one supporting line. One hero value per screen at most. */
|
|
150
|
+
/* Side by side, or stacked when the strip is narrower than 640px β all or nothing, never a ragged row.
|
|
151
|
+
* No size container: the threshold is each stat's flex-basis, calc((640px - 100%) * 999) β negative
|
|
152
|
+
* (so 0) when wide, huge when narrow (the "Holy Albatross"). The dividers are the 1px gap showing the
|
|
153
|
+
* strip's border-coloured background, so they turn from vertical to horizontal on their own. */
|
|
150
154
|
.hs-stats {
|
|
151
|
-
display:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
background: var(--u-
|
|
155
|
+
display: flex;
|
|
156
|
+
flex-wrap: wrap;
|
|
157
|
+
gap: 1px;
|
|
158
|
+
background: var(--u-border-color);
|
|
155
159
|
border: 1px solid var(--u-border-color);
|
|
156
160
|
border-radius: var(--u-radius-xl, 10px);
|
|
161
|
+
overflow: hidden;
|
|
157
162
|
}
|
|
158
163
|
.hs-stat {
|
|
164
|
+
flex: 1 1 calc((640px - 100%) * 999);
|
|
159
165
|
min-width: 0;
|
|
160
166
|
padding: var(--u-space-md, 12px) var(--u-space-lg, 16px);
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
.hs-stat:first-child {
|
|
164
|
-
border-inline-start: 0;
|
|
167
|
+
background: var(--u-bg-color);
|
|
165
168
|
}
|
|
166
169
|
.hs-stat__label {
|
|
167
170
|
font-size: var(--u-text-label-size, 12px);
|
|
@@ -199,11 +202,6 @@
|
|
|
199
202
|
.hs-stat--warning .hs-stat__value { color: var(--u-warning-color-strong); }
|
|
200
203
|
.hs-stat--danger .hs-stat__value { color: var(--u-danger-color-strong); }
|
|
201
204
|
.hs-stat--success .hs-stat__value { color: var(--u-success-color-strong); }
|
|
202
|
-
@container (max-width: 640px) {
|
|
203
|
-
.hs-stats { grid-auto-flow: row; }
|
|
204
|
-
.hs-stat { border-inline-start: 0; border-top: 1px solid var(--u-border-color); }
|
|
205
|
-
.hs-stat:first-child { border-top: 0; }
|
|
206
|
-
}
|
|
207
205
|
|
|
208
206
|
/* ββ Table card β toolbar Β· table Β· pager on one surface ββββββββββββββββ */
|
|
209
207
|
.hs-table-card {
|
|
@@ -381,18 +379,21 @@ a.hs-card:hover,
|
|
|
381
379
|
.hs-dl > dt { color: var(--u-txt-color-weak); }
|
|
382
380
|
.hs-dl > dd { margin: 0; min-width: 0; }
|
|
383
381
|
|
|
384
|
-
/* Two-column detail: main column plus a 340px side panel once the
|
|
385
|
-
.hs-
|
|
386
|
-
container: hs-detail / inline-size;
|
|
387
|
-
}
|
|
382
|
+
/* Two-column detail: main column plus a 340px side panel once the columns are 960px wide, one column
|
|
383
|
+
* below that. No size container β the threshold is each column's flex-basis (see .hs-stats). */
|
|
388
384
|
.hs-detail__cols {
|
|
389
|
-
display:
|
|
390
|
-
|
|
385
|
+
display: flex;
|
|
386
|
+
flex-wrap: wrap;
|
|
391
387
|
gap: var(--u-space-lg, 16px);
|
|
392
|
-
align-items: start;
|
|
388
|
+
align-items: flex-start;
|
|
389
|
+
}
|
|
390
|
+
.hs-detail__cols > * {
|
|
391
|
+
flex: 1 1 calc((960px - 100%) * 999);
|
|
392
|
+
min-width: 0;
|
|
393
393
|
}
|
|
394
|
-
|
|
395
|
-
|
|
394
|
+
.hs-detail__cols > :last-child:not(:first-child) {
|
|
395
|
+
flex-grow: 0;
|
|
396
|
+
min-width: min(340px, 100%);
|
|
396
397
|
}
|
|
397
398
|
.hs-grid-cards {
|
|
398
399
|
display: grid;
|
|
@@ -493,18 +494,23 @@ a.hs-card:hover,
|
|
|
493
494
|
--u-input-display: block;
|
|
494
495
|
--u-select-display: block;
|
|
495
496
|
}
|
|
496
|
-
/* Two or three columns β never four or more in a row.
|
|
497
|
+
/* Two or three columns β never four or more in a row. A column is at least half of a 480px row, so
|
|
498
|
+
* both grids drop to one column below 480px and .hs-grid-3 shows two between 480px and 728px. No size
|
|
499
|
+
* container: auto-fill against the grid's own width, capped at the column count. */
|
|
497
500
|
.hs-grid-2,
|
|
498
501
|
.hs-grid-3 {
|
|
502
|
+
--hs-grid-gap: var(--u-space-lg, 16px);
|
|
503
|
+
--hs-grid-min: calc((480px - var(--hs-grid-gap)) / 2);
|
|
499
504
|
display: grid;
|
|
500
|
-
gap: var(--u-space-md, 12px) var(--
|
|
505
|
+
gap: var(--u-space-md, 12px) var(--hs-grid-gap);
|
|
501
506
|
}
|
|
502
|
-
.hs-grid-2 {
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
+
.hs-grid-2 {
|
|
508
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, max(var(--hs-grid-min), (100% - var(--hs-grid-gap)) / 2)), 1fr));
|
|
509
|
+
}
|
|
510
|
+
.hs-grid-3 {
|
|
511
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, max(var(--hs-grid-min), (100% - 2 * var(--hs-grid-gap)) / 3)), 1fr));
|
|
507
512
|
}
|
|
513
|
+
.hs-span-all { grid-column: 1 / -1; }
|
|
508
514
|
|
|
509
515
|
/* ββ Side sheet footer β change summary on the left, Cancel / Save on the right ββ */
|
|
510
516
|
.hs-sheet-footer {
|
package/styles/tokens.css
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
--u-panel-bg-color: #FFFFFF;
|
|
48
48
|
--u-input-bg-color: #FFFFFF;
|
|
49
49
|
--u-bg-color-raised: #F1F1EF; /* table header, toolbar strip, read-only field */
|
|
50
|
-
--u-bg-color-raised-hover: #
|
|
50
|
+
--u-bg-color-raised-hover: #E5E5E2;
|
|
51
51
|
--u-bg-color-hover: #F1F1EF;
|
|
52
52
|
--u-bg-color-active: #EAEAE7;
|
|
53
53
|
--u-bg-color-disabled: #F1F1EF;
|
|
@@ -83,9 +83,25 @@
|
|
|
83
83
|
--u-primary-txt-color: #FFFFFF;
|
|
84
84
|
--u-primary-bg-color: #EEF3FD; /* selected rows, current item */
|
|
85
85
|
|
|
86
|
-
/* Interaction β blue, for links and
|
|
86
|
+
/* Interaction β blue, for links, focus and the mark of a chosen option (a checked box or radio) */
|
|
87
87
|
--u-link-txt-color: #1F5FCC;
|
|
88
88
|
--u-focus-ring-color: #2F6FEB;
|
|
89
|
+
--u-selection-color: #2F6FEB;
|
|
90
|
+
--u-selection-txt-color: #FFFFFF; /* the check drawn on that fill */
|
|
91
|
+
|
|
92
|
+
/* Chart series β eight, in order (slot one first, never cycled). Slot one is the interaction blue, so a
|
|
93
|
+
one-series chart draws in the colour the rest of the screen uses for "this is the thing"; the other seven
|
|
94
|
+
are muted, warm-leaning hues chosen as a set: OKLCH L 0.50β0.68, chroma β₯ 0.10, neighbours ΞE β₯ 15 for
|
|
95
|
+
full colour vision and β₯ 8 under redβgreen deficiency (Machado 2009), every slot at least ΞE 10 from a
|
|
96
|
+
status colour. Slot six (light olive) is 2.8:1 on white β six or more series need a legend or labels. */
|
|
97
|
+
--u-chart-color-1: #2F6FEB;
|
|
98
|
+
--u-chart-color-2: #B55F40;
|
|
99
|
+
--u-chart-color-3: #14938D;
|
|
100
|
+
--u-chart-color-4: #AF8020;
|
|
101
|
+
--u-chart-color-5: #7D4B92;
|
|
102
|
+
--u-chart-color-6: #86A645;
|
|
103
|
+
--u-chart-color-7: #C46E83;
|
|
104
|
+
--u-chart-color-8: #834B14;
|
|
89
105
|
|
|
90
106
|
/* Status β `-color-strong` is the text step (on surface and on its own tint), `-bg-color`
|
|
91
107
|
the tint, `-color` the solid fill (with `-txt-color` on top). */
|
|
@@ -204,6 +220,20 @@
|
|
|
204
220
|
|
|
205
221
|
--u-link-txt-color: #8DB3F7;
|
|
206
222
|
--u-focus-ring-color: #6E9CF7;
|
|
223
|
+
--u-selection-color: #6E9CF7;
|
|
224
|
+
--u-selection-txt-color: #0E0F10;
|
|
225
|
+
|
|
226
|
+
/* Chart series, dark β the same hues stepped into the dark band (L 0.52β0.66), every slot β₯ 3:1 on the
|
|
227
|
+
surface and the raised surface. Slot one is the dark interaction blue taken to the band's top (#6E9CF7
|
|
228
|
+
itself is lighter than a filled mark should be on this surface). */
|
|
229
|
+
--u-chart-color-1: #628FEA;
|
|
230
|
+
--u-chart-color-2: #C97152;
|
|
231
|
+
--u-chart-color-3: #04A19B;
|
|
232
|
+
--u-chart-color-4: #B8892D;
|
|
233
|
+
--u-chart-color-5: #9760AF;
|
|
234
|
+
--u-chart-color-6: #57833D;
|
|
235
|
+
--u-chart-color-7: #CF7188;
|
|
236
|
+
--u-chart-color-8: #9A5F1A;
|
|
207
237
|
|
|
208
238
|
--u-info-color-weakest: #1F3152;
|
|
209
239
|
--u-info-color-weaker: #2C4A7E;
|
|
@@ -311,6 +341,9 @@
|
|
|
311
341
|
--hs-text-dense-size: calc((var(--u-text-body-size) + var(--u-text-label-size)) / 2);
|
|
312
342
|
--hs-text-hero-size: calc(var(--u-text-display-size) + 6px);
|
|
313
343
|
|
|
344
|
+
/* Prose measure β a running paragraph stops around 70 characters a line (`.hs-prose`). */
|
|
345
|
+
--hs-measure: 70ch;
|
|
346
|
+
|
|
314
347
|
/* Field box (`@iyulab/components`) β 32px fields beside 32px buttons; 40px inside form sections. In em, so the box
|
|
315
348
|
follows the control density with the buttons (resolved at the field: 4.5px / 12px at the default 14px). */
|
|
316
349
|
--u-field-padding-block: calc(4.5em / 14);
|