UNPKG

holo-card

Version:

A React component for holographic card effects

58 lines (46 loc) 1.52 kB
.card { --foil-brightness: 0.55; } .card[data-set="Normal"] .card_shine { background-image: radial-gradient( circle at var(--pointer-x) var(--pointer-y), #fff 5%, #000 50%, #fff 80% ), linear-gradient(-45deg, #000 15%, #fff, #000 85%), var(--foil); background-blend-mode: soft-light, difference; background-size: 120% 120%, 200% 200%, cover; background-position: center center, calc((100% * var(--pointer-from-left))) calc((100% * var(--pointer-from-top))), center center; filter: brightness(var(--foil-brightness)) contrast(1.5) saturate(1); mix-blend-mode: color-dodge; opacity: calc((1.5 * var(--card-opacity)) - var(--pointer-from-center)); } .card[data-set="Normal"] .card_glare { opacity: var(--card-opacity); background-image: radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y), hsla(0, 0%, 100%, 0.8) 10%, hsla(0, 0%, 100%, 0.5) 20%, hsla(0, 0%, 0%, 0.75) 90% ); filter: brightness(0.7) contrast(1.5); } .card[data-set="Normal"] .card_glare::after { content: ""; opacity: var(--card-opacity); background-image: radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y), hsl(0, 0%, 100%) 10%, hsla(0, 0%, 100%, 0.5) 20%, hsla(0, 0%, 0%, 0.5) 120% ); filter: brightness(1) contrast(1.5); } .card:not(.masked)[data-set="Normal"] .card_shine { --foil: none; clip-path: var(--clip-invert); }