@keenmate/web-components-devkit 1.0.0-rc03 → 1.0.0-rc05
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 +53 -0
- package/README.md +18 -12
- package/package.json +1 -1
- package/src/examples/css/content.css +17 -0
- package/src/examples/css/controls.css +34 -1
- package/src/examples/css/tables.css +3 -2
- package/src/examples/css/tokens.css +5 -0
- package/src/examples/css/widgets.css +118 -22
- package/templates/claude-block.md +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,58 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.0.0-rc05] - 2026-11-01 [PUBLISHED]
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **`.event-log` is now the same panel as `.log-panel--dark`** — the legacy console differed
|
|
8
|
+
in small ways (grey base text, 0.8rem, 200px cap, no columns), so old and new logs looked
|
|
9
|
+
slightly different. It now renders exactly as `.log-panel--dark` (light base text,
|
|
10
|
+
0.85rem, `--log-max-height`, default 220px), and an `.event-entry` holding `.event-time`
|
|
11
|
+
/ `.event-name` is a timeline row: aligned time column, the detail wrapping in its own
|
|
12
|
+
column, tones via `.log-line--*`. Other `.event-log` markup (lines without
|
|
13
|
+
`.event-entry`, page-own classes) just gets the panel look.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Log lines: one tone set, timeline columns, text logs, empty placeholder** —
|
|
18
|
+
web-components-core's pages each coloured their log lines (four schemes mixing severity
|
|
19
|
+
with "what happened"). A `.log-line` now takes one of the pill tones — `--ok`, `--info`,
|
|
20
|
+
`--warn`, `--err`, `--muted` — and `--action` marks a "you clicked X" line. On
|
|
21
|
+
`.log-panel--dark` and `.event-log` the tones switch to fixed light tints
|
|
22
|
+
(`--kmwc-console-ok|info|warn|err-color`), so they stay readable on the console in both
|
|
23
|
+
themes. Every line in a log keeps its line breaks and indentation. The cells
|
|
24
|
+
`.log-line__seq`, `__time`, `__source`, `__name` turn a line into aligned columns, with
|
|
25
|
+
the detail wrapping in its own column. `<pre class="log-panel">` is a log fed by
|
|
26
|
+
`textContent`; `data-empty` is shown while a panel is empty.
|
|
27
|
+
- **`.pill--info` / `--muted` and `.status-dot--info` / `--muted`**, so pills, dots and log
|
|
28
|
+
lines share the same five tones.
|
|
29
|
+
- **`.mono`** (monospace text without the code chip; `textarea.mono` for a JSON editor),
|
|
30
|
+
**`td.is-highlight`** (one highlighted cell) and **`.check-list`** (checkbox / radio
|
|
31
|
+
options one per line, a long label wrapping beside its box).
|
|
32
|
+
- Playground: WG01 and WG03 show the tones, new WG05 (timeline), WG06 (text log, empty
|
|
33
|
+
placeholder), WG07 (`.mono`), FC11 (check list), TB06 (highlighted cell); e2e specs.
|
|
34
|
+
|
|
35
|
+
## [1.0.0-rc04] - 2026-11-01 [PUBLISHED]
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- **A wide `<pre>` or table in a `.grid` / `.grid-2` / `.card-grid` item no longer widens the
|
|
40
|
+
page on a phone** — grid items kept `min-width: auto` (their min-content), so the single
|
|
41
|
+
`1fr` column grew past the screen instead of letting the content scroll. Items now get
|
|
42
|
+
`min-width: 0`. Reported from web-components-core's page migration.
|
|
43
|
+
- **Long `<code>` in a `.controls` button wraps** — rc03 only wrapped code inside
|
|
44
|
+
`.controls` labels; it now covers any `.controls code`, and a `.controls` button is
|
|
45
|
+
capped at the row width.
|
|
46
|
+
- **The playground's form-controls page now links `examples-local.css`** — FC08's
|
|
47
|
+
`.fc-player` row was unstyled; the e2e spec now checks it.
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- **Playground: a Widgets page** (`examples-widgets.html`, WG01–WG04) showing the kit's
|
|
52
|
+
opt-in helpers as they are today — light and dark `.log-panel`, the legacy `.event-log`,
|
|
53
|
+
`.pill` / `.status-dot` tones, `.display-sliders` with a live `.css-readout` — the base for
|
|
54
|
+
the coming log-tone work. With an e2e spec.
|
|
55
|
+
|
|
3
56
|
## [1.0.0-rc03] - 2026-11-01 [PUBLISHED]
|
|
4
57
|
|
|
5
58
|
### Fixed
|
package/README.md
CHANGED
|
@@ -19,21 +19,18 @@ them in the same shape: `@keenmate/web-components-devkit`.
|
|
|
19
19
|
> positioning) lives in [`@keenmate/web-components-core`](../web-components-core).
|
|
20
20
|
> Nothing here ships inside a component's bundle.
|
|
21
21
|
|
|
22
|
-
## What's New in v1.0.0-
|
|
22
|
+
## What's New in v1.0.0-rc05
|
|
23
23
|
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
26
|
-
-
|
|
27
|
-
- **
|
|
28
|
-
- **Example pages — short chapter links, phones and the example-pages suite** — `#th07`, `#th7` or an uncoded heading's slug now scroll to that chapter on arrival. On a phone, example pages no longer grow wider than the screen, which made mobile browsers report a wrong viewport to pages that demo breakpoints. `kmwc doctor` runs the rulebook's new `example-pages` suite: every example `<h2>` carries a permanent section code.
|
|
29
|
-
- **`make dev` at the devkit root** — the standard `dev` / `kill-port` / `build-examples` / `preview-examples` targets, run against the playground.
|
|
24
|
+
- **Log panels — one tone set for every log line** — web-components-core's example pages each coloured their log lines with their own classes (`.warn`, `.lv-error`, `data-kind="hook"` …), four schemes mixing severity with "what happened". A `.log-line` now takes one of five tones — `--ok`, `--info`, `--warn`, `--err`, `--muted`, the same names as `.pill` and `.status-dot` (which gain `--info` / `--muted`) — and `--action` marks a "▶ you clicked X" line. Kinds such as hook or callback map onto those tones; the kind itself goes in a cell as text. On `.log-panel--dark` the tones switch to fixed light tints (`--kmwc-console-ok|info|warn|err-color`), so they stay readable on the console in both themes, while a light `.log-panel` follows the page theme. Every line keeps its line breaks and indentation.
|
|
25
|
+
- **Log panels — timeline columns, text logs and an empty placeholder** — The cells `.log-line__seq`, `__time`, `__source` and `__name` turn a line into aligned columns, with the detail after them wrapping in its own column; the name takes the line's tone. A log fed by `textContent` is a `<pre class="log-panel">`, `data-empty="(nothing yet)"` shows while a panel is empty, and `--log-max-height: none` lets a log grow. This replaces the page-local timeline CSS core's Lifecycle and Interaction pages carried.
|
|
26
|
+
- **`.event-log` — the legacy console now renders as `.log-panel--dark`** — Many component pages (web-grid, web-dropzone, web-treeview, the showcases) still use `.event-log` / `.event-entry` / `.event-time` / `.event-name`, which differed slightly from the newer panel (grey base text, 0.8rem, a 200px cap, no columns). It is now the same panel, and an `.event-entry` holding `.event-time` / `.event-name` is a timeline row with an aligned time column and tones, so old and new logs look the same. Other `.event-log` markup — lines without `.event-entry`, page-own classes — only gets the panel look, so existing layouts don't break.
|
|
27
|
+
- **Small helpers — `.mono`, `td.is-highlight`, `.check-list`** — `.mono` sets the monospace font without the code chip, and `textarea.mono` makes a JSON or config editor. `td.is-highlight` (or `th`) tints one table cell, where only whole rows could be highlighted before. `.check-list` stacks checkbox / radio options one per line, a long label wrapping beside its box, with room for a trailing `.pill`. The playground shows everything on the Widgets (WG01–WG07), Form controls (FC11) and Tables (TB06) pages.
|
|
30
28
|
|
|
31
|
-
## What's New in v1.0.0-
|
|
29
|
+
## What's New in v1.0.0-rc04
|
|
32
30
|
|
|
33
|
-
- **
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
- **`kmwc doctor` — rulebook suites run from an npm install** — With the devkit installed from npm instead of linked, doctor looked for the BlissFramework rulebook at a path relative to the devkit, which ended up inside `node_modules`, and silently skipped every suite. It now uses the nearest `BlissFramework/guidelines/web-components` above the component (then above the devkit), and `kmwc.rulebook.path` resolves against the component root.
|
|
31
|
+
- **Example-page grids — wide content scrolls instead of widening the page** — A `<pre>` or table inside a `.grid`, `.grid-2` or `.card-grid` item still pushed the page wider than a phone: grid items default to `min-width: auto` (their min-content), so the single `1fr` column at ≤ 768 px grew to fit the content instead of letting it scroll. Every item of the three grids now gets `min-width: 0`, the same rule pure-css puts on its `.pc-col-*` columns. Found by two agents migrating web-components-core's example pages, which drop their page-local workaround with this release.
|
|
32
|
+
- **`.controls` — long `<code>` in a button wraps on a phone** — rc03 wrapped `<code>` only inside `.controls` labels, so a button whose label was an unbroken API name (`setAttribute("…")`) still overflowed the row. The wrap rule (`overflow-wrap: anywhere`) now covers any `<code>` in a `.controls` row, and a `.controls` button is capped at the row width. An e2e spec injects both cases at 390 px and checks that the page stays inside the screen.
|
|
33
|
+
- **Playground — a Widgets page for the kit's opt-in helpers** — `.log-panel` (light and `--dark`), the legacy `.event-log`, `.pill` / `.status-dot` tones, `.display-sliders` and `.css-readout` had no demo, so their look was only checked on component pages. The new `examples-widgets.html` (WG01–WG04) shows them as they are today, including the gaps the coming log-tone work fixes (no line tones, leading spaces collapsing in a log line), and gets its own e2e spec.
|
|
37
34
|
|
|
38
35
|
## Catalogue
|
|
39
36
|
|
|
@@ -286,6 +283,15 @@ doctor` lists the ones still repeating the head/header boilerplate.
|
|
|
286
283
|
(tighter cells; the controls in it shrink via `--kmwc-control-height`) — plus
|
|
287
284
|
`tr.is-highlight` and a `.num` cell (right-aligned, tabular figures). On a phone
|
|
288
285
|
a wide table scrolls inside its card. See the playground's `examples-tables.html`.
|
|
286
|
+
- **Widgets:** `.log-panel` (light, following the theme; `--dark` for a console
|
|
287
|
+
stream; the legacy `.event-log` / `.event-entry` markup renders the same). Lines keep their indentation; a
|
|
288
|
+
`.log-line` takes one tone — `--ok`, `--info`, `--warn`, `--err`, `--muted`,
|
|
289
|
+
the same five as `.pill` / `.status-dot` — and `--action` marks a "you clicked
|
|
290
|
+
X" line. Timeline cells (`.log-line__seq`, `__time`, `__source`, `__name`)
|
|
291
|
+
turn a line into aligned columns. A `<pre class="log-panel">` is a text-fed
|
|
292
|
+
log; `data-empty` shows while a panel is empty. Also `.mono`, `.check-list`
|
|
293
|
+
(options one per line), `td.is-highlight`, `.display-sliders` and
|
|
294
|
+
`.css-readout`. The playground's `examples-widgets.html` shows them all.
|
|
289
295
|
- **Theme switch** (top right) cycles light → dark → auto and sets
|
|
290
296
|
`data-theme` on `<html>` — the same signal components react to via
|
|
291
297
|
`:host-context([data-theme])`, so every example page is a dark-mode smoke
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keenmate/web-components-devkit",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-rc05",
|
|
4
4
|
"description": "Shared dev, example-site and build infrastructure for Keenmate web components: Vite preset, examples kit (chapter nav, copy-link, controls store, shared styles), Playwright preset and the `kmwc` CLI (sync, doctor, check-vars, new, readme).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -177,6 +177,13 @@
|
|
|
177
177
|
gap: var(--grid-gap, 2rem);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
+
/* A grid item's min-width defaults to its min-content, so a wide <pre> or
|
|
181
|
+
table would widen the column (and the page on a phone) instead of
|
|
182
|
+
scrolling inside the item. */
|
|
183
|
+
:is(.grid, .grid-2, .card-grid) > * {
|
|
184
|
+
min-width: 0;
|
|
185
|
+
}
|
|
186
|
+
|
|
180
187
|
.grid-2 {
|
|
181
188
|
--grid-min: 400px;
|
|
182
189
|
}
|
|
@@ -207,6 +214,16 @@
|
|
|
207
214
|
color: var(--kmwc-text-color-3);
|
|
208
215
|
}
|
|
209
216
|
|
|
217
|
+
/* Monospace text that isn't code (folded values, code-unit dumps); on a
|
|
218
|
+
textarea, a JSON / config editor. */
|
|
219
|
+
.mono {
|
|
220
|
+
font-family: var(--kmwc-mono-font-family);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
textarea.mono {
|
|
224
|
+
font-size: 0.8125rem;
|
|
225
|
+
}
|
|
226
|
+
|
|
210
227
|
.mt-1 {
|
|
211
228
|
margin-top: 1rem;
|
|
212
229
|
}
|
|
@@ -67,11 +67,16 @@
|
|
|
67
67
|
max-width: 100%;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
/* Long code in a label or button breaks instead of widening the row. */
|
|
71
|
+
.controls code,
|
|
71
72
|
.toggle-label code {
|
|
72
73
|
overflow-wrap: anywhere;
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
.controls button {
|
|
77
|
+
max-width: 100%;
|
|
78
|
+
}
|
|
79
|
+
|
|
75
80
|
/* A select is as wide as its longest option — cap it at the row. */
|
|
76
81
|
.controls select {
|
|
77
82
|
max-width: 100%;
|
|
@@ -81,6 +86,34 @@
|
|
|
81
86
|
margin-bottom: 0.75rem;
|
|
82
87
|
}
|
|
83
88
|
|
|
89
|
+
/* Check list — checkbox / radio options one per line; a long label wraps
|
|
90
|
+
beside its box, and anything after the text (a .pill) follows it. */
|
|
91
|
+
.check-list {
|
|
92
|
+
display: grid;
|
|
93
|
+
gap: 0.35rem;
|
|
94
|
+
margin-bottom: 1rem;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.check-list > label {
|
|
98
|
+
display: flex;
|
|
99
|
+
align-items: flex-start;
|
|
100
|
+
gap: 0.5rem;
|
|
101
|
+
cursor: pointer;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.check-list > label > input {
|
|
105
|
+
flex: none;
|
|
106
|
+
margin-top: calc((1lh - var(--kmwc-checkbox-size)) / 2);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.check-list > label > :not(input) {
|
|
110
|
+
min-width: 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.check-list code {
|
|
114
|
+
overflow-wrap: anywhere;
|
|
115
|
+
}
|
|
116
|
+
|
|
84
117
|
/* Control group — a label stacked over an input/select; rows of them wrap
|
|
85
118
|
via `.control-row`. */
|
|
86
119
|
.control-row {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
.table-striped zebra rows
|
|
10
10
|
.table-compact tighter cells; controls inside shrink with them
|
|
11
11
|
.table-full full width
|
|
12
|
-
tr.is-highlight an accent-tinted row
|
|
12
|
+
tr.is-highlight an accent-tinted row (td.is-highlight: one cell)
|
|
13
13
|
.num a right-aligned, tabular-figure cell
|
|
14
14
|
|
|
15
15
|
The base is zero-specificity (:where()), so a page or component rule wins;
|
|
@@ -103,7 +103,8 @@
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
tr.is-highlight,
|
|
106
|
-
tr.is-highlight:hover
|
|
106
|
+
tr.is-highlight:hover,
|
|
107
|
+
:is(th, td).is-highlight {
|
|
107
108
|
background: var(--kmwc-accent-light-bg);
|
|
108
109
|
}
|
|
109
110
|
|
|
@@ -113,6 +113,11 @@
|
|
|
113
113
|
--kmwc-console-text-color: #e2e8f0;
|
|
114
114
|
--kmwc-console-muted-color: #94a3b8;
|
|
115
115
|
--kmwc-console-highlight-color: #68d391;
|
|
116
|
+
/* Log-line tones on the console (always dark, so fixed light tints). */
|
|
117
|
+
--kmwc-console-ok-color: #68d391;
|
|
118
|
+
--kmwc-console-info-color: #7dd3fc;
|
|
119
|
+
--kmwc-console-warn-color: #fcd34d;
|
|
120
|
+
--kmwc-console-err-color: #fca5a5;
|
|
116
121
|
--kmwc-inline-code-bg: light-dark(#edf2f7, #2b2b2b);
|
|
117
122
|
|
|
118
123
|
/* ======================================================================
|
|
@@ -7,11 +7,31 @@
|
|
|
7
7
|
/* ==========================================================================
|
|
8
8
|
LOG PANELS
|
|
9
9
|
==========================================================================
|
|
10
|
-
`.log-panel` — monospace, scrollable box for streaming output
|
|
11
|
-
default
|
|
12
|
-
`--log-max-height
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
`.log-panel` — monospace, scrollable box for streaming output. Light by
|
|
11
|
+
default (it follows the page theme); `.log-panel--dark` for a console
|
|
12
|
+
stream (always dark). `--log-max-height` caps the height (`none` lets it
|
|
13
|
+
grow).
|
|
14
|
+
|
|
15
|
+
Lines: any child keeps its line breaks and indentation. `.log-line` takes
|
|
16
|
+
one tone — `--ok`, `--info`, `--warn`, `--err`, `--muted` (the pill
|
|
17
|
+
tones) — and `--action` marks a "you clicked X" line. Timeline cells
|
|
18
|
+
`.log-line__seq`, `__time`, `__source`, `__name` turn a line into columns;
|
|
19
|
+
the element after them is the detail. A panel fed by textContent is a
|
|
20
|
+
`<pre class="log-panel">`. `data-empty="(nothing yet)"` shows while the
|
|
21
|
+
panel is empty.
|
|
22
|
+
|
|
23
|
+
Legacy markup: `.event-log` is a `.log-panel--dark`, an `.event-entry`
|
|
24
|
+
holding `.event-time` / `.event-name` is a timeline line with those two
|
|
25
|
+
cells. Prefer the `.log-*` classes in new pages. */
|
|
26
|
+
.log-panel,
|
|
27
|
+
.event-log {
|
|
28
|
+
--kmwc-log-ok-color: var(--kmwc-success-color);
|
|
29
|
+
--kmwc-log-info-color: var(--kmwc-info-color);
|
|
30
|
+
--kmwc-log-warn-color: var(--kmwc-warning-color);
|
|
31
|
+
--kmwc-log-err-color: var(--kmwc-danger-color);
|
|
32
|
+
--kmwc-log-muted-color: var(--kmwc-text-color-3);
|
|
33
|
+
--kmwc-log-name-color: var(--kmwc-accent-color);
|
|
34
|
+
--kmwc-log-rule-color: var(--kmwc-border-color);
|
|
15
35
|
font-family: var(--kmwc-mono-font-family);
|
|
16
36
|
font-size: 0.85rem;
|
|
17
37
|
line-height: 1.5;
|
|
@@ -24,31 +44,101 @@
|
|
|
24
44
|
border: 1px solid var(--kmwc-border-color);
|
|
25
45
|
}
|
|
26
46
|
|
|
27
|
-
.log-panel--dark
|
|
47
|
+
.log-panel--dark,
|
|
48
|
+
.event-log {
|
|
49
|
+
--kmwc-log-ok-color: var(--kmwc-console-ok-color);
|
|
50
|
+
--kmwc-log-info-color: var(--kmwc-console-info-color);
|
|
51
|
+
--kmwc-log-warn-color: var(--kmwc-console-warn-color);
|
|
52
|
+
--kmwc-log-err-color: var(--kmwc-console-err-color);
|
|
53
|
+
--kmwc-log-muted-color: var(--kmwc-console-muted-color);
|
|
54
|
+
--kmwc-log-name-color: var(--kmwc-console-highlight-color);
|
|
55
|
+
--kmwc-log-rule-color: color-mix(in srgb, var(--kmwc-console-text-color) 12%, transparent);
|
|
28
56
|
background: var(--kmwc-console-bg);
|
|
29
57
|
color: var(--kmwc-console-text-color);
|
|
30
58
|
border-color: transparent;
|
|
31
59
|
}
|
|
32
60
|
|
|
33
|
-
.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
overflow-
|
|
42
|
-
|
|
61
|
+
pre.log-panel {
|
|
62
|
+
margin: 0;
|
|
63
|
+
white-space: pre-wrap;
|
|
64
|
+
overflow-wrap: anywhere;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
:is(.log-panel, .event-log) > * {
|
|
68
|
+
white-space: pre-wrap;
|
|
69
|
+
overflow-wrap: anywhere;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:is(.log-panel, .event-log)[data-empty]:empty::before {
|
|
73
|
+
content: attr(data-empty);
|
|
74
|
+
color: var(--kmwc-log-muted-color);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.log-line,
|
|
78
|
+
.event-entry {
|
|
79
|
+
color: var(--kmwc-log-tone, currentColor);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.log-line--ok { --kmwc-log-tone: var(--kmwc-log-ok-color); }
|
|
83
|
+
.log-line--info { --kmwc-log-tone: var(--kmwc-log-info-color); }
|
|
84
|
+
.log-line--warn { --kmwc-log-tone: var(--kmwc-log-warn-color); }
|
|
85
|
+
.log-line--err { --kmwc-log-tone: var(--kmwc-log-err-color); }
|
|
86
|
+
.log-line--muted { --kmwc-log-tone: var(--kmwc-log-muted-color); }
|
|
87
|
+
|
|
88
|
+
.log-line--action {
|
|
89
|
+
font-weight: 600;
|
|
43
90
|
}
|
|
44
91
|
|
|
45
|
-
.
|
|
46
|
-
|
|
47
|
-
border-bottom: 1px solid color-mix(in srgb, var(--kmwc-console-text-color) 6%, transparent);
|
|
92
|
+
.log-line--action:not(:first-child) {
|
|
93
|
+
margin-top: 0.35rem;
|
|
48
94
|
}
|
|
49
95
|
|
|
50
|
-
|
|
51
|
-
|
|
96
|
+
/* Timeline: a line with cells is a row; the cells keep their width and the
|
|
97
|
+
detail after them wraps in its own column. */
|
|
98
|
+
.log-line:has(> :is(.log-line__seq, .log-line__time, .log-line__source, .log-line__name)),
|
|
99
|
+
.event-entry:has(> :is(.event-time, .event-name)) {
|
|
100
|
+
display: flex;
|
|
101
|
+
column-gap: 0.6rem;
|
|
102
|
+
padding: 0.1rem 0;
|
|
103
|
+
border-bottom: 1px solid var(--kmwc-log-rule-color);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.log-line:has(> :is(.log-line__seq, .log-line__time, .log-line__source, .log-line__name)) > :last-child:not(.log-line__name) {
|
|
107
|
+
flex: 1 1 0;
|
|
108
|
+
min-width: 0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.log-line__seq,
|
|
112
|
+
.log-line__time,
|
|
113
|
+
.log-line__source,
|
|
114
|
+
.log-line__name,
|
|
115
|
+
.event-time,
|
|
116
|
+
.event-name {
|
|
117
|
+
flex: none;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.log-line__seq,
|
|
121
|
+
.log-line__time,
|
|
122
|
+
.event-time {
|
|
123
|
+
text-align: end;
|
|
124
|
+
font-variant-numeric: tabular-nums;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.log-line__seq { min-width: 2.2rem; }
|
|
128
|
+
.log-line__time { min-width: 4.6rem; }
|
|
129
|
+
|
|
130
|
+
.log-line__seq,
|
|
131
|
+
.log-line__time,
|
|
132
|
+
.log-line__source,
|
|
133
|
+
.event-time {
|
|
134
|
+
color: var(--kmwc-log-muted-color);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.log-line__name,
|
|
138
|
+
.event-name {
|
|
139
|
+
color: var(--kmwc-log-tone, var(--kmwc-log-name-color));
|
|
140
|
+
font-weight: 600;
|
|
141
|
+
}
|
|
52
142
|
|
|
53
143
|
/* ==========================================================================
|
|
54
144
|
CSS-VARIABLE DEMO HELPERS
|
|
@@ -98,7 +188,9 @@
|
|
|
98
188
|
|
|
99
189
|
/* ==========================================================================
|
|
100
190
|
STATUS DOTS & PILLS
|
|
101
|
-
==========================================================================
|
|
191
|
+
==========================================================================
|
|
192
|
+
One tone set with the log lines: --ok, --info, --warn, --err, --muted
|
|
193
|
+
(= the neutral default). */
|
|
102
194
|
.status-dot {
|
|
103
195
|
--kmwc-status-color: var(--kmwc-neutral-color);
|
|
104
196
|
display: inline-block;
|
|
@@ -113,6 +205,8 @@
|
|
|
113
205
|
.status-dot--ok { --kmwc-status-color: var(--kmwc-success-color); }
|
|
114
206
|
.status-dot--warn { --kmwc-status-color: var(--kmwc-warning-color); }
|
|
115
207
|
.status-dot--err { --kmwc-status-color: var(--kmwc-danger-color); }
|
|
208
|
+
.status-dot--info { --kmwc-status-color: var(--kmwc-info-color); }
|
|
209
|
+
.status-dot--muted { --kmwc-status-color: var(--kmwc-neutral-color); }
|
|
116
210
|
|
|
117
211
|
.pill {
|
|
118
212
|
--kmwc-status-color: var(--kmwc-neutral-color);
|
|
@@ -130,4 +224,6 @@
|
|
|
130
224
|
.pill--ok { --kmwc-status-color: var(--kmwc-success-color); }
|
|
131
225
|
.pill--warn { --kmwc-status-color: var(--kmwc-warning-color); }
|
|
132
226
|
.pill--err { --kmwc-status-color: var(--kmwc-danger-color); }
|
|
227
|
+
.pill--info { --kmwc-status-color: var(--kmwc-info-color); }
|
|
228
|
+
.pill--muted { --kmwc-status-color: var(--kmwc-neutral-color); }
|
|
133
229
|
}
|
|
@@ -25,7 +25,9 @@ locally — every local fork is how they drifted apart.
|
|
|
25
25
|
controls (inputs, selects, checkboxes, radios, `role="switch"`, buttons) and
|
|
26
26
|
tables are already styled by the kit (`.reference-table`, `.table-striped`,
|
|
27
27
|
`.table-compact`, …) — don't restyle them per page; `kmwc-native` opts an
|
|
28
|
-
element out.
|
|
28
|
+
element out. Log lines take the kit tones (`.log-line--ok|info|warn|err|muted`,
|
|
29
|
+
`--action`, timeline cells `.log-line__time` …) — don't colour them per page.
|
|
30
|
+
If a second component needs a pattern, it belongs in the devkit.
|
|
29
31
|
- **Example pages are fragments:** no `<html>`/`<head>`/`<header>` — start with
|
|
30
32
|
`<meta name="kmwc:title" content="…">`, the devkit layout adds the rest. Shared text
|
|
31
33
|
goes in `partials/` via `<kmwc-include>`; show code with `<kmwc-demo>` (the live
|