From e428e6a5dee93205f841cde76d7df674f780ee11 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Wed, 12 Apr 2017 22:41:00 +0200 Subject: [PATCH] latin: extend colour svg to mix specified hues Replace hardcoded #rgb by generic hsl() values. --- writing-latn.inc.pl | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl index 0d6ecb4..fd9faa2 100644 --- a/writing-latn.inc.pl +++ b/writing-latn.inc.pl @@ -49,15 +49,18 @@ sub dispbar { ); } -sub disprgb { - my ($index) = @_; - my $circle = ''; +sub disphues { + my ($index, $hues) = @_; + my @lum = ($index % 3, $index / 3 % 3, $index / 9); # hue opacities (0..2)x3 + my @lumf = ('hsl(%s,100%%,50%%)', 'hsl(%s,100%%,25%%)'); return sprintf( '%s', - 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]), + join '', map { + my $colf = $lumf[ $lum[$_] ]; + !$colf ? () : sprintf('', + 10 + $_, $_ == 1 ? 12 : 10, 10, sprintf($colf, $hues->[$_]) + ); + } 0 .. 2 ); } @@ -466,7 +469,7 @@ rgbmap => { 'svg { isolation: isolate }', 'svg circle { mix-blend-mode: screen }', ], - list => [ map { disprgb($_) } 0 .. 3*3*3 ], + list => [ map { disphues($_, [0, 240, 120]) } 0 .. 3*3*3 ], # Red, Blue, Green }, dni => { title => "D'ni", -- 2.30.0