domma-js 0.46.1 → 0.47.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.46.1
2
+ * Domma Elements CSS v0.47.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T20:40:05.319Z
6
- * Commit: 92f2ee4
5
+ * Built: 2026-09-27T21:27:08.368Z
6
+ * Commit: eff3166
7
7
  */
8
8
 
9
9
  /**
@@ -1132,6 +1132,118 @@ textarea:not([class])::placeholder {
1132
1132
  border-color: var(--dm-danger);
1133
1133
  }
1134
1134
 
1135
+ /* Input extras (formConfig reveal / clear / stepper, E.inputGroup): real
1136
+ * buttons joined to the input like an addon, but clickable and in the tab
1137
+ * order. Buttons after the input share its right border, buttons before it
1138
+ * its left; only the outermost piece of the group keeps a rounded corner. */
1139
+ .input-group-icon > .input-group-btn {
1140
+ display: flex;
1141
+ flex: none;
1142
+ align-items: center;
1143
+ justify-content: center;
1144
+ min-width: 2.5rem;
1145
+ margin: 0;
1146
+ padding: 0 var(--dm-space-2);
1147
+ font: inherit;
1148
+ line-height: 1;
1149
+ color: var(--dm-text);
1150
+ background-color: color-mix(in srgb, var(--dm-text) 6%, var(--dm-surface, var(--dm-white)));
1151
+ border: 1px solid var(--dm-border, var(--dm-gray-300));
1152
+ border-radius: 0;
1153
+ cursor: pointer;
1154
+ user-select: none;
1155
+ touch-action: manipulation;
1156
+ transition: border-color var(--dm-transition-fast), color var(--dm-transition-fast), background-color var(--dm-transition-fast);
1157
+ }
1158
+
1159
+ .input-group-icon > .input-group-btn[hidden] {
1160
+ display: none;
1161
+ }
1162
+
1163
+ .input-group-icon > .input-group-btn svg,
1164
+ .input-group-icon > .input-group-btn [data-icon] {
1165
+ width: 1.1em;
1166
+ height: 1.1em;
1167
+ pointer-events: none;
1168
+ }
1169
+
1170
+ .input-group-icon > .input-group-btn-left {
1171
+ border-right: 0;
1172
+ }
1173
+
1174
+ .input-group-icon > .input-group-btn-right {
1175
+ border-left: 0;
1176
+ }
1177
+
1178
+ .input-group-icon > .input-group-btn:first-child {
1179
+ border-radius: var(--dm-radius-md) 0 0 var(--dm-radius-md);
1180
+ }
1181
+
1182
+ .input-group-icon > .input-group-btn:last-child {
1183
+ border-radius: 0 var(--dm-radius-md) var(--dm-radius-md) 0;
1184
+ }
1185
+
1186
+ /* Hover and "on" tint the fill with the primary colour and keep the full text
1187
+ * colour: --dm-primary as text is a mid-tone on the lemon and silver families. */
1188
+ .input-group-icon > .input-group-btn:hover:not(:disabled),
1189
+ .input-group-icon > .input-group-btn[aria-pressed="true"] {
1190
+ background-color: color-mix(in srgb, var(--dm-primary) 14%, var(--dm-surface, var(--dm-white)));
1191
+ }
1192
+
1193
+ .input-group-icon > .input-group-btn:focus-visible {
1194
+ outline: 2px solid var(--dm-primary);
1195
+ outline-offset: -3px;
1196
+ }
1197
+
1198
+ .input-group-icon > .input-group-btn:disabled {
1199
+ opacity: 0.45;
1200
+ cursor: not-allowed;
1201
+ }
1202
+
1203
+ .input-group-icon:focus-within > .input-group-btn {
1204
+ border-color: var(--dm-primary);
1205
+ }
1206
+
1207
+ .input-group-icon:has(> .error) > .input-group-btn,
1208
+ .has-error .input-group-icon > .input-group-btn {
1209
+ border-color: var(--dm-danger);
1210
+ }
1211
+
1212
+ /* A number input with a stepper hides the browser's own spinner. */
1213
+ .input-group-icon > .input-group-decrease ~ input[type="number"] {
1214
+ -moz-appearance: textfield;
1215
+ appearance: textfield;
1216
+ text-align: center;
1217
+ }
1218
+
1219
+ .input-group-icon > .input-group-decrease ~ input[type="number"]::-webkit-inner-spin-button,
1220
+ .input-group-icon > .input-group-decrease ~ input[type="number"]::-webkit-outer-spin-button {
1221
+ -webkit-appearance: none;
1222
+ margin: 0;
1223
+ }
1224
+
1225
+ /* Character counter under the control: "12 / 200", amber from 90% of the
1226
+ * limit, red past it. The two state colours are mixed toward the text colour,
1227
+ * as .text-warning / .text-danger are (further, for AA on every theme). */
1228
+ .form-counter {
1229
+ margin-top: var(--dm-space-1);
1230
+ font-size: var(--dm-font-size-sm);
1231
+ font-variant-numeric: tabular-nums;
1232
+ text-align: right;
1233
+ color: var(--dm-text-secondary);
1234
+ transition: color var(--dm-transition-fast);
1235
+ }
1236
+
1237
+ .form-counter.is-warning {
1238
+ color: color-mix(in oklab, var(--dm-warning), var(--dm-text) 60%);
1239
+ font-weight: 600;
1240
+ }
1241
+
1242
+ .form-counter.is-over {
1243
+ color: color-mix(in oklab, var(--dm-danger), var(--dm-text) 50%);
1244
+ font-weight: 600;
1245
+ }
1246
+
1135
1247
  /* Prepend/Append style (addon outside input) */
1136
1248
  .input-group-prepend,
1137
1249
  .input-group-append {
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Grid CSS v0.46.1
2
+ * Domma Grid CSS v0.47.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T20:40:05.315Z
6
- * Commit: 92f2ee4
5
+ * Built: 2026-09-27T21:27:08.363Z
6
+ * Commit: eff3166
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Syntax Highlighting CSS v0.46.1
2
+ * Domma Syntax Highlighting CSS v0.47.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T20:40:05.322Z
6
- * Commit: 92f2ee4
5
+ * Built: 2026-09-27T21:27:08.372Z
6
+ * Commit: eff3166
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Themes v0.46.1
2
+ * Domma Themes v0.47.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-09-27T20:40:05.303Z
6
- * Commit: 92f2ee4
5
+ * Built: 2026-09-27T21:27:08.347Z
6
+ * Commit: eff3166
7
7
  */
8
8
 
9
9
  /**
@@ -317,6 +317,12 @@
317
317
  --dm-primary-light: #caf0f8;
318
318
  --dm-primary-dark: #023e8a;
319
319
 
320
+ /* Links: the primary is 4.38:1 as text here, under the 4.5:1 AA
321
+ minimum, so links mix in the text colour - the least (15%) that
322
+ reads at 5:1 or better on the page, surfaces and cards. */
323
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 15%);
324
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 30%);
325
+
320
326
  /* Secondary - Slate blue */
321
327
  --dm-secondary: #457b9d;
322
328
  --dm-secondary-hover: #5a8fad;
@@ -1187,6 +1193,12 @@
1187
1193
  --dm-primary-light: rgba(218, 157, 130, 0.15);
1188
1194
  --dm-primary-dark: #d08c6f;
1189
1195
 
1196
+ /* Links: the primary is 2.07:1 as text here, under the 4.5:1 AA
1197
+ minimum, so links mix in the text colour - the least (50%) that
1198
+ reads at 5:1 or better on the page, surfaces and cards. */
1199
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 50%);
1200
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 65%);
1201
+
1190
1202
  --dm-secondary: #c2a2aa;
1191
1203
  --dm-secondary-hover: #cdb0b7;
1192
1204
  --dm-secondary-active: #d8bec4;
@@ -1399,6 +1411,12 @@
1399
1411
  --dm-primary-light: rgba(198, 123, 92, 0.15);
1400
1412
  --dm-primary-dark: #a66349;
1401
1413
 
1414
+ /* Links: the primary is 3.15:1 as text here, under the 4.5:1 AA
1415
+ minimum, so links mix in the text colour - the least (45%) that
1416
+ reads at 5:1 or better on the page, surfaces and cards. */
1417
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 45%);
1418
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 60%);
1419
+
1402
1420
  /* Focus ring with soft sunset colour */
1403
1421
  --dm-focus-ring: 0 0 0 3px rgba(198, 123, 92, 0.3);
1404
1422
  --dm-border-focus: #c67b5c;
@@ -1613,6 +1631,12 @@
1613
1631
  --dm-primary-light: rgba(100, 149, 237, 0.15);
1614
1632
  --dm-primary-dark: #4169e1;
1615
1633
 
1634
+ /* Links: the primary is 2.67:1 as text here, under the 4.5:1 AA
1635
+ minimum, so links mix in the text colour - the least (40%) that
1636
+ reads at 5:1 or better on the page, surfaces and cards. */
1637
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 40%);
1638
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 55%);
1639
+
1616
1640
  --dm-secondary: #9370db;
1617
1641
  --dm-secondary-hover: #a384e0;
1618
1642
  --dm-secondary-active: #b398e5;
@@ -1809,6 +1833,12 @@
1809
1833
  --dm-primary-light: rgba(65, 105, 225, 0.15);
1810
1834
  --dm-primary-dark: #2c4a9e;
1811
1835
 
1836
+ /* Links: the primary is 2.14:1 as text here, under the 4.5:1 AA
1837
+ minimum, so links mix in the text colour - the least (60%) that
1838
+ reads at 5:1 or better on the page, surfaces and cards. */
1839
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 60%);
1840
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 75%);
1841
+
1812
1842
  /* Focus ring with royal colour */
1813
1843
  --dm-focus-ring: 0 0 0 3px rgba(65, 105, 225, 0.3);
1814
1844
  --dm-border-focus: #4169e1;
@@ -2022,6 +2052,12 @@
2022
2052
  --dm-primary-light: rgba(212, 192, 106, 0.15);
2023
2053
  --dm-primary-dark: #c9b458;
2024
2054
 
2055
+ /* Links: the primary is 1.63:1 as text here, under the 4.5:1 AA
2056
+ minimum, so links mix in the text colour - the least (55%) that
2057
+ reads at 5:1 or better on the page, surfaces and cards. */
2058
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 55%);
2059
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 70%);
2060
+
2025
2061
  --dm-secondary: #b6b1a1;
2026
2062
  --dm-secondary-hover: #c4bfb0;
2027
2063
  --dm-secondary-active: #d2cdbf;
@@ -2444,6 +2480,12 @@
2444
2480
  --dm-primary-light: rgba(160, 174, 192, 0.15);
2445
2481
  --dm-primary-dark: #718096;
2446
2482
 
2483
+ /* Links: the primary is 2.03:1 as text here, under the 4.5:1 AA
2484
+ minimum, so links mix in the text colour - the least (50%) that
2485
+ reads at 5:1 or better on the page, surfaces and cards. */
2486
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 50%);
2487
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 65%);
2488
+
2447
2489
  --dm-secondary: #cbd5e0;
2448
2490
  --dm-secondary-hover: #d5dce6;
2449
2491
  --dm-secondary-active: #dfe3ec;
@@ -2640,6 +2682,12 @@
2640
2682
  --dm-primary-light: rgba(112, 128, 144, 0.15);
2641
2683
  --dm-primary-dark: #4a5568;
2642
2684
 
2685
+ /* Links: the primary is 3.55:1 as text here, under the 4.5:1 AA
2686
+ minimum, so links mix in the text colour - the least (40%) that
2687
+ reads at 5:1 or better on the page, surfaces and cards. */
2688
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 40%);
2689
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 55%);
2690
+
2643
2691
  /* Focus ring with silver colour */
2644
2692
  --dm-focus-ring: 0 0 0 3px rgba(112, 128, 144, 0.3);
2645
2693
  --dm-border-focus: #708090;
@@ -2853,6 +2901,12 @@
2853
2901
  --dm-primary-light: rgba(120, 144, 156, 0.15);
2854
2902
  --dm-primary-dark: #607d8b;
2855
2903
 
2904
+ /* Links: the primary is 3.01:1 as text here, under the 4.5:1 AA
2905
+ minimum, so links mix in the text colour - the least (30%) that
2906
+ reads at 5:1 or better on the page, surfaces and cards. */
2907
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 30%);
2908
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 45%);
2909
+
2856
2910
  --dm-secondary: #90a4ae;
2857
2911
  --dm-secondary-hover: #a1b3bb;
2858
2912
  --dm-secondary-active: #b2c2c8;
@@ -3049,6 +3103,12 @@
3049
3103
  --dm-primary-light: rgba(138, 155, 171, 0.15);
3050
3104
  --dm-primary-dark: #1c2428;
3051
3105
 
3106
+ /* Links: the primary is 3.63:1 as text here, under the 4.5:1 AA
3107
+ minimum, so links mix in the text colour - the least (40%) that
3108
+ reads at 5:1 or better on the page, surfaces and cards. */
3109
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 40%);
3110
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 55%);
3111
+
3052
3112
  /* Focus ring with charcoal colour */
3053
3113
  --dm-focus-ring: 0 0 0 3px rgba(54, 69, 79, 0.3);
3054
3114
  --dm-border-focus: #36454f;
@@ -3851,6 +3911,12 @@
3851
3911
  --dm-primary-light: #f3e5f5;
3852
3912
  --dm-primary-dark: #7d3c98;
3853
3913
 
3914
+ /* Links: the primary is 3.85:1 as text here, under the 4.5:1 AA
3915
+ minimum, so links mix in the text colour - the least (25%) that
3916
+ reads at 5:1 or better on the page, surfaces and cards. */
3917
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 25%);
3918
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 40%);
3919
+
3854
3920
  /* Focus ring with soft purple colour */
3855
3921
  --dm-focus-ring: 0 0 0 3px rgba(155, 89, 182, 0.35);
3856
3922
  --dm-border-focus: #9b59b6;
@@ -4308,6 +4374,12 @@
4308
4374
  --dm-primary-light: #efebe9;
4309
4375
  --dm-primary-dark: #6d4c41;
4310
4376
 
4377
+ /* Links: the primary is 3.9:1 as text here, under the 4.5:1 AA
4378
+ minimum, so links mix in the text colour - the least (25%) that
4379
+ reads at 5:1 or better on the page, surfaces and cards. */
4380
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 25%);
4381
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 40%);
4382
+
4311
4383
  /* Focus ring with warm brown colour */
4312
4384
  --dm-focus-ring: 0 0 0 3px rgba(141, 110, 99, 0.35);
4313
4385
  --dm-border-focus: #8d6e63;
@@ -4767,6 +4839,12 @@
4767
4839
  --dm-primary-light: #e0f7fa;
4768
4840
  --dm-primary-dark: #006064;
4769
4841
 
4842
+ /* Links: the primary is 4.07:1 as text here, under the 4.5:1 AA
4843
+ minimum, so links mix in the text colour - the least (20%) that
4844
+ reads at 5:1 or better on the page, surfaces and cards. */
4845
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 20%);
4846
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 35%);
4847
+
4770
4848
  /* Focus ring with cyan colour */
4771
4849
  --dm-focus-ring: 0 0 0 3px rgba(0, 131, 143, 0.3);
4772
4850
  --dm-border-focus: #00838f;
@@ -5265,6 +5343,12 @@
5265
5343
  --dm-primary-light: #d4f5e4;
5266
5344
  --dm-primary-dark: #1b5e3a;
5267
5345
 
5346
+ /* Links: the primary is 3.01:1 as text here, under the 4.5:1 AA
5347
+ minimum, so links mix in the text colour - the least (35%) that
5348
+ reads at 5:1 or better on the page, surfaces and cards. */
5349
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 35%);
5350
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 50%);
5351
+
5268
5352
  /* Focus ring with mint colour */
5269
5353
  --dm-focus-ring: 0 0 0 3px rgba(46, 158, 110, 0.3);
5270
5354
  --dm-border-focus: #2e9e6e;
@@ -5726,6 +5810,12 @@
5726
5810
  --dm-primary-light: #FDF5E0;
5727
5811
  --dm-primary-dark: #8B7335;
5728
5812
 
5813
+ /* Links: the primary is 2.23:1 as text here, under the 4.5:1 AA
5814
+ minimum, so links mix in the text colour - the least (45%) that
5815
+ reads at 5:1 or better on the page, surfaces and cards. */
5816
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 45%);
5817
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 60%);
5818
+
5729
5819
  /* Focus ring with warm gold colour */
5730
5820
  --dm-focus-ring: 0 0 0 3px rgba(197, 165, 90, 0.3);
5731
5821
  --dm-border-focus: #C5A55A;
@@ -6410,6 +6500,12 @@
6410
6500
  --dm-primary-active: #1e40af;
6411
6501
  --dm-primary-light: rgba(37, 99, 235, 0.20);
6412
6502
  --dm-primary-dark: #1d4ed8;
6503
+
6504
+ /* Links: the primary is 2.83:1 as text here, under the 4.5:1 AA
6505
+ minimum, so links mix in the text colour - the least (35%) that
6506
+ reads at 5:1 or better on the page, surfaces and cards. */
6507
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 35%);
6508
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 50%);
6413
6509
  --dm-primary-text: #ffffff;
6414
6510
  --dm-primary-hover-text: #ffffff;
6415
6511
 
@@ -6667,6 +6763,8 @@
6667
6763
  --dm-accent-2: #607d8b;
6668
6764
  --dm-accent-3: #455a64;
6669
6765
  --dm-accent-4: #263238;
6766
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 60%);
6767
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 75%);
6670
6768
 
6671
6769
  --dm-success: #2e8b50;
6672
6770
  --dm-success-hover: #287d49;
@@ -6807,6 +6905,8 @@
6807
6905
  --dm-accent-2: #607d8b;
6808
6906
  --dm-accent-3: #455a64;
6809
6907
  --dm-accent-4: #263238;
6908
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 65%);
6909
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 80%);
6810
6910
 
6811
6911
  --dm-success: #2e8b50;
6812
6912
  --dm-success-hover: #287d49;
@@ -6947,6 +7047,8 @@
6947
7047
  --dm-accent-2: #607d8b;
6948
7048
  --dm-accent-3: #455a64;
6949
7049
  --dm-accent-4: #263238;
7050
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 60%);
7051
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 75%);
6950
7052
 
6951
7053
  --dm-success: #2e8b50;
6952
7054
  --dm-success-hover: #287d49;
@@ -7087,6 +7189,8 @@
7087
7189
  --dm-accent-2: #607d8b;
7088
7190
  --dm-accent-3: #455a64;
7089
7191
  --dm-accent-4: #263238;
7192
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 25%);
7193
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 40%);
7090
7194
 
7091
7195
  --dm-success: #2e8b50;
7092
7196
  --dm-success-hover: #287d49;
@@ -7367,6 +7471,8 @@
7367
7471
  --dm-accent-2: #607d8b;
7368
7472
  --dm-accent-3: #455a64;
7369
7473
  --dm-accent-4: #263238;
7474
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 25%);
7475
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 40%);
7370
7476
 
7371
7477
  --dm-success: #2e8b50;
7372
7478
  --dm-success-hover: #287d49;
@@ -7507,6 +7613,8 @@
7507
7613
  --dm-accent-2: #607d8b;
7508
7614
  --dm-accent-3: #455a64;
7509
7615
  --dm-accent-4: #263238;
7616
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 50%);
7617
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 65%);
7510
7618
 
7511
7619
  --dm-success: #2e8b50;
7512
7620
  --dm-success-hover: #287d49;
@@ -7647,6 +7755,8 @@
7647
7755
  --dm-accent-2: #607d8b;
7648
7756
  --dm-accent-3: #455a64;
7649
7757
  --dm-accent-4: #263238;
7758
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 50%);
7759
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 65%);
7650
7760
 
7651
7761
  --dm-success: #2e8b50;
7652
7762
  --dm-success-hover: #287d49;
@@ -7787,6 +7897,8 @@
7787
7897
  --dm-accent-2: #607d8b;
7788
7898
  --dm-accent-3: #455a64;
7789
7899
  --dm-accent-4: #263238;
7900
+ --dm-link: color-mix(in oklab, var(--dm-primary), var(--dm-text) 50%);
7901
+ --dm-link-hover: color-mix(in oklab, var(--dm-primary), var(--dm-text) 65%);
7790
7902
 
7791
7903
  --dm-success: #2e8b50;
7792
7904
  --dm-success-hover: #287d49;