messages.pcss.css

Same filename in this branch
  1. main core/misc/dialog/off-canvas/css/messages.pcss.css
  2. main core/themes/olivero/css/components/messages.pcss.css
  3. main core/themes/claro/css/components/messages.pcss.css
  4. main core/themes/admin/css/components/messages.pcss.css
Same filename and directory in other branches
  1. 10 core/misc/dialog/off-canvas/css/messages.pcss.css
  2. 10 core/themes/olivero/css/components/messages.pcss.css
  3. 10 core/themes/claro/css/components/messages.pcss.css
  4. 11.x core/misc/dialog/off-canvas/css/messages.pcss.css
  5. 11.x core/themes/olivero/css/components/messages.pcss.css
  6. 11.x core/themes/claro/css/components/messages.pcss.css
  7. 9 core/themes/olivero/css/components/messages.pcss.css
  8. 9 core/themes/claro/css/components/messages.pcss.css
  9. 8.9.x core/themes/claro/css/components/messages.pcss.css
  10. 11.x core/themes/admin/css/components/messages.pcss.css
  11. 11.x core/themes/default_admin/css/components/messages.pcss.css
/**
 * Messages.
 *
 * @todo revisit this after https://www.drupal.org/project/drupal/issues/3078400
 *   has been resolved.
 */

.messages-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.field .messages-list,
.form-wrapper .messages-list {
  margin-block-end: 0;
}

.messages {
  --messages-bg-color: #353641;
  /* Fixed white: text on the always-dark message banner (--messages-bg-color). */
  --messages-fg-color: var(--admin-color-white);
  --messages-icon: none;

  position: relative;
  overflow: auto; /* Required to prevent text clipping. */
  box-sizing: border-box;
  padding: var(--admin-space-m);
  opacity: 1;
  color: var(--messages-fg-color);
  border: 2px solid transparent;
  border-radius: var(--admin-radius-l);
  background-color: var(--messages-bg-color);
  margin-block: 0 var(--admin-space-m);

  a {
    &,
    &:hover,
    &:active {
      color: #fff;
    }
  }

  pre {
    margin: 0;
  }

  .gin--dark-mode & {
    box-shadow: 0 6px 16px var(--admin-color-border-soft);
  }

  /* If Layout Builder form is active, remove background images. */
  .layout-builder__message--defaults &,
  .layout-builder__message--overrides & {
    background-image: none;
  }

  .button--dismiss {
    position: absolute;
    width: 29px;
    height: 29px;
    margin: var(--admin-space-s);
    padding: 0;
    text-indent: -99999px;
    color: transparent;
    border-color: transparent;
    border-radius: var(--admin-radius-m);
    box-shadow: none;
    inset-block-start: 0;
    inset-inline-end: 0;

    &:focus {
      background-color: transparent;
    }

    &:hover:not(:focus) {
      color: transparent;
      border-color: #fff;
      background-color: transparent;
    }

    .icon-close {
      position: absolute;
      width: 100%;
      height: 100%;
      background-color: #fff;
      inset-block-start: 0;
      inset-inline-start: 0;
      mask-image: var(--admin-icon-close);
      mask-size: 16px 16px;
      mask-repeat: no-repeat;
      mask-position: center;

      @media (forced-colors: active) {
        background-color: buttonBorder;
      }
    }

    @media (prefers-reduced-motion: no-preference) {
      transition: var(--admin-transition);
    }
  }

  @media (prefers-reduced-motion: no-preference) {
    transition: opacity var(--admin-transition-slow);
  }
}

/*
 * Message banners use a dark-tinted background with a light status-colored
 * foreground (same in light and dark mode). These specific tints are scoped to
 * the component rather than the global token API — only messages use this
 * dark-banner treatment. The global status semantics (light tint + dark text)
 * are --admin-color-bg-* / --admin-color-text-*.
 */
.messages--error {
  --messages-bg-color: #583333;
  --messages-fg-color: #f39b9d;
  --messages-icon: var(--admin-icon-error);
}

.messages--status {
  --messages-bg-color: #145242;
  --messages-fg-color: #32cea4;
  --messages-icon: var(--admin-icon-status);
}

.messages--warning {
  --messages-bg-color: #483e1e;
  --messages-fg-color: #efcf64;
  --messages-icon: var(--admin-icon-warning);
}

.messages--info {
  --messages-bg-color: #122b3c;
  --messages-fg-color: #589ac5;
  --messages-icon: var(--admin-icon-info);
}

.messages__title {
  margin-block: 0;
  margin-inline: 2.125rem 0;
  font-size: var(--admin-font-size-m);
  font-weight: var(--admin-font-weight-bold);
}

.messages__header {
  position: relative;
  display: flex;
  align-items: center;
  margin-block-end: var(--admin-space-xs);
  margin-inline-end: 1.5em;

  &::before {
    position: absolute;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    content: "";
    inset-block-start: 2px;
    inset-inline-start: 0;
    mask-image: var(--messages-icon);
    mask-repeat: no-repeat;
    mask-position: center left;
    background-color: var(--messages-fg-color);

    &:dir(rtl) {
      mask-position: center right;
    }

    /* If no icon, then remove the pseudo-element. */
    @container style(--messages-icon: none) {
      content: none;
    }

    @media (forced-colors: active) {
      background-color: linktext;
    }
  }
}

.messages__content {
  margin-inline-start: 2.125rem;
}

.messages__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.messages__item + .messages__item {
  margin-block-start: var(--admin-space-s);
}

File

core/themes/default_admin/css/components/messages.pcss.css

View source
  1. /**
  2. * Messages.
  3. *
  4. * @todo revisit this after https://www.drupal.org/project/drupal/issues/3078400
  5. * has been resolved.
  6. */
  7. .messages-list {
  8. margin: 0;
  9. padding: 0;
  10. list-style: none;
  11. }
  12. .field .messages-list,
  13. .form-wrapper .messages-list {
  14. margin-block-end: 0;
  15. }
  16. .messages {
  17. --messages-bg-color: #353641;
  18. /* Fixed white: text on the always-dark message banner (--messages-bg-color). */
  19. --messages-fg-color: var(--admin-color-white);
  20. --messages-icon: none;
  21. position: relative;
  22. overflow: auto; /* Required to prevent text clipping. */
  23. box-sizing: border-box;
  24. padding: var(--admin-space-m);
  25. opacity: 1;
  26. color: var(--messages-fg-color);
  27. border: 2px solid transparent;
  28. border-radius: var(--admin-radius-l);
  29. background-color: var(--messages-bg-color);
  30. margin-block: 0 var(--admin-space-m);
  31. a {
  32. &,
  33. &:hover,
  34. &:active {
  35. color: #fff;
  36. }
  37. }
  38. pre {
  39. margin: 0;
  40. }
  41. .gin--dark-mode
  42. /* If Layout Builder form is active, remove background images. */
  43. .layout-builder__message--defaults &,
  44. .layout-builder__message--overrides
  45. .button--dismiss {
  46. position: absolute;
  47. width: 29px;
  48. height: 29px;
  49. margin: var(--admin-space-s);
  50. padding: 0;
  51. text-indent: -99999px;
  52. color: transparent;
  53. border-color: transparent;
  54. border-radius: var(--admin-radius-m);
  55. box-shadow: none;
  56. inset-block-start: 0;
  57. inset-inline-end: 0;
  58. &:focus {
  59. background-color: transparent;
  60. }
  61. &:hover:not(:focus) {
  62. color: transparent;
  63. border-color: #fff;
  64. background-color: transparent;
  65. }
  66. .icon-close {
  67. position: absolute;
  68. width: 100%;
  69. height: 100%;
  70. background-color: #fff;
  71. inset-block-start: 0;
  72. inset-inline-start: 0;
  73. mask-image: var(--admin-icon-close);
  74. mask-size: 16px 16px;
  75. mask-repeat: no-repeat;
  76. mask-position: center;
  77. @media (forced-colors: active) {
  78. background-color: buttonBorder;
  79. }
  80. }
  81. @media (prefers-reduced-motion: no-preference) {
  82. transition: var(--admin-transition);
  83. }
  84. }
  85. @media (prefers-reduced-motion: no-preference) {
  86. transition: opacity var(--admin-transition-slow);
  87. }
  88. }
  89. /*
  90. * Message banners use a dark-tinted background with a light status-colored
  91. * foreground (same in light and dark mode). These specific tints are scoped to
  92. * the component rather than the global token API — only messages use this
  93. * dark-banner treatment. The global status semantics (light tint + dark text)
  94. * are --admin-color-bg-* / --admin-color-text-*.
  95. */
  96. .messages--error {
  97. --messages-bg-color: #583333;
  98. --messages-fg-color: #f39b9d;
  99. --messages-icon: var(--admin-icon-error);
  100. }
  101. .messages--status {
  102. --messages-bg-color: #145242;
  103. --messages-fg-color: #32cea4;
  104. --messages-icon: var(--admin-icon-status);
  105. }
  106. .messages--warning {
  107. --messages-bg-color: #483e1e;
  108. --messages-fg-color: #efcf64;
  109. --messages-icon: var(--admin-icon-warning);
  110. }
  111. .messages--info {
  112. --messages-bg-color: #122b3c;
  113. --messages-fg-color: #589ac5;
  114. --messages-icon: var(--admin-icon-info);
  115. }
  116. .messages__title {
  117. margin-block: 0;
  118. margin-inline: 2.125rem 0;
  119. font-size: var(--admin-font-size-m);
  120. font-weight: var(--admin-font-weight-bold);
  121. }
  122. .messages__header {
  123. position: relative;
  124. display: flex;
  125. align-items: center;
  126. margin-block-end: var(--admin-space-xs);
  127. margin-inline-end: 1.5em;
  128. &::before {
  129. position: absolute;
  130. display: block;
  131. width: 1.5rem;
  132. height: 1.5rem;
  133. content: "";
  134. inset-block-start: 2px;
  135. inset-inline-start: 0;
  136. mask-image: var(--messages-icon);
  137. mask-repeat: no-repeat;
  138. mask-position: center left;
  139. background-color: var(--messages-fg-color);
  140. &:dir(rtl) {
  141. mask-position: center right;
  142. }
  143. /* If no icon, then remove the pseudo-element. */
  144. @container style(--messages-icon: none) {
  145. content: none;
  146. }
  147. @media (forced-colors: active) {
  148. background-color: linktext;
  149. }
  150. }
  151. }
  152. .messages__content {
  153. margin-inline-start: 2.125rem;
  154. }
  155. .messages__list {
  156. margin: 0;
  157. padding: 0;
  158. list-style: none;
  159. }
  160. .messages__item + .messages__item {
  161. margin-block-start: var(--admin-space-s);
  162. }

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.