.cell { padding: $gap / 4; box-sizing: border-box; display: flex; flex: 0 0; background: $cell_bg; border-radius: $cell_radius; position: relative; cursor: pointer; color: white; background: 50% 50% no-repeat/cover; .is_hero { .title { font: $font_hero_title; } } .is_text { .title { display: none; } } @include outer_shadow(); } .text { font: $font_18_regular; line-height: 22px; margin-top: $gap; // letter-spacing: 0.5px; p { margin-bottom: $gap; } &::after { content: ' '; position: absolute; bottom: 0; left: 0; width: 100%; height: 160px; pointer-events: none; touch-action: none; background: linear-gradient(transparentize($content_bg, 1), $content_bg 95%); z-index: 1; border-radius: 0 0 $radius $radius; } @media (max-width: $cell * 2 + $grid_line) { display: none; } } .title, .text_title { font: $font_cell_title; line-height: 1.1em; text-transform: uppercase; overflow: hidden; box-sizing: border-box; word-break: break-word; @media (max-width: $cell * 2) { font: $font_18_semibold; } } .title { // max-height: 3.3em; } .text_title { margin-bottom: $gap / 2; } .horizontal, .quadro { grid-column-end: span 2; } .vertical, .quadro { grid-row-end: span 2; } @media (max-width: $cell * 2) { .horizontal, .quadro, .vertical, .quadro { grid-row-end: span 1; grid-column-end: span 1; } } .is_text { background: none; padding: 10px; box-shadow: inset $cell_shade 0 0 0 1px; } .thumbnail { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: 50% 50% no-repeat; background-size: cover; z-index: 1; border-radius: $cell_radius + 2px; opacity: 0; transition: opacity 0.5s; will-change: transform; & > img { opacity: 0; width: 0; height: 0; } } @keyframes appear { from { opacity: 0; } to { opacity: 1; } } .face { @include outer_shadow(); display: flex; overflow: hidden; box-sizing: border-box; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient($content_bg, transparentize($content_bg, 1)); z-index: 2; border-radius: $cell_radius; padding: $gap; pointer-events: none; touch-action: none; animation: appear 1s forwards; @media (min-width: $cell * 2 + $grid_line) { .vertical > &.has_text, .horizontal > &.has_text, .quadro > &.has_text { box-sizing: border-box; background: none; box-shadow: none; padding: $grid_line; &::after { display: none; } .face_content { padding: $gap; background: rgba(25, 25, 25, 0.9); border-radius: $radius; overflow: hidden; position: relative; &:after { content: ''; background: linear-gradient(transparentize($content_bg, 1), $content_bg); position: absolute; bottom: 0; left: 0; height: 50px; width: 100%; border-radius: 0 0 $cell_radius $cell_radius; } } .text::after { display: none; } } .vertical > &.has_text { top: auto; bottom: 0; max-height: 50%; max-width: 100%; height: auto; width: auto; padding: ($grid_line / 2) $grid_line $grid_line $grid_line; } .horizontal > &.has_text { top: auto; left: 0; height: 100%; max-width: 50%; // height: auto; width: auto; bottom: 0; padding: $grid_line ($grid_line / 2) $grid_line $grid_line; } .quadro > &.has_text { padding: ($grid_line / 2) ($grid_line / 2) $grid_line $grid_line; top: auto; max-height: 50%; max-width: 50%; height: auto; width: auto; bottom: 0; left: 0; } } } .menu { position: absolute; top: -$gap; right: -$gap; z-index: 4; border-radius: $radius; pointer-events: none; touch-action: none; transition: opacity 0.5s; box-sizing: border-box; display: flex; align-items: stretch; justify-content: center; padding: $gap; &:hover { opacity: 1; pointer-events: all; touch-action: auto; .menu_content { opacity: 1; } } @media (max-width: $cell * 2 + $grid_line) { right: 0; top: 0; display: none; } } .menu_button { pointer-events: all; touch-action: auto; position: absolute; z-index: 4; width: 32px + $gap * 2; height: 32px + $gap * 2; display: flex; align-items: center; justify-content: center; opacity: 0.2; svg { fill: white; width: 30px; height: 30px; } } .menu_content { flex: 1; opacity: 0; background: $red_gradient; padding: (32px + $gap * 2) $gap $gap $gap; border-radius: $radius; display: flex; align-items: center; justify-content: center; display: flex; flex-direction: column; transition: opacity 0.5s; will-change: opacity; & > * { margin-top: $gap; opacity: 0.5; transition: opacity 0.25s; &:hover { opacity: 1; } } svg { fill: #222222; width: 30px; height: 30px; } } .menu_sep { width: 20px; height: 2px; flex: 0 0 4px; background-color: #222222; opacity: 0.2; border-radius: 2px; }