@jschofield/reading-list 0.2.0 → 0.3.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.
@@ -170,22 +170,19 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
170
170
  </div>
171
171
  `}static{this.styles=t`
172
172
  :host {
173
- --primary-color: #2563eb;
174
- --text-color: #1f2937;
175
- --text-secondary: #6b7280;
176
- --border-color: #e5e7eb;
177
- --bg-color: #ffffff;
178
- --bg-hover: #f9fafb;
179
- --success-color: #10b981;
180
- --warning-color: #f59e0b;
181
- --danger-color: #ef4444;
173
+ --rl-text: var(--text, #1f2937);
174
+ --rl-text-secondary: var(--text-secondary, #6b7280);
175
+ --rl-border: var(--border-subtle, #e5e7eb);
176
+ --rl-bg: var(--bg-surface, #ffffff);
177
+ --rl-bg-hover: color-mix(in srgb, var(--accent-secondary, #376170) 8%, var(--bg, #f9fafb));
178
+ --rl-accent: var(--accent-secondary, #2563eb);
182
179
 
183
180
  display: block;
184
181
  font-family:
185
182
  -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
186
183
  Arial, sans-serif;
187
184
  line-height: 1.6;
188
- color: var(--text-color);
185
+ color: var(--rl-text);
189
186
  }
190
187
 
191
188
  * {
@@ -210,7 +207,7 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
210
207
  }
211
208
 
212
209
  .subtitle {
213
- color: var(--text-secondary);
210
+ color: var(--rl-text-secondary);
214
211
  font-size: 1.1rem;
215
212
  margin: 0;
216
213
  }
@@ -219,21 +216,21 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
219
216
  .error {
220
217
  text-align: center;
221
218
  padding: 2rem;
222
- color: var(--text-secondary);
219
+ color: var(--rl-text-secondary);
223
220
  }
224
221
 
225
222
  .error {
226
- color: var(--danger-color);
227
- background: #fee2e2;
228
- border: 1px solid #fecaca;
223
+ color: #dc2626;
224
+ background: color-mix(in srgb, #dc2626 10%, var(--rl-bg));
225
+ border: 1px solid color-mix(in srgb, #dc2626 25%, var(--rl-bg));
229
226
  border-radius: 12px;
230
227
  }
231
228
 
232
229
  .filters {
233
- background: var(--bg-color);
230
+ background: var(--rl-bg);
234
231
  padding: 1.5rem;
235
232
  border-radius: 12px;
236
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
233
+ box-shadow: var(--shadow, 0 1px 3px rgba(0, 0, 0, 0.1));
237
234
  margin-bottom: 2rem;
238
235
  display: grid;
239
236
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
@@ -249,7 +246,7 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
249
246
  .filter-group label {
250
247
  font-size: 0.875rem;
251
248
  font-weight: 600;
252
- color: var(--text-secondary);
249
+ color: var(--rl-text-secondary);
253
250
  text-transform: uppercase;
254
251
  letter-spacing: 0.025em;
255
252
  }
@@ -257,16 +254,22 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
257
254
  .filter-group input,
258
255
  .filter-group select {
259
256
  padding: 0.75rem 1rem;
260
- border: 2px solid var(--border-color);
257
+ border: 2px solid var(--rl-border);
261
258
  border-radius: 8px;
262
259
  font-size: 1rem;
263
260
  transition: border-color 0.2s;
264
261
  }
265
262
 
263
+ .filter-group input,
264
+ .filter-group select {
265
+ background: var(--rl-bg);
266
+ color: var(--rl-text);
267
+ }
268
+
266
269
  .filter-group input:focus,
267
270
  .filter-group select:focus {
268
271
  outline: none;
269
- border-color: var(--primary-color);
272
+ border-color: var(--rl-accent);
270
273
  }
271
274
 
272
275
  .filter-group:has(.clear-filters-btn) {
@@ -277,10 +280,10 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
277
280
  .clear-filters-btn {
278
281
  display: inline-block;
279
282
  padding: 0.25em 1em;
280
- background: #1b2f36; /* --gunmetal from main.css */
281
- color: #fafafa; /* --seasalt from main.css */
283
+ background: var(--button-bg, #1b2f36);
284
+ color: var(--button-text, #fafafa);
282
285
  border-radius: 8px;
283
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* --shadow from main.css */
286
+ box-shadow: var(--shadow, 0 4px 8px rgba(0, 0, 0, 0.2));
284
287
  text-decoration: none;
285
288
  font: inherit;
286
289
  border: none;
@@ -290,35 +293,21 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
290
293
 
291
294
  .clear-filters-btn:active,
292
295
  .clear-filters-btn:hover {
293
- color: #fafafa; /* --seasalt */
294
- background: linear-gradient(
295
- 135deg,
296
- #4d5963 0% 20%,
297
- #f79103 20% 40%,
298
- #376170 40% 60%,
299
- #906b56 60% 80%,
300
- #1b2f36 80% 100%
301
- ); /* --gradient */
296
+ color: var(--button-text, #fafafa);
297
+ background: var(--gradient);
302
298
  }
303
299
 
304
300
  .clear-filters-btn:focus-visible {
305
- color: #fafafa; /* --seasalt */
306
- outline: 2px solid #906b56; /* --raw-umber */
301
+ color: var(--button-text, #fafafa);
302
+ outline: 2px solid var(--link, #906b56);
307
303
  outline-offset: 1px;
308
- background: linear-gradient(
309
- 135deg,
310
- #4d5963 0% 20%,
311
- #f79103 20% 40%,
312
- #376170 40% 60%,
313
- #906b56 60% 80%,
314
- #1b2f36 80% 100%
315
- ); /* --gradient */
304
+ background: var(--gradient);
316
305
  }
317
306
 
318
307
  .table-container {
319
- background: var(--bg-color);
308
+ background: var(--rl-bg);
320
309
  border-radius: 12px;
321
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
310
+ box-shadow: var(--shadow, 0 1px 3px rgba(0, 0, 0, 0.1));
322
311
  overflow: hidden;
323
312
  }
324
313
 
@@ -328,15 +317,15 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
328
317
  }
329
318
 
330
319
  th {
331
- background: var(--bg-hover);
320
+ background: var(--rl-bg-hover);
332
321
  padding: 1rem;
333
322
  text-align: left;
334
323
  font-weight: 600;
335
- color: var(--text-secondary);
324
+ color: var(--rl-text-secondary);
336
325
  text-transform: uppercase;
337
326
  font-size: 0.875rem;
338
327
  letter-spacing: 0.025em;
339
- border-bottom: 2px solid var(--border-color);
328
+ border-bottom: 2px solid var(--rl-border);
340
329
  }
341
330
 
342
331
  th:has(.sort-header) {
@@ -350,7 +339,7 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
350
339
  border: none;
351
340
  text-align: left;
352
341
  font-weight: 600;
353
- color: var(--text-secondary);
342
+ color: var(--rl-text-secondary);
354
343
  text-transform: uppercase;
355
344
  font-size: 0.875rem;
356
345
  letter-spacing: 0.025em;
@@ -362,24 +351,24 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
362
351
  }
363
352
 
364
353
  .sort-header:hover {
365
- background-color: var(--border-color);
366
- color: var(--text-color);
354
+ background-color: var(--rl-border);
355
+ color: var(--rl-text);
367
356
  }
368
357
 
369
358
  .sort-header:focus {
370
359
  outline: none;
371
- background-color: var(--primary-color);
372
- color: white;
360
+ background-color: var(--rl-accent);
361
+ color: var(--button-text, white);
373
362
  }
374
363
 
375
364
  td {
376
365
  padding: 1rem;
377
- border-bottom: 1px solid var(--border-color);
366
+ border-bottom: 1px solid var(--rl-border);
378
367
  vertical-align: top;
379
368
  }
380
369
 
381
370
  tbody tr:hover {
382
- background-color: var(--bg-hover);
371
+ background-color: var(--rl-bg-hover);
383
372
  }
384
373
 
385
374
  tbody tr:last-child td {
@@ -396,55 +385,55 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
396
385
  }
397
386
 
398
387
  .status-reading {
399
- background-color: #dbeafe;
400
- color: #1d4ed8;
388
+ background-color: color-mix(in srgb, #3b82f6 15%, var(--rl-bg));
389
+ color: color-mix(in srgb, #3b82f6 80%, var(--rl-text));
401
390
  }
402
391
 
403
392
  .status-finished {
404
- background-color: #d1fae5;
405
- color: #065f46;
393
+ background-color: color-mix(in srgb, #10b981 15%, var(--rl-bg));
394
+ color: color-mix(in srgb, #10b981 80%, var(--rl-text));
406
395
  }
407
396
 
408
397
  .status-ah.naw,
409
398
  .status-ah-naw {
410
- background-color: #fee2e2;
411
- color: #991b1b;
399
+ background-color: color-mix(in srgb, #ef4444 15%, var(--rl-bg));
400
+ color: color-mix(in srgb, #ef4444 80%, var(--rl-text));
412
401
  }
413
402
 
414
403
  .status-not.started,
415
404
  .status-not-started {
416
- background-color: #f3f4f6;
417
- color: #374151;
405
+ background-color: color-mix(in srgb, #6b7280 15%, var(--rl-bg));
406
+ color: var(--rl-text-secondary);
418
407
  }
419
408
 
420
409
  .status-maybe.later,
421
410
  .status-maybe-later {
422
- background-color: #fef3c7;
423
- color: #92400e;
411
+ background-color: color-mix(in srgb, #f59e0b 15%, var(--rl-bg));
412
+ color: color-mix(in srgb, #f59e0b 80%, var(--rl-text));
424
413
  }
425
414
 
426
415
  .status-on.deck,
427
416
  .status-on-deck {
428
- background-color: #f3e8ff;
429
- color: #7c3aed;
417
+ background-color: color-mix(in srgb, #8b5cf6 15%, var(--rl-bg));
418
+ color: color-mix(in srgb, #8b5cf6 80%, var(--rl-text));
430
419
  }
431
420
 
432
421
  .book-title {
433
422
  font-weight: 600;
434
- color: var(--text-color);
423
+ color: var(--rl-text);
435
424
  margin-bottom: 0.25rem;
436
425
  text-transform: capitalize;
437
426
  }
438
427
 
439
428
  .book-author {
440
- color: var(--text-secondary);
429
+ color: var(--rl-text-secondary);
441
430
  font-size: 0.9rem;
442
431
  text-transform: capitalize;
443
432
  }
444
433
 
445
434
  .series-badge {
446
- background-color: var(--bg-hover);
447
- color: var(--text-secondary);
435
+ background-color: var(--rl-bg-hover);
436
+ color: var(--rl-text-secondary);
448
437
  padding: 0.25rem 0.5rem;
449
438
  border-radius: 4px;
450
439
  font-size: 0.875rem;
@@ -452,8 +441,8 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
452
441
  }
453
442
 
454
443
  .year-badge {
455
- background-color: var(--primary-color);
456
- color: white;
444
+ background-color: var(--rl-accent);
445
+ color: var(--button-text, white);
457
446
  padding: 0.25rem 0.5rem;
458
447
  border-radius: 4px;
459
448
  font-size: 0.875rem;
@@ -472,37 +461,37 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
472
461
  }
473
462
 
474
463
  .grade-a {
475
- background-color: #d1fae5;
476
- color: #065f46;
464
+ background-color: color-mix(in srgb, #10b981 15%, var(--rl-bg));
465
+ color: color-mix(in srgb, #10b981 80%, var(--rl-text));
477
466
  }
478
467
 
479
468
  .grade-b {
480
- background-color: #dbeafe;
481
- color: #1e40af;
469
+ background-color: color-mix(in srgb, #3b82f6 15%, var(--rl-bg));
470
+ color: color-mix(in srgb, #3b82f6 80%, var(--rl-text));
482
471
  }
483
472
 
484
473
  .grade-c {
485
- background-color: #fef3c7;
486
- color: #92400e;
474
+ background-color: color-mix(in srgb, #f59e0b 15%, var(--rl-bg));
475
+ color: color-mix(in srgb, #f59e0b 80%, var(--rl-text));
487
476
  }
488
477
 
489
478
  .grade-d {
490
- background-color: #fed7aa;
491
- color: #c2410c;
479
+ background-color: color-mix(in srgb, #f97316 15%, var(--rl-bg));
480
+ color: color-mix(in srgb, #f97316 80%, var(--rl-text));
492
481
  }
493
482
 
494
483
  .grade-f {
495
- background-color: #fee2e2;
496
- color: #991b1b;
484
+ background-color: color-mix(in srgb, #ef4444 15%, var(--rl-bg));
485
+ color: color-mix(in srgb, #ef4444 80%, var(--rl-text));
497
486
  }
498
487
 
499
488
  .completion-date {
500
- color: var(--text-secondary);
489
+ color: var(--rl-text-secondary);
501
490
  font-size: 0.9rem;
502
491
  }
503
492
 
504
493
  .not-applicable {
505
- color: #9ca3af;
494
+ color: var(--rl-text-secondary);
506
495
  font-style: italic;
507
496
  font-size: 0.875rem;
508
497
  }
@@ -514,7 +503,7 @@ import{LitElement as e,css as t,html as n}from"lit";import{customElement as r,pr
514
503
  .no-results {
515
504
  text-align: center;
516
505
  padding: 3rem;
517
- color: var(--text-secondary);
506
+ color: var(--rl-text-secondary);
518
507
  }
519
508
 
520
509
  @media (max-width: 768px) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jschofield/reading-list",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/assets/index.js",
6
6
  "exports": {