2 390 Codepen

Эффект тесселяции при наведении на ячейку в grid css

Эффект тесселяции при наведении на ячейки в сетке. Сетка grid построена на базе 200 блоков. Сделан эффект на чистом CSS

PUG

- var tiles = 0;
div.grid 
  while tiles < 200
    div.tile 
      div.lobe
      div.lobe 
      div.lobe
    - tiles++;

SCSS

$tileSize: 5vw;
$ratio: 2.6;
$colors: (
  primary: #DAEAEF,
    secondary: #272F32
);

html,body {
    margin:  0;
    padding: 0;
    overflow: hidden;
  .grid {
    margin-left: -$tileSize;
    margin-right: -$tileSize*2;
    display: grid;
    grid-template-columns: repeat(auto-fill, $tileSize*($ratio/1.5));
    grid-template-rows:    repeat(50, $tileSize*3);
    background: map-get($colors, secondary);
    .tile {
      position: relative;
      height: $tileSize;
      width: $tileSize;
      transform-origin: top right;
      transition: all .75s ease-out;
      &:nth-child(2n) {
        margin-top: $tileSize;
        transform: rotate(60deg);
      } 
      &:hover {
        transition: none;
        filter: blur($tileSize/2) saturate(20);
        z-index: 9999;
      }
      .lobe {
        position: absolute;
        width: $tileSize+.15;
        height: $tileSize+.3;
        transform-origin: 100% 1%;
        background-color: #000;
        transition: inherit;
        background: map-get($colors, primary);
        &:nth-child(1) {
          transform: rotate(0deg) skewy(30deg) scalex($ratio/1.5) ;
        }
        &:nth-child(2) {
          transform: rotate(120deg) skewy(30deg) scalex($ratio/1.5);
        }
        &:nth-child(3) {
          transform: rotate(240deg) skewy(30deg) scalex($ratio/1.5);
        }
      }
    }
  }
}

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи