File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 317317 }
318318}
319319
320+ .card-fullscreen-frame {
321+ transform-style : preserve-3d;
322+ }
323+
324+ .card-fullscreen-frame .card-tile-foil-overlay ::before {
325+ animation-play-state : running;
326+ }
327+
328+ .card-fullscreen-set-grain {
329+ position : absolute;
330+ inset : 0 ;
331+ z-index : 7 ;
332+ border-radius : inherit;
333+ background : rgb (255 255 255 / 0.18 );
334+ mask-image : var (--card-set-grain );
335+ mask-position : center;
336+ mask-repeat : repeat;
337+ mask-size : 3.75rem ;
338+ -webkit-mask-image : var (--card-set-grain );
339+ -webkit-mask-position : center;
340+ -webkit-mask-repeat : repeat;
341+ -webkit-mask-size : 3.75rem ;
342+ mix-blend-mode : screen;
343+ opacity : 0.24 ;
344+ pointer-events : none;
345+ animation : card-fullscreen-set-grain 18s linear infinite;
346+ }
347+
348+ @keyframes card-fullscreen-set-grain {
349+ 0% {
350+ mask-position : 0 0 ;
351+ -webkit-mask-position : 0 0 ;
352+ }
353+
354+ 100% {
355+ mask-position : 3.75rem 3.75rem ;
356+ -webkit-mask-position : 3.75rem 3.75rem ;
357+ }
358+ }
359+
320360@media (prefers-reduced-motion : reduce) {
321- .card-tile-foil-overlay ::before {
361+ .card-tile-foil-overlay ::before ,
362+ .card-fullscreen-set-grain {
322363 animation : none;
323364 }
324365}
Original file line number Diff line number Diff line change @@ -45,6 +45,8 @@ export function CardTile({
4545 menuActions = [ ] ,
4646 name,
4747 onSelect,
48+ primaryActionLabel,
49+ primaryActionRole = "link" ,
4850 price,
4951 rarity,
5052 selectable = false ,
@@ -71,6 +73,8 @@ export function CardTile({
7173 name : ReactNode
7274 onSelect ?: ( ) => void
7375 onToggleSelected ?: ( ) => void
76+ primaryActionLabel ?: string
77+ primaryActionRole ?: "button" | "link"
7478 price ?: ReactNode
7579 rarity ?: string | null
7680 selectable ?: boolean
@@ -129,7 +133,9 @@ export function CardTile({
129133
130134 return (
131135 < div
132- aria-label = { onSelect && typeof name === "string" ? `View ${ name } ` : undefined }
136+ aria-label = {
137+ primaryActionLabel || ( onSelect && typeof name === "string" ? `View ${ name } ` : undefined )
138+ }
133139 aria-pressed = { selectionClickActive ? selected : undefined }
134140 className = { cn (
135141 "group/card relative w-full max-w-[14.25rem] overflow-visible rounded-xl bg-transparent transition duration-200 focus-within:z-50" ,
@@ -139,7 +145,7 @@ export function CardTile({
139145 ) }
140146 onClick = { hasPrimaryAction ? handleClick : undefined }
141147 onKeyDown = { handleKeyDown }
142- role = { selectionClickActive ? "button" : onSelect ? "link" : undefined }
148+ role = { selectionClickActive ? "button" : onSelect ? primaryActionRole : undefined }
143149 tabIndex = { hasPrimaryAction ? 0 : undefined }
144150 >
145151 { showMenu ? (
You can’t perform that action at this time.
0 commit comments