WEBLEB
Inicio
Editora de código
Iniciar sesión
Pro
Español
English
Français
Español
Português
Deutsch
Italiano
हिंदी
Tarjetas móviles delineadas de CodePen Home
773
zegarkidawida
Abrir en el editor
Publica tu código
Recomendado
23 August 2025
Noche de paralaje en Capadocia HTML/CSS
12 April 2025
Un código de Dossousandrin
18 March 2025
Un código de anhtuanle2004thl
HTML
Copy
CSS
Copy
:root { --bg: 25% 0.0075 70; --pink: 77.75% 0.1003 350.51; --gold: 84.16% 0.1169 71.19; --mint: 84.12% 0.1334 165.28; --mobile--w: 360px; --mobile--h: 540px; --outline-w: 9px; --preview-bg: #fff; } body { height: 100%; } body { background: linear-gradient( 50deg, oklch(from oklch(var(--bg)) 50% c h), oklch(from oklch(var(--bg)) 90% c h) ); background-attachment: fixed; padding: 3rem 10vw; } .preview__container { display: flex; flex-wrap: wrap; place-items: center; place-content: center; height: 100%; /* fade out other cards when one is :hover/:focus-within */ &:has(:hover, :focus-within) { .preview:not(:hover, :focus) { opacity: 0.4; } } } .preview { --bg-pos-y--start: 0; --bg-pos-y--end: 0; --bg-pos-y: var(--bg-pos-y--start); --delay: 0; --duration: 6s; --shadow-blur: 24px; --shadow-color: oklch(var(--bg)); background-clip: padding-box; /* background-origin: content-box; */ background-image: var(--img); background-position-y: var(--bg-pos-y); background-repeat: no-repeat; background-size: cover; background-attachment: fixed; border: var(--outline-w) solid var(--border-color, transparent); border-radius: 6px; box-shadow: 0 0 var(--shadow-blur) 0 var(--shadow-color); transition-property: border, box-shadow, filter, outline-offset, opacity, rotate, scale, z-index; transition-duration: 0.15s, 0.15s, 0.6s, 0.6s, 0.3s, 0.3s, 0.3s, 0.15s; filter: grayscale(100%) sepia(5%); mix-blend-mode: multiply; opacity: 0.69; /* backface-visibility: hidden; transform: translateZ(0) perspective(1px); */ /* transform-origin: center center; */ scale: 0.85; rotate: var(--rotation, -4deg); /* will-change: box-shadow, filter, rotate, scale, z-index; */ outline: var(--outline-w) solid var(--preview-bg); outline-offset: var(--outline-w); min-height: var(--mobile--h); height: 100%; min-width: var(--mobile--w); width: 100%; position: relative; animation-name: bg-scroll; animation-delay: var(--delay); animation-duration: var(--duration); animation-fill-mode: forwards; &:focus-within, &:hover { --shadow-blur: 200px; --shadow-color: oklch(var(--gold)); --border-color: var(--shadow-color); background-color: white; mix-blend-mode: initial; filter: none; opacity: 1; outline-offset: calc(var(--outline-w) / 2); scale: 1; rotate: 0deg; transition-property: border, box-shadow, filter, outline-offset, opacity, rotate, scale, z-index; transition-duration: 0.15s, 0.15s, 0.3s, 0.3s, 0.3s, 0.3s, 0.3s, 0.15s; } &:focus-within { --shadow-color: oklch(var(--pink)); z-index: 5; } &:hover { z-index: 6; &:focus { --shadow-color: oklch(var(--mint)); } } &.mobile { max-height: var(--mobile--h); max-width: var(--mobile--w); } &:nth-of-type(2) { --bg-pos-y--end: calc(var(--mobile--h) * -1.025); /* --delay: .25s; */ --rotation: 3deg; } &:nth-of-type(3) { --bg-pos-y--end: calc(var(--mobile--h) * -2.25); /* --delay: .5s; */ --duration: 6.5s; --rotation: -1deg; } &:nth-of-type(4) { --bg-pos-y--end: calc(var(--mobile--h) * -3.75); /* --delay: .75s; */ --duration: 6.75s; --rotation: -5deg; } &:nth-of-type(5) { --bg-pos-y--end: calc(var(--mobile--h) * -4.82); /* --delay: 1s; */ --duration: 7s; --rotation: -2deg; } &:nth-of-type(6) { --bg-pos-y--end: calc(var(--mobile--h) * -5.85); /* --delay: 1.25s; */ --duration: 7.25s; --rotation: 2deg; } &:nth-of-type(7) { --bg-pos-y--end: calc(var(--mobile--h) * -7.21); /* --delay: 1.5s; */ --duration: 7.5s; --rotation: 4deg; } } /* preview-scroll */ @keyframes bg-scroll { to { background-position-y: var(--bg-pos-y--end); } }
JS
Copy
/* Replace with your JS Code (Leave empty if not needed) */