<div class="cookie-message">
    <p class="cookie-message__text">
        Wellcome uses cookies. </p>
</div>
  • Content:
    .sitewide-message,
    .cookie-message {
      @include rem(padding, $grid-typo-spacing-xxs);
      background: $sitewideMessageBackgroundColour;
      box-sizing: border-box;
      color: $sitewideMessageColour;
      position: relative;
      z-index: 5;
    
      a {
        color: $sitewideMessageColour;
      }
    }
    
    .sitewide-message {
      bottom: 0;
      left: 0;
      position: fixed;
      width: 100vw;
    
      .enhanced & {
        display: none;
      }
    
      .show-sitewide-message & {
        // class is added to the body with javascript if cookie present, meaning the message has already been displayed.
        display: block;
      }
    }
    
    .sitewide-message__text,
    .cookie-message__text {
      @include font-size-with-line-height($bodyFontSize, $smallTextLineHeight);
      margin: 0;
      padding-right: $grid-typo-spacing-xs + $grid-typo-spacing-xxxs;
    }
    
    .cookie-message {
      background: $cookieMessageBackgroundColour;
      border-bottom: 1px $ruleAndSeparatorColour solid;
      color: $cookieMesssageColour;
    
      .enhanced & {
        bottom: 0;
        display: none;
        left: 0;
        position: fixed;
        width: calc(100vw - #{$grid-typo-spacing-l});
        z-index: 6;
    
        @include respond-to($grid-breakpoint-s) {
          width: 100vw;
        }
      }
    
      .show-cookie-message & {
        // class is added to the body with javascript if cookie present, meaning the message has already been displayed.
        display: block;
      }
    
      a {
        color: $cookieMesssageColour;
      }
    }
    
    .cookie-message__button,
    .sitewide-message__button {
      @include image-replacement;
      background-color: $transparent;
      height: 1.5em;
      margin: 0;
      padding: 0;
      position: absolute;
      right: $grid-typo-spacing-xs;
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
      width: 1.5em;
    
      .enhanced &:focus,
      .enhanced &:hover {
        background-color: $transparent;
        transform: translateY(-50%) rotate(35deg);
      }
    
      &:before {
        content: none;
      }
    }
    
    .cookie-message__button {
      @extend %icon--cross--white;
      background-size: 15px 15px;
    }
    
    button.cookie-message__button {
      // over rides
      @extend %button__overrides--general;
      min-width: auto;
    }
    
    .sitewide-message__button {
      @extend %icon--cross--black;
      background-size: 10px 10px;
      transform: translateY(-50%) rotate(45deg);
      .enhanced &:hover {
        transform: translateY(-50%) rotate(40deg);
      }
    }
    
  • URL: /components/raw/sitewide-messages/_cookie-message.scss
  • Filesystem Path: ../../modules/custom/corp_markup/theme/sitewide/sitewide_messages.tpl.php/_cookie-message.scss
  • Size: 2.2 KB
  • Content:
    import Cookies from '../../../libraries/js.cookie.js';
    import { Button } from '../../utils/dom-builders.js';
    /**
     * This function manages cookie and sitewide messages
     */
    const cookieMessage = function() {
      const sitewideMessage = document.querySelector('.sitewide-message');
      const cookieMessage = document.querySelector('.cookie-message');
    
      const cookieValue = Cookies.get('cookieSeen');
      const sitewideMessageCookie = Cookies.get('swSeen');
    
      const dismissButton = Button(['cookie-message__button'], 'Remove cookie message');
      const swDismissButton = Button(['sitewide-message__button'], 'Remove sitewide message');
    
      if (!sitewideMessage) {
        document.body.classList.add('sitewide-message-not-present');
      }
    
      if (typeof cookieValue === 'undefined') { // then show the cookie message, add the button and set the cookie
        document.body.classList.add('show-cookie-message');
        if (cookieMessage) {
          cookieMessage.appendChild(dismissButton);
          dismissButton.addEventListener('click', e => {
            document.body.classList.add('show-sitewide-message');
            document.body.classList.remove('show-cookie-message');
          });
        }
        Cookies.set('cookieSeen', 'true', { expires: 28 });
      } else {
        document.body.classList.add('show-sitewide-message');
      }
    
      if (typeof sitewideMessageCookie === 'undefined') { // then show the sitewide message, add the button and set the cookie
        if (sitewideMessage) {
          sitewideMessage.appendChild(swDismissButton);
          swDismissButton.addEventListener('click', e => {
            Cookies.set('swSeen', 'true', { expires: 1 });
            document.body.classList.remove('show-sitewide-message');
          });
        }
      }
    };
    
    export {
      cookieMessage
    };
    
  • URL: /components/raw/sitewide-messages/messages.js
  • Filesystem Path: ../../modules/custom/corp_markup/theme/sitewide/sitewide_messages.tpl.php/messages.js
  • Size: 1.7 KB

Description

This is a universal sitewide message component. It has two display modes, sitewide-message or cookie-message. The modes can be switched by specifiyng the class variable.


Content notes

UX notes

Design notes

Back-end notes

Front-end notes

As of now, the close button is attached in JS in the messages.js module.

{
  "class": "cookie-message",
  "message_text": "Wellcome uses cookies."
}