@xivdyetools/core 1.12.4 → 1.12.6

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.
@@ -30,6 +30,7 @@ import { ColorblindnessSimulator } from './color/ColorblindnessSimulator.js';
30
30
  import { ColorAccessibility } from './color/ColorAccessibility.js';
31
31
  import { ColorManipulator } from './color/ColorManipulator.js';
32
32
  import { RybColorMixer } from './color/RybColorMixer.js';
33
+ import { SpectralMixer } from './color/SpectralMixer.js';
33
34
  /**
34
35
  * Color conversion and manipulation service (Facade)
35
36
  * Per R-4: Delegates to focused service classes for better separation of concerns
@@ -248,7 +249,134 @@ export class ColorService {
248
249
  return ColorConverter.labToHex(L, a, b);
249
250
  }
250
251
  // ============================================================================
251
- // Color Mixing (RGB, LAB, RYB)
252
+ // OKLAB/OKLCH Color Space (Modern Perceptual)
253
+ // ============================================================================
254
+ /**
255
+ * Convert RGB to OKLAB color space
256
+ *
257
+ * OKLAB is a modern perceptually uniform color space that fixes issues
258
+ * with CIELAB, particularly for blue colors. Blue + Yellow = Green in OKLAB.
259
+ *
260
+ * @example rgbToOklab(255, 0, 0) -> { L: 0.628, a: 0.225, b: 0.126 }
261
+ */
262
+ static rgbToOklab(r, g, b) {
263
+ return ColorConverter.rgbToOklab(r, g, b);
264
+ }
265
+ /**
266
+ * Convert hex color to OKLAB
267
+ */
268
+ static hexToOklab(hex) {
269
+ return ColorConverter.hexToOklab(hex);
270
+ }
271
+ /**
272
+ * Convert OKLAB to RGB
273
+ */
274
+ static oklabToRgb(L, a, b) {
275
+ return ColorConverter.oklabToRgb(L, a, b);
276
+ }
277
+ /**
278
+ * Convert OKLAB to hex color
279
+ */
280
+ static oklabToHex(L, a, b) {
281
+ return ColorConverter.oklabToHex(L, a, b);
282
+ }
283
+ /**
284
+ * Convert RGB to OKLCH (cylindrical OKLAB)
285
+ *
286
+ * OKLCH expresses OKLAB in cylindrical coordinates for intuitive
287
+ * hue manipulation. Ideal for gradient interpolation.
288
+ */
289
+ static rgbToOklch(r, g, b) {
290
+ return ColorConverter.rgbToOklch(r, g, b);
291
+ }
292
+ /**
293
+ * Convert hex color to OKLCH
294
+ */
295
+ static hexToOklch(hex) {
296
+ return ColorConverter.hexToOklch(hex);
297
+ }
298
+ /**
299
+ * Convert OKLCH to RGB
300
+ */
301
+ static oklchToRgb(L, C, h) {
302
+ return ColorConverter.oklchToRgb(L, C, h);
303
+ }
304
+ /**
305
+ * Convert OKLCH to hex color
306
+ */
307
+ static oklchToHex(L, C, h) {
308
+ return ColorConverter.oklchToHex(L, C, h);
309
+ }
310
+ // ============================================================================
311
+ // LCH Color Space (Cylindrical LAB)
312
+ // ============================================================================
313
+ /**
314
+ * Convert CIE LAB to LCH (cylindrical LAB)
315
+ */
316
+ static labToLch(L, a, b) {
317
+ return ColorConverter.labToLch(L, a, b);
318
+ }
319
+ /**
320
+ * Convert LCH to CIE LAB
321
+ */
322
+ static lchToLab(L, C, h) {
323
+ return ColorConverter.lchToLab(L, C, h);
324
+ }
325
+ /**
326
+ * Convert RGB to LCH
327
+ */
328
+ static rgbToLch(r, g, b) {
329
+ return ColorConverter.rgbToLch(r, g, b);
330
+ }
331
+ /**
332
+ * Convert hex color to LCH
333
+ */
334
+ static hexToLch(hex) {
335
+ return ColorConverter.hexToLch(hex);
336
+ }
337
+ /**
338
+ * Convert LCH to RGB
339
+ */
340
+ static lchToRgb(L, C, h) {
341
+ return ColorConverter.lchToRgb(L, C, h);
342
+ }
343
+ /**
344
+ * Convert LCH to hex color
345
+ */
346
+ static lchToHex(L, C, h) {
347
+ return ColorConverter.lchToHex(L, C, h);
348
+ }
349
+ // ============================================================================
350
+ // HSL Color Space
351
+ // ============================================================================
352
+ /**
353
+ * Convert RGB to HSL
354
+ * @example rgbToHsl(255, 0, 0) -> { h: 0, s: 100, l: 50 }
355
+ */
356
+ static rgbToHsl(r, g, b) {
357
+ return ColorConverter.rgbToHsl(r, g, b);
358
+ }
359
+ /**
360
+ * Convert hex color to HSL
361
+ */
362
+ static hexToHsl(hex) {
363
+ return ColorConverter.hexToHsl(hex);
364
+ }
365
+ /**
366
+ * Convert HSL to RGB
367
+ * @example hslToRgb(0, 100, 50) -> { r: 255, g: 0, b: 0 }
368
+ */
369
+ static hslToRgb(h, s, l) {
370
+ return ColorConverter.hslToRgb(h, s, l);
371
+ }
372
+ /**
373
+ * Convert HSL to hex color
374
+ */
375
+ static hslToHex(h, s, l) {
376
+ return ColorConverter.hslToHex(h, s, l);
377
+ }
378
+ // ============================================================================
379
+ // Color Mixing (RGB, LAB, RYB, OKLAB, HSL)
252
380
  // ============================================================================
253
381
  /**
254
382
  * Mix two colors using RGB additive mixing (averaging)
@@ -341,5 +469,206 @@ export class ColorService {
341
469
  static rybToHex(r, y, b) {
342
470
  return RybColorMixer.rybToHex(r, y, b);
343
471
  }
472
+ // ============================================================================
473
+ // Advanced Color Mixing (OKLAB, OKLCH, LCH, HSL)
474
+ // ============================================================================
475
+ /**
476
+ * Mix two colors using OKLAB perceptually uniform mixing
477
+ *
478
+ * OKLAB produces more intuitive results than LAB for complementary colors:
479
+ * - Blue + Yellow = Green (not pink like LAB)
480
+ * - Smooth, vibrant gradients without muddy midpoints
481
+ *
482
+ * @param hex1 First hex color
483
+ * @param hex2 Second hex color
484
+ * @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
485
+ * @returns Mixed color as hex
486
+ *
487
+ * @example
488
+ * // Mix blue and yellow to get green (not pink like LAB)
489
+ * ColorService.mixColorsOklab('#0000FF', '#FFFF00') // Returns green-ish color
490
+ */
491
+ static mixColorsOklab(hex1, hex2, ratio = 0.5) {
492
+ const oklab1 = ColorConverter.hexToOklab(hex1);
493
+ const oklab2 = ColorConverter.hexToOklab(hex2);
494
+ const L = oklab1.L + (oklab2.L - oklab1.L) * ratio;
495
+ const a = oklab1.a + (oklab2.a - oklab1.a) * ratio;
496
+ const b = oklab1.b + (oklab2.b - oklab1.b) * ratio;
497
+ return ColorConverter.oklabToHex(L, a, b);
498
+ }
499
+ /**
500
+ * Hue interpolation method for cylindrical color spaces
501
+ * - 'shorter': Take the shorter arc around the hue wheel (default)
502
+ * - 'longer': Take the longer arc around the hue wheel
503
+ * - 'increasing': Always go clockwise (increasing hue values)
504
+ * - 'decreasing': Always go counter-clockwise (decreasing hue values)
505
+ */
506
+ static interpolateHue(h1, h2, ratio, method = 'shorter') {
507
+ let diff = h2 - h1;
508
+ switch (method) {
509
+ case 'shorter':
510
+ if (diff > 180)
511
+ diff -= 360;
512
+ if (diff < -180)
513
+ diff += 360;
514
+ break;
515
+ case 'longer':
516
+ if (diff > 0 && diff < 180)
517
+ diff -= 360;
518
+ if (diff < 0 && diff > -180)
519
+ diff += 360;
520
+ break;
521
+ case 'increasing':
522
+ if (diff < 0)
523
+ diff += 360;
524
+ break;
525
+ case 'decreasing':
526
+ if (diff > 0)
527
+ diff -= 360;
528
+ break;
529
+ }
530
+ return (((h1 + diff * ratio) % 360) + 360) % 360;
531
+ }
532
+ /**
533
+ * Mix two colors using OKLCH cylindrical mixing
534
+ *
535
+ * OKLCH provides control over hue interpolation direction,
536
+ * useful for creating gradients that go "through" specific colors.
537
+ *
538
+ * @param hex1 First hex color
539
+ * @param hex2 Second hex color
540
+ * @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
541
+ * @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
542
+ * @returns Mixed color as hex
543
+ */
544
+ static mixColorsOklch(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
545
+ const oklch1 = ColorConverter.hexToOklch(hex1);
546
+ const oklch2 = ColorConverter.hexToOklch(hex2);
547
+ const L = oklch1.L + (oklch2.L - oklch1.L) * ratio;
548
+ const C = oklch1.C + (oklch2.C - oklch1.C) * ratio;
549
+ const h = this.interpolateHue(oklch1.h, oklch2.h, ratio, hueMethod);
550
+ return ColorConverter.oklchToHex(L, C, h);
551
+ }
552
+ /**
553
+ * Mix two colors using LCH cylindrical mixing
554
+ *
555
+ * LCH is the cylindrical form of CIE LAB, providing hue control
556
+ * for perceptual mixing. Note: May produce unexpected hues for
557
+ * blue+yellow due to LAB's red bias (use OKLCH for better results).
558
+ *
559
+ * @param hex1 First hex color
560
+ * @param hex2 Second hex color
561
+ * @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
562
+ * @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
563
+ * @returns Mixed color as hex
564
+ */
565
+ static mixColorsLch(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
566
+ const lch1 = ColorConverter.hexToLch(hex1);
567
+ const lch2 = ColorConverter.hexToLch(hex2);
568
+ const L = lch1.L + (lch2.L - lch1.L) * ratio;
569
+ const C = lch1.C + (lch2.C - lch1.C) * ratio;
570
+ const h = this.interpolateHue(lch1.h, lch2.h, ratio, hueMethod);
571
+ return ColorConverter.lchToHex(L, C, h);
572
+ }
573
+ /**
574
+ * Mix two colors using HSL hue averaging
575
+ *
576
+ * Simple and intuitive mixing based on hue wheel position.
577
+ * Blue + Yellow = Spring Green (hue ~150°).
578
+ * Results may be over-saturated compared to perceptual methods.
579
+ *
580
+ * @param hex1 First hex color
581
+ * @param hex2 Second hex color
582
+ * @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
583
+ * @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
584
+ * @returns Mixed color as hex
585
+ */
586
+ static mixColorsHsl(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
587
+ const hsl1 = ColorConverter.hexToHsl(hex1);
588
+ const hsl2 = ColorConverter.hexToHsl(hex2);
589
+ const h = this.interpolateHue(hsl1.h, hsl2.h, ratio, hueMethod);
590
+ const s = hsl1.s + (hsl2.s - hsl1.s) * ratio;
591
+ const l = hsl1.l + (hsl2.l - hsl1.l) * ratio;
592
+ return ColorConverter.hslToHex(h, s, l);
593
+ }
594
+ /**
595
+ * Mix two colors using HSV hue averaging
596
+ *
597
+ * Similar to HSL but uses Value instead of Lightness.
598
+ * Useful when working with existing HSV-based workflows.
599
+ *
600
+ * @param hex1 First hex color
601
+ * @param hex2 Second hex color
602
+ * @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
603
+ * @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
604
+ * @returns Mixed color as hex
605
+ */
606
+ static mixColorsHsv(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
607
+ const hsv1 = ColorConverter.hexToHsv(hex1);
608
+ const hsv2 = ColorConverter.hexToHsv(hex2);
609
+ const h = this.interpolateHue(hsv1.h, hsv2.h, ratio, hueMethod);
610
+ const s = hsv1.s + (hsv2.s - hsv1.s) * ratio;
611
+ const v = hsv1.v + (hsv2.v - hsv1.v) * ratio;
612
+ return ColorConverter.hsvToHex(h, s, v);
613
+ }
614
+ // ============================================================================
615
+ // Spectral Mixing (Kubelka-Munk Theory - Realistic Paint Mixing)
616
+ // ============================================================================
617
+ /**
618
+ * Mix two colors using Kubelka-Munk spectral mixing
619
+ *
620
+ * This is the most physically accurate color mixing method available,
621
+ * simulating how real pigments and paints interact with light.
622
+ *
623
+ * Key characteristics:
624
+ * - Based on light absorption and scattering theory
625
+ * - Blue + Yellow = Green (like real paint!)
626
+ * - More realistic tinting and shading
627
+ * - Uses spectral reflectance curves (380-750nm)
628
+ *
629
+ * @param hex1 First hex color
630
+ * @param hex2 Second hex color
631
+ * @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
632
+ * @returns Mixed color as hex
633
+ *
634
+ * @example
635
+ * // Mix blue and yellow to get green (like real paint)
636
+ * ColorService.mixColorsSpectral('#0000FF', '#FFFF00')
637
+ */
638
+ static mixColorsSpectral(hex1, hex2, ratio = 0.5) {
639
+ return SpectralMixer.mixColors(hex1, hex2, ratio);
640
+ }
641
+ /**
642
+ * Mix multiple colors using Kubelka-Munk spectral mixing
643
+ *
644
+ * @param colors Array of hex colors to mix
645
+ * @param weights Optional array of weights (defaults to equal weights)
646
+ * @returns Mixed color as hex
647
+ */
648
+ static mixMultipleSpectral(colors, weights) {
649
+ return SpectralMixer.mixMultiple(colors, weights);
650
+ }
651
+ /**
652
+ * Generate a gradient using spectral mixing
653
+ *
654
+ * Creates a series of colors that transition smoothly using
655
+ * Kubelka-Munk theory for realistic blending.
656
+ *
657
+ * @param hex1 Starting color
658
+ * @param hex2 Ending color
659
+ * @param steps Number of colors in the gradient
660
+ * @returns Array of hex colors
661
+ */
662
+ static gradientSpectral(hex1, hex2, steps) {
663
+ return SpectralMixer.gradient(hex1, hex2, steps);
664
+ }
665
+ /**
666
+ * Check if spectral mixing is available
667
+ *
668
+ * @returns true if spectral.js is loaded and functional
669
+ */
670
+ static isSpectralAvailable() {
671
+ return SpectralMixer.isAvailable();
672
+ }
344
673
  }
345
674
  //# sourceMappingURL=ColorService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColorService.js","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColorService.js","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"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"}