696
return new Color(new RGBA(r, g, b));
697
}
698
>
// TODO: Support more formats as needed
color.ts
699
>
return parseNamedKeyword(css);
700
}
701
702
function parseNamedKeyword(css: string): Color | null {
703
>
// https://drafts.csswg.org/css-color/#named-colors
color.ts
704
>
switch (css) {
705
>
case 'aliceblue': return new Color(new RGBA(240, 248, 255, 1));
706
>
case 'antiquewhite': return new Color(new RGBA(250, 235, 215, 1));
707
>
case 'aqua': return new Color(new RGBA(0, 255, 255, 1));
708
>
case 'aquamarine': return new Color(new RGBA(127, 255, 212, 1));
709
>
case 'azure': return new Color(new RGBA(240, 255, 255, 1));
710
>
case 'beige': return new Color(new RGBA(245, 245, 220, 1));
711
>
case 'bisque': return new Color(new RGBA(255, 228, 196, 1));
712
>
case 'black': return new Color(new RGBA(0, 0, 0, 1));
713
>
case 'blanchedalmond': return new Color(new RGBA(255, 235, 205, 1));
714
>
case 'blue': return new Color(new RGBA(0, 0, 255, 1));
715
>
case 'blueviolet': return new Color(new RGBA(138, 43, 226, 1));
716
>
case 'brown': return new Color(new RGBA(165, 42, 42, 1));
717
>
case 'burlywood': return new Color(new RGBA(222, 184, 135, 1));
718
>
case 'cadetblue': return new Color(new RGBA(95, 158, 160, 1));
719
>
case 'chartreuse': return new Color(new RGBA(127, 255, 0, 1));
720
>
case 'chocolate': return new Color(new RGBA(210, 105, 30, 1));
721
>
case 'coral': return new Color(new RGBA(255, 127, 80, 1));
722
>
case 'cornflowerblue': return new Color(new RGBA(100, 149, 237, 1));
723
>
case 'cornsilk': return new Color(new RGBA(255, 248, 220, 1));
724
>
case 'crimson': return new Color(new RGBA(220, 20, 60, 1));
725
>
case 'cyan': return new Color(new RGBA(0, 255, 255, 1));
726
>
case 'darkblue': return new Color(new RGBA(0, 0, 139, 1));
727
>
case 'darkcyan': return new Color(new RGBA(0, 139, 139, 1));
728
>
case 'darkgoldenrod': return new Color(new RGBA(184, 134, 11, 1));
729
>
case 'darkgray': return new Color(new RGBA(169, 169, 169, 1));
730
>
case 'darkgreen': return new Color(new RGBA(0, 100, 0, 1));
731
>
case 'darkgrey': return new Color(new RGBA(169, 169, 169, 1));
732
>
case 'darkkhaki': return new Color(new RGBA(189, 183, 107, 1));
733
>
case 'darkmagenta': return new Color(new RGBA(139, 0, 139, 1));
734
>
case 'darkolivegreen': return new Color(new RGBA(85, 107, 47, 1));
735
>
case 'darkorange': return new Color(new RGBA(255, 140, 0, 1));
736
>
case 'darkorchid': return new Color(new RGBA(153, 50, 204, 1));
737
>
case 'darkred': return new Color(new RGBA(139, 0, 0, 1));
738
>
case 'darksalmon': return new Color(new RGBA(233, 150, 122, 1));
739
>
case 'darkseagreen': return new Color(new RGBA(143, 188, 143, 1));
740
>
case 'darkslateblue': return new Color(new RGBA(72, 61, 139, 1));
741
>
case 'darkslategray': return new Color(new RGBA(47, 79, 79, 1));
742
>
case 'darkslategrey': return new Color(new RGBA(47, 79, 79, 1));
743
>
case 'darkturquoise': return new Color(new RGBA(0, 206, 209, 1));
744
>
case 'darkviolet': return new Color(new RGBA(148, 0, 211, 1));
745
>
case 'deeppink': return new Color(new RGBA(255, 20, 147, 1));
746
>
case 'deepskyblue': return new Color(new RGBA(0, 191, 255, 1));
747
>
case 'dimgray': return new Color(new RGBA(105, 105, 105, 1));
748
>
case 'dimgrey': return new Color(new RGBA(105, 105, 105, 1));
749
>
case 'dodgerblue': return new Color(new RGBA(30, 144, 255, 1));
750
>
case 'firebrick': return new Color(new RGBA(178, 34, 34, 1));
751
>
case 'floralwhite': return new Color(new RGBA(255, 250, 240, 1));
752
>
case 'forestgreen': return new Color(new RGBA(34, 139, 34, 1));
753
>
case 'fuchsia': return new Color(new RGBA(255, 0, 255, 1));
754
>
case 'gainsboro': return new Color(new RGBA(220, 220, 220, 1));
755
>
case 'ghostwhite': return new Color(new RGBA(248, 248, 255, 1));
756
>
case 'gold': return new Color(new RGBA(255, 215, 0, 1));
757
>
case 'goldenrod': return new Color(new RGBA(218, 165, 32, 1));
758
>
case 'gray': return new Color(new RGBA(128, 128, 128, 1));
759
>
case 'green': return new Color(new RGBA(0, 128, 0, 1));
760
>
case 'greenyellow': return new Color(new RGBA(173, 255, 47, 1));
761
>
case 'grey': return new Color(new RGBA(128, 128, 128, 1));
762
>
case 'honeydew': return new Color(new RGBA(240, 255, 240, 1));
763
>
case 'hotpink': return new Color(new RGBA(255, 105, 180, 1));
764
>
case 'indianred': return new Color(new RGBA(205, 92, 92, 1));
765
>
case 'indigo': return new Color(new RGBA(75, 0, 130, 1));
766
>
case 'ivory': return new Color(new RGBA(255, 255, 240, 1));
767
>
case 'khaki': return new Color(new RGBA(240, 230, 140, 1));
768
>
case 'lavender': return new Color(new RGBA(230, 230, 250, 1));
769
>
case 'lavenderblush': return new Color(new RGBA(255, 240, 245, 1));
770
>
case 'lawngreen': return new Color(new RGBA(124, 252, 0, 1));
771
>
case 'lemonchiffon': return new Color(new RGBA(255, 250, 205, 1));
772
>
case 'lightblue': return new Color(new RGBA(173, 216, 230, 1));
773
>
case 'lightcoral': return new Color(new RGBA(240, 128, 128, 1));
774
>
case 'lightcyan': return new Color(new RGBA(224, 255, 255, 1));
775
>
case 'lightgoldenrodyellow': return new Color(new RGBA(250, 250, 210, 1));
776
>
case 'lightgray': return new Color(new RGBA(211, 211, 211, 1));
777
>
case 'lightgreen': return new Color(new RGBA(144, 238, 144, 1));
778
>
case 'lightgrey': return new Color(new RGBA(211, 211, 211, 1));
779
>
case 'lightpink': return new Color(new RGBA(255, 182, 193, 1));
780
>
case 'lightsalmon': return new Color(new RGBA(255, 160, 122, 1));
781
>
case 'lightseagreen': return new Color(new RGBA(32, 178, 170, 1));
782
>
case 'lightskyblue': return new Color(new RGBA(135, 206, 250, 1));
783
>
case 'lightslategray': return new Color(new RGBA(119, 136, 153, 1));
784
>
case 'lightslategrey': return new Color(new RGBA(119, 136, 153, 1));
785
>
case 'lightsteelblue': return new Color(new RGBA(176, 196, 222, 1));
786
>
case 'lightyellow': return new Color(new RGBA(255, 255, 224, 1));
787
>
case 'lime': return new Color(new RGBA(0, 255, 0, 1));
788
>
case 'limegreen': return new Color(new RGBA(50, 205, 50, 1));
789
>
case 'linen': return new Color(new RGBA(250, 240, 230, 1));
790
>
case 'magenta': return new Color(new RGBA(255, 0, 255, 1));
791
>
case 'maroon': return new Color(new RGBA(128, 0, 0, 1));
792
>
case 'mediumaquamarine': return new Color(new RGBA(102, 205, 170, 1));
793
>
case 'mediumblue': return new Color(new RGBA(0, 0, 205, 1));
794
>
case 'mediumorchid': return new Color(new RGBA(186, 85, 211, 1));
795
>
case 'mediumpurple': return new Color(new RGBA(147, 112, 219, 1));
796
>
case 'mediumseagreen': return new Color(new RGBA(60, 179, 113, 1));
797
>
case 'mediumslateblue': return new Color(new RGBA(123, 104, 238, 1));
798
>
case 'mediumspringgreen': return new Color(new RGBA(0, 250, 154, 1));
799
>
case 'mediumturquoise': return new Color(new RGBA(72, 209, 204, 1));
800
>
case 'mediumvioletred': return new Color(new RGBA(199, 21, 133, 1));
801
>
case 'midnightblue': return new Color(new RGBA(25, 25, 112, 1));
802
>
case 'mintcream': return new Color(new RGBA(245, 255, 250, 1));
803
>
case 'mistyrose': return new Color(new RGBA(255, 228, 225, 1));
804
>
case 'moccasin': return new Color(new RGBA(255, 228, 181, 1));
805
>
case 'navajowhite': return new Color(new RGBA(255, 222, 173, 1));
806
>
case 'navy': return new Color(new RGBA(0, 0, 128, 1));
807
>
case 'oldlace': return new Color(new RGBA(253, 245, 230, 1));
808
>
case 'olive': return new Color(new RGBA(128, 128, 0, 1));
809
>
case 'olivedrab': return new Color(new RGBA(107, 142, 35, 1));
810
>
case 'orange': return new Color(new RGBA(255, 165, 0, 1));
811
>
case 'orangered': return new Color(new RGBA(255, 69, 0, 1));
812
>
case 'orchid': return new Color(new RGBA(218, 112, 214, 1));
813
>
case 'palegoldenrod': return new Color(new RGBA(238, 232, 170, 1));
814
>
case 'palegreen': return new Color(new RGBA(152, 251, 152, 1));
815
>
case 'paleturquoise': return new Color(new RGBA(175, 238, 238, 1));
816
>
case 'palevioletred': return new Color(new RGBA(219, 112, 147, 1));
817
>
case 'papayawhip': return new Color(new RGBA(255, 239, 213, 1));
818
>
case 'peachpuff': return new Color(new RGBA(255, 218, 185, 1));
819
>
case 'peru': return new Color(new RGBA(205, 133, 63, 1));
820
>
case 'pink': return new Color(new RGBA(255, 192, 203, 1));
821
>
case 'plum': return new Color(new RGBA(221, 160, 221, 1));
822
>
case 'powderblue': return new Color(new RGBA(176, 224, 230, 1));
823
>
case 'purple': return new Color(new RGBA(128, 0, 128, 1));
824
>
case 'rebeccapurple': return new Color(new RGBA(102, 51, 153, 1));
825
>
case 'red': return new Color(new RGBA(255, 0, 0, 1));
826
>
case 'rosybrown': return new Color(new RGBA(188, 143, 143, 1));
827
>
case 'royalblue': return new Color(new RGBA(65, 105, 225, 1));
828
>
case 'saddlebrown': return new Color(new RGBA(139, 69, 19, 1));
829
>
case 'salmon': return new Color(new RGBA(250, 128, 114, 1));
830
>
case 'sandybrown': return new Color(new RGBA(244, 164, 96, 1));
831
>
case 'seagreen': return new Color(new RGBA(46, 139, 87, 1));
832
>
case 'seashell': return new Color(new RGBA(255, 245, 238, 1));
833
>
case 'sienna': return new Color(new RGBA(160, 82, 45, 1));
834
>
case 'silver': return new Color(new RGBA(192, 192, 192, 1));
835
>
case 'skyblue': return new Color(new RGBA(135, 206, 235, 1));
836
>
case 'slateblue': return new Color(new RGBA(106, 90, 205, 1));
837
>
case 'slategray': return new Color(new RGBA(112, 128, 144, 1));
838
>
case 'slategrey': return new Color(new RGBA(112, 128, 144, 1));
839
>
case 'snow': return new Color(new RGBA(255, 250, 250, 1));
840
>
case 'springgreen': return new Color(new RGBA(0, 255, 127, 1));
841
>
case 'steelblue': return new Color(new RGBA(70, 130, 180, 1));
842
>
case 'tan': return new Color(new RGBA(210, 180, 140, 1));
843
>
case 'teal': return new Color(new RGBA(0, 128, 128, 1));
844
>
case 'thistle': return new Color(new RGBA(216, 191, 216, 1));
845
>
case 'tomato': return new Color(new RGBA(255, 99, 71, 1));
846
>
case 'turquoise': return new Color(new RGBA(64, 224, 208, 1));
847
>
case 'violet': return new Color(new RGBA(238, 130, 238, 1));
848
>
case 'wheat': return new Color(new RGBA(245, 222, 179, 1));
849
>
case 'white': return new Color(new RGBA(255, 255, 255, 1));
850
>
case 'whitesmoke': return new Color(new RGBA(245, 245, 245, 1));
851
>
case 'yellow': return new Color(new RGBA(255, 255, 0, 1));
852
>
case 'yellowgreen': return new Color(new RGBA(154, 205, 50, 1));
853
>
default: return null;
854
>
}
855
>
}
856
857
/**