unlcms / project-herbie

Drupal 10 implementation at the University of Nebraska–Lincoln
https://cms.unl.edu
GNU General Public License v2.0
6 stars 6 forks source link

Remove grid columns from display banner to allow side-by-side layout #770

Open skoolbus39 opened 1 month ago

skoolbus39 commented 1 month ago

The grid columns used in the display banner are too wide (at some viewport widths) to place multiple display banners in a grid next to one another. Removing the grid columns allows the display banners to conform to the width of its container. Here are the changes:

CSS This can replace all of the old CSS.

.unlcms-display-banner {
  container-type: inline-size;
}

/* max sm 673px */
@container (max-width: 42.09em) {

  .unlcms-display-banner-grid {
    grid-template-rows: auto auto auto;
    padding-bottom: 2.37em;
  }

  .unlcms-display-banner-text {
    grid-area: 2 / 1 / 3 / -1;
    padding-top: 1em;
  }

  .unlcms-display-banner-img {
    grid-area: 1 / 1 / 2 / -1;
  }

  .unlcms-display-banner-btn-group {
    grid-area: 3 / 1 / 4 / -1;
  }

  .unlcms-display-banner-grid:not(:has(header + p)) {
    grid-template-rows: 1fr auto auto .78rem;
    height: 63vh;
    max-height: 31.57em;
    padding-bottom: 0;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-text {
    grid-area: 2 / 1 / 3 / -1;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-img {
    grid-area: 1 / 1 / -1 / -1;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-btn-group {
    grid-area: 3 / 1 / 4 / -1;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-text-c,
  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-btn-group-c {
    justify-content: center;
    justify-self: center;
    text-align: center;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-text-r,
  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-btn-group-r {
    justify-self: end;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-heading,
  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-body {
    box-shadow: .75rem 0 0 #242423, -.56rem 0 0 #242423;
    margin-left: .56rem !important;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-heading {
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  .unlcms-display-banner:not(:has(header + p)) .unlcms-display-banner-subhead {
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    box-shadow: .75rem 0 0 #242423, -.75rem 0 0 #242423;
    margin-left: .75rem !important;
    padding-block: .18rem;
  }

}

/* min sm 673px */
@container (min-width: 42.09em) {

  .unlcms-display-banner-heading,
  .unlcms-display-banner-body {
    box-shadow: .75rem 0 0 #242423, -.56rem 0 0 #242423;
    margin-left: .56rem !important;
  }

  .unlcms-display-banner-heading {
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  .unlcms-display-banner-subhead {
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    box-shadow: .75rem 0 0 #242423, -.75rem 0 0 #242423;
    margin-left: .75rem !important;
    padding-block: .18rem;
  }

  .unlcms-display-banner-grid {
    grid-template-rows: 1fr auto auto .78rem;
    height: 63vh;
    max-height: 31.57em;
  }

  .unlcms-display-banner-text {
    grid-area: 2 / 1 / 3 / -1;
  }

  .unlcms-display-banner-img {
    grid-area: 1 / 1 / -1 / -1;
  }

  .unlcms-display-banner-btn-group {
    grid-area: 3 / 1 / 4 / -1;
  }

  .unlcms-display-banner-text-c,
  .unlcms-display-banner-btn-group-c {
    justify-content: center;
    justify-self: center;
    text-align: center;
  }

  .unlcms-display-banner-text-r,
  .unlcms-display-banner-btn-group-r {
    justify-self: end;
  }

}

HTML

<div class="dcf-bleed unl-bg-darkest-gray unlcms-display-banner">
  <div class="dcf-d-grid dcf-row-gap-4 unlcms-display-banner-grid">
    <div class="dcf-wrapper dcf-z-1 dcf-w-100% dcf-w-max-lg unlcms-display-banner-text unlcms-display-banner-text-c">
      <header class="unlcms-display-banner-header">
        <p class="dcf-mb-3 dcf-txt-xs dcf-lh-3 dcf-uppercase dcf-bold unl-ls-2 unl-cream"><span class="unl-bg-darkest-gray unlcms-display-banner-subhead">Cras mattis consectetur purus sit amet fermentum</span></p>
        <h2 class="dcf-d-inline dcf-txt-h1 unl-cream unl-bg-darkest-gray unlcms-display-banner-heading">Troy Finds Ways to Serve Others on Campus and in Career</h2>
      </header>
      <p>Max 480 characters. Donec sed odio dui. Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
    </div>
    <div class="unlcms-display-banner-img dcf-ratio dcf-ratio-16x9">
      <picture>
        <source srcset="https://www.unl.edu/styles/16x9_3200x1800/public/images/hero/troy-hero%281%29.jpg?itok=RXYUWolL&amp;timestamp=1673973237 1.5x, https://www.unl.edu/styles/16x9_1920x1080/public/images/hero/troy-hero%281%29.jpg?itok=LYtekXDq&amp;timestamp=1673973237 1x, https://www.unl.edu/styles/16x9_3200x1800/public/images/hero/troy-hero%281%29.jpg?itok=RXYUWolL&amp;timestamp=1673973237 2x" media="(min-width: 1600px)">
        <source srcset="https://www.unl.edu/styles/16x9_2400x1350/public/images/hero/troy-hero%281%29.jpg?itok=X-YcEfBM&amp;timestamp=1673973237 1.5x, https://www.unl.edu/styles/16x9_1600x900/public/images/hero/troy-hero%281%29.jpg?itok=MNkLh4lu&amp;timestamp=1673973237 1x, https://www.unl.edu/styles/16x9_3200x1800/public/images/hero/troy-hero%281%29.jpg?itok=RXYUWolL&amp;timestamp=1673973237 2x" media="(min-width: 1044px)">
        <source srcset="https://www.unl.edu/styles/16x9_1920x1080/public/images/hero/troy-hero%281%29.jpg?itok=LYtekXDq&amp;timestamp=1673973237 1.5x, https://www.unl.edu/styles/16x9_1280x720/public/images/hero/troy-hero%281%29.jpg?itok=ST8459GL&amp;timestamp=1673973237 1x, https://www.unl.edu/styles/16x9_2560x1440/public/images/hero/troy-hero%281%29.jpg?itok=LC0tOyMJ&amp;timestamp=1673973237 2x" media="(min-width: 980px)">
        <source srcset="https://www.unl.edu/styles/16x9_1440x810/public/images/hero/troy-hero%281%29.jpg?itok=mjUV88IF&amp;timestamp=1673973237 1.5x, https://www.unl.edu/styles/16x9_960x540/public/images/hero/troy-hero%281%29.jpg?itok=Kf0oyF1R&amp;timestamp=1673973237 1x, https://www.unl.edu/styles/16x9_1920x1080/public/images/hero/troy-hero%281%29.jpg?itok=LYtekXDq&amp;timestamp=1673973237 2x" media="(min-width: 768px)">
        <source srcset="https://www.unl.edu/styles/16x9_960x540/public/images/hero/troy-hero%281%29.jpg?itok=Kf0oyF1R&amp;timestamp=1673973237 1.5x, https://www.unl.edu/styles/16x9_640x360/public/images/hero/troy-hero%281%29.jpg?itok=BEWTDPIz&amp;timestamp=1673973237 1x, https://www.unl.edu/styles/16x9_1280x720/public/images/hero/troy-hero%281%29.jpg?itok=ST8459GL&amp;timestamp=1673973237 2x" media="(min-width: 480px)">
        <source srcset="https://www.unl.edu/styles/16x9_720x405/public/images/hero/troy-hero%281%29.jpg?itok=P-iUIfst&amp;timestamp=1673973237 1.5x, https://www.unl.edu/styles/16x9_480x270/public/images/hero/troy-hero%281%29.jpg?itok=qKo_hzRB&amp;timestamp=1673973237 1x, https://www.unl.edu/styles/16x9_960x540/public/images/hero/troy-hero%281%29.jpg?itok=Kf0oyF1R&amp;timestamp=1673973237 2x" media="(min-width: 0px)">
        <img class="dcf-ratio-child dcf-obj-fit-cover unlcms-slow-zoom-in" fetchpriority="high" src="https://www.unl.edu/styles/16x9_960x540/public/images/hero/troy-hero%281%29.jpg?itok=Kf0oyF1R&amp;timestamp=1673973237" alt="">
      </picture>
    </div>
    <!-- if more than one button -->
    <div class="dcf-wrapper dcf-d-flex dcf-flex-wrap dcf-gap-3 dcf-z-1 dcf-w-100% dcf-w-max-lg unlcms-display-banner-btn-group unlcms-display-banner-btn-group-c" role="group">
      <a href="https://go.unl.edu/0wk7" class="dcf-btn dcf-btn-primary">Learn More<span class="dcf-sr-only"> about Troy</span></a>
      <a href="https://go.unl.edu/v6zf" class="dcf-btn dcf-btn-primary">Explore Admissions</a>
    </div>
    <!-- else only one button (to test: comment out button group above, uncomment line below) -->
    <!-- <div class="dcf-wrapper dcf-d-flex dcf-flex-wrap dcf-gap-3 dcf-z-1 dcf-w-100% dcf-w-max-lg unlcms-display-banner-btn-group unlcms-display-banner-btn-group-c">
      <a href="https://go.unl.edu/v6zf" class="dcf-btn dcf-btn-primary">Explore Admissions</a>
    </div> -->
  </div>
</div>

One more thing: it looks like role="group" isn't being removed if there is only one button. See example in the commented markup in the button group above.