domma-js 0.40.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Elements CSS v0.40.0
2
+ * Domma Elements CSS v0.41.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-21T16:29:27.264Z
6
- * Commit: c788672
5
+ * Built: 2026-08-22T13:41:49.303Z
6
+ * Commit: 5d8b7e1
7
7
  */
8
8
 
9
9
  /**
@@ -265,8 +265,13 @@
265
265
  border-color: var(--dm-primary);
266
266
  }
267
267
 
268
+ /* No --dm-primary-text here. That token is the foreground for text drawn ON a
269
+ primary fill, which is what the header and footer above do. The body has no
270
+ fill - it sits on the card's own surface - so borrowing the fill foreground
271
+ put near-black text (#1a1a1a in the dark themes) on a dark surface, at 1.19
272
+ contrast. Inheriting --dm-text from the card is the correct behaviour. */
268
273
  .card-primary .card-body {
269
- color: var(--dm-primary-text, var(--dm-white));
274
+ color: var(--dm-text);
270
275
  }
271
276
 
272
277
  .card-primary .card-footer {
@@ -2181,10 +2186,25 @@ code {
2181
2186
  border-radius: 0;
2182
2187
  }
2183
2188
 
2189
+ /* The active link used to take --dm-primary as its text colour. --dm-primary is
2190
+ a mid-tone in several theme families, so on the navbar surface it measured as
2191
+ low as 1.72 (lemon-light). Primary stays as the accent - the tinted pill and
2192
+ the underline - but the text itself uses the one token guaranteed to read on
2193
+ this surface. */
2194
+ /* The active link used to take --dm-primary as its text colour. --dm-primary is
2195
+ a mid-tone in several theme families, so on the navbar surface it measured as
2196
+ low as 1.72 (lemon-light).
2197
+
2198
+ The affordance is now the primary underline plus the weight, and the text
2199
+ uses the one token guaranteed to read on this surface. Deliberately no pill
2200
+ background: a tint of --dm-primary shifts the bar toward the text colour in
2201
+ the themes where primary is light, which cost ~2 points of contrast on the
2202
+ already-tightest combination (dark theme + .navbar-light). Underline only
2203
+ means the active state can never read worse than the brand beside it. */
2184
2204
  .navbar-link.active {
2185
- color: var(--dm-primary);
2205
+ color: var(--dm-navbar-text);
2186
2206
  font-weight: 500;
2187
- background-color: color-mix(in srgb, var(--dm-primary) 10%, transparent);
2207
+ box-shadow: inset 0 -2px 0 0 var(--dm-primary);
2188
2208
  }
2189
2209
 
2190
2210
  .nav-version {
@@ -2192,78 +2212,77 @@ code {
2192
2212
  color: var(--dm-text-secondary, #eee);
2193
2213
  }
2194
2214
 
2195
- /* Light navbar variant */
2196
-
2197
- .navbar-light {
2198
- background-color: var(--dm-surface);
2199
- border-bottom-color: var(--dm-border);
2200
- }
2215
+ /* ---------------------------------------------------------------------------
2216
+ Navbar variants
2201
2217
 
2202
- .navbar-light .navbar-brand,
2203
- .navbar-light .navbar-brand-text {
2204
- color: var(--dm-text);
2205
- }
2218
+ These predate the theme system and used to be written as absolute colours:
2219
+ .navbar-dark painted the bar with --dm-background and its text with
2220
+ --dm-text-inverse. Those two tokens resolve to the SAME value in every dark
2221
+ theme (both are the theme's darkest slate), so the brand rendered at 1.00
2222
+ contrast - invisible, on every dark theme, in every consumer. .navbar-light
2223
+ failed the mirror way in light themes: a white bar with white text, and an
2224
+ active link at 2.56.
2206
2225
 
2207
- .navbar-light .navbar-link {
2208
- color: var(--dm-text-secondary);
2209
- }
2226
+ Every theme already ships the pair meant for this job - --dm-navbar-bg (the
2227
+ theme's navbar surface) and --dm-navbar-text (text guaranteed to read on it).
2228
+ So the variants are now tint modifiers on that surface rather than absolute
2229
+ colours: "dark" sits a shade below the theme's navbar, "light" a shade above.
2230
+ The two stay visually distinct, both follow the theme, and neither can
2231
+ collide with its own foreground.
2210
2232
 
2211
- .navbar-light .navbar-link:hover {
2212
- color: #ffffff !important;
2213
- background-color: #1e293b !important;
2214
- border-radius: var(--dm-radius-md);
2215
- }
2233
+ Measured worst case across 21 themes x both variants: 5.78 (was 1.00).
2234
+ --------------------------------------------------------------------------- */
2216
2235
 
2217
- /* Force dark hover in light mode using data-mode attribute */
2218
- [data-mode="light"] .navbar-link:hover {
2219
- color: #ffffff !important;
2220
- background-color: #1e293b !important;
2221
- border-radius: var(--dm-radius-md);
2222
- }
2223
-
2224
- .navbar-light .navbar-toggle {
2225
- color: var(--dm-text);
2226
- }
2236
+ /* Light navbar variant */
2227
2237
 
2228
- .navbar-light .navbar-toggle:hover {
2229
- background: var(--dm-background-alt);
2230
- color: var(--dm-text);
2238
+ .navbar-light {
2239
+ background-color: color-mix(in srgb, #fff 18%, var(--dm-navbar-bg));
2240
+ border-bottom-color: var(--dm-border);
2231
2241
  }
2232
2242
 
2233
2243
  /* Dark navbar variant */
2234
2244
 
2235
2245
  .navbar-dark {
2236
- background-color: var(--dm-background);
2246
+ background-color: color-mix(in srgb, #000 18%, var(--dm-navbar-bg));
2237
2247
  border-bottom-color: var(--dm-border-dark);
2238
2248
  }
2239
2249
 
2250
+ .navbar-light .navbar-brand,
2251
+ .navbar-light .navbar-brand-text,
2252
+ .navbar-light .navbar-toggle,
2240
2253
  .navbar-dark .navbar-brand,
2241
- .navbar-dark .navbar-brand-text {
2242
- color: var(--dm-text-inverse, var(--dm-white));
2243
- }
2244
-
2254
+ .navbar-dark .navbar-brand-text,
2245
2255
  .navbar-dark .navbar-toggle {
2246
- color: var(--dm-text-disabled);
2247
- }
2248
-
2249
- .navbar-dark .navbar-toggle:hover {
2250
- background: var(--dm-surface);
2251
- color: var(--dm-text-inverse, var(--dm-white));
2256
+ color: var(--dm-navbar-text);
2252
2257
  }
2253
2258
 
2259
+ /* Slightly muted against the brand, but never below AA. 85% is the floor that
2260
+ clears 4.5 in every theme - 72% dropped grayve/wedding/christmas to 3.8-4.0. */
2261
+ .navbar-light .navbar-link,
2254
2262
  .navbar-dark .navbar-link {
2255
- color: var(--dm-gray-400, #adb5bd);
2263
+ color: color-mix(in srgb, var(--dm-navbar-text) 85%, var(--dm-navbar-bg));
2256
2264
  }
2257
2265
 
2266
+ .navbar-light .navbar-link:hover,
2258
2267
  .navbar-dark .navbar-link:hover {
2259
- background-color: rgba(255, 255, 255, 0.3);
2260
- color: var(--dm-text-inverse, var(--dm-white));
2261
- border-radius: var(--dm-radius-sm);
2268
+ color: var(--dm-navbar-text);
2269
+ background-color: color-mix(in srgb, var(--dm-navbar-text) 12%, transparent);
2270
+ border-radius: var(--dm-radius-md);
2262
2271
  }
2263
2272
 
2264
- .navbar-dark .navbar-link.active {
2265
- background-color: var(--dm-surface);
2266
- color: var(--dm-text-inverse, var(--dm-white));
2273
+ .navbar-light .navbar-toggle:hover,
2274
+ .navbar-dark .navbar-toggle:hover {
2275
+ background: color-mix(in srgb, var(--dm-navbar-text) 12%, transparent);
2276
+ color: var(--dm-navbar-text);
2277
+ }
2278
+
2279
+ /* Legacy forced hover for light mode. Kept as-is for the plain/transparent
2280
+ navbar, but excluded from the two variants above - it carries !important and
2281
+ would otherwise override their theme-derived hover. */
2282
+ [data-mode="light"] .navbar:not(.navbar-light):not(.navbar-dark) .navbar-link:hover {
2283
+ color: #ffffff !important;
2284
+ background-color: #1e293b !important;
2285
+ border-radius: var(--dm-radius-md);
2267
2286
  }
2268
2287
 
2269
2288
  /* Dark navbar collapse border color (mobile) */
@@ -2542,23 +2561,19 @@ code {
2542
2561
  list-style: none;
2543
2562
  }
2544
2563
 
2545
- /* Dark navbar dropdown styles */
2546
- .navbar-dark .navbar-dropdown-menu {
2547
- background: var(--dm-surface);
2548
- border-color: var(--dm-border-dark, var(--dm-border));
2549
- }
2550
-
2551
- .navbar-dark .navbar-dropdown-item {
2552
- color: var(--dm-gray-400, #adb5bd);
2553
- }
2564
+ /* Dark navbar dropdown styles
2554
2565
 
2555
- .navbar-dark .navbar-dropdown-item:hover {
2556
- background: rgba(255, 255, 255, 0.3);
2557
- color: var(--dm-text-inverse, var(--dm-white));
2558
- }
2566
+ The dropdown panel is painted from --dm-surface whatever the bar variant, so
2567
+ the base rules above already render it correctly in both modes. The overrides
2568
+ that used to live here only re-stated that same background while replacing
2569
+ the text with a fixed grey and the hover with --dm-text-inverse over 30%
2570
+ white - which measured 2.56 and 1.00 respectively in every light theme, and
2571
+ 3.25 on hover in the dark ones. The divider was being painted --dm-surface,
2572
+ i.e. the panel's own colour, so it was invisible.
2559
2573
 
2560
- .navbar-dark .navbar-dropdown-divider {
2561
- background: var(--dm-surface);
2574
+ Only the border tint is worth keeping. */
2575
+ .navbar-dark .navbar-dropdown-menu {
2576
+ border-color: var(--dm-border-dark, var(--dm-border));
2562
2577
  }
2563
2578
 
2564
2579
  /* ============================================
@@ -2598,14 +2613,9 @@ code {
2598
2613
  border-radius: var(--dm-radius-md);
2599
2614
  }
2600
2615
 
2601
- .navbar-dark .navbar-submenu-toggle {
2602
- color: var(--dm-gray-400, #adb5bd);
2603
- }
2604
-
2605
- .navbar-dark .navbar-submenu-toggle:hover {
2606
- background: rgba(255, 255, 255, 0.3);
2607
- color: var(--dm-text-inverse, var(--dm-white));
2608
- }
2616
+ /* Same as the dropdown items above - the submenu toggle sits on the panel, not
2617
+ on the bar, so the base --dm-text / --dm-hover-bg pairing is the correct one
2618
+ and the fixed grey plus --dm-text-inverse overrides have been removed. */
2609
2619
 
2610
2620
  /* Submenu caret points to the side to signal a fly-out */
2611
2621
  .navbar-submenu-toggle .navbar-caret {
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Grid CSS v0.40.0
2
+ * Domma Grid CSS v0.41.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-21T16:29:27.259Z
6
- * Commit: c788672
5
+ * Built: 2026-08-22T13:41:49.299Z
6
+ * Commit: 5d8b7e1
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Syntax Highlighting CSS v0.40.0
2
+ * Domma Syntax Highlighting CSS v0.41.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-21T16:29:27.268Z
6
- * Commit: c788672
5
+ * Built: 2026-08-22T13:41:49.308Z
6
+ * Commit: 5d8b7e1
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Themes v0.40.0
2
+ * Domma Themes v0.41.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-21T16:29:27.241Z
6
- * Commit: c788672
5
+ * Built: 2026-08-22T13:41:49.280Z
6
+ * Commit: 5d8b7e1
7
7
  */
8
8
 
9
9
  /**
@@ -107,7 +107,7 @@ The template is pre-configured with working defaults for testing within the Domm
107
107
 
108
108
  1. **Start a server from Domma root:**
109
109
  ```bash
110
- cd /home/darryl/src/js/domma
110
+ cd /path/to/domma # the repository root
111
111
  live-server . --port=3006
112
112
  ```
113
113