tyrell-components 1.0.0-RC11 → 1.0.0-RC12
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/css/tyrell-brand.css +190 -88
- package/css/tyrell.css +38 -31
- package/dist/tyrell-brand.css +190 -88
- package/dist/tyrell.css +38 -31
- package/dist/tyrell.js +1 -1
- package/lib/base/ty-component.d.ts +7 -0
- package/lib/base/ty-component.d.ts.map +1 -1
- package/lib/base/ty-component.js +27 -0
- package/lib/base/ty-component.js.map +1 -1
- package/lib/components/button.d.ts +9 -1
- package/lib/components/button.d.ts.map +1 -1
- package/lib/components/button.js +22 -3
- package/lib/components/button.js.map +1 -1
- package/lib/components/calendar-month.d.ts +6 -0
- package/lib/components/calendar-month.d.ts.map +1 -1
- package/lib/components/calendar-month.js +52 -9
- package/lib/components/calendar-month.js.map +1 -1
- package/lib/components/calendar-navigation.d.ts +31 -5
- package/lib/components/calendar-navigation.d.ts.map +1 -1
- package/lib/components/calendar-navigation.js +71 -31
- package/lib/components/calendar-navigation.js.map +1 -1
- package/lib/components/calendar.d.ts +14 -1
- package/lib/components/calendar.d.ts.map +1 -1
- package/lib/components/calendar.js +65 -4
- package/lib/components/calendar.js.map +1 -1
- package/lib/components/checkbox.d.ts +10 -0
- package/lib/components/checkbox.d.ts.map +1 -1
- package/lib/components/checkbox.js +68 -27
- package/lib/components/checkbox.js.map +1 -1
- package/lib/components/copy.d.ts +10 -0
- package/lib/components/copy.d.ts.map +1 -1
- package/lib/components/copy.js +25 -4
- package/lib/components/copy.js.map +1 -1
- package/lib/components/date-picker.d.ts +14 -0
- package/lib/components/date-picker.d.ts.map +1 -1
- package/lib/components/date-picker.js +29 -0
- package/lib/components/date-picker.js.map +1 -1
- package/lib/components/input.d.ts +14 -0
- package/lib/components/input.d.ts.map +1 -1
- package/lib/components/input.js +80 -4
- package/lib/components/input.js.map +1 -1
- package/lib/components/modal.js +6 -0
- package/lib/components/modal.js.map +1 -1
- package/lib/components/option.d.ts +0 -16
- package/lib/components/option.d.ts.map +1 -1
- package/lib/components/option.js +9 -1
- package/lib/components/option.js.map +1 -1
- package/lib/components/radio.d.ts +1 -0
- package/lib/components/radio.d.ts.map +1 -1
- package/lib/components/radio.js +39 -8
- package/lib/components/radio.js.map +1 -1
- package/lib/components/scroll-container.d.ts +16 -0
- package/lib/components/scroll-container.d.ts.map +1 -1
- package/lib/components/scroll-container.js +105 -1
- package/lib/components/scroll-container.js.map +1 -1
- package/lib/components/{multiselect.d.ts → select.d.ts} +110 -67
- package/lib/components/select.d.ts.map +1 -0
- package/lib/components/{multiselect.js → select.js} +642 -490
- package/lib/components/select.js.map +1 -0
- package/lib/components/selected-tags.d.ts +80 -0
- package/lib/components/selected-tags.d.ts.map +1 -0
- package/lib/components/selected-tags.js +250 -0
- package/lib/components/selected-tags.js.map +1 -0
- package/lib/components/switch.d.ts +2 -0
- package/lib/components/switch.d.ts.map +1 -1
- package/lib/components/switch.js +37 -7
- package/lib/components/switch.js.map +1 -1
- package/lib/components/tabs.d.ts.map +1 -1
- package/lib/components/tabs.js +10 -0
- package/lib/components/tabs.js.map +1 -1
- package/lib/components/tag.d.ts +9 -1
- package/lib/components/tag.d.ts.map +1 -1
- package/lib/components/tag.js +40 -4
- package/lib/components/tag.js.map +1 -1
- package/lib/components/textarea.d.ts +3 -0
- package/lib/components/textarea.d.ts.map +1 -1
- package/lib/components/textarea.js +61 -6
- package/lib/components/textarea.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/styles/button.d.ts +7 -2
- package/lib/styles/button.d.ts.map +1 -1
- package/lib/styles/button.js +74 -237
- package/lib/styles/button.js.map +1 -1
- package/lib/styles/calendar-month.d.ts +1 -1
- package/lib/styles/calendar-month.d.ts.map +1 -1
- package/lib/styles/calendar-month.js +44 -66
- package/lib/styles/calendar-month.js.map +1 -1
- package/lib/styles/calendar-navigation.d.ts +1 -1
- package/lib/styles/calendar-navigation.d.ts.map +1 -1
- package/lib/styles/calendar-navigation.js +19 -27
- package/lib/styles/calendar-navigation.js.map +1 -1
- package/lib/styles/checkbox.d.ts +5 -5
- package/lib/styles/checkbox.d.ts.map +1 -1
- package/lib/styles/checkbox.js +147 -8
- package/lib/styles/checkbox.js.map +1 -1
- package/lib/styles/copy.d.ts +1 -1
- package/lib/styles/copy.d.ts.map +1 -1
- package/lib/styles/copy.js +32 -0
- package/lib/styles/copy.js.map +1 -1
- package/lib/styles/date-picker.d.ts +1 -1
- package/lib/styles/date-picker.d.ts.map +1 -1
- package/lib/styles/date-picker.js +12 -4
- package/lib/styles/date-picker.js.map +1 -1
- package/lib/styles/input.d.ts +1 -1
- package/lib/styles/input.d.ts.map +1 -1
- package/lib/styles/input.js +28 -298
- package/lib/styles/input.js.map +1 -1
- package/lib/styles/option.d.ts +1 -1
- package/lib/styles/option.d.ts.map +1 -1
- package/lib/styles/option.js +29 -5
- package/lib/styles/option.js.map +1 -1
- package/lib/styles/radio.d.ts +1 -1
- package/lib/styles/radio.d.ts.map +1 -1
- package/lib/styles/scroll-container.d.ts +1 -1
- package/lib/styles/scroll-container.d.ts.map +1 -1
- package/lib/styles/scroll-container.js +6 -0
- package/lib/styles/scroll-container.js.map +1 -1
- package/lib/styles/select.d.ts +12 -0
- package/lib/styles/select.d.ts.map +1 -0
- package/lib/styles/select.js +240 -0
- package/lib/styles/select.js.map +1 -0
- package/lib/styles/switch.d.ts +1 -1
- package/lib/styles/switch.d.ts.map +1 -1
- package/lib/styles/tag.d.ts +1 -1
- package/lib/styles/tag.d.ts.map +1 -1
- package/lib/styles/tag.js +36 -140
- package/lib/styles/tag.js.map +1 -1
- package/lib/styles/textarea.d.ts +1 -1
- package/lib/styles/textarea.d.ts.map +1 -1
- package/lib/styles/textarea.js +67 -33
- package/lib/styles/textarea.js.map +1 -1
- package/lib/types/common.d.ts +2 -1
- package/lib/types/common.d.ts.map +1 -1
- package/lib/types/common.js +13 -1
- package/lib/types/common.js.map +1 -1
- package/lib/utils/calendar-utils.d.ts +0 -48
- package/lib/utils/calendar-utils.d.ts.map +1 -1
- package/lib/utils/calendar-utils.js +0 -69
- package/lib/utils/calendar-utils.js.map +1 -1
- package/lib/utils/flavor-sheet.d.ts +32 -0
- package/lib/utils/flavor-sheet.d.ts.map +1 -0
- package/lib/utils/flavor-sheet.js +40 -0
- package/lib/utils/flavor-sheet.js.map +1 -0
- package/lib/utils/icon-registry.d.ts +0 -13
- package/lib/utils/icon-registry.d.ts.map +1 -1
- package/lib/utils/icon-registry.js +0 -35
- package/lib/utils/icon-registry.js.map +1 -1
- package/lib/utils/locale.d.ts +0 -57
- package/lib/utils/locale.d.ts.map +1 -1
- package/lib/utils/locale.js +0 -89
- package/lib/utils/locale.js.map +1 -1
- package/lib/utils/number-format.d.ts +0 -21
- package/lib/utils/number-format.d.ts.map +1 -1
- package/lib/utils/number-format.js +0 -27
- package/lib/utils/number-format.js.map +1 -1
- package/lib/utils/positioning.d.ts +0 -24
- package/lib/utils/positioning.d.ts.map +1 -1
- package/lib/utils/positioning.js +3 -86
- package/lib/utils/positioning.js.map +1 -1
- package/lib/utils/scroll-lock.d.ts.map +1 -1
- package/lib/utils/scroll-lock.js +0 -1
- package/lib/utils/scroll-lock.js.map +1 -1
- package/lib/utils/styles.d.ts +0 -5
- package/lib/utils/styles.d.ts.map +1 -1
- package/lib/utils/styles.js +0 -7
- package/lib/utils/styles.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +17 -9
- package/lib/components/dropdown.d.ts +0 -424
- package/lib/components/dropdown.d.ts.map +0 -1
- package/lib/components/dropdown.js +0 -1640
- package/lib/components/dropdown.js.map +0 -1
- package/lib/components/multiselect.d.ts.map +0 -1
- package/lib/components/multiselect.js.map +0 -1
- package/lib/styles/dropdown.d.ts +0 -12
- package/lib/styles/dropdown.d.ts.map +0 -1
- package/lib/styles/dropdown.js +0 -1081
- package/lib/styles/dropdown.js.map +0 -1
package/css/tyrell-brand.css
CHANGED
|
@@ -54,15 +54,19 @@
|
|
|
54
54
|
* FILE LAYOUT
|
|
55
55
|
* =====================================================================
|
|
56
56
|
*
|
|
57
|
-
* SECTION 1 — KNOBS
|
|
58
|
-
* The variables you might want to override.
|
|
59
|
-
* rebrand (Tier 1) to surgical per-flavor tweak (Tier 5)
|
|
57
|
+
* SECTION 1 — KNOBS
|
|
58
|
+
* The variables you might want to override. Six tiers from drop-in
|
|
59
|
+
* rebrand (Tier 1) to surgical per-flavor tweak (Tier 5) plus solid
|
|
60
|
+
* buttons (Tier 6).
|
|
60
61
|
*
|
|
61
62
|
* SECTION 2 — IMPLEMENTATION
|
|
62
63
|
* The oklch() expressions that wire the knobs through to the actual
|
|
63
64
|
* color tokens. Rarely needs editing — Section 1 is the contract.
|
|
64
65
|
*
|
|
65
|
-
* Browser support:
|
|
66
|
+
* Browser support: oklch() is in every evergreen browser since mid-2023.
|
|
67
|
+
* Tier 6 (solid) additionally uses OKLCH relative color — oklch(from …) —
|
|
68
|
+
* which lands later: Chrome 119, Safari 16.4, Firefox 128 (mid-2024).
|
|
69
|
+
* Solid fills have no fallback below those versions.
|
|
66
70
|
*
|
|
67
71
|
* ===================================================================== */
|
|
68
72
|
|
|
@@ -81,6 +85,8 @@
|
|
|
81
85
|
* Tier 5 — PER-FLAVOR L-FACTOR per-flavor lightness multiplier — push
|
|
82
86
|
* one flavor up or down without touching
|
|
83
87
|
* the others. Default 1.
|
|
88
|
+
* Tier 6 — SOLID FILLS solid-button system: hover/active/tone
|
|
89
|
+
* L offsets + per-theme dim/desaturate.
|
|
84
90
|
* ===================================================================== */
|
|
85
91
|
|
|
86
92
|
:root {
|
|
@@ -91,7 +97,11 @@
|
|
|
91
97
|
* --------------------------------------------------------------*/
|
|
92
98
|
|
|
93
99
|
--ty-brand-hue: 230;
|
|
94
|
-
--ty-brand-chroma: 0.
|
|
100
|
+
--ty-brand-chroma: 0.12; /* restrained EU default; the loud 0.2 read as "bollywood" */
|
|
101
|
+
|
|
102
|
+
/* Surface tint. 0 = monochrome surfaces (default, no brand leak).
|
|
103
|
+
* Bump to ~0.005 (light) / ~0.012 (dark) to warm surfaces toward brand. */
|
|
104
|
+
--ty-surface-chroma: 0;
|
|
95
105
|
|
|
96
106
|
/* Secondary rotates from brand by an exposed offset. Default +60°
|
|
97
107
|
* (sibling accent). Try 30° for a close sibling, 120° for triadic,
|
|
@@ -180,6 +190,33 @@
|
|
|
180
190
|
--ty-warning-l-factor: 1.15;
|
|
181
191
|
--ty-danger-l-factor: 1;
|
|
182
192
|
--ty-neutral-l-factor: 1;
|
|
193
|
+
|
|
194
|
+
/* ----------------------------------------------------------------
|
|
195
|
+
* Tier 6 — SOLID FILLS
|
|
196
|
+
* Solid buttons are their OWN system, not the emphasis ramp. Each
|
|
197
|
+
* flavor's fill defaults to --ty-color-{flavor}; the knobs below
|
|
198
|
+
* derive its hover / active / tone+ / tone- and per-theme adjust.
|
|
199
|
+
* Math lives in SECTION 2 (search "Tier 6 — SOLID"); these are the
|
|
200
|
+
* dials.
|
|
201
|
+
*
|
|
202
|
+
* Axis A — interaction & tone, OKLCH L offsets on the fill.
|
|
203
|
+
* Axis B — per-theme adjust applied to the base fill (dim/desaturate).
|
|
204
|
+
*
|
|
205
|
+
* NOTE: like Tier 5, the emphasis curve flips for dark, so these L
|
|
206
|
+
* offsets are sign-flipped in `html.dark` below (darken in light =
|
|
207
|
+
* lighten in dark). Keep the two blocks in sync.
|
|
208
|
+
* --------------------------------------------------------------*/
|
|
209
|
+
|
|
210
|
+
/* Axis A — interaction (light: darken on press, so offsets are negative) */
|
|
211
|
+
--ty-solid-hover-l: -0.04; /* :hover */
|
|
212
|
+
--ty-solid-active-l: -0.08; /* :active */
|
|
213
|
+
--ty-solid-strong-l: -0.06; /* tone+ */
|
|
214
|
+
--ty-solid-soft-l: 0.1; /* tone- */
|
|
215
|
+
|
|
216
|
+
/* Axis B — per-theme adjust (light reads fine → identity) */
|
|
217
|
+
--ty-solid-l: 0; /* lightness offset — negative dims */
|
|
218
|
+
--ty-solid-c: 1; /* chroma multiplier — <1 desaturates */
|
|
219
|
+
--ty-solid-h: 0; /* hue offset (deg) */
|
|
183
220
|
}
|
|
184
221
|
|
|
185
222
|
/* Dark mode overrides for the L-curve and saturation curve. Tier 1 + 2
|
|
@@ -188,8 +225,8 @@ html.dark,
|
|
|
188
225
|
html[data-theme="dark"] {
|
|
189
226
|
/* Tier 3 dark — inverted curve. Higher L = lighter text = more
|
|
190
227
|
* emphasis on a dark background. */
|
|
191
|
-
--ty-l-strong: 0.
|
|
192
|
-
--ty-l-bold: 0.
|
|
228
|
+
--ty-l-strong: 0.72;
|
|
229
|
+
--ty-l-bold: 0.66;
|
|
193
230
|
--ty-l-base: 0.62;
|
|
194
231
|
--ty-l-soft: 0.46;
|
|
195
232
|
--ty-l-faint: 0.3;
|
|
@@ -209,6 +246,18 @@ html[data-theme="dark"] {
|
|
|
209
246
|
--ty-c-bg-base-mult: 0.38;
|
|
210
247
|
--ty-c-bg-bold-mult: 0.54;
|
|
211
248
|
--ty-c-bg-soft-mult: 0.23;
|
|
249
|
+
|
|
250
|
+
/* Tier 6 dark — interaction offsets flip sign (press LIGHTENS on dark),
|
|
251
|
+
* and the per-theme adjust dims + desaturates the fills against the
|
|
252
|
+
* dark canvas. (Computed solid tokens live in SECTION 2 DARK.) */
|
|
253
|
+
--ty-solid-hover-l: 0.04; /* :hover */
|
|
254
|
+
--ty-solid-active-l: 0.08; /* :active */
|
|
255
|
+
--ty-solid-strong-l: 0.06; /* tone+ */
|
|
256
|
+
--ty-solid-soft-l: -0.1; /* tone- */
|
|
257
|
+
|
|
258
|
+
--ty-solid-l: -0.25; /* dim against dark canvas */
|
|
259
|
+
--ty-solid-c: 0.65; /* desaturate against dark canvas */
|
|
260
|
+
--ty-solid-h: 0; /* hue offset */
|
|
212
261
|
}
|
|
213
262
|
|
|
214
263
|
/* =====================================================================
|
|
@@ -504,9 +553,9 @@ html[data-theme="dark"] {
|
|
|
504
553
|
--ty-border-faint: var(--ty-color-neutral-faint);
|
|
505
554
|
|
|
506
555
|
/* ----------------------------------------------------------------
|
|
507
|
-
* Surfaces —
|
|
556
|
+
* Surfaces — monochrome by default; --ty-surface-chroma warms them.
|
|
508
557
|
* --------------------------------------------------------------*/
|
|
509
|
-
--ty-surface-canvas: oklch(0.985
|
|
558
|
+
--ty-surface-canvas: oklch(0.985 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
510
559
|
--ty-surface-content: oklch(1 0 0);
|
|
511
560
|
--ty-surface-elevated: oklch(1 0 0);
|
|
512
561
|
--ty-surface-floating: oklch(1 0 0);
|
|
@@ -517,8 +566,8 @@ html[data-theme="dark"] {
|
|
|
517
566
|
* --------------------------------------------------------------*/
|
|
518
567
|
--ty-input-bg: var(--ty-surface-input);
|
|
519
568
|
--ty-input-color: var(--ty-color-neutral-strong);
|
|
520
|
-
--ty-input-border: var(--ty-color-neutral-
|
|
521
|
-
--ty-input-border-hover: var(--ty-color-neutral-
|
|
569
|
+
--ty-input-border: var(--ty-color-neutral-faint);
|
|
570
|
+
--ty-input-border-hover: var(--ty-color-neutral-soft);
|
|
522
571
|
--ty-input-border-focus: var(--ty-color-primary);
|
|
523
572
|
--ty-input-placeholder: var(--ty-color-neutral-soft);
|
|
524
573
|
--ty-input-disabled-bg: var(--ty-color-neutral-faint);
|
|
@@ -529,48 +578,137 @@ html[data-theme="dark"] {
|
|
|
529
578
|
var(--ty-color-primary) 5%,
|
|
530
579
|
transparent
|
|
531
580
|
);
|
|
581
|
+
}
|
|
532
582
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
583
|
+
/* ----------------------------------------------------------------
|
|
584
|
+
* Tier 6 — SOLID (implementation)
|
|
585
|
+
* Solid is its OWN system, NOT the text/emphasis ramp. The dials
|
|
586
|
+
* (--ty-solid-hover-l / -active-l / -strong-l / -soft-l and
|
|
587
|
+
* --ty-solid-l / -c / -h) live in SECTION 1, Tier 6. Below is the
|
|
588
|
+
* derivation only: base fill bakes in the per-theme adjust (Axis B);
|
|
589
|
+
* hover/active/strong/soft offset the base by Axis A. Override any
|
|
590
|
+
* single --ty-solid-{flavor}-{state} to recolor just that segment.
|
|
591
|
+
*
|
|
592
|
+
* Declared at `html:root` (specificity 0,1,1) — NOT plain `:root` (0,1,0) —
|
|
593
|
+
* on purpose: it must out-rank tyrell.css's hardcoded dark solids at
|
|
594
|
+
* `html.dark` (0,1,1). It wins light by specificity over base's `html{}`,
|
|
595
|
+
* and wins dark by source order over base's `html.dark` (brand loads after).
|
|
596
|
+
* That's what lets dark solids re-tint with --ty-brand-hue. Declared ONCE —
|
|
597
|
+
* the oklch(from var(--ty-color-*)) formulas resolve per-mode automatically,
|
|
598
|
+
* so no dark duplicate is needed.
|
|
599
|
+
* --------------------------------------------------------------*/
|
|
600
|
+
html:root {
|
|
601
|
+
/* base fill per flavor (= flavor color, theme-adjusted by Axis B) */
|
|
602
|
+
--ty-solid-primary: oklch(
|
|
603
|
+
from var(--ty-color-primary) calc(l + var(--ty-solid-l))
|
|
604
|
+
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
605
|
+
);
|
|
606
|
+
--ty-solid-secondary: oklch(
|
|
607
|
+
from var(--ty-color-secondary) calc(l + var(--ty-solid-l))
|
|
608
|
+
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
609
|
+
);
|
|
610
|
+
--ty-solid-success: oklch(
|
|
611
|
+
from var(--ty-color-success) calc(l + var(--ty-solid-l))
|
|
612
|
+
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
613
|
+
);
|
|
614
|
+
--ty-solid-danger: oklch(
|
|
615
|
+
from var(--ty-color-danger) calc(l + var(--ty-solid-l))
|
|
616
|
+
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
617
|
+
);
|
|
618
|
+
--ty-solid-warning: oklch(
|
|
619
|
+
from var(--ty-color-warning) calc(l + var(--ty-solid-l))
|
|
620
|
+
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
621
|
+
);
|
|
622
|
+
/* neutral is a deliberate dark grey fill, not the neutral text color */
|
|
623
|
+
--ty-solid-neutral: oklch(
|
|
624
|
+
0.4 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
625
|
+
var(--ty-neutral-hue)
|
|
626
|
+
);
|
|
540
627
|
|
|
541
|
-
--ty-solid-
|
|
542
|
-
--ty-solid-secondary-strong: var(--ty-color-secondary-bold);
|
|
543
|
-
--ty-solid-secondary-soft: var(--ty-color-secondary-soft);
|
|
628
|
+
--ty-solid-primary-fg: white;
|
|
544
629
|
--ty-solid-secondary-fg: white;
|
|
545
|
-
|
|
546
|
-
--ty-solid-success: var(--ty-color-success);
|
|
547
|
-
--ty-solid-success-strong: var(--ty-color-success-bold);
|
|
548
|
-
--ty-solid-success-soft: var(--ty-color-success-soft);
|
|
549
630
|
--ty-solid-success-fg: white;
|
|
550
|
-
|
|
551
|
-
--ty-solid-danger: var(--ty-color-danger);
|
|
552
|
-
--ty-solid-danger-strong: var(--ty-color-danger-bold);
|
|
553
|
-
--ty-solid-danger-soft: var(--ty-color-danger-soft);
|
|
554
631
|
--ty-solid-danger-fg: white;
|
|
555
|
-
|
|
556
|
-
--ty-solid-warning: var(--ty-color-warning);
|
|
557
|
-
--ty-solid-warning-strong: var(--ty-color-warning-bold);
|
|
558
|
-
--ty-solid-warning-soft: var(--ty-color-warning-soft);
|
|
559
632
|
--ty-solid-warning-fg: white;
|
|
633
|
+
--ty-solid-neutral-fg: white;
|
|
560
634
|
|
|
561
|
-
/*
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
0.6 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
565
|
-
var(--ty-neutral-hue)
|
|
635
|
+
/* derived states — axis 2 offsets on each base fill */
|
|
636
|
+
--ty-solid-primary-hover: oklch(
|
|
637
|
+
from var(--ty-solid-primary) calc(l + var(--ty-solid-hover-l)) c h
|
|
566
638
|
);
|
|
567
|
-
--ty-solid-
|
|
568
|
-
|
|
569
|
-
|
|
639
|
+
--ty-solid-primary-active: oklch(
|
|
640
|
+
from var(--ty-solid-primary) calc(l + var(--ty-solid-active-l)) c h
|
|
641
|
+
);
|
|
642
|
+
--ty-solid-primary-strong: oklch(
|
|
643
|
+
from var(--ty-solid-primary) calc(l + var(--ty-solid-strong-l)) c h
|
|
644
|
+
);
|
|
645
|
+
--ty-solid-primary-soft: oklch(
|
|
646
|
+
from var(--ty-solid-primary) calc(l + var(--ty-solid-soft-l)) c h
|
|
647
|
+
);
|
|
648
|
+
|
|
649
|
+
--ty-solid-secondary-hover: oklch(
|
|
650
|
+
from var(--ty-solid-secondary) calc(l + var(--ty-solid-hover-l)) c h
|
|
651
|
+
);
|
|
652
|
+
--ty-solid-secondary-active: oklch(
|
|
653
|
+
from var(--ty-solid-secondary) calc(l + var(--ty-solid-active-l)) c h
|
|
654
|
+
);
|
|
655
|
+
--ty-solid-secondary-strong: oklch(
|
|
656
|
+
from var(--ty-solid-secondary) calc(l + var(--ty-solid-strong-l)) c h
|
|
657
|
+
);
|
|
658
|
+
--ty-solid-secondary-soft: oklch(
|
|
659
|
+
from var(--ty-solid-secondary) calc(l + var(--ty-solid-soft-l)) c h
|
|
660
|
+
);
|
|
661
|
+
|
|
662
|
+
--ty-solid-success-hover: oklch(
|
|
663
|
+
from var(--ty-solid-success) calc(l + var(--ty-solid-hover-l)) c h
|
|
664
|
+
);
|
|
665
|
+
--ty-solid-success-active: oklch(
|
|
666
|
+
from var(--ty-solid-success) calc(l + var(--ty-solid-active-l)) c h
|
|
667
|
+
);
|
|
668
|
+
--ty-solid-success-strong: oklch(
|
|
669
|
+
from var(--ty-solid-success) calc(l + var(--ty-solid-strong-l)) c h
|
|
670
|
+
);
|
|
671
|
+
--ty-solid-success-soft: oklch(
|
|
672
|
+
from var(--ty-solid-success) calc(l + var(--ty-solid-soft-l)) c h
|
|
673
|
+
);
|
|
674
|
+
|
|
675
|
+
--ty-solid-danger-hover: oklch(
|
|
676
|
+
from var(--ty-solid-danger) calc(l + var(--ty-solid-hover-l)) c h
|
|
677
|
+
);
|
|
678
|
+
--ty-solid-danger-active: oklch(
|
|
679
|
+
from var(--ty-solid-danger) calc(l + var(--ty-solid-active-l)) c h
|
|
680
|
+
);
|
|
681
|
+
--ty-solid-danger-strong: oklch(
|
|
682
|
+
from var(--ty-solid-danger) calc(l + var(--ty-solid-strong-l)) c h
|
|
683
|
+
);
|
|
684
|
+
--ty-solid-danger-soft: oklch(
|
|
685
|
+
from var(--ty-solid-danger) calc(l + var(--ty-solid-soft-l)) c h
|
|
686
|
+
);
|
|
687
|
+
|
|
688
|
+
--ty-solid-warning-hover: oklch(
|
|
689
|
+
from var(--ty-solid-warning) calc(l + var(--ty-solid-hover-l)) c h
|
|
690
|
+
);
|
|
691
|
+
--ty-solid-warning-active: oklch(
|
|
692
|
+
from var(--ty-solid-warning) calc(l + var(--ty-solid-active-l)) c h
|
|
693
|
+
);
|
|
694
|
+
--ty-solid-warning-strong: oklch(
|
|
695
|
+
from var(--ty-solid-warning) calc(l + var(--ty-solid-strong-l)) c h
|
|
696
|
+
);
|
|
697
|
+
--ty-solid-warning-soft: oklch(
|
|
698
|
+
from var(--ty-solid-warning) calc(l + var(--ty-solid-soft-l)) c h
|
|
699
|
+
);
|
|
700
|
+
|
|
701
|
+
--ty-solid-neutral-hover: oklch(
|
|
702
|
+
from var(--ty-solid-neutral) calc(l + var(--ty-solid-hover-l)) c h
|
|
703
|
+
);
|
|
704
|
+
--ty-solid-neutral-active: oklch(
|
|
705
|
+
from var(--ty-solid-neutral) calc(l + var(--ty-solid-active-l)) c h
|
|
570
706
|
);
|
|
571
707
|
--ty-solid-neutral-strong: oklch(
|
|
572
|
-
|
|
573
|
-
|
|
708
|
+
from var(--ty-solid-neutral) calc(l + var(--ty-solid-strong-l)) c h
|
|
709
|
+
);
|
|
710
|
+
--ty-solid-neutral-soft: oklch(
|
|
711
|
+
from var(--ty-solid-neutral) calc(l + var(--ty-solid-soft-l)) c h
|
|
574
712
|
);
|
|
575
713
|
}
|
|
576
714
|
|
|
@@ -845,18 +983,18 @@ html[data-theme="dark"] {
|
|
|
845
983
|
--ty-border-soft: var(--ty-color-neutral-faint);
|
|
846
984
|
--ty-border-faint: var(--ty-color-neutral-faint);
|
|
847
985
|
|
|
848
|
-
/* Surfaces —
|
|
849
|
-
--ty-surface-canvas: oklch(0.12
|
|
850
|
-
--ty-surface-content: oklch(0.16
|
|
851
|
-
--ty-surface-elevated: oklch(0.19
|
|
852
|
-
--ty-surface-floating: oklch(0.22
|
|
853
|
-
--ty-surface-input: oklch(0.18
|
|
986
|
+
/* Surfaces — monochrome by default; --ty-surface-chroma warms them. */
|
|
987
|
+
--ty-surface-canvas: oklch(0.12 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
988
|
+
--ty-surface-content: oklch(0.16 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
989
|
+
--ty-surface-elevated: oklch(0.19 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
990
|
+
--ty-surface-floating: oklch(0.22 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
991
|
+
--ty-surface-input: oklch(0.18 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
854
992
|
|
|
855
993
|
/* Inputs — re-declared at html.dark specificity. */
|
|
856
994
|
--ty-input-bg: var(--ty-surface-input);
|
|
857
995
|
--ty-input-color: var(--ty-color-neutral-strong);
|
|
858
996
|
--ty-input-border: var(--ty-color-neutral-faint);
|
|
859
|
-
--ty-input-border-hover: var(--ty-color-neutral-
|
|
997
|
+
--ty-input-border-hover: var(--ty-color-neutral-soft);
|
|
860
998
|
--ty-input-border-focus: var(--ty-color-primary);
|
|
861
999
|
--ty-input-placeholder: var(--ty-color-neutral-soft);
|
|
862
1000
|
--ty-input-disabled-bg: var(--ty-color-neutral-faint);
|
|
@@ -868,46 +1006,10 @@ html[data-theme="dark"] {
|
|
|
868
1006
|
transparent
|
|
869
1007
|
);
|
|
870
1008
|
|
|
871
|
-
/*
|
|
872
|
-
|
|
873
|
-
--ty-solid-primary-strong: var(--ty-color-primary-bold);
|
|
874
|
-
--ty-solid-primary-soft: var(--ty-color-primary-soft);
|
|
875
|
-
--ty-solid-primary-fg: white;
|
|
876
|
-
|
|
877
|
-
--ty-solid-secondary: var(--ty-color-secondary);
|
|
878
|
-
--ty-solid-secondary-strong: var(--ty-color-secondary-bold);
|
|
879
|
-
--ty-solid-secondary-soft: var(--ty-color-secondary-soft);
|
|
880
|
-
--ty-solid-secondary-fg: white;
|
|
881
|
-
|
|
882
|
-
--ty-solid-success: var(--ty-color-success);
|
|
883
|
-
--ty-solid-success-strong: var(--ty-color-success-bold);
|
|
884
|
-
--ty-solid-success-soft: var(--ty-color-success-soft);
|
|
885
|
-
--ty-solid-success-fg: white;
|
|
886
|
-
|
|
887
|
-
--ty-solid-danger: var(--ty-color-danger);
|
|
888
|
-
--ty-solid-danger-strong: var(--ty-color-danger-bold);
|
|
889
|
-
--ty-solid-danger-soft: var(--ty-color-danger-soft);
|
|
890
|
-
--ty-solid-danger-fg: white;
|
|
891
|
-
|
|
892
|
-
--ty-solid-warning: var(--ty-color-warning);
|
|
893
|
-
--ty-solid-warning-strong: var(--ty-color-warning-bold);
|
|
894
|
-
--ty-solid-warning-soft: var(--ty-color-warning-soft);
|
|
895
|
-
--ty-solid-warning-fg: white;
|
|
896
|
-
|
|
897
|
-
/* Solid neutral — in dark mode, "dark grey" lives at the other end
|
|
898
|
-
* of the ramp. Both modes get a shade darker than the page surface
|
|
899
|
-
* for a punchy default action. */
|
|
900
|
-
--ty-solid-neutral-soft: oklch(
|
|
901
|
-
0.2 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
902
|
-
var(--ty-neutral-hue)
|
|
903
|
-
);
|
|
1009
|
+
/* Tier 6 dark — solid dials live in SECTION 1's html.dark block.
|
|
1010
|
+
* neutral is hand-pinned (it ignores Axis B); dim it per theme here. */
|
|
904
1011
|
--ty-solid-neutral: oklch(
|
|
905
1012
|
0.3 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
906
1013
|
var(--ty-neutral-hue)
|
|
907
1014
|
);
|
|
908
|
-
--ty-solid-neutral-strong: oklch(
|
|
909
|
-
0.4 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
910
|
-
var(--ty-neutral-hue)
|
|
911
|
-
);
|
|
912
|
-
--ty-solid-neutral-fg: white;
|
|
913
1015
|
}
|
package/css/tyrell.css
CHANGED
|
@@ -176,7 +176,6 @@ Simplified from 7 variants to 5 practical variants:
|
|
|
176
176
|
--ty-color-neutral-soft: #374151;
|
|
177
177
|
--ty-color-neutral-faint: #9ca3af;
|
|
178
178
|
|
|
179
|
-
/* Accent - brand highlights, focus rings, selection states */
|
|
180
179
|
|
|
181
180
|
/* =================================================================
|
|
182
181
|
BACKGROUND COLORS
|
|
@@ -226,7 +225,6 @@ BACKGROUND COLORS
|
|
|
226
225
|
--ty-bg-neutral-bold: #cecece;
|
|
227
226
|
--ty-bg-neutral-soft: #ededed;
|
|
228
227
|
|
|
229
|
-
/* Accent backgrounds */
|
|
230
228
|
|
|
231
229
|
/* =================================================================
|
|
232
230
|
BORDER COLORS
|
|
@@ -336,8 +334,8 @@ COMPONENT TOKENS
|
|
|
336
334
|
/* Input component tokens */
|
|
337
335
|
--ty-input-bg: #ffffff;
|
|
338
336
|
--ty-input-color: #111827;
|
|
339
|
-
--ty-input-border: #
|
|
340
|
-
--ty-input-border-hover: #
|
|
337
|
+
--ty-input-border: #e5e7eb;
|
|
338
|
+
--ty-input-border-hover: #d1d5db;
|
|
341
339
|
--ty-input-border-focus: var(--ty-color-primary);
|
|
342
340
|
--ty-input-shadow-focus: rgba(59, 130, 246, 0.1);
|
|
343
341
|
--ty-input-placeholder: #9ca3af;
|
|
@@ -352,50 +350,58 @@ COMPONENT TOKENS
|
|
|
352
350
|
--ty-input-warning-border: var(--ty-color-warning);
|
|
353
351
|
|
|
354
352
|
/* =================================================================
|
|
355
|
-
SOLID BUTTON FILLS —
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
--ty-solid-{flavor}-soft softer fill (for solid- tone)
|
|
360
|
-
--ty-solid-{flavor}-fg paired text color (default white)
|
|
361
|
-
Strong/soft default to var(--ty-color-{flavor}-strong/-soft) so they
|
|
362
|
-
inherit from the existing color hierarchy. Override per flavor if needed.
|
|
353
|
+
SOLID BUTTON FILLS — plain default values (the contract). The smart
|
|
354
|
+
per-state derivation (hover/active/tone via OKLCH) lives in the theme
|
|
355
|
+
engines (tyrell-brand.css / tyrell-simple.css), not here. hover/active
|
|
356
|
+
alias to -strong as a simple default; a theme overrides them.
|
|
363
357
|
================================================================= */
|
|
364
358
|
|
|
365
359
|
/* Primary */
|
|
366
360
|
--ty-solid-primary: #4076b9;
|
|
367
361
|
--ty-solid-primary-strong: var(--ty-color-primary-bold);
|
|
368
362
|
--ty-solid-primary-soft: #7ea7d9;
|
|
363
|
+
--ty-solid-primary-hover: var(--ty-solid-primary-strong);
|
|
364
|
+
--ty-solid-primary-active: var(--ty-solid-primary-strong);
|
|
369
365
|
--ty-solid-primary-fg: white;
|
|
370
366
|
|
|
371
367
|
/* Secondary */
|
|
372
368
|
--ty-solid-secondary: #7e67b4;
|
|
373
369
|
--ty-solid-secondary-strong: #7d58d1;
|
|
374
370
|
--ty-solid-secondary-soft: #9f8ec5;
|
|
371
|
+
--ty-solid-secondary-hover: var(--ty-solid-secondary-strong);
|
|
372
|
+
--ty-solid-secondary-active: var(--ty-solid-secondary-strong);
|
|
375
373
|
--ty-solid-secondary-fg: white;
|
|
376
374
|
|
|
377
375
|
/* Success */
|
|
378
376
|
--ty-solid-success: #3bb68d;
|
|
379
377
|
--ty-solid-success-strong: #27956e;
|
|
380
378
|
--ty-solid-success-soft: #69b99e;
|
|
379
|
+
--ty-solid-success-hover: var(--ty-solid-success-strong);
|
|
380
|
+
--ty-solid-success-active: var(--ty-solid-success-strong);
|
|
381
381
|
--ty-solid-success-fg: white;
|
|
382
382
|
|
|
383
383
|
/* Danger */
|
|
384
384
|
--ty-solid-danger: #df5b5b;
|
|
385
385
|
--ty-solid-danger-strong: #cc3e3e;
|
|
386
386
|
--ty-solid-danger-soft: #d57a7a;
|
|
387
|
+
--ty-solid-danger-hover: var(--ty-solid-danger-strong);
|
|
388
|
+
--ty-solid-danger-active: var(--ty-solid-danger-strong);
|
|
387
389
|
--ty-solid-danger-fg: white;
|
|
388
390
|
|
|
389
391
|
/* Warning */
|
|
390
392
|
--ty-solid-warning: #e1a644;
|
|
391
393
|
--ty-solid-warning-strong: #f59e0b;
|
|
392
394
|
--ty-solid-warning-soft: #fbc56d;
|
|
395
|
+
--ty-solid-warning-hover: var(--ty-solid-warning-strong);
|
|
396
|
+
--ty-solid-warning-active: var(--ty-solid-warning-strong);
|
|
393
397
|
--ty-solid-warning-fg: white;
|
|
394
398
|
|
|
395
399
|
/* Neutral */
|
|
396
400
|
--ty-solid-neutral: #414141;
|
|
397
401
|
--ty-solid-neutral-strong: #000000;
|
|
398
402
|
--ty-solid-neutral-soft: #6e6e6e;
|
|
403
|
+
--ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
|
|
404
|
+
--ty-solid-neutral-active: var(--ty-solid-neutral-strong);
|
|
399
405
|
--ty-solid-neutral-fg: white;
|
|
400
406
|
|
|
401
407
|
/* =================================================================
|
|
@@ -613,7 +619,6 @@ Emphasis logic inverts: lighter = more emphasis
|
|
|
613
619
|
--ty-color-neutral-soft: #696969;
|
|
614
620
|
--ty-color-neutral-faint: #474747;
|
|
615
621
|
|
|
616
|
-
/* Accent - dark mode (emphasis inverted) */
|
|
617
622
|
|
|
618
623
|
/* Backgrounds for dark mode */
|
|
619
624
|
--ty-bg-faint: #0f1419;
|
|
@@ -650,7 +655,6 @@ Emphasis logic inverts: lighter = more emphasis
|
|
|
650
655
|
--ty-bg-neutral: #323232;
|
|
651
656
|
--ty-bg-neutral-soft: #242424;
|
|
652
657
|
|
|
653
|
-
/* Accent backgrounds - dark mode */
|
|
654
658
|
|
|
655
659
|
/* Borders for dark mode */
|
|
656
660
|
--ty-border-strong: #8c8c8c;
|
|
@@ -660,11 +664,11 @@ Emphasis logic inverts: lighter = more emphasis
|
|
|
660
664
|
--ty-border-faint: #030712;
|
|
661
665
|
|
|
662
666
|
/* Scrollbar - dark mode */
|
|
663
|
-
--ty-scrollbar-thumb: rgba(255, 255, 255, 0.
|
|
664
|
-
--ty-scrollbar-thumb-hover: rgba(255, 255, 255, 0.
|
|
665
|
-
--ty-scrollbar-thumb-active: rgba(255, 255, 255, 0.
|
|
667
|
+
--ty-scrollbar-thumb: rgba(255, 255, 255, 0.13);
|
|
668
|
+
--ty-scrollbar-thumb-hover: rgba(255, 255, 255, 0.22);
|
|
669
|
+
--ty-scrollbar-thumb-active: rgba(255, 255, 255, 0.3);
|
|
666
670
|
--ty-scrollbar-track: transparent;
|
|
667
|
-
--ty-scrollbar-track-hover: rgba(255, 255, 255, 0.
|
|
671
|
+
--ty-scrollbar-track-hover: rgba(255, 255, 255, 0.04);
|
|
668
672
|
|
|
669
673
|
--ty-surface-canvas: black;
|
|
670
674
|
--ty-surface-content: #1a1a1a;
|
|
@@ -695,49 +699,55 @@ Emphasis logic inverts: lighter = more emphasis
|
|
|
695
699
|
0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
|
|
696
700
|
--ty-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
|
697
701
|
|
|
698
|
-
/* Solid button fills
|
|
699
|
-
|
|
700
|
-
inverts), so solid+ buttons will have a light bg with white text — low
|
|
701
|
-
contrast for some flavors. Override per flavor via --ty-solid-{flavor}-fg
|
|
702
|
-
if a specific brand needs darker text. */
|
|
702
|
+
/* Solid button fills — plain dark defaults. hover/active alias -strong;
|
|
703
|
+
theme engines override with smart per-state derivation. */
|
|
703
704
|
--ty-solid-primary: #3e536c;
|
|
704
705
|
--ty-solid-primary-strong: #426084;
|
|
705
706
|
--ty-solid-primary-soft: #343f4c;
|
|
707
|
+
--ty-solid-primary-hover: var(--ty-solid-primary-strong);
|
|
708
|
+
--ty-solid-primary-active: var(--ty-solid-primary-strong);
|
|
706
709
|
--ty-solid-primary-fg: white;
|
|
707
710
|
|
|
708
711
|
--ty-solid-secondary: #7e67b4;
|
|
709
712
|
--ty-solid-secondary-strong: #8269bc;
|
|
710
713
|
--ty-solid-secondary-soft: #52466a;
|
|
714
|
+
--ty-solid-secondary-hover: var(--ty-solid-secondary-strong);
|
|
715
|
+
--ty-solid-secondary-active: var(--ty-solid-secondary-strong);
|
|
711
716
|
--ty-solid-secondary-fg: white;
|
|
712
717
|
|
|
713
|
-
/* Success */
|
|
714
718
|
--ty-solid-success: #3bb68d;
|
|
715
719
|
--ty-solid-success-strong: #459679;
|
|
716
720
|
--ty-solid-success-soft: #285748;
|
|
721
|
+
--ty-solid-success-hover: var(--ty-solid-success-strong);
|
|
722
|
+
--ty-solid-success-active: var(--ty-solid-success-strong);
|
|
717
723
|
--ty-solid-success-fg: white;
|
|
718
724
|
|
|
719
|
-
/* Danger */
|
|
720
725
|
--ty-solid-danger: #df5b5b;
|
|
721
726
|
--ty-solid-danger-strong: #cc3e3e;
|
|
722
727
|
--ty-solid-danger-soft: #875656;
|
|
728
|
+
--ty-solid-danger-hover: var(--ty-solid-danger-strong);
|
|
729
|
+
--ty-solid-danger-active: var(--ty-solid-danger-strong);
|
|
723
730
|
--ty-solid-danger-fg: white;
|
|
724
731
|
|
|
725
|
-
/* Warning */
|
|
726
732
|
--ty-solid-warning: #e1a644;
|
|
727
733
|
--ty-solid-warning-strong: #f59e0b;
|
|
728
734
|
--ty-solid-warning-soft: #8b6334;
|
|
735
|
+
--ty-solid-warning-hover: var(--ty-solid-warning-strong);
|
|
736
|
+
--ty-solid-warning-active: var(--ty-solid-warning-strong);
|
|
729
737
|
--ty-solid-warning-fg: white;
|
|
730
738
|
|
|
731
739
|
--ty-solid-neutral: #414141;
|
|
732
740
|
--ty-solid-neutral-strong: #4c4c4c;
|
|
733
741
|
--ty-solid-neutral-soft: #2a2a2a;
|
|
742
|
+
--ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
|
|
743
|
+
--ty-solid-neutral-active: var(--ty-solid-neutral-strong);
|
|
734
744
|
--ty-solid-neutral-fg: white;
|
|
735
745
|
|
|
736
746
|
/* Input component tokens - dark mode */
|
|
737
747
|
--ty-input-bg: #1b1b1b;
|
|
738
748
|
--ty-input-color: #f9fafb;
|
|
739
|
-
--ty-input-border: #
|
|
740
|
-
--ty-input-border-hover: #
|
|
749
|
+
--ty-input-border: #3a3a3a;
|
|
750
|
+
--ty-input-border-hover: #505050;
|
|
741
751
|
--ty-input-border-focus: var(--ty-color-primary);
|
|
742
752
|
--ty-input-shadow-focus: rgba(96, 165, 250, 0.1);
|
|
743
753
|
--ty-input-placeholder: #717171;
|
|
@@ -1084,7 +1094,6 @@ SEMANTIC BACKGROUND UTILITIES
|
|
|
1084
1094
|
background-color: var(--ty-bg-neutral-soft);
|
|
1085
1095
|
}
|
|
1086
1096
|
|
|
1087
|
-
/* Accent backgrounds */
|
|
1088
1097
|
/* =================================================================
|
|
1089
1098
|
TEXT HIERARCHY UTILITIES
|
|
1090
1099
|
================================================================= */
|
|
@@ -1240,7 +1249,6 @@ SEMANTIC TEXT COLORS - 5-VARIANT SYSTEM
|
|
|
1240
1249
|
color: var(--ty-color-neutral-faint) !important;
|
|
1241
1250
|
}
|
|
1242
1251
|
|
|
1243
|
-
/* Accent text colors */
|
|
1244
1252
|
/* =================================================================
|
|
1245
1253
|
BORDER UTILITIES
|
|
1246
1254
|
================================================================= */
|
|
@@ -1536,7 +1544,6 @@ INTERACTIVE STATES
|
|
|
1536
1544
|
color: var(--ty-color-neutral-faint) !important;
|
|
1537
1545
|
}
|
|
1538
1546
|
|
|
1539
|
-
/* Accent text hover states */
|
|
1540
1547
|
/* Hover states for borders */
|
|
1541
1548
|
/* Base border hover states */
|
|
1542
1549
|
.hover\:ty-border\+\+:hover {
|