@quilltap/theme-storybook 1.0.10 → 1.0.12

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 CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to `@quilltap/theme-storybook` will be documented in this file.
4
4
 
5
+ ## [1.0.12] - 2026-01-23
6
+
7
+ ### Added
8
+ - Filter chip classes (`qt-filter-chip`, `qt-filter-chip-active`) for themeable search filter toggles
9
+ - CSS variables: `--qt-filter-chip-radius`, `--qt-filter-chip-padding-x`, `--qt-filter-chip-padding-y`, `--qt-filter-chip-font-size`, `--qt-filter-chip-font-weight`, `--qt-filter-chip-transition`
10
+ - Active state variables: `--qt-filter-chip-active-bg`, `--qt-filter-chip-active-fg`, `--qt-filter-chip-active-border`
11
+ - Inactive state variables: `--qt-filter-chip-inactive-bg`, `--qt-filter-chip-inactive-fg`, `--qt-filter-chip-inactive-border`, `--qt-filter-chip-inactive-hover-bg`
12
+
13
+ ## [1.0.11] - 2026-01-23
14
+
15
+ ### Added
16
+ - Search highlight class (`qt-highlight`) for consistent search result text highlighting
17
+ - CSS variables: `--qt-highlight-bg`, `--qt-highlight-fg`, `--qt-highlight-radius`, `--qt-highlight-padding-x`, `--qt-highlight-font-weight`
18
+
5
19
  ## [1.0.10] - 2026-01-16
6
20
 
7
21
  ### Added
package/dist/index.css CHANGED
@@ -250,6 +250,24 @@ body {
250
250
  "Liberation Mono",
251
251
  "Courier New",
252
252
  monospace;
253
+ --qt-highlight-bg: hsl(50 100% 50%);
254
+ --qt-highlight-fg: hsl(40 100% 10%);
255
+ --qt-highlight-radius: 0.125rem;
256
+ --qt-highlight-padding-x: 0.125rem;
257
+ --qt-highlight-font-weight: 500;
258
+ --qt-filter-chip-radius: 9999px;
259
+ --qt-filter-chip-padding-x: 0.5rem;
260
+ --qt-filter-chip-padding-y: 0.25rem;
261
+ --qt-filter-chip-font-size: 0.75rem;
262
+ --qt-filter-chip-font-weight: 500;
263
+ --qt-filter-chip-transition: all 150ms ease;
264
+ --qt-filter-chip-active-bg: var(--color-primary);
265
+ --qt-filter-chip-active-fg: var(--color-primary-foreground);
266
+ --qt-filter-chip-active-border: transparent;
267
+ --qt-filter-chip-inactive-bg: var(--color-muted);
268
+ --qt-filter-chip-inactive-fg: var(--color-muted-foreground);
269
+ --qt-filter-chip-inactive-border: transparent;
270
+ --qt-filter-chip-inactive-hover-bg: color-mix(in srgb, var(--color-muted) 80%, var(--color-foreground) 5%);
253
271
  }
254
272
  .qt-button {
255
273
  display: inline-flex;
@@ -996,6 +1014,48 @@ body {
996
1014
  background: var(--color-muted);
997
1015
  text-decoration: line-through;
998
1016
  }
1017
+ .qt-highlight {
1018
+ background-color: var(--qt-highlight-bg);
1019
+ color: var(--qt-highlight-fg);
1020
+ border-radius: var(--qt-highlight-radius);
1021
+ padding-left: var(--qt-highlight-padding-x);
1022
+ padding-right: var(--qt-highlight-padding-x);
1023
+ font-weight: var(--qt-highlight-font-weight);
1024
+ }
1025
+ .qt-filter-chip {
1026
+ display: inline-flex;
1027
+ align-items: center;
1028
+ justify-content: center;
1029
+ cursor: pointer;
1030
+ padding: var(--qt-filter-chip-padding-y) var(--qt-filter-chip-padding-x);
1031
+ border-radius: var(--qt-filter-chip-radius);
1032
+ font-size: var(--qt-filter-chip-font-size);
1033
+ font-weight: var(--qt-filter-chip-font-weight);
1034
+ transition: var(--qt-filter-chip-transition);
1035
+ border: 1px solid var(--qt-filter-chip-inactive-border);
1036
+ background: var(--qt-filter-chip-inactive-bg);
1037
+ color: var(--qt-filter-chip-inactive-fg);
1038
+ }
1039
+ .qt-filter-chip:hover {
1040
+ background: var(--qt-filter-chip-inactive-hover-bg);
1041
+ }
1042
+ .qt-filter-chip-active {
1043
+ display: inline-flex;
1044
+ align-items: center;
1045
+ justify-content: center;
1046
+ cursor: pointer;
1047
+ padding: var(--qt-filter-chip-padding-y) var(--qt-filter-chip-padding-x);
1048
+ border-radius: var(--qt-filter-chip-radius);
1049
+ font-size: var(--qt-filter-chip-font-size);
1050
+ font-weight: var(--qt-filter-chip-font-weight);
1051
+ transition: var(--qt-filter-chip-transition);
1052
+ border: 1px solid var(--qt-filter-chip-active-border);
1053
+ background: var(--qt-filter-chip-active-bg);
1054
+ color: var(--qt-filter-chip-active-fg);
1055
+ }
1056
+ .qt-filter-chip-active:hover {
1057
+ opacity: 0.9;
1058
+ }
999
1059
  @keyframes pulse {
1000
1060
  0%, 100% {
1001
1061
  opacity: 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quilltap/theme-storybook",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "description": "Storybook preset and stories for developing Quilltap theme plugins",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -132,6 +132,32 @@
132
132
  --qt-code-bg: var(--color-muted);
133
133
  --qt-code-fg: var(--color-foreground);
134
134
  --qt-code-font: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
135
+
136
+ /* Highlight variables (search result highlighting) */
137
+ --qt-highlight-bg: hsl(50 100% 50%);
138
+ --qt-highlight-fg: hsl(40 100% 10%);
139
+ --qt-highlight-radius: 0.125rem;
140
+ --qt-highlight-padding-x: 0.125rem;
141
+ --qt-highlight-font-weight: 500;
142
+
143
+ /* Filter chip variables (search filter toggles) */
144
+ --qt-filter-chip-radius: 9999px;
145
+ --qt-filter-chip-padding-x: 0.5rem;
146
+ --qt-filter-chip-padding-y: 0.25rem;
147
+ --qt-filter-chip-font-size: 0.75rem;
148
+ --qt-filter-chip-font-weight: 500;
149
+ --qt-filter-chip-transition: all 150ms ease;
150
+
151
+ /* Active state (filter is enabled, showing results) */
152
+ --qt-filter-chip-active-bg: var(--color-primary);
153
+ --qt-filter-chip-active-fg: var(--color-primary-foreground);
154
+ --qt-filter-chip-active-border: transparent;
155
+
156
+ /* Inactive state (filter is disabled, hiding results) */
157
+ --qt-filter-chip-inactive-bg: var(--color-muted);
158
+ --qt-filter-chip-inactive-fg: var(--color-muted-foreground);
159
+ --qt-filter-chip-inactive-border: transparent;
160
+ --qt-filter-chip-inactive-hover-bg: color-mix(in srgb, var(--color-muted) 80%, var(--color-foreground) 5%);
135
161
  }
136
162
 
137
163
  /* ==========================================================================
@@ -1045,6 +1071,73 @@
1045
1071
  text-decoration: line-through;
1046
1072
  }
1047
1073
 
1074
+ /* ==========================================================================
1075
+ SEARCH HIGHLIGHT
1076
+ ========================================================================== */
1077
+
1078
+ /**
1079
+ * Search result text highlight
1080
+ * Used to highlight matching search terms in results
1081
+ * Designed for high contrast in both light and dark themes
1082
+ */
1083
+ .qt-highlight {
1084
+ background-color: var(--qt-highlight-bg);
1085
+ color: var(--qt-highlight-fg);
1086
+ border-radius: var(--qt-highlight-radius);
1087
+ padding-left: var(--qt-highlight-padding-x);
1088
+ padding-right: var(--qt-highlight-padding-x);
1089
+ font-weight: var(--qt-highlight-font-weight);
1090
+ }
1091
+
1092
+ /* ==========================================================================
1093
+ FILTER CHIPS (Search filter toggles)
1094
+ ========================================================================== */
1095
+
1096
+ /**
1097
+ * Base filter chip styles (inactive state)
1098
+ * Used for toggling search result filters
1099
+ */
1100
+ .qt-filter-chip {
1101
+ display: inline-flex;
1102
+ align-items: center;
1103
+ justify-content: center;
1104
+ cursor: pointer;
1105
+ padding: var(--qt-filter-chip-padding-y) var(--qt-filter-chip-padding-x);
1106
+ border-radius: var(--qt-filter-chip-radius);
1107
+ font-size: var(--qt-filter-chip-font-size);
1108
+ font-weight: var(--qt-filter-chip-font-weight);
1109
+ transition: var(--qt-filter-chip-transition);
1110
+ border: 1px solid var(--qt-filter-chip-inactive-border);
1111
+ background: var(--qt-filter-chip-inactive-bg);
1112
+ color: var(--qt-filter-chip-inactive-fg);
1113
+ }
1114
+
1115
+ .qt-filter-chip:hover {
1116
+ background: var(--qt-filter-chip-inactive-hover-bg);
1117
+ }
1118
+
1119
+ /**
1120
+ * Active filter chip (filter is enabled, showing results)
1121
+ */
1122
+ .qt-filter-chip-active {
1123
+ display: inline-flex;
1124
+ align-items: center;
1125
+ justify-content: center;
1126
+ cursor: pointer;
1127
+ padding: var(--qt-filter-chip-padding-y) var(--qt-filter-chip-padding-x);
1128
+ border-radius: var(--qt-filter-chip-radius);
1129
+ font-size: var(--qt-filter-chip-font-size);
1130
+ font-weight: var(--qt-filter-chip-font-weight);
1131
+ transition: var(--qt-filter-chip-transition);
1132
+ border: 1px solid var(--qt-filter-chip-active-border);
1133
+ background: var(--qt-filter-chip-active-bg);
1134
+ color: var(--qt-filter-chip-active-fg);
1135
+ }
1136
+
1137
+ .qt-filter-chip-active:hover {
1138
+ opacity: 0.9;
1139
+ }
1140
+
1048
1141
  @keyframes pulse {
1049
1142
  0%, 100% {
1050
1143
  opacity: 1;