word: sitewide styling of images gallery
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 14 Jun 2020 12:05:25 +0000 (14:05 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 20 Oct 2020 20:49:11 +0000 (22:49 +0200)
Move page styling to base stylesheet with gallery class.

base.css
common.inc.plp
dark.css
word.plp

index 3c00aa43f290c3f9f83e59f00ea0d716ee609cd2..30d8bc4b0e1d6c2f8cdaae46b916606326f4edd0 100644 (file)
--- a/base.css
+++ b/base.css
@@ -671,7 +671,8 @@ figure {
 figcaption {
        position: absolute;
        padding: 0 1em;
-       background: rgba(0, 0, 0, .5);
+       color: #000;
+       background: rgba(255, 255, 255, .66);
        right: 0;
        bottom: 0;
 }
@@ -680,6 +681,59 @@ img {
        width: 100%;
 }
 
+/* image gallery */
+
+.gallery {
+       display: grid;
+       grid: auto-flow dense / repeat(auto-fit, minmax(200px, 1fr));
+       grid-gap: 1px;
+}
+.gallery li, .gallery ul {
+       display: contents;
+}
+.gallery figure {
+       overflow: hidden;
+       box-sizing: border-box;
+}
+.gallery figcaption > small {
+       display: inline-block;
+}
+
+@media (min-width: 403px) and (min-height: 266px) {
+       /* able to fit 2 cells of 200x133 */
+       .gallery li.large > figure {
+               grid-row: span 2;
+               grid-column: span 2;
+       }
+}
+@media (min-width: 603px) and (min-height: 400px) {
+       /* fit 3 cells of 200x133 */
+       .gallery > ul > li:first-child > figure,
+       .gallery li.huge > figure {
+               grid-row: span 3;
+               grid-column: span 3;
+       }
+}
+
+.gallery figure, .gallery figcaption {
+       transition: all .5s ease-in;
+}
+.gallery figure:hover ~ ul figcaption {
+       /* mark all children */
+       color: #FFF;
+       background: rgba(0, 0, 0, .5);
+}
+
+.gallery li.parent:hover > figure > figcaption,
+.gallery figure:hover > figcaption {
+       /* highlight title of current and parents */
+       font-size: 175%;
+       right: 50%;
+       bottom: 50%;
+       transform: translate(50%, 50%);
+       margin-left: -60%; /* keep width */
+}
+
 /* page-specific */
 
 #browser td > a {
index b8dac37ed30c9f043b50b9c6e5fa6fabaed83d82..dd41751a5789d861a4559312e98d745a78878c36 100644 (file)
@@ -78,7 +78,7 @@ sub stylesheet {
 
        return map { sprintf(
                '<link rel="%s" type="text/css" media="all" href="%s" title="%s">',
-               $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css?1.11", $_
+               $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css?1.12", $_
        ) } @avail;
 }
 
index 243960c3fb248497ef9ad551fed8324f35e6f982..e7df58b5fc8214c93852f3638f6626e06ec0f6f5 100644 (file)
--- a/dark.css
+++ b/dark.css
@@ -108,6 +108,18 @@ th, td {
 .legend .ex:hover {background: #666}
 .X:hover small {color: #FFF}
 
+/* images */
+
+figcaption {
+       color: #FFF;
+       background: rgba(0, 0, 0, .5);
+}
+.gallery figure:hover ~ ul figcaption {
+       /* mark all children */
+       color: #000;
+       background: rgba(255, 255, 255, .5);
+}
+
 /* starcraft */
 
 .units tbody tr:hover:not(.race) {
index 59bf8ca12beca9570f6e093c51948cf4e3d8441c..1af9c75cc9075bc496d739b688f57a444552c270 100644 (file)
--- a/word.plp
+++ b/word.plp
@@ -13,58 +13,9 @@ Html({
        data => [$wordlist],
        raw => <<'EOT',
 <style>
-ul {
-       display: grid;
-       grid: auto-flow dense / repeat(auto-fit, minmax(200px, 1fr));
-       grid-gap: 1px;
-}
-li, ul ul {
-       display: contents;
-}
-figure {
-       overflow: hidden;
-       box-sizing: border-box;
-}
-figcaption > small {
-       display: inline-block;
-}
-
 body {
        margin: 8px 1px;
 }
-@media (min-width: 403px) and (min-height: 266px) {
-       li.large > figure {
-               grid-row: span 2;
-               grid-column: span 2;
-       }
-}
-@media (min-width: 603px) and (min-height: 400px) {
-       p + ul > li:first-child > figure {
-               grid-row: span 3;
-               grid-column: span 3;
-       }
-}
-
-figure:hover ~ ul figure,
-figure:hover ~ ul figcaption {
-       background: #CCC;
-       color: #000;
-}
-figure:hover ~ ul figcaption {
-       background: rgba(255, 255, 255, .5);
-}
-
-figure, figcaption {
-       transition: all .5s ease-in;
-}
-li.parent:hover > figure > figcaption,
-figure:hover > figcaption {
-       font-size: 175%;
-       right: 50%;
-       bottom: 50%;
-       transform: translate(50%, 50%);
-       margin-left: -60%; /* keep width */
-}
 </style>
 EOT
 });
@@ -117,4 +68,6 @@ sub printimgs {
        say '</ul>';
 }
 
+say '<section class="gallery">';
 printimgs(@{$table->{''}});
+say '</section>';