latin: generic function to display rgb colour svg
[sheet.git] / writing-latn.inc.pl
index d8d0d53f27af92d45cf6aa4821b8156ed2e8e036..0d6ecb4d6305a0777b138481c7111ae7a25102c0 100644 (file)
@@ -49,6 +49,18 @@ sub dispbar {
        );
 }
 
+sub disprgb {
+       my ($index) = @_;
+       my $circle = '<circle cx="%s" cy="%s" r="8" fill="#%X%X%X"/>';
+       return sprintf(
+               '<svg width="16" height="16" viewBox="0 0 22 22">%s</svg>',
+               join '',
+                       sprintf($circle, 10, 10, [0, 8, 15]->[$index % 3], 0, 0),
+                       sprintf($circle, 11, 12, 0, [0, 8, 15]->[$index / 3 % 3], 0),
+                       sprintf($circle, 12, 10, 0, 0, [0, 8, 15]->[$index / 9]),
+       );
+}
+
 (
 uppercase => {
        list => [qw{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }],
@@ -448,6 +460,14 @@ rm4scc => {
                '', 1, 3  # start/end
        ],
 },
+rgbmap => {
+       title => 'RGBmap',
+       style => [
+               'svg { isolation: isolate }',
+               'svg circle { mix-blend-mode: screen }',
+       ],
+       list => [ map { disprgb($_) } 0 .. 3*3*3 ],
+},
 dni => {
        title => "D'ni",
        list => [