+<:
+my @sample = split /(?<!\+)/, $get{sample} // 'asSci1!+1';
+require Shiar_Sheet::Keyboard;
+use List::Util qw( uniq max );
+
+my %caticon = (
+ legacy => qq{<span class=icon title="deprecated">\N{TOP HAT}</span>},
+ windows => qq{<span class=icon title="Windows">\x{1FA9F}</span>}, # \N{WINDOW}
+ macos => qq{<span class=icon title="MacOS">\N{RED APPLE}</span>},
+ xorg => qq{<span class=icon title="Xorg">\N{PENGUIN}</span>},
+);
+
+printf '<section class="%s">', @sample ? 'section' : 'gallery';
+if (@sample) {
+ print '<table class="big keys cmp">';
+ print '<thead><tr><th colspan=2>';
+ print "<th>$_" for @sample;
+ say '</tr></thead>';
+}
+my %idx = map {s/\Q.inc.pl\E$//; ($_ => eval{ Data($_) })} @incs;
+my $most = max(map { scalar keys %{$_->{def}{''}} } values %idx);
+for my $inc (sort {
+ $idx{$a}{category} cmp $idx{$b}{category} || $a cmp $b
+} keys %idx) {
+ print @sample ? '<tr><th>' : '<figure>';