$message-background-color: v("background") !default
$message-radius: v("radius") !default

$message-header-background-color: v("text") !default
$message-header-color: v("text-invert") !default
$message-header-weight: v("weight-bold") !default
$message-header-padding: 0.75em 1em !default
$message-header-radius: v("radius") !default

$message-body-border-color: v("border") !default
$message-body-border-width: 0 0 0 4px !default
$message-body-color: v("text") !default
$message-body-padding: 1.25em 1.5em !default
$message-body-radius: v("radius") !default

$message-body-pre-background-color: v("scheme-main") !default
$message-body-pre-code-background-color: transparent !default

$message-header-body-border-width: 0 !default
$message-colors: $colors-list !default

+register(message-background-color,$message-background-color, true)
+register(message-radius,$message-radius, true)
+register(message-header-background-color,$message-header-background-color, true)
+register(message-header-radius,$message-header-radius, true)
+register(message-header-color,$message-header-color, true)
+register(message-header-weight,$message-header-weight, true)
+register(message-header-padding,$message-header-padding, true)
+register(message-header-body-border-width,$message-header-body-border-width, true)
+register(message-body-border-color,$message-body-border-color, true)
+register(message-body-radius,$message-body-radius, true)
+register(message-body-border-width,$message-body-border-width, true)
+register(message-body-color,$message-body-color, true)
+register(message-body-padding,$message-body-padding, true)
+register(message-body-pre-background-color,$message-body-pre-background-color, true)
+register(message-body-pre-code-background-color,$message-body-pre-code-background-color, true)

.message
  @extend %block
  background-color: v("message-background-color")
  border-radius: v("message-radius")
  font-size: v("size-normal")
  strong
    color: currentColor
  a:not(.button):not(.tag):not(.dropdown-item)
    color: currentColor
    text-decoration: underline
  // Sizes
  &.is-small
    font-size: v("size-small")
  &.is-medium
    font-size: v("size-medium")
  &.is-large
    font-size: v("size-large")
  // Colors
  @each $name in $message-colors
    $color: v($name)
    $color-invert: v($name+"-invert")

    &.is-#{$name}
      .message-header
        background-color: $color
        color: $color-invert
      .message-body
        border-color: $color
        @if isRegistered($name+"-dark")
          color: v($name+"-dark")
        @elseif $name == 'dark'

        @if isRegistered($name+"-light")
          background-color: v($name+"-light")
        @elseif $name == 'white'
          background-color: $color
        @else
          background-color: v("scheme-main-bis")

.message-header
  align-items: center
  background-color: v("message-header-background-color")
  border-radius: v("message-header-radius") v("message-header-radius") 0 0
  color: v("message-header-color")
  display: flex
  font-weight: v("message-header-weight")
  justify-content: space-between
  line-height: 1.25
  padding: v("message-header-padding")
  position: relative
  .delete
    flex-grow: 0
    flex-shrink: 0
    +ltr-property("margin-left", 0.75em)
  & + .message-body
    border-width: v("message-header-body-border-width")
    border-top-left-radius: 0
    border-top-right-radius: 0
  &.has-no-body
    border-radius: v("message-header-radius")

.message-body
  border-color: v("message-body-border-color")
  border-radius: v("message-body-radius")
  border-style: solid
  border-width: v("message-body-border-width")
  color: v("message-body-color")
  padding: v("message-body-padding")
  code,
  pre
    background-color: v("message-body-pre-background-color")
  pre code
    background-color: v("message-body-pre-code-background-color")
