return $prefix . chr(0x1F031 + ($dots[0] * 7) + $dots[1]);
}
+sub dispdash {
+ my $code = shift;
+ my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code;
+ my ($w, $h) = (12, 9);
+ my @w = map { $w / ($_ || 1) } @dots;
+ return sprintf(
+ '<svg height="20" viewBox="-.5 -.5 %s %s">'
+ . '<path d="%s" /></svg>',
+ $w + 1, $h + 1, join(' ',
+ "m0,$h l+$w[0],-$h" x $dots[0], # slashes
+ "m0,$h l-$w[1],-$h" x $dots[1], # backslashes
+ )
+ );
+}
+
sub dispblock {
my $code = shift;
my ($prefix, $shape, $rotate) = $code =~ m/\A(-?)(\w)(\d?)/
src: url("/suetterlin.ttf");
}',
'td { font-family: Suetterlin }',
+ 'td:hover::first-letter { text-transform: 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 }],
},
11 12 13 14 21 22 23 20 > 31 -13 32 33
30 41 42 -13 43 40 10 51 52 53 50 -31 -40
}],
- altlist => [map { disptap($_) } qw{
+ altlist => [map { dispdash($_) } qw{
10 14 -13 12 20 23 22 21 30 -34 13 33 32
31 40 43 -13 42 41 11 50 -23 -50 -1341 -31 -41
}],
},
domino => {
name => 'Domino tiles',
+ style => [
+ # enlarge single tile height to span full vertical combinations
+ 'td { font-size: 200%; line-height: .6; padding: 0 0 .3ex }',
+ ],
list => [map { dispdomino($_) } qw{
10 11 20 21 22 30 31 32 33 40 41 42 43
44 50 51 52 53 54 55 60 61 62 63 64 65