From 26a2998e61a9ee97b0d908b246e860328eae82ad Mon Sep 17 00:00:00 2001 From: Martin Leblanc <m26lebla@uwaterloo.ca> Date: Tue, 8 Jun 2021 21:44:12 +0000 Subject: [PATCH] pushing card footer outside of body to allow better flex of content --- css/styles.css | 28 +++++---- .../_patterns/04-components/card/_card.scss | 25 +++++--- source/_patterns/04-components/card/card.twig | 61 +++++++++---------- 3 files changed, 59 insertions(+), 55 deletions(-) diff --git a/css/styles.css b/css/styles.css index 44f9c4ec..fb09b045 100644 --- a/css/styles.css +++ b/css/styles.css @@ -3503,7 +3503,6 @@ button { -ms-flex-direction: column; -webkit-flex-direction: column; flex-direction: column; - flex-grow: 1; width: 100%; } .views-row .card { height: 100%; } @@ -3560,15 +3559,12 @@ button { flex-flow: row wrap; gap: 1.25rem; gap: inherit; - height: 100%; padding: 1rem; width: 100%; } .card__body p:last-child { margin-bottom: 0; } .card__content { - display: flex; - flex-direction: column; margin-bottom: 1.5rem; width: 100%; } @@ -3577,25 +3573,33 @@ button { order: -1; width: 100%; } .card__media a { - display: block; + display: inline-block; height: 100%; width: 100%; } + .card__media a:focus img { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); + transition: -webkit-filter 150ms cubic-bezier(0.4, 0, 1, 1); + transition: filter 150ms cubic-bezier(0.4, 0, 1, 1); + transition: filter 150ms cubic-bezier(0.4, 0, 1, 1), -webkit-filter 150ms cubic-bezier(0.4, 0, 1, 1); } .card__media img { -webkit-filter: grayscale(0); filter: grayscale(0); - transition: opacity 150ms cubic-bezier(0.4, 0, 1, 1), -webkit-filter; - transition: filter, opacity 150ms cubic-bezier(0.4, 0, 1, 1); - transition: filter, opacity 150ms cubic-bezier(0.4, 0, 1, 1), -webkit-filter; + transition: -webkit-filter 150ms cubic-bezier(0.4, 0, 1, 1); + transition: filter 150ms cubic-bezier(0.4, 0, 1, 1); + transition: filter 150ms cubic-bezier(0.4, 0, 1, 1), -webkit-filter 150ms cubic-bezier(0.4, 0, 1, 1); width: 100%; } .card__media img:hover { -webkit-filter: grayscale(100%); filter: grayscale(100%); - transition: opacity 150ms cubic-bezier(0.4, 0, 1, 1), -webkit-filter; - transition: filter, opacity 150ms cubic-bezier(0.4, 0, 1, 1); - transition: filter, opacity 150ms cubic-bezier(0.4, 0, 1, 1), -webkit-filter; } + transition: -webkit-filter 150ms cubic-bezier(0.4, 0, 1, 1); + transition: filter 150ms cubic-bezier(0.4, 0, 1, 1); + transition: filter 150ms cubic-bezier(0.4, 0, 1, 1), -webkit-filter 150ms cubic-bezier(0.4, 0, 1, 1); } .card__footer { - margin-top: auto; } + margin-top: auto; + padding: 1.5rem; + width: 100%; } .card__footer > div { margin-bottom: 1rem; } .card__footer > div:last-child { diff --git a/source/_patterns/04-components/card/_card.scss b/source/_patterns/04-components/card/_card.scss index 1045a467..4a622b3a 100644 --- a/source/_patterns/04-components/card/_card.scss +++ b/source/_patterns/04-components/card/_card.scss @@ -9,9 +9,9 @@ $card-padding: rem(gesso-spacing(sm)) !default; .card { @include uw-flex-grid(card); - flex-grow: 1; - width: 100%; //background:$test-color-1; + width: 100%; + .views-row &{ height:100%; } @@ -68,7 +68,6 @@ $card-padding: rem(gesso-spacing(sm)) !default; @include uw-flex-grid(); //background:$test-color-10; gap:inherit; - height:100%; padding: $card-padding; width: 100%; p:last-child { @@ -77,8 +76,6 @@ $card-padding: rem(gesso-spacing(sm)) !default; } .card__content { //background:$test-color-9; - display:flex; - flex-direction: column; margin-bottom: rem(gesso-spacing(md)); width: 100%; } @@ -86,24 +83,30 @@ $card-padding: rem(gesso-spacing(sm)) !default; .card__media { //background:$test-color-4; margin-bottom: rem(gesso-spacing(md)); - order: -1; + order:-1; width: 100%; a { - display: block; + display:inline-block; height: 100%; width: 100%; + &:focus{ + img{ + -webkit-filter: grayscale(100%); + filter: grayscale(100%); + transition:filter gesso-duration(shortest) gesso-easing(ease-in); + } + } } img { -webkit-filter: grayscale(0); filter: grayscale(0); - transition:filter ,opacity gesso-duration(shortest) gesso-easing(ease-in); + transition:filter gesso-duration(shortest) gesso-easing(ease-in); width: 100%; &:hover{ -webkit-filter: grayscale(100%); filter: grayscale(100%); - transition:filter ,opacity gesso-duration(shortest) gesso-easing(ease-in); - + transition:filter gesso-duration(shortest) gesso-easing(ease-in); } } } @@ -111,6 +114,8 @@ $card-padding: rem(gesso-spacing(sm)) !default; .card__footer { //background:$test-color-12; margin-top: auto; + padding: rem(gesso-spacing(md)); + width: 100%; > div { margin-bottom: rem(gesso-spacing(sm)); &:last-child { diff --git a/source/_patterns/04-components/card/card.twig b/source/_patterns/04-components/card/card.twig index c1fd5508..107f8396 100644 --- a/source/_patterns/04-components/card/card.twig +++ b/source/_patterns/04-components/card/card.twig @@ -2,7 +2,6 @@ <article class="card {{ modifier_classes }} {% if show_hover %} card--show-hover {% endif %} {{ type }}" > <div class="card__body"> - {% if title or author or date or sub_title %} <div class="card__header"> {% if date %} @@ -22,9 +21,7 @@ {% endif %} </div> {% endif %} - {% if title or sub_title %} - {% if title %} <h{{ header_level }} class="card__title"> {% if url %} @@ -51,41 +48,40 @@ {% endif %} </div> {% endif %} - </div> {% endif %} - <div class="card__content"> - {% if sources or img_element %} - <div class="card__media"> - {% if url %} - <a href="{{ url }}"> + {% if sources or img_element %} + <div class="card__media"> + {% if url %} + <a href="{{ url }}"> {% endif %} {% include "@components/responsive-image/responsive-image.twig" with { - sources: sources, - img_element: img_element, - alt: alt + sources: sources, + img_element: img_element, + alt: alt }%} {% if url %} - </a> - {% endif %} + </a> + {% endif %} + </div> + {% endif %} + <div class="card__content"> + {{ content }} + </div> + + </div> + {% if footer or read_more or tags or social_media %} + <div class="card__footer"> + {{ footer }} + {% if tags %} + <div class="card__tags"> + {% for tag in tags %} + {% include "@components/tag-list/tag-list.twig" with { + items: tag + } %} + {% endfor %} </div> {% endif %} - <div class="card_summary"> - {{ content }} - </div> - </div> - {% if footer or read_more or tags or card_social_media %} - <div class="card__footer"> - {{ footer }} - {% if tags %} - <div class="card__tags"> - {% for tag in tags %} - {% include "@components/tag-list/tag-list.twig" with { - items: tag - } %} - {% endfor %} - </div> - {% endif %} {% if read_more and url %} <div class="card__readmore"> {{ macros.readmore(url, title) }} @@ -96,7 +92,6 @@ {% include "@components/menu/menu--social/menu--social.twig" %} </div> {% endif %} - </div> - {% endif %} - </div> + </div> + {% endif %} </article> -- GitLab