diff options
29 files changed, 397 insertions, 254 deletions
diff --git a/assets/css/_declare-vars.scss b/assets/css/_declare-vars.scss index 3422588..38aaa21 100644 --- a/assets/css/_declare-vars.scss +++ b/assets/css/_declare-vars.scss | |||
| @@ -19,6 +19,10 @@ | |||
| 19 | --1000: iro.fn-px-to-rem(60px), | 19 | --1000: iro.fn-px-to-rem(60px), |
| 20 | --1100: iro.fn-px-to-rem(70px), | 20 | --1100: iro.fn-px-to-rem(70px), |
| 21 | ), | 21 | ), |
| 22 | |||
| 23 | --header: ( | ||
| 24 | --height: fn.dim(--size --800), | ||
| 25 | ), | ||
| 22 | ) | 26 | ) |
| 23 | ), 'dims'); | 27 | ), 'dims'); |
| 24 | 28 | ||
| @@ -40,6 +44,10 @@ | |||
| 40 | --1000: iro.fn-px-to-rem(45px), | 44 | --1000: iro.fn-px-to-rem(45px), |
| 41 | --1100: iro.fn-px-to-rem(50px), | 45 | --1100: iro.fn-px-to-rem(50px), |
| 42 | ), | 46 | ), |
| 47 | |||
| 48 | --header: ( | ||
| 49 | --height: fn.dim(--size --700), | ||
| 50 | ), | ||
| 43 | ) | 51 | ) |
| 44 | ), 'sm'); | 52 | ), 'sm'); |
| 45 | 53 | ||
diff --git a/assets/css/components/_exhibit.scss b/assets/css/components/_exhibit.scss new file mode 100644 index 0000000..96ed1ae --- /dev/null +++ b/assets/css/components/_exhibit.scss | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | @use 'iro-sass/src/index' as iro; | ||
| 2 | @use 'iro-design/src/functions' as fn; | ||
| 3 | @use 'include-media/dist/include-media' as media; | ||
| 4 | |||
| 5 | @include iro.props-namespace('exhibit') { | ||
| 6 | @include iro.props-store(( | ||
| 7 | --dims: ( | ||
| 8 | --height: 100vh, | ||
| 9 | ) | ||
| 10 | ), 'dims'); | ||
| 11 | |||
| 12 | @include iro.props-store(( | ||
| 13 | --colors: ( | ||
| 14 | --footer: ( | ||
| 15 | --bg: fn.global-color(--bg-hi), | ||
| 16 | ), | ||
| 17 | ) | ||
| 18 | ), 'colors'); | ||
| 19 | |||
| 20 | @include iro.bem-component(iro.props-namespace()) { | ||
| 21 | display: grid; | ||
| 22 | grid-template-rows: 1fr auto; | ||
| 23 | grid-template-areas: 'content' 'footer'; | ||
| 24 | box-sizing: border-box; | ||
| 25 | height: fn.dim(--height); | ||
| 26 | |||
| 27 | @include iro.bem-elem('content') { | ||
| 28 | grid-area: content; | ||
| 29 | height: auto; | ||
| 30 | overflow: hidden; | ||
| 31 | } | ||
| 32 | |||
| 33 | @include iro.bem-elem('footer') { | ||
| 34 | grid-area: footer; | ||
| 35 | background-color: fn.color(--footer --bg); | ||
| 36 | } | ||
| 37 | } | ||
| 38 | } | ||
diff --git a/assets/css/components/_header.scss b/assets/css/components/_header.scss index ce216ee..c8b50f8 100644 --- a/assets/css/components/_header.scss +++ b/assets/css/components/_header.scss | |||
| @@ -19,10 +19,10 @@ | |||
| 19 | 19 | ||
| 20 | @include iro.props-store(( | 20 | @include iro.props-store(( |
| 21 | --dims: ( | 21 | --dims: ( |
| 22 | --height: 4rem, | 22 | --height: fn.global-dim(--header --height), |
| 23 | --icon: 1.5rem, | 23 | --icon: 1.5rem, |
| 24 | --pad-x: calc(.5 * (var(--header--dims--height) - var(--header--dims--icon))), | 24 | --pad-x: calc(.5 * (fn.dim(--height, null) - fn.dim(--icon, null))), |
| 25 | --gap: 2px, | 25 | --gap: fn.global-dim(--size --25), |
| 26 | ) | 26 | ) |
| 27 | ), 'dims'); | 27 | ), 'dims'); |
| 28 | 28 | ||
| @@ -32,18 +32,14 @@ | |||
| 32 | ) | 32 | ) |
| 33 | ), 'colors-dark'); | 33 | ), 'colors-dark'); |
| 34 | 34 | ||
| 35 | @include iro.props-store(( | ||
| 36 | --dims: ( | ||
| 37 | --height: 3.4rem, | ||
| 38 | ) | ||
| 39 | ), 'sm'); | ||
| 40 | |||
| 41 | @include iro.bem-component(iro.props-namespace()) { | 35 | @include iro.bem-component(iro.props-namespace()) { |
| 42 | display: flex; | 36 | display: flex; |
| 43 | width: 0; | 37 | position: absolute; |
| 44 | height: fn.dim(--height); | 38 | z-index: 100; |
| 45 | padding: fn.dim(--gap); | 39 | top: 0; |
| 46 | gap: fn.dim(--gap); | 40 | left: 0; |
| 41 | height: fn.dim(--height); | ||
| 42 | gap: fn.dim(--gap); | ||
| 47 | 43 | ||
| 48 | @include iro.bem-elem('item') { | 44 | @include iro.bem-elem('item') { |
| 49 | padding: 0 fn.dim(--pad-x); | 45 | padding: 0 fn.dim(--pad-x); |
| @@ -52,7 +48,6 @@ | |||
| 52 | color: fn.color(--fg); | 48 | color: fn.color(--fg); |
| 53 | line-height: fn.dim(--height); | 49 | line-height: fn.dim(--height); |
| 54 | text-decoration: none; | 50 | text-decoration: none; |
| 55 | white-space: nowrap; | ||
| 56 | 51 | ||
| 57 | &:hover, | 52 | &:hover, |
| 58 | &:focus { | 53 | &:focus { |
| @@ -78,19 +73,8 @@ | |||
| 78 | height: fn.dim(--icon); | 73 | height: fn.dim(--icon); |
| 79 | } | 74 | } |
| 80 | 75 | ||
| 81 | @include iro.bem-modifier('fixed') { | ||
| 82 | position: fixed; | ||
| 83 | } | ||
| 84 | |||
| 85 | @include media.media('>=lg') { | 76 | @include media.media('>=lg') { |
| 86 | position: sticky; | 77 | position: fixed; |
| 87 | z-index: 100; | ||
| 88 | top: 0; | ||
| 89 | margin-bottom: calc(-.75 * #{fn.dim(--height)}); | ||
| 90 | |||
| 91 | @include iro.bem-modifier('fixed') { | ||
| 92 | position: fixed; | ||
| 93 | } | ||
| 94 | } | 78 | } |
| 95 | 79 | ||
| 96 | @media print { | 80 | @media print { |
diff --git a/assets/css/components/_main.scss b/assets/css/components/_main.scss new file mode 100644 index 0000000..f0a839e --- /dev/null +++ b/assets/css/components/_main.scss | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | @use 'iro-sass/src/index' as iro; | ||
| 2 | @use 'iro-design/src/functions' as fn; | ||
| 3 | @use 'include-media/dist/include-media' as media; | ||
| 4 | |||
| 5 | @include iro.props-namespace('main') { | ||
| 6 | @include iro.props-store(( | ||
| 7 | --dims: ( | ||
| 8 | --pad-top: fn.global-dim(--header --height), | ||
| 9 | ) | ||
| 10 | ), 'dims'); | ||
| 11 | |||
| 12 | @include iro.bem-component(iro.props-namespace()) { | ||
| 13 | margin-top: fn.dim(--pad-top); | ||
| 14 | } | ||
| 15 | } | ||
diff --git a/assets/css/layouts/_card-list.scss b/assets/css/layouts/_card-list.scss index 2d9d58f..92c89b7 100644 --- a/assets/css/layouts/_card-list.scss +++ b/assets/css/layouts/_card-list.scss | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | --gap: fn.global-dim(--size --25), | 9 | --gap: fn.global-dim(--size --25), |
| 10 | --grid-2: ( | 10 | --grid-2: ( |
| 11 | --gap: fn.global-dim(--size --75), | 11 | --gap: fn.global-dim(--size --75), |
| 12 | --col-width: fn.global-dim(--size --3400), | 12 | --col-width: fn.global-dim(--size --3200), |
| 13 | ), | 13 | ), |
| 14 | --grid-3: ( | 14 | --grid-3: ( |
| 15 | --gap: fn.global-dim(--size --75), | 15 | --gap: fn.global-dim(--size --75), |
| @@ -17,7 +17,7 @@ | |||
| 17 | ), | 17 | ), |
| 18 | --gallery-2: ( | 18 | --gallery-2: ( |
| 19 | --gap: fn.global-dim(--size --200), | 19 | --gap: fn.global-dim(--size --200), |
| 20 | --col-width: fn.global-dim(--size --3400), | 20 | --col-width: fn.global-dim(--size --3200), |
| 21 | ), | 21 | ), |
| 22 | --gallery-3: ( | 22 | --gallery-3: ( |
| 23 | --gap: fn.global-dim(--size --200), | 23 | --gap: fn.global-dim(--size --200), |
diff --git a/assets/css/scopes/_body.scss b/assets/css/scopes/_body.scss new file mode 100644 index 0000000..1c76843 --- /dev/null +++ b/assets/css/scopes/_body.scss | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | @use 'iro-sass/src/index' as iro; | ||
| 2 | @use 'iro-design/src/functions' as fn; | ||
| 3 | |||
| 4 | @include iro.props-namespace('body') { | ||
| 5 | @include iro.bem-scope(iro.props-namespace()) { | ||
| 6 | > :first-child { | ||
| 7 | margin-top: 0; | ||
| 8 | } | ||
| 9 | } | ||
| 10 | } | ||
diff --git a/assets/css/style.scss b/assets/css/style.scss index 3fce2f4..046210f 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss | |||
| @@ -18,11 +18,13 @@ | |||
| 18 | @use 'iro-design/src/objects/alert' as iro-alert; | 18 | @use 'iro-design/src/objects/alert' as iro-alert; |
| 19 | @use 'iro-design/src/objects/lightbox' as iro-lightbox; | 19 | @use 'iro-design/src/objects/lightbox' as iro-lightbox; |
| 20 | 20 | ||
| 21 | @use 'components/main'; | ||
| 21 | @use 'components/footer'; | 22 | @use 'components/footer'; |
| 22 | @use 'components/header'; | 23 | @use 'components/header'; |
| 23 | @use 'components/hnav'; | 24 | @use 'components/hnav'; |
| 24 | @use 'components/card'; | 25 | @use 'components/card'; |
| 25 | @use 'components/figure'; | 26 | @use 'components/figure'; |
| 27 | @use 'components/exhibit'; | ||
| 26 | 28 | ||
| 27 | @use 'iro-design/src/scopes/blockquotes' as iro-blockquotes; | 29 | @use 'iro-design/src/scopes/blockquotes' as iro-blockquotes; |
| 28 | @use 'iro-design/src/scopes/code' as iro-code; | 30 | @use 'iro-design/src/scopes/code' as iro-code; |
| @@ -31,6 +33,7 @@ | |||
| 31 | @use 'iro-design/src/scopes/invisible-links' as iro-invisible-links; | 33 | @use 'iro-design/src/scopes/invisible-links' as iro-invisible-links; |
| 32 | @use 'iro-design/src/scopes/lists' as iro-lists; | 34 | @use 'iro-design/src/scopes/lists' as iro-lists; |
| 33 | @use 'iro-design/src/scopes/tables' as iro-tables; | 35 | @use 'iro-design/src/scopes/tables' as iro-tables; |
| 36 | @use 'scopes/body'; | ||
| 34 | @use 'scopes/small'; | 37 | @use 'scopes/small'; |
| 35 | @use 'scopes/alerts'; | 38 | @use 'scopes/alerts'; |
| 36 | 39 | ||
diff --git a/content/art/doodles/2021-lazy-firefox/index.md b/content/art/doodles/2021-lazy-firefox/index.md index 987dabe..f57f184 100644 --- a/content/art/doodles/2021-lazy-firefox/index.md +++ b/content/art/doodles/2021-lazy-firefox/index.md | |||
| @@ -3,6 +3,7 @@ schema_type: VisualArtwork | |||
| 3 | title: Lazy Firefox | 3 | title: Lazy Firefox |
| 4 | date: 2021-10-16 | 4 | date: 2021-10-16 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | layout: exhibit | ||
| 6 | --- | 7 | --- |
| 7 | 8 | ||
| 8 | ::: figure | 9 | ::: figure |
diff --git a/content/art/drawings/2021-cute-ava/index.md b/content/art/drawings/2021-cute-ava/index.md index c2648ba..3f9304e 100644 --- a/content/art/drawings/2021-cute-ava/index.md +++ b/content/art/drawings/2021-cute-ava/index.md | |||
| @@ -3,8 +3,8 @@ schema_type: VisualArtwork | |||
| 3 | title: Cute Avatar | 3 | title: Cute Avatar |
| 4 | date: 2021-03-01 | 4 | date: 2021-03-01 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | --- | 6 | layout: exhibit |
| 7 | 7 | ||
| 8 | ::: figure | 8 | images: |
| 9 |  | 9 | - ava.png |
| 10 | ::: | 10 | --- |
diff --git a/content/art/drawings/2021-eeveelutions/index.md b/content/art/drawings/2021-eeveelutions/index.md index c291d74..3fa6b4c 100644 --- a/content/art/drawings/2021-eeveelutions/index.md +++ b/content/art/drawings/2021-eeveelutions/index.md | |||
| @@ -3,16 +3,10 @@ schema_type: VisualArtwork | |||
| 3 | title: Eeveelutions | 3 | title: Eeveelutions |
| 4 | date: 2021-08-19 | 4 | date: 2021-08-19 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | --- | 6 | layout: exhibit |
| 7 | |||
| 8 | ::: figure | ||
| 9 |  | ||
| 10 | ::: | ||
| 11 | 7 | ||
| 12 | ::: figure | 8 | images: |
| 13 |  | 9 | - eevee.png |
| 14 | ::: | 10 | - flareon.png |
| 15 | 11 | - flareon_wink.png | |
| 16 | ::: figure | 12 | --- |
| 17 |  | ||
| 18 | ::: | ||
diff --git a/content/art/drawings/2021-lycanroc-ava/index.md b/content/art/drawings/2021-lycanroc-ava/index.md index 08c80e4..a23eb5e 100644 --- a/content/art/drawings/2021-lycanroc-ava/index.md +++ b/content/art/drawings/2021-lycanroc-ava/index.md | |||
| @@ -3,8 +3,10 @@ schema_type: VisualArtwork | |||
| 3 | title: Lycanroc Avatar | 3 | title: Lycanroc Avatar |
| 4 | date: 2021-10-19 | 4 | date: 2021-10-19 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | layout: exhibit | ||
| 7 | |||
| 8 | images: | ||
| 9 | - ava.png | ||
| 6 | --- | 10 | --- |
| 7 | 11 | ||
| 8 | ::: figure | 12 | Avatar for [@feralbot@botsin.space](https://botsin.space/@feralbot), a bot that posts pictures of feral characters from [e926](https://e926.net/). |
| 9 |  | ||
| 10 | ::: | ||
diff --git a/content/art/drawings/2021-refsheet/index.md b/content/art/drawings/2021-refsheet/index.md index 8d85c86..d331217 100644 --- a/content/art/drawings/2021-refsheet/index.md +++ b/content/art/drawings/2021-refsheet/index.md | |||
| @@ -3,16 +3,10 @@ schema_type: VisualArtwork | |||
| 3 | title: Reference Sheet Views | 3 | title: Reference Sheet Views |
| 4 | date: 2021-10-06 | 4 | date: 2021-10-06 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | --- | 6 | layout: exhibit |
| 7 | |||
| 8 | ::: figure | ||
| 9 |  | ||
| 10 | ::: | ||
| 11 | 7 | ||
| 12 | ::: figure | 8 | images: |
| 13 |  | 9 | - bottom.png |
| 14 | ::: | 10 | - bottom_cofe.png |
| 15 | 11 | - side.png | |
| 16 | ::: figure | 12 | --- |
| 17 |  | ||
| 18 | ::: | ||
diff --git a/content/art/drawings/2021-spooky-ava-1/index.md b/content/art/drawings/2021-spooky-ava-1/index.md index 12cdd89..4d65b49 100644 --- a/content/art/drawings/2021-spooky-ava-1/index.md +++ b/content/art/drawings/2021-spooky-ava-1/index.md | |||
| @@ -3,8 +3,8 @@ schema_type: VisualArtwork | |||
| 3 | title: \"Spooky\" Avatar | 3 | title: \"Spooky\" Avatar |
| 4 | date: 2021-10-07 | 4 | date: 2021-10-07 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | --- | 6 | layout: exhibit |
| 7 | 7 | ||
| 8 | ::: figure | 8 | images: |
| 9 |  | 9 | - ava.png |
| 10 | ::: | 10 | --- |
diff --git a/content/art/drawings/2021-spooky-ava-2/index.md b/content/art/drawings/2021-spooky-ava-2/index.md index 349d318..74a60ce 100644 --- a/content/art/drawings/2021-spooky-ava-2/index.md +++ b/content/art/drawings/2021-spooky-ava-2/index.md | |||
| @@ -3,8 +3,8 @@ schema_type: VisualArtwork | |||
| 3 | title: Spooky Avatar | 3 | title: Spooky Avatar |
| 4 | date: 2021-10-14 | 4 | date: 2021-10-14 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | --- | 6 | layout: exhibit |
| 7 | 7 | ||
| 8 | ::: figure | 8 | images: |
| 9 |  | 9 | - ava.png |
| 10 | ::: | 10 | --- |
diff --git a/content/art/drawings/2022-autumn-fox/index.md b/content/art/drawings/2022-autumn-fox/index.md index 52eadd8..0384675 100644 --- a/content/art/drawings/2022-autumn-fox/index.md +++ b/content/art/drawings/2022-autumn-fox/index.md | |||
| @@ -3,11 +3,11 @@ schema_type: VisualArtwork | |||
| 3 | title: Autumn Fox | 3 | title: Autumn Fox |
| 4 | date: 2022-02-25 | 4 | date: 2022-02-25 |
| 5 | thumbnail: png | 5 | thumbnail: png |
| 6 | layout: exhibit | ||
| 7 | |||
| 8 | images: | ||
| 9 | - pic.png | ||
| 6 | --- | 10 | --- |
| 7 | 11 | ||
| 8 | First attempt at cel shading. | 12 | First attempt at cel shading. |
| 9 | It's actually incomplete, but I felt like I had hit a roadblock with the shading and wanted to try again with another drawing. | 13 | It's actually incomplete, but I felt like I had hit a roadblock with the shading and wanted to try again with another drawing. |
| 10 | |||
| 11 | ::: figure | ||
| 12 |  | ||
| 13 | ::: | ||
diff --git a/content/lightbox.js b/content/lightbox.js new file mode 100644 index 0000000..a415930 --- /dev/null +++ b/content/lightbox.js | |||
| @@ -0,0 +1,141 @@ | |||
| 1 | (() => { | ||
| 2 | const mainEl = document.querySelector("main"); | ||
| 3 | const lightboxContainerEl = document.querySelector(".js-lightbox"); | ||
| 4 | const lightboxEl = lightboxContainerEl.querySelector(".o-lightbox"); | ||
| 5 | const lightboxCloseEl = lightboxEl.querySelector(".o-lightbox__close-btn"); | ||
| 6 | const lightboxPrevEl = lightboxEl.querySelector(".o-lightbox__prev-btn"); | ||
| 7 | const lightboxNextEl = lightboxEl.querySelector(".o-lightbox__next-btn"); | ||
| 8 | const lightboxImgEl = lightboxEl.querySelector(".o-lightbox__img"); | ||
| 9 | const lightboxFooterEl = lightboxEl.querySelector(".o-lightbox__footer"); | ||
| 10 | const figureEls = Array.from(mainEl.querySelectorAll(".js-lightbox__image")); | ||
| 11 | |||
| 12 | const closeable = lightboxContainerEl.classList.contains("js-lightbox--closeable"); | ||
| 13 | let currentIndex = 0; | ||
| 14 | let visible = !lightboxContainerEl.classList.contains("u-d-none"); | ||
| 15 | let mouseDown = false; | ||
| 16 | |||
| 17 | const show = () => { | ||
| 18 | visible = true; | ||
| 19 | lightboxContainerEl.classList.remove("u-d-none"); | ||
| 20 | } | ||
| 21 | |||
| 22 | const hide = () => { | ||
| 23 | if (closeable) { | ||
| 24 | visible = false; | ||
| 25 | lightboxContainerEl.classList.add("u-d-none"); | ||
| 26 | } | ||
| 27 | } | ||
| 28 | |||
| 29 | const setIndex = (i) => { | ||
| 30 | if (i < 0 || i >= thumbnailEls.length) { | ||
| 31 | return; | ||
| 32 | } | ||
| 33 | thumbnailEls[currentIndex].classList.remove("is-selected"); | ||
| 34 | currentIndex = i; | ||
| 35 | lightboxImgEl.src = figureEls[i].firstElementChild.href; | ||
| 36 | thumbnailEls[i].classList.add("is-selected"); | ||
| 37 | }; | ||
| 38 | |||
| 39 | const prev = () => { | ||
| 40 | setIndex(currentIndex > 0 ? currentIndex - 1 : figureEls.length - 1); | ||
| 41 | }; | ||
| 42 | |||
| 43 | const next = () => { | ||
| 44 | setIndex(currentIndex < figureEls.length - 1 ? currentIndex + 1 : 0); | ||
| 45 | }; | ||
| 46 | |||
| 47 | lightboxCloseEl?.addEventListener("click", hide); | ||
| 48 | lightboxPrevEl.addEventListener("click", prev); | ||
| 49 | lightboxNextEl.addEventListener("click", next); | ||
| 50 | |||
| 51 | const thumbnailEls = figureEls.map((figureEl, i) => { | ||
| 52 | const go = e => { | ||
| 53 | e.preventDefault(); | ||
| 54 | show(); | ||
| 55 | setIndex(i); | ||
| 56 | }; | ||
| 57 | |||
| 58 | let anchorEl; | ||
| 59 | let imgEl; | ||
| 60 | |||
| 61 | if (figureEl.firstElementChild.tagName === "A") { | ||
| 62 | anchorEl = figureEl.firstElementChild; | ||
| 63 | imgEl = anchorEl.firstElementChild; | ||
| 64 | } else { | ||
| 65 | imgEl = figureEl.firstElementChild; | ||
| 66 | anchorEl = document.createElement("a"); | ||
| 67 | anchorEl.href = imgEl.src; | ||
| 68 | |||
| 69 | figureEl.insertBefore(anchorEl, imgEl); | ||
| 70 | figureEl.removeChild(imgEl); | ||
| 71 | anchorEl.appendChild(imgEl); | ||
| 72 | } | ||
| 73 | |||
| 74 | anchorEl.addEventListener("click", go); | ||
| 75 | |||
| 76 | const thumbnailButtonEl = document.createElement("button"); | ||
| 77 | const thumbnailImgEl = document.createElement("img"); | ||
| 78 | |||
| 79 | thumbnailImgEl.classList.add("o-lightbox__thumbnail-img"); | ||
| 80 | thumbnailImgEl.src = anchorEl.href; | ||
| 81 | |||
| 82 | thumbnailButtonEl.classList.add("o-lightbox__thumbnail"); | ||
| 83 | thumbnailButtonEl.appendChild(thumbnailImgEl); | ||
| 84 | thumbnailButtonEl.addEventListener("click", go); | ||
| 85 | |||
| 86 | if (i === currentIndex) { | ||
| 87 | thumbnailButtonEl.classList.add("is-selected"); | ||
| 88 | } | ||
| 89 | |||
| 90 | lightboxFooterEl.appendChild(thumbnailButtonEl); | ||
| 91 | |||
| 92 | return thumbnailButtonEl; | ||
| 93 | }); | ||
| 94 | |||
| 95 | setIndex(0); | ||
| 96 | |||
| 97 | if (closeable) { | ||
| 98 | document.addEventListener('mousedown', (e) => { | ||
| 99 | if (visible) { | ||
| 100 | mouseDown = !lightboxEl.contains(e.target) || lightboxEl === e.target; | ||
| 101 | } | ||
| 102 | }); | ||
| 103 | |||
| 104 | document.addEventListener('click', (e) => { | ||
| 105 | if (visible && mouseDown) { | ||
| 106 | mouseDown = false; | ||
| 107 | e.preventDefault(); | ||
| 108 | e.stopPropagation(); | ||
| 109 | hide(); | ||
| 110 | } | ||
| 111 | }, { capture: true }); | ||
| 112 | } | ||
| 113 | |||
| 114 | window.addEventListener("keydown", e => { | ||
| 115 | if (e.defaultPrevented || !visible) { | ||
| 116 | return; | ||
| 117 | } | ||
| 118 | |||
| 119 | switch (e.key) { | ||
| 120 | case "Left": | ||
| 121 | case "ArrowLeft": | ||
| 122 | prev(); | ||
| 123 | break; | ||
| 124 | |||
| 125 | case "Right": | ||
| 126 | case "ArrowRight": | ||
| 127 | next(); | ||
| 128 | break; | ||
| 129 | |||
| 130 | case "Esc": | ||
| 131 | case "Escape": | ||
| 132 | hide(); | ||
| 133 | break; | ||
| 134 | |||
| 135 | default: | ||
| 136 | return; | ||
| 137 | } | ||
| 138 | |||
| 139 | e.preventDefault(); | ||
| 140 | }, true); | ||
| 141 | })(); | ||
diff --git a/content/main.js b/content/main.js index c843947..7189312 100644 --- a/content/main.js +++ b/content/main.js | |||
| @@ -1,4 +1,7 @@ | |||
| 1 | (() => { | 1 | (() => { |
| 2 | document.body.classList.remove('t-no-js'); | ||
| 3 | document.body.classList.add('t-js'); | ||
| 4 | |||
| 2 | const enableFocusIndicator = e => { | 5 | const enableFocusIndicator = e => { |
| 3 | if (e.key !== 'Tab') { | 6 | if (e.key !== 'Tab') { |
| 4 | return; | 7 | return; |
| @@ -18,135 +21,3 @@ | |||
| 18 | 21 | ||
| 19 | document.addEventListener('keydown', enableFocusIndicator); | 22 | document.addEventListener('keydown', enableFocusIndicator); |
| 20 | })(); | 23 | })(); |
| 21 | |||
| 22 | (() => { | ||
| 23 | let currentIndex = 0; | ||
| 24 | let visible = false; | ||
| 25 | let mouseDown = false; | ||
| 26 | |||
| 27 | const mainEl = document.querySelector("main"); | ||
| 28 | const lightboxContainerEl = document.querySelector(".js-lightbox"); | ||
| 29 | const lightboxEl = lightboxContainerEl.querySelector(".o-lightbox"); | ||
| 30 | const lightboxCloseEl = lightboxEl.querySelector(".o-lightbox__close-btn"); | ||
| 31 | const lightboxPrevEl = lightboxEl.querySelector(".o-lightbox__prev-btn"); | ||
| 32 | const lightboxNextEl = lightboxEl.querySelector(".o-lightbox__next-btn"); | ||
| 33 | const lightboxImgEl = lightboxEl.querySelector(".o-lightbox__img"); | ||
| 34 | const lightboxFooterEl = lightboxEl.querySelector(".o-lightbox__footer"); | ||
| 35 | const figureEls = Array.from(mainEl.querySelectorAll("figure")); | ||
| 36 | |||
| 37 | const show = () => { | ||
| 38 | visible = true; | ||
| 39 | lightboxContainerEl.classList.remove("u-d-none"); | ||
| 40 | } | ||
| 41 | |||
| 42 | const hide = () => { | ||
| 43 | visible = false; | ||
| 44 | lightboxContainerEl.classList.add("u-d-none"); | ||
| 45 | } | ||
| 46 | |||
| 47 | const setIndex = (i) => { | ||
| 48 | thumbnailEls[currentIndex].classList.remove("is-selected"); | ||
| 49 | currentIndex = i; | ||
| 50 | lightboxImgEl.src = figureEls[i].firstElementChild.href; | ||
| 51 | thumbnailEls[i].classList.add("is-selected"); | ||
| 52 | }; | ||
| 53 | |||
| 54 | const prev = () => { | ||
| 55 | setIndex(currentIndex > 0 ? currentIndex - 1 : figureEls.length - 1); | ||
| 56 | }; | ||
| 57 | |||
| 58 | const next = () => { | ||
| 59 | setIndex(currentIndex < figureEls.length - 1 ? currentIndex + 1 : 0); | ||
| 60 | }; | ||
| 61 | |||
| 62 | lightboxCloseEl.addEventListener("click", hide); | ||
| 63 | lightboxPrevEl.addEventListener("click", prev); | ||
| 64 | lightboxNextEl.addEventListener("click", next); | ||
| 65 | |||
| 66 | const thumbnailEls = figureEls.map((figureEl, i) => { | ||
| 67 | const go = e => { | ||
| 68 | e.preventDefault(); | ||
| 69 | show(); | ||
| 70 | setIndex(i); | ||
| 71 | }; | ||
| 72 | |||
| 73 | let anchorEl; | ||
| 74 | let imgEl; | ||
| 75 | |||
| 76 | if (figureEl.firstElementChild.tagName === "A") { | ||
| 77 | anchorEl = figureEl.firstElementChild; | ||
| 78 | imgEl = anchorEl.firstElementChild; | ||
| 79 | } else { | ||
| 80 | imgEl = figureEl.firstElementChild; | ||
| 81 | anchorEl = document.createElement("a"); | ||
| 82 | anchorEl.href = imgEl.src; | ||
| 83 | |||
| 84 | figureEl.insertBefore(anchorEl, imgEl); | ||
| 85 | figureEl.removeChild(imgEl); | ||
| 86 | anchorEl.appendChild(imgEl); | ||
| 87 | } | ||
| 88 | |||
| 89 | anchorEl.addEventListener("click", go); | ||
| 90 | |||
| 91 | const thumbnailButtonEl = document.createElement("button"); | ||
| 92 | const thumbnailImgEl = document.createElement("img"); | ||
| 93 | |||
| 94 | thumbnailImgEl.classList.add("o-lightbox__thumbnail-img"); | ||
| 95 | thumbnailImgEl.src = anchorEl.href; | ||
| 96 | |||
| 97 | thumbnailButtonEl.classList.add("o-lightbox__thumbnail"); | ||
| 98 | thumbnailButtonEl.appendChild(thumbnailImgEl); | ||
| 99 | thumbnailButtonEl.addEventListener("click", go); | ||
| 100 | |||
| 101 | if (i === currentIndex) { | ||
| 102 | thumbnailButtonEl.classList.add("is-selected"); | ||
| 103 | } | ||
| 104 | |||
| 105 | lightboxFooterEl.appendChild(thumbnailButtonEl); | ||
| 106 | |||
| 107 | return thumbnailButtonEl; | ||
| 108 | }); | ||
| 109 | |||
| 110 | document.addEventListener('mousedown', (e) => { | ||
| 111 | if (visible) { | ||
| 112 | mouseDown = !lightboxEl.contains(e.target) || lightboxEl === e.target; | ||
| 113 | } | ||
| 114 | }); | ||
| 115 | |||
| 116 | document.addEventListener('click', (e) => { | ||
| 117 | if (visible && mouseDown) { | ||
| 118 | mouseDown = false; | ||
| 119 | e.preventDefault(); | ||
| 120 | e.stopPropagation(); | ||
| 121 | hide(); | ||
| 122 | } | ||
| 123 | }, { capture: true }); | ||
| 124 | |||
| 125 | window.addEventListener("keydown", e => { | ||
| 126 | if (e.defaultPrevented || !visible) { | ||
| 127 | return; | ||
| 128 | } | ||
| 129 | |||
| 130 | switch (e.key) { | ||
| 131 | case "Left": | ||
| 132 | case "ArrowLeft": | ||
| 133 | prev(); | ||
| 134 | break; | ||
| 135 | |||
| 136 | case "Right": | ||
| 137 | case "ArrowRight": | ||
| 138 | next(); | ||
| 139 | break; | ||
| 140 | |||
| 141 | case "Esc": | ||
| 142 | case "Escape": | ||
| 143 | hide(); | ||
| 144 | break; | ||
| 145 | |||
| 146 | default: | ||
| 147 | return; | ||
| 148 | } | ||
| 149 | |||
| 150 | e.preventDefault(); | ||
| 151 | }, true); | ||
| 152 | })(); | ||
diff --git a/filters/macros.lua b/filters/macros.lua index df08676..cb7975b 100644 --- a/filters/macros.lua +++ b/filters/macros.lua | |||
| @@ -23,7 +23,7 @@ function figure(el) | |||
| 23 | pandoc.walk_block(el, { Image = function(iel) images:insert(iel) end }) | 23 | pandoc.walk_block(el, { Image = function(iel) images:insert(iel) end }) |
| 24 | 24 | ||
| 25 | el = pandoc.RawBlock("html", | 25 | el = pandoc.RawBlock("html", |
| 26 | "<figure class=\"c-figure\">\ | 26 | "<figure class=\"c-figure js-lightbox__image\">\ |
| 27 | <a class=\"c-figure__link\" href=\"" .. images[1].src .. "\">\ | 27 | <a class=\"c-figure__link\" href=\"" .. images[1].src .. "\">\ |
| 28 | <img class=\"c-figure__image\" src=\"" .. images[1].src .. "\" title=\"" .. images[1].title .. "\" />\ | 28 | <img class=\"c-figure__image\" src=\"" .. images[1].src .. "\" title=\"" .. images[1].title .. "\" />\ |
| 29 | </a>\ | 29 | </a>\ |
diff --git a/templates/base.html b/templates/base.html index cfc40a4..4ffd690 100644 --- a/templates/base.html +++ b/templates/base.html | |||
| @@ -52,7 +52,7 @@ | |||
| 52 | <link rel="stylesheet" href="/style.css?$style_hash$" /> | 52 | <link rel="stylesheet" href="/style.css?$style_hash$" /> |
| 53 | </head> | 53 | </head> |
| 54 | 54 | ||
| 55 | <body itemscope itemtype="https://schema.org/WebPage"> | 55 | <body itemscope itemtype="https://schema.org/WebPage" class="t-no-js"> |
| 56 | <nav class="c-header" label="Mainmenu"> | 56 | <nav class="c-header" label="Mainmenu"> |
| 57 | <a class="c-header__item c-header__item--icon" href="/" title="$site.title$" itemprop="isPartOf" itemscope itemtype="https://schema.org/WebSite" itemid="$site.url$"> | 57 | <a class="c-header__item c-header__item--icon" href="/" title="$site.title$" itemprop="isPartOf" itemscope itemtype="https://schema.org/WebSite" itemid="$site.url$"> |
| 58 | <svg class="c-header__icon" width="1em" height="1em" aria-label="Logo"> | 58 | <svg class="c-header__icon" width="1em" height="1em" aria-label="Logo"> |
| @@ -74,6 +74,8 @@ ${layouts/categorized_list()} | |||
| 74 | ${layouts/list()} | 74 | ${layouts/list()} |
| 75 | $elseif(layout.is_redirect)$ | 75 | $elseif(layout.is_redirect)$ |
| 76 | ${layouts/redirect()} | 76 | ${layouts/redirect()} |
| 77 | $elseif(layout.is_exhibit)$ | ||
| 78 | ${layouts/exhibit()} | ||
| 77 | $else$ | 79 | $else$ |
| 78 | ${layouts/page()} | 80 | ${layouts/page()} |
| 79 | $endif$ | 81 | $endif$ |
| @@ -85,32 +87,6 @@ ${layouts/page()} | |||
| 85 | </div> | 87 | </div> |
| 86 | </footer> | 88 | </footer> |
| 87 | 89 | ||
| 88 | <div class="o-backdrop js-lightbox u-d-none t-dark"> | ||
| 89 | <div class="o-lightbox"> | ||
| 90 | <button class="o-lightbox__close-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 91 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 92 | <use href="/icons.svg#x"></use> | ||
| 93 | </svg> | ||
| 94 | </button> | ||
| 95 | |||
| 96 | <img class="o-lightbox__img" /> | ||
| 97 | |||
| 98 | <button class="o-lightbox__prev-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 99 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 100 | <use href="/icons.svg#chevron-left"></use> | ||
| 101 | </svg> | ||
| 102 | </button> | ||
| 103 | |||
| 104 | <button class="o-lightbox__next-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 105 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 106 | <use href="/icons.svg#chevron-right"></use> | ||
| 107 | </svg> | ||
| 108 | </button> | ||
| 109 | |||
| 110 | <footer class="o-lightbox__footer"></footer> | ||
| 111 | </div> | ||
| 112 | </div> | ||
| 113 | |||
| 114 | <script src="/main.js"></script> | 90 | <script src="/main.js"></script> |
| 115 | <!--script src="/snow.js"></script--> | 91 | <!--script src="/snow.js"></script--> |
| 116 | </body> | 92 | </body> |
diff --git a/templates/feed_entry.xml b/templates/feed_entry.xml index 03d6569..a71b579 100644 --- a/templates/feed_entry.xml +++ b/templates/feed_entry.xml | |||
| @@ -22,4 +22,14 @@ $else$ | |||
| 22 | </author> | 22 | </author> |
| 23 | $endfor$ | 23 | $endfor$ |
| 24 | $endif$ | 24 | $endif$ |
| 25 | <content type="html"><![CDATA[$it.content$]]></content> | 25 | <content type="html"><![CDATA[ |
| 26 | $it.content$ | ||
| 27 | |||
| 28 | $if(it.layout.is_exhibit)$ | ||
| 29 | $for(it.images)$ | ||
| 30 | <figure> | ||
| 31 | <img src="$it$" /> | ||
| 32 | </figure> | ||
| 33 | $endfor$ | ||
| 34 | $endif$ | ||
| 35 | ]]></content> | ||
diff --git a/templates/layouts/categorized_list.html b/templates/layouts/categorized_list.html index 206c566..1a1048a 100644 --- a/templates/layouts/categorized_list.html +++ b/templates/layouts/categorized_list.html | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | <main | 1 | <main |
| 2 | class="l-container l-container--pad-x l-container--pad-y l-container--narrow-125 h-feed" | 2 | class="c-main l-container l-container--pad-x l-container--pad-y l-container--narrow-125 h-feed" |
| 3 | itemprop="mainPart" | 3 | itemprop="mainPart" |
| 4 | itemscope | 4 | itemscope |
| 5 | itemtype="https://schema.org/DataFeed" | 5 | itemtype="https://schema.org/DataFeed" |
diff --git a/templates/layouts/exhibit.html b/templates/layouts/exhibit.html new file mode 100644 index 0000000..091859a --- /dev/null +++ b/templates/layouts/exhibit.html | |||
| @@ -0,0 +1,66 @@ | |||
| 1 | <main | ||
| 2 | itemprop="hasPart" | ||
| 3 | itemscope | ||
| 4 | itemtype="https://schema.org/$schema_type$" | ||
| 5 | itemid="$url.full$" | ||
| 6 | > | ||
| 7 | <article class="h-entry"> | ||
| 8 | <section class="c-exhibit js-lightbox"> | ||
| 9 | <div class="c-exhibit__content o-lightbox"> | ||
| 10 | <img class="o-lightbox__img" /> | ||
| 11 | |||
| 12 | <button class="o-lightbox__prev-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 13 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 14 | <use href="/icons.svg#chevron-left"></use> | ||
| 15 | </svg> | ||
| 16 | </button> | ||
| 17 | |||
| 18 | <button class="o-lightbox__next-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 19 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 20 | <use href="/icons.svg#chevron-right"></use> | ||
| 21 | </svg> | ||
| 22 | </button> | ||
| 23 | |||
| 24 | <footer class="o-lightbox__footer"></footer> | ||
| 25 | </div> | ||
| 26 | |||
| 27 | <footer class="c-exhibit__footer"> | ||
| 28 | <div class="l-container l-container--pad-x l-container--narrow-125"> | ||
| 29 | <div class="l-media l-media--200 u-pl-0 u-pr-0"> | ||
| 30 | <div class="l-media__block l-media__block--main"> | ||
| 31 | $if(date)$ | ||
| 32 | <small class="u-d-block u-d-none@sm-hi"> | ||
| 33 | <time datetime="$date.yyyy_mm_dd$" class="dt-updated" itemprop="dateCreated"> | ||
| 34 | $date.short$ | ||
| 35 | </time> | ||
| 36 | </small> | ||
| 37 | $endif$ | ||
| 38 | <strong class="u-d-block u-elp" itemprop="name headline">$title$</strong> | ||
| 39 | </div> | ||
| 40 | $if(date)$ | ||
| 41 | <small class="l-media__block u-d-none@sm-lo"> | ||
| 42 | <time datetime="$date.yyyy_mm_dd$" itemprop="dateCreated"> | ||
| 43 | $date.short$ | ||
| 44 | </time> | ||
| 45 | </small> | ||
| 46 | $endif$ | ||
| 47 | </div> | ||
| 48 | </div> | ||
| 49 | </footer> | ||
| 50 | </section> | ||
| 51 | |||
| 52 | <div class="l-container l-container--pad-x l-container--pad-y l-container--narrow-125 u-pt-400"> | ||
| 53 | <div class="s-body s-colored-links s-headings s-blockquotes s-code s-lists s-tables s-alerts e-content" itemprop="articleBody"> | ||
| 54 | $body$ | ||
| 55 | |||
| 56 | $for(images)$ | ||
| 57 | <figure class="c-figure js-lightbox__image u-d-none@js"> | ||
| 58 | <img src="$it$" /> | ||
| 59 | </figure> | ||
| 60 | $endfor$ | ||
| 61 | </div> | ||
| 62 | </div> | ||
| 63 | </article> | ||
| 64 | </main> | ||
| 65 | |||
| 66 | <script src="/lightbox.js"></script> | ||
diff --git a/templates/layouts/list.html b/templates/layouts/list.html index 66a08fd..508ff4c 100644 --- a/templates/layouts/list.html +++ b/templates/layouts/list.html | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | <main | 1 | <main |
| 2 | class="l-container l-container--pad-x l-container--pad-y l-container--narrow-125 h-feed" | 2 | class="c-main l-container l-container--pad-x l-container--pad-y l-container--narrow-125 h-feed" |
| 3 | itemprop="mainPart" | 3 | itemprop="mainPart" |
| 4 | itemscope | 4 | itemscope |
| 5 | itemtype="https://schema.org/DataFeed" | 5 | itemtype="https://schema.org/DataFeed" |
diff --git a/templates/layouts/page.html b/templates/layouts/page.html index f65a1cf..4058748 100644 --- a/templates/layouts/page.html +++ b/templates/layouts/page.html | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | <main | 1 | <main |
| 2 | class="l-container l-container--pad-x l-container--pad-y l-container--narrow-125" | 2 | class="c-main l-container l-container--pad-x l-container--pad-y l-container--narrow-125" |
| 3 | itemprop="hasPart" | 3 | itemprop="hasPart" |
| 4 | itemscope | 4 | itemscope |
| 5 | itemtype="https://schema.org/$schema_type$" | 5 | itemtype="https://schema.org/$schema_type$" |
| @@ -7,9 +7,9 @@ | |||
| 7 | > | 7 | > |
| 8 | <article class="h-entry"> | 8 | <article class="h-entry"> |
| 9 | $if(date)$ | 9 | $if(date)$ |
| 10 | <div class="o-badge s-body__meta u-mb-125 dt-updated"> | 10 | <time datetime="$date.yyyy_mm_dd$" class="o-badge s-body__meta u-mb-125 dt-updated" itemprop="dateCreated"> |
| 11 | $date.long$ | 11 | $date.long$ |
| 12 | </div> | 12 | </time> |
| 13 | $endif$ | 13 | $endif$ |
| 14 | 14 | ||
| 15 | <h1 class="o-heading o-heading--xxl u-mt-0 p-name" itemprop="name headline"> | 15 | <h1 class="o-heading o-heading--xxl u-mt-0 p-name" itemprop="name headline"> |
| @@ -35,4 +35,32 @@ $body$ | |||
| 35 | </footer> | 35 | </footer> |
| 36 | $endif$ | 36 | $endif$ |
| 37 | </article> | 37 | </article> |
| 38 | |||
| 39 | <div class="o-backdrop js-lightbox js-lightbox--closeable u-d-none t-dark"> | ||
| 40 | <div class="o-lightbox"> | ||
| 41 | <button class="o-lightbox__close-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 42 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 43 | <use href="/icons.svg#x"></use> | ||
| 44 | </svg> | ||
| 45 | </button> | ||
| 46 | |||
| 47 | <img class="o-lightbox__img" /> | ||
| 48 | |||
| 49 | <button class="o-lightbox__prev-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 50 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 51 | <use href="/icons.svg#chevron-left"></use> | ||
| 52 | </svg> | ||
| 53 | </button> | ||
| 54 | |||
| 55 | <button class="o-lightbox__next-btn o-action-button o-action-button--quiet o-action-button--round"> | ||
| 56 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | ||
| 57 | <use href="/icons.svg#chevron-right"></use> | ||
| 58 | </svg> | ||
| 59 | </button> | ||
| 60 | |||
| 61 | <footer class="o-lightbox__footer"></footer> | ||
| 62 | </div> | ||
| 63 | </div> | ||
| 38 | </main> | 64 | </main> |
| 65 | |||
| 66 | <script src="/lightbox.js"></script> | ||
diff --git a/templates/layouts/redirect.html b/templates/layouts/redirect.html index 9f78dec..6684bd2 100644 --- a/templates/layouts/redirect.html +++ b/templates/layouts/redirect.html | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | <article class="l-container l-container--pad-x l-container--pad-y l-container--narrow s-body s-colored-links s-headlines"> | 1 | <main class="c-main l-container l-container--pad-x l-container--pad-y l-container--narrow s-body s-colored-links s-headlines"> |
| 2 | <h1 class="u-mt-0"><span class="s-headlines__title-inner">$title$</span></h1> | 2 | <h1 class="u-mt-0"><span class="s-headlines__title-inner">$title$</span></h1> |
| 3 | <p>This page should redirect you to <a href="$url.full$">$url.full$</a> in 3 seconds.</p> | 3 | <p>This page should redirect you to <a href="$url.full$">$url.full$</a> in 3 seconds.</p> |
| 4 | </article> | 4 | </main> |
diff --git a/templates/partials/gallery_card.html b/templates/partials/gallery_card.html index deffb3f..6692888 100644 --- a/templates/partials/gallery_card.html +++ b/templates/partials/gallery_card.html | |||
| @@ -37,11 +37,11 @@ $if(it.thumbnail)$ | |||
| 37 | <small class="u-d-block u-elp">$it.category$</small> | 37 | <small class="u-d-block u-elp">$it.category$</small> |
| 38 | <strong class="u-d-block u-elp">$it.title$</strong> | 38 | <strong class="u-d-block u-elp">$it.title$</strong> |
| 39 | $elseif(it.date)$ | 39 | $elseif(it.date)$ |
| 40 | <time datetime="$it.date.yyyy_mm_dd$" itemprop="dateCreated"> | 40 | <small class="u-d-block"> |
| 41 | <small> | 41 | <time datetime="$it.date.yyyy_mm_dd$" itemprop="dateCreated"> |
| 42 | $it.date.long$ | 42 | $it.date.long$ |
| 43 | </small> | 43 | </time> |
| 44 | </time> | 44 | </small> |
| 45 | <strong class="u-d-block u-elp">$it.title$</strong> | 45 | <strong class="u-d-block u-elp">$it.title$</strong> |
| 46 | $else$ | 46 | $else$ |
| 47 | <span class="p-name" itemprop="name headline"> | 47 | <span class="p-name" itemprop="name headline"> |
diff --git a/templates/partials/grid_card.html b/templates/partials/grid_card.html index 9af9415..003e59f 100644 --- a/templates/partials/grid_card.html +++ b/templates/partials/grid_card.html | |||
| @@ -24,11 +24,11 @@ $if(it.url)$ | |||
| 24 | <small class="u-d-block u-elp">$it.category$</small> | 24 | <small class="u-d-block u-elp">$it.category$</small> |
| 25 | <strong class="u-d-block u-elp">$it.title$</strong> | 25 | <strong class="u-d-block u-elp">$it.title$</strong> |
| 26 | $elseif(it.date)$ | 26 | $elseif(it.date)$ |
| 27 | <time datetime="$it.date.yyyy_mm_dd$" itemprop="dateCreated"> | 27 | <small class="u-d-block"> |
| 28 | <small> | 28 | <time datetime="$it.date.yyyy_mm_dd$" itemprop="dateCreated"> |
| 29 | $it.date.long$ | 29 | $it.date.long$ |
| 30 | </small> | 30 | </time> |
| 31 | </time> | 31 | </small> |
| 32 | <strong class="u-d-block u-elp">$it.title$</strong> | 32 | <strong class="u-d-block u-elp">$it.title$</strong> |
| 33 | $else$ | 33 | $else$ |
| 34 | <span class="p-name" itemprop="name headline"> | 34 | <span class="p-name" itemprop="name headline"> |
diff --git a/templates/partials/list_card.html b/templates/partials/list_card.html index 6cf0e67..dc9111e 100644 --- a/templates/partials/list_card.html +++ b/templates/partials/list_card.html | |||
| @@ -24,7 +24,9 @@ $if(it.url)$ | |||
| 24 | <small class="u-d-block">$it.category$</small> | 24 | <small class="u-d-block">$it.category$</small> |
| 25 | <strong class="u-d-block">$it.title$</strong> | 25 | <strong class="u-d-block">$it.title$</strong> |
| 26 | $elseif(it.date)$ | 26 | $elseif(it.date)$ |
| 27 | <time datetime="$it.date.yyyy_mm_dd$" class="u-d-block"><small>$it.date.long$</small></time> | 27 | <small> |
| 28 | <time datetime="$it.date.yyyy_mm_dd$">$it.date.long$</time> | ||
| 29 | </small> | ||
| 28 | <strong class="u-d-block">$it.title$</strong> | 30 | <strong class="u-d-block">$it.title$</strong> |
| 29 | $else$ | 31 | $else$ |
| 30 | <span class="p-name" itemprop="name headline"> | 32 | <span class="p-name" itemprop="name headline"> |
| @@ -44,11 +46,11 @@ $if(it.url)$ | |||
| 44 | $it.category$ | 46 | $it.category$ |
| 45 | </small> | 47 | </small> |
| 46 | $elseif(it.date)$ | 48 | $elseif(it.date)$ |
| 47 | <time datetime="$it.date.yyyy_mm_dd$" class="l-media__block u-d-none@sm-lo" itemprop="dateCreated"> | 49 | <small class="l-media__block u-d-none@sm-lo"> |
| 48 | <small> | 50 | <time datetime="$it.date.yyyy_mm_dd$" itemprop="dateCreated"> |
| 49 | $it.date.short$ | 51 | $it.date.short$ |
| 50 | </small> | 52 | </time> |
| 51 | </time> | 53 | </small> |
| 52 | $endif$ | 54 | $endif$ |
| 53 | $if(it.post_icon)$ | 55 | $if(it.post_icon)$ |
| 54 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> | 56 | <svg class="l-media__block o-icon" width="1em" height="1em" aria-hidden="true"> |
| @@ -1280,7 +1280,7 @@ internal-slot@^1.0.3: | |||
| 1280 | 1280 | ||
| 1281 | "iro-design@git+https://git.vulpes.one/git/iro-design.git": | 1281 | "iro-design@git+https://git.vulpes.one/git/iro-design.git": |
| 1282 | version "1.0.0" | 1282 | version "1.0.0" |
| 1283 | resolved "git+https://git.vulpes.one/git/iro-design.git#7cf8a77dd78df22376aa60e25d77029394276cf8" | 1283 | resolved "git+https://git.vulpes.one/git/iro-design.git#a3296360acb08cf19d358aa140f8d3c4d054b169" |
| 1284 | dependencies: | 1284 | dependencies: |
| 1285 | "@oddbird/blend" "^0.2.3" | 1285 | "@oddbird/blend" "^0.2.3" |
| 1286 | include-media "^1.4.9" | 1286 | include-media "^1.4.9" |
