@each $name, $pair in $colors
  $color: nth($pair, 1)
  .has-text-#{$name}
    --has-text-hover-delta: -10%
    --has-text-hover-#{$name}-l: calc(#{var(--#{$name}-l)} + #{var(--has-text-hover-delta)})
    --has-text-hover-color: hsla(var(--#{$name}-h), var(--#{$name}-s), var(--has-text-hover-#{$name}-l), var(--#{$name}-a))
    color: var(--#{$name}, #{$color}) !important
    &:hover,
    &:focus
      color: var(--has-text-hover-color, #{bulmaDarken($color, 10%)}) !important
  .has-background-#{$name}
    background-color: var(--#{$name}, #{$color}) !important
  @if length($pair) >= 4
    $color-light: nth($pair, 3)
    $color-dark: nth($pair, 4)
    // Light
    .has-text-#{$name}-light
      --has-text-light-hover-delta: -10%
      --has-text-light-hover-#{$name}-l: calc(#{var(--#{$name}-light-l)} + #{var(--has-text-light-hover-delta)})
      --has-text-light-hover-color: hsla(var(--#{$name}-h), var(--#{$name}-s), var(--has-text-light-hover-#{$name}-l), var(--#{$name}-a))
      color: var(--#{$name}-light, #{$color-light}) !important
    a.has-text-#{$name}-light
      &:hover,
      &:focus
        color: var(--has-text-light-hover-color, #{bulmaDarken($color-light, 10%)}) !important
    .has-background-#{$name}-light
      background-color: var(--#{$name}-light, #{$color-light}) !important
    // Dark
    .has-text-#{$name}-dark
      --has-text-dark-hover-delta: 10%
      --has-text-dark-hover-#{$name}-l: calc(#{var(--#{$name}-dark-l)} + #{var(--has-text-dark-hover-delta)})
      --has-text-dark-hover-color: hsla(var(--#{$name}-h), var(--#{$name}-s), var(--has-text-dark-hover-#{$name}-l), var(--#{$name}-a))
      color: var(--#{$name}-dark, #{$color-dark}) !important
    a.has-text-#{$name}-dark
      &:hover,
      &:focus
        color: var(--has-text-dark-hover-color, #{bulmaLighten($color-dark, 10%)}) !important
    .has-background-#{$name}-dark
      background-color: var(--#{$name}-dark, #{$color-dark}) !important

@each $name, $shade in $shades
  .has-text-#{$name}
    color: var(--#{$name}, #{$shade}) !important
  .has-background-#{$name}
    background-color: var(--#{$name}, #{$shade}) !important
