@quilltap/theme-storybook 1.0.19 → 1.0.21
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 +19 -0
- package/dist/index.css +88 -0
- package/package.json +1 -1
- package/src/css/qt-components.css +135 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@quilltap/theme-storybook` will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.0.21] - 2026-02-20
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- Overlay utility classes: `qt-bg-overlay`, `qt-bg-overlay-medium`, `qt-bg-overlay-light`, `qt-bg-overlay-none`, `qt-bg-overlay-caption`
|
|
9
|
+
- Overlay button utility classes: `qt-bg-overlay-btn`, `hover:qt-bg-overlay-btn`
|
|
10
|
+
- Overlay text utilities: `qt-text-overlay`, `qt-text-overlay-muted`
|
|
11
|
+
- Spinner utility classes: `qt-spinner`, `qt-spinner-lg` (themed loading spinners)
|
|
12
|
+
- Favorite color utility: `qt-text-favorite` (themed amber star color)
|
|
13
|
+
- Toggle knob utility: `qt-bg-toggle-knob` (themed toggle switch circle)
|
|
14
|
+
- Warning box utilities: `qt-warning-box`, `qt-warning-box-text` (themed warning container)
|
|
15
|
+
- Prose dark mode utility: `qt-prose-auto` (handles dark mode prose automatically via `.dark` selector)
|
|
16
|
+
- CSS custom properties for all new utilities: `--qt-overlay-*`, `--qt-spinner-*`, `--qt-favorite-color`, `--qt-toggle-knob-bg`, `--qt-warning-box-*`
|
|
17
|
+
|
|
18
|
+
## [1.0.20] - 2026-02-09
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- `qt-shadow-lg` utility class for elevated surfaces (dropdowns, modals)
|
|
22
|
+
- `hover:qt-bg-primary/10` hover background utility class
|
|
23
|
+
|
|
5
24
|
## [1.0.18] - 2026-02-08
|
|
6
25
|
|
|
7
26
|
### Changed
|
package/dist/index.css
CHANGED
|
@@ -500,6 +500,21 @@ body {
|
|
|
500
500
|
--qt-filter-chip-inactive-fg: var(--color-muted-foreground);
|
|
501
501
|
--qt-filter-chip-inactive-border: transparent;
|
|
502
502
|
--qt-filter-chip-inactive-hover-bg: color-mix(in srgb, var(--color-muted) 80%, var(--color-foreground) 5%);
|
|
503
|
+
--qt-overlay-bg: rgb(0 0 0 / 0.85);
|
|
504
|
+
--qt-overlay-medium-bg: rgb(0 0 0 / 0.6);
|
|
505
|
+
--qt-overlay-light-bg: rgb(0 0 0 / 0.2);
|
|
506
|
+
--qt-overlay-caption-bg: rgb(0 0 0 / 0.5);
|
|
507
|
+
--qt-overlay-btn-bg: rgb(255 255 255 / 0.1);
|
|
508
|
+
--qt-overlay-btn-hover-bg: rgb(255 255 255 / 0.2);
|
|
509
|
+
--qt-overlay-fg: rgb(255 255 255);
|
|
510
|
+
--qt-overlay-muted-fg: rgb(255 255 255 / 0.7);
|
|
511
|
+
--qt-spinner-track: color-mix(in srgb, var(--color-primary) 20%, transparent);
|
|
512
|
+
--qt-spinner-indicator: var(--color-primary);
|
|
513
|
+
--qt-favorite-color: hsl(45 96% 58%);
|
|
514
|
+
--qt-toggle-knob-bg: white;
|
|
515
|
+
--qt-warning-box-bg: color-mix(in srgb, var(--color-warning) 8%, transparent);
|
|
516
|
+
--qt-warning-box-border: color-mix(in srgb, var(--color-warning) 30%, transparent);
|
|
517
|
+
--qt-warning-box-fg: var(--color-warning);
|
|
503
518
|
}
|
|
504
519
|
.qt-button {
|
|
505
520
|
display: inline-flex;
|
|
@@ -1030,6 +1045,76 @@ body {
|
|
|
1030
1045
|
.hover\:qt-bg-info\/10:hover {
|
|
1031
1046
|
background-color: color-mix(in srgb, var(--color-info) 10%, transparent);
|
|
1032
1047
|
}
|
|
1048
|
+
.hover\:qt-bg-primary\/10:hover {
|
|
1049
|
+
background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
|
|
1050
|
+
}
|
|
1051
|
+
.qt-bg-overlay {
|
|
1052
|
+
background-color: var(--qt-overlay-bg, rgb(0 0 0 / 0.85));
|
|
1053
|
+
}
|
|
1054
|
+
.qt-bg-overlay-medium {
|
|
1055
|
+
background-color: var(--qt-overlay-medium-bg, rgb(0 0 0 / 0.6));
|
|
1056
|
+
}
|
|
1057
|
+
.qt-bg-overlay-light {
|
|
1058
|
+
background-color: var(--qt-overlay-light-bg, rgb(0 0 0 / 0.2));
|
|
1059
|
+
}
|
|
1060
|
+
.qt-bg-overlay-none {
|
|
1061
|
+
background-color: transparent;
|
|
1062
|
+
}
|
|
1063
|
+
.qt-bg-overlay-caption {
|
|
1064
|
+
background-color: var(--qt-overlay-caption-bg, rgb(0 0 0 / 0.5));
|
|
1065
|
+
}
|
|
1066
|
+
.qt-bg-overlay-btn {
|
|
1067
|
+
background-color: var(--qt-overlay-btn-bg, rgb(255 255 255 / 0.1));
|
|
1068
|
+
}
|
|
1069
|
+
.hover\:qt-bg-overlay-btn:hover {
|
|
1070
|
+
background-color: var(--qt-overlay-btn-hover-bg, rgb(255 255 255 / 0.2));
|
|
1071
|
+
}
|
|
1072
|
+
.qt-text-overlay {
|
|
1073
|
+
color: var(--qt-overlay-fg, rgb(255 255 255));
|
|
1074
|
+
}
|
|
1075
|
+
.qt-text-overlay-muted {
|
|
1076
|
+
color: var(--qt-overlay-muted-fg, rgb(255 255 255 / 0.7));
|
|
1077
|
+
}
|
|
1078
|
+
.qt-spinner {
|
|
1079
|
+
border: 2px solid var(--qt-spinner-track, color-mix(in srgb, var(--color-primary) 20%, transparent));
|
|
1080
|
+
border-right-color: var(--qt-spinner-indicator, var(--color-primary));
|
|
1081
|
+
}
|
|
1082
|
+
.qt-spinner-lg {
|
|
1083
|
+
border: 4px solid var(--qt-spinner-track, color-mix(in srgb, var(--color-primary) 20%, transparent));
|
|
1084
|
+
border-right-color: var(--qt-spinner-indicator, var(--color-primary));
|
|
1085
|
+
}
|
|
1086
|
+
.qt-text-favorite {
|
|
1087
|
+
color: var(--qt-favorite-color, hsl(45 96% 58%));
|
|
1088
|
+
}
|
|
1089
|
+
.qt-bg-toggle-knob {
|
|
1090
|
+
background-color: var(--qt-toggle-knob-bg, white);
|
|
1091
|
+
}
|
|
1092
|
+
.qt-warning-box {
|
|
1093
|
+
background-color: var(--qt-warning-box-bg, color-mix(in srgb, var(--color-warning) 8%, transparent));
|
|
1094
|
+
border: 1px solid var(--qt-warning-box-border, color-mix(in srgb, var(--color-warning) 30%, transparent));
|
|
1095
|
+
}
|
|
1096
|
+
.qt-warning-box-text {
|
|
1097
|
+
color: var(--qt-warning-box-fg, var(--color-warning));
|
|
1098
|
+
}
|
|
1099
|
+
.qt-prose-auto {
|
|
1100
|
+
}
|
|
1101
|
+
.dark .qt-prose-auto {
|
|
1102
|
+
--tw-prose-body: var(--color-foreground);
|
|
1103
|
+
--tw-prose-headings: var(--color-foreground);
|
|
1104
|
+
--tw-prose-links: var(--color-primary);
|
|
1105
|
+
--tw-prose-bold: var(--color-foreground);
|
|
1106
|
+
--tw-prose-counters: var(--color-muted-foreground);
|
|
1107
|
+
--tw-prose-bullets: var(--color-muted-foreground);
|
|
1108
|
+
--tw-prose-hr: var(--color-border);
|
|
1109
|
+
--tw-prose-quotes: var(--color-foreground);
|
|
1110
|
+
--tw-prose-quote-borders: var(--color-border);
|
|
1111
|
+
--tw-prose-captions: var(--color-muted-foreground);
|
|
1112
|
+
--tw-prose-code: var(--color-foreground);
|
|
1113
|
+
--tw-prose-pre-code: var(--color-foreground);
|
|
1114
|
+
--tw-prose-pre-bg: var(--color-muted);
|
|
1115
|
+
--tw-prose-th-borders: var(--color-border);
|
|
1116
|
+
--tw-prose-td-borders: var(--color-border);
|
|
1117
|
+
}
|
|
1033
1118
|
.qt-left-sidebar {
|
|
1034
1119
|
display: flex;
|
|
1035
1120
|
flex-direction: column;
|
|
@@ -1460,6 +1545,9 @@ body {
|
|
|
1460
1545
|
.qt-shadow-md {
|
|
1461
1546
|
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
1462
1547
|
}
|
|
1548
|
+
.qt-shadow-lg {
|
|
1549
|
+
box-shadow: var(--qt-dialog-shadow, 0 10px 25px hsl(225 18% 10% / 0.15), 0 4px 10px hsl(225 18% 10% / 0.08));
|
|
1550
|
+
}
|
|
1463
1551
|
.hover\:qt-bg-surface-alt:hover {
|
|
1464
1552
|
background-color: var(--color-muted);
|
|
1465
1553
|
}
|
package/package.json
CHANGED
|
@@ -416,6 +416,31 @@
|
|
|
416
416
|
--qt-filter-chip-inactive-fg: var(--color-muted-foreground);
|
|
417
417
|
--qt-filter-chip-inactive-border: transparent;
|
|
418
418
|
--qt-filter-chip-inactive-hover-bg: color-mix(in srgb, var(--color-muted) 80%, var(--color-foreground) 5%);
|
|
419
|
+
|
|
420
|
+
/* Overlay variables (image modals, lightboxes, overlay UI elements) */
|
|
421
|
+
--qt-overlay-bg: rgb(0 0 0 / 0.85);
|
|
422
|
+
--qt-overlay-medium-bg: rgb(0 0 0 / 0.6);
|
|
423
|
+
--qt-overlay-light-bg: rgb(0 0 0 / 0.2);
|
|
424
|
+
--qt-overlay-caption-bg: rgb(0 0 0 / 0.5);
|
|
425
|
+
--qt-overlay-btn-bg: rgb(255 255 255 / 0.1);
|
|
426
|
+
--qt-overlay-btn-hover-bg: rgb(255 255 255 / 0.2);
|
|
427
|
+
--qt-overlay-fg: rgb(255 255 255);
|
|
428
|
+
--qt-overlay-muted-fg: rgb(255 255 255 / 0.7);
|
|
429
|
+
|
|
430
|
+
/* Spinner variables */
|
|
431
|
+
--qt-spinner-track: color-mix(in srgb, var(--color-primary) 20%, transparent);
|
|
432
|
+
--qt-spinner-indicator: var(--color-primary);
|
|
433
|
+
|
|
434
|
+
/* Favorite star color */
|
|
435
|
+
--qt-favorite-color: hsl(45 96% 58%);
|
|
436
|
+
|
|
437
|
+
/* Toggle switch knob */
|
|
438
|
+
--qt-toggle-knob-bg: white;
|
|
439
|
+
|
|
440
|
+
/* Warning box variables */
|
|
441
|
+
--qt-warning-box-bg: color-mix(in srgb, var(--color-warning) 8%, transparent);
|
|
442
|
+
--qt-warning-box-border: color-mix(in srgb, var(--color-warning) 30%, transparent);
|
|
443
|
+
--qt-warning-box-fg: var(--color-warning);
|
|
419
444
|
}
|
|
420
445
|
|
|
421
446
|
/* ==========================================================================
|
|
@@ -1093,6 +1118,112 @@
|
|
|
1093
1118
|
background-color: color-mix(in srgb, var(--color-info) 10%, transparent);
|
|
1094
1119
|
}
|
|
1095
1120
|
|
|
1121
|
+
.hover\:qt-bg-primary\/10:hover {
|
|
1122
|
+
background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
/* ==========================================================================
|
|
1126
|
+
OVERLAY UTILITIES
|
|
1127
|
+
For image modals, lightboxes, and overlay UI elements.
|
|
1128
|
+
========================================================================== */
|
|
1129
|
+
|
|
1130
|
+
.qt-bg-overlay {
|
|
1131
|
+
background-color: var(--qt-overlay-bg, rgb(0 0 0 / 0.85));
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
.qt-bg-overlay-medium {
|
|
1135
|
+
background-color: var(--qt-overlay-medium-bg, rgb(0 0 0 / 0.6));
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
.qt-bg-overlay-light {
|
|
1139
|
+
background-color: var(--qt-overlay-light-bg, rgb(0 0 0 / 0.2));
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
.qt-bg-overlay-none {
|
|
1143
|
+
background-color: transparent;
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
.qt-bg-overlay-caption {
|
|
1147
|
+
background-color: var(--qt-overlay-caption-bg, rgb(0 0 0 / 0.5));
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
.qt-bg-overlay-btn {
|
|
1151
|
+
background-color: var(--qt-overlay-btn-bg, rgb(255 255 255 / 0.1));
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
.hover\:qt-bg-overlay-btn:hover {
|
|
1155
|
+
background-color: var(--qt-overlay-btn-hover-bg, rgb(255 255 255 / 0.2));
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
.qt-text-overlay {
|
|
1159
|
+
color: var(--qt-overlay-fg, rgb(255 255 255));
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
.qt-text-overlay-muted {
|
|
1163
|
+
color: var(--qt-overlay-muted-fg, rgb(255 255 255 / 0.7));
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
/* ==========================================================================
|
|
1167
|
+
SPINNER UTILITIES
|
|
1168
|
+
========================================================================== */
|
|
1169
|
+
|
|
1170
|
+
.qt-spinner {
|
|
1171
|
+
border: 2px solid var(--qt-spinner-track, color-mix(in srgb, var(--color-primary) 20%, transparent));
|
|
1172
|
+
border-right-color: var(--qt-spinner-indicator, var(--color-primary));
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
.qt-spinner-lg {
|
|
1176
|
+
border: 4px solid var(--qt-spinner-track, color-mix(in srgb, var(--color-primary) 20%, transparent));
|
|
1177
|
+
border-right-color: var(--qt-spinner-indicator, var(--color-primary));
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
/* ==========================================================================
|
|
1181
|
+
FAVORITE / TOGGLE / WARNING BOX UTILITIES
|
|
1182
|
+
========================================================================== */
|
|
1183
|
+
|
|
1184
|
+
.qt-text-favorite {
|
|
1185
|
+
color: var(--qt-favorite-color, hsl(45 96% 58%));
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
.qt-bg-toggle-knob {
|
|
1189
|
+
background-color: var(--qt-toggle-knob-bg, white);
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
.qt-warning-box {
|
|
1193
|
+
background-color: var(--qt-warning-box-bg, color-mix(in srgb, var(--color-warning) 8%, transparent));
|
|
1194
|
+
border: 1px solid var(--qt-warning-box-border, color-mix(in srgb, var(--color-warning) 30%, transparent));
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
.qt-warning-box-text {
|
|
1198
|
+
color: var(--qt-warning-box-fg, var(--color-warning));
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
/* ==========================================================================
|
|
1202
|
+
PROSE DARK MODE UTILITY
|
|
1203
|
+
========================================================================== */
|
|
1204
|
+
|
|
1205
|
+
.qt-prose-auto {
|
|
1206
|
+
/* Light mode: default prose colors (no override needed) */
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
.dark .qt-prose-auto {
|
|
1210
|
+
--tw-prose-body: var(--color-foreground);
|
|
1211
|
+
--tw-prose-headings: var(--color-foreground);
|
|
1212
|
+
--tw-prose-links: var(--color-primary);
|
|
1213
|
+
--tw-prose-bold: var(--color-foreground);
|
|
1214
|
+
--tw-prose-counters: var(--color-muted-foreground);
|
|
1215
|
+
--tw-prose-bullets: var(--color-muted-foreground);
|
|
1216
|
+
--tw-prose-hr: var(--color-border);
|
|
1217
|
+
--tw-prose-quotes: var(--color-foreground);
|
|
1218
|
+
--tw-prose-quote-borders: var(--color-border);
|
|
1219
|
+
--tw-prose-captions: var(--color-muted-foreground);
|
|
1220
|
+
--tw-prose-code: var(--color-foreground);
|
|
1221
|
+
--tw-prose-pre-code: var(--color-foreground);
|
|
1222
|
+
--tw-prose-pre-bg: var(--color-muted);
|
|
1223
|
+
--tw-prose-th-borders: var(--color-border);
|
|
1224
|
+
--tw-prose-td-borders: var(--color-border);
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1096
1227
|
/* ==========================================================================
|
|
1097
1228
|
LEFT SIDEBAR COMPONENTS
|
|
1098
1229
|
========================================================================== */
|
|
@@ -1641,6 +1772,10 @@
|
|
|
1641
1772
|
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
1642
1773
|
}
|
|
1643
1774
|
|
|
1775
|
+
.qt-shadow-lg {
|
|
1776
|
+
box-shadow: var(--qt-dialog-shadow, 0 10px 25px hsl(225 18% 10% / 0.15), 0 4px 10px hsl(225 18% 10% / 0.08));
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1644
1779
|
.hover\:qt-bg-surface-alt:hover {
|
|
1645
1780
|
background-color: var(--color-muted);
|
|
1646
1781
|
}
|