Buliding HTML Structure
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <div class="wrapper"> <div class="items"> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/KTU286)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/SMBrES)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/f8spJ8)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/SwM7dn)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/8Oipim)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/BWYQgv)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/KzNDfr)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/ne5nuX)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/cwZrVj)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/Xvf2a1)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/pCrIJq)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/mSLCrl)"></div> <div class="item" tabindex="0" style="background-image: url(https://e22u.short.gy/EwQcy5)"></div> <!-- If images are not comming try with other image link --> </div> </div> </body> </html>
Styling CSS
* { margin: 0; padding: 0; box-sizing: border-box; } body{ background-color: #141414; } .wrapper{ display: flex; align-items: center; justify-content: center; height: 100vh; } :root{ --index: calc(1vw + 1vh); --transition: cubic-bezier(.1, .7, 0, 1); } .items{ display: flex; gap: 0.4rem; perspective: calc(var(--index) * 35); } .item{ width: calc(var(--index) * 3); height: calc(var(--index) * 12); background-color: #222; background-size: cover; background-position: center; cursor: pointer; filter: grayscale(1) brightness(.5); transition: transform 1.25s var(--transition), filter 3s var(--transition), width 1.25s var(--transition); will-change: transform, filter, rotateY, width; } .item::before, .item::after{ content: ''; position: absolute; height: 100%; width: 20px; right: calc(var(--index) * -1); } .item::after{ left: calc(var(--index) * -1); } .items .item:hover{ filter: inherit; transform: translateZ(calc(var(--index) * 10)); } .items .item:hover + *{ filter: inherit; transform: translateZ(calc(var(--index) * 8.5)) rotateY(35deg); z-index: -1; } .items .item:hover + * + *{ filter: inherit; transform: translateZ(calc(var(--index) * 5.6)) rotateY(40deg); z-index: -2; } .items .item:hover + * + * + *{ filter: inherit; transform: translateZ(calc(var(--index) * 2.5)) rotateY(30deg); z-index: -3; } .items .item:hover + * + * + * + *{ filter: inherit; transform: translateZ(calc(var(--index) * .6)) rotateY(15deg); z-index: -4; } .items .item:has( + :hover){ filter: inherit; transform: translateZ(calc(var(--index) * 8.5)) rotateY(-35deg); } .items .item:has( + * + :hover){ filter: inherit; transform: translateZ(calc(var(--index) * 5.6)) rotateY(-40deg); } .items .item:has( + * + * + :hover){ filter: inherit; transform: translateZ(calc(var(--index) * 2.5)) rotateY(-30deg); } .items .item:has( + * + * + * + :hover){ filter: inherit; transform: translateZ(calc(var(--index) * .6)) rotateY(-15deg); } .items .item:active, .items .item:focus { width: 28vw; filter: inherit; z-index: 100; transform: translateZ(calc(var(--index) * 10)); margin: 0 .45vw; }
0 Comments