ul.content
  li#content-item-01.content__item
    div.content__item__text
      | item1
  li#content-item-02.content__item
    div.content__item__text
      | item2
  li#content-item-03.content__item
    div.content__item__text
      | item3
View Compiled
@import 'nib'

cWidth = 30px
sWidth = 200px

createGradient(type, str)
  dev = 20
  spl = 100 / dev
  for i in (0..dev)
    if i % 2 == 1
      if i
        str = str + ',#888 ' + ((i - 1) * spl) + '.01%'
      str = str + ',#888 ' + (i * spl) + '%'
    else
      if i
        str = str + ',#000 ' + ((i - 1) * spl) + '.01%'
      str = str + ',#000 ' + (i * spl) + '%'
  if type == 'linear'
    str = 'linear-gradient(' + str + ')'
  else
    str = 'radial-gradient(' + str + ')'
  background-image unquote(str)

body
  display flex
  flex-flow row nowrap
  align-items center
  justify-content stretch
  min-height 100vh

.content
  width 100%
  min-height 100vh
  background-color #ff0
  display flex
  flex-flow row nowrap
  align-items stretch
  justify-content stretch
  
  &__item
    display inline-block
    background-color #0ff
    width 33%
    flex-grow 1
    flex-shrink 1
    display flex
    flex-flow column nowrap
    justify-content center
    align-items center
    position relative
    overflow hidden
    transition all .2s ease 0s
    z-index 10

    &__text
      size 80px
      background-color #fff
      display flex
      flex-flow column nowrap
      justify-content center
      align-items center
      border-radius 50%
      position relative
      z-index 4
      font-size 14px
      transition all .2s ease 0s

    &:hover
      width 50%
      flex-glow 2

      & ^[1]__text
        size 120px
        font-size 18px

    &::before
    &::after
      content ''
      absolute left 50% top 50%
      size 100vmax
      margin-top -50vmax
      margin-left -50vmax
      animation-duration 20s
      animation-timing-function linear
      animation-delay 0s
      animation-iteration-count infinite
      animation-direction normal
      
    &::before
      mix-blend-mode overlay
      animation-name cont_anim1
      z-index 1

    &::after
      mix-blend-mode overlay
      animation-name cont_anim2
      z-index 2
    
    color-high = #aaa
    color-low = #888

    &:nth-child(1)
      background-image linear-gradient(
        bottom left,
        #ff8 0%,
        #f88 100%
      )
      
      &::before
        background-image repeating-linear-gradient(
          -45deg,
          color-high 0px, color-high 10px,
          color-low 10px, color-low 20px
        )

      &::after
        background-image repeating-linear-gradient(
          45deg,
          color-high 0px, color-high 10px,
          color-low 10px, color-low 20px
        )

    &:nth-child(2)
      background-image linear-gradient(
        bottom left,
        #f8f 0%,
        #88f 100%
      )
      
      &::before
        background-image repeating-radial-gradient(
          -45deg,
          color-high 0%, color-high 2%,
          color-low 2%, color-low 4%
        )
        animation-name cont_anim3

      &::after
        background-image repeating-linear-gradient(
          45deg,
          color-high 0px, color-high 10px,
          color-low 10px, color-low 20px
        )

    &:nth-child(3)
      background-image linear-gradient(
        bottom left,
        #8ff 0%,
        #8f8 100%
      )
      
      &::before,
      &::after
        background-image radial-gradient(
          color-low 40%,
          transparent 0
        ), radial-gradient(
          color-low 40%,
          transparent 0
        )
        background-color color-high
        background-position 0 0, 10px 10px
        background-size 20px 20px

  @keyframes cont_anim1
    to
      transform rotate(0deg)
    from
      transform rotate(360deg)

  @keyframes cont_anim2
    to
      transform rotate(360deg)
    from
      transform rotate(0deg)

  @keyframes cont_anim3
    0%
      size 100vmax
      margin-top -50vmax
      margin-left -50vmax
    50%
      size 200vmax
      margin-top -100vmax
      margin-left -100vmax
    100%
      size 100vmax
      margin-top -50vmax
      margin-left -50vmax
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.