codepens/live-react-gallery-with-key.../dist/style.css

90 lines
1.5 KiB
CSS

@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap");
* {
position: relative;
box-sizing: border-box;
}
html {
background: #000;
color: #fff;
font-family: "Montserrat", sans-serif;
font-weight: 400;
}
h1,
h2,
h3,
h4,
strong {
font-weight: 700;
}
body {
min-height: 100vh;
display: grid;
place-items: center;
width: 100%;
overflow: hidden;
}
.app {
display: grid;
padding: 5vmin;
}
.gallery {
display: flex;
gap: 1rem;
margin: 1rem 0;
align-items: center;
}
.image {
flex: 1 1 100%;
opacity: 0.7;
transition: opacity 0.3s linear;
cursor: pointer;
}
.image img {
max-width: 100%;
height: auto;
--radius: 1rem;
border-radius: var(--radius);
}
.image .title {
display: block;
font-size: 2vw;
margin: 0.5rem 0;
color: #aaa;
}
.image .title strong {
display: block;
color: white;
}
.image[data-selected] {
opacity: 1;
flex-grow: 1.15;
flex-shrink: 0.85;
}
[data-flip] {
transition: transform 0.3s cubic-bezier(0.2, 0, 0.5, 1), border-radius 0.3s cubic-bezier(0.2, 0, 0.5, 1);
transform-origin: top left;
}
[data-flipping] {
transition: none;
transform: var(--flip-translate) var(--flip-scale);
--flip-translate: translate(calc(-1px * var(--dx)), calc(-1px * var(--dy)));
--flip-scale: scale(calc(1 / var(--dw)), calc(1 / var(--dh)));
--flip-radius: calc((var(--dw)) * var(--radius)) /
calc((var(--dh)) * var(--radius));
}
.title[data-flipping] {
transform: var(--flip-translate);
}
img[data-flipping] {
border-radius: var(--flip-radius);
}