@@ -32,6 +32,8 @@ interface CreatorCardProps {
3232 className ?: string ;
3333}
3434
35+ const creatorBadgeRowClass = 'mt-2 flex items-center gap-1.5' ;
36+
3537const CreatorCard : React . FC < CreatorCardProps > = ( { creator, className } ) => {
3638 const { isConnected } = useAccount ( ) ;
3739 const { isMismatch : isNetworkMismatch , expectedChainName } = useNetworkMismatch ( ) ;
@@ -116,7 +118,11 @@ const CreatorCard: React.FC<CreatorCardProps> = ({ creator, className }) => {
116118 className
117119 ) }
118120 >
119- < div className = "relative mb-4 aspect-square overflow-hidden rounded-xl" >
121+ < div
122+ className = "relative mb-4 aspect-square overflow-hidden rounded-xl"
123+ role = "img"
124+ aria-labelledby = { `creator-name-${ creator . id } ` }
125+ >
120126 < CreatorInitialsAvatar
121127 name = { creator . title }
122128 creatorId = { creator . id }
@@ -126,7 +132,7 @@ const CreatorCard: React.FC<CreatorCardProps> = ({ creator, className }) => {
126132 < div className = "absolute inset-0 bg-gradient-to-t from-slate-950/80 via-transparent to-transparent opacity-0 transition-opacity duration-300 md:group-hover:opacity-100" />
127133 { creator . volume24h !== undefined && (
128134 < div className = "absolute right-3 top-3 z-10 flex items-center gap-1.5 rounded-full bg-slate-950/75 border border-white/10 px-2.5 py-1 backdrop-blur-md" >
129- < TrendingUp className = "size-3 text-emerald-400" />
135+ < TrendingUp className = "creator-action-icon text-emerald-400" />
130136 < span className = "text-xs font-bold text-white/90" >
131137 { creator . volume24h > 0
132138 ? `${ formatCompactNumber ( creator . volume24h ) } ETH`
@@ -138,7 +144,10 @@ const CreatorCard: React.FC<CreatorCardProps> = ({ creator, className }) => {
138144
139145 < div className = "mb-4" >
140146 < div className = "flex items-center gap-2 flex-wrap" >
141- < h3 className = "font-jakarta text-lg font-bold text-white" >
147+ < h3
148+ id = { `creator-name-${ creator . id } ` }
149+ className = "font-jakarta text-lg font-bold text-white"
150+ >
142151 { creator . title }
143152 </ h3 >
144153 < VerifiedBadge
@@ -156,12 +165,17 @@ const CreatorCard: React.FC<CreatorCardProps> = ({ creator, className }) => {
156165
157166 { creator . socialHandle ? (
158167 < div className = "marketplace-label-muted mt-2 flex items-center gap-1.5 text-xs" >
159- < LinkIcon className = "size-3 text-amber-500/70" />
168+ < LinkIcon className = "creator-action-icon text-amber-500/70" />
160169 < span className = "truncate" > @{ creator . socialHandle } </ span >
161170 </ div >
162171 ) : (
163- < div className = "mt-2 flex items-center gap-1.5 text-xs text-white/30 italic" >
164- < LinkIcon className = "size-3 opacity-50" />
172+ < div
173+ className = { cn (
174+ creatorBadgeRowClass ,
175+ 'text-xs text-white/30 italic'
176+ ) }
177+ >
178+ < LinkIcon className = "creator-action-icon opacity-50" />
165179 < span > No public handle</ span >
166180 </ div >
167181 ) }
@@ -184,7 +198,7 @@ const CreatorCard: React.FC<CreatorCardProps> = ({ creator, className }) => {
184198 < CardMetaRow
185199 label = {
186200 < span className = "inline-flex items-center gap-1.5" >
187- < LinkIcon className = "size-3 text-amber-500/70" />
201+ < LinkIcon className = "creator-action-icon text-amber-500/70" />
188202 Handle
189203 </ span >
190204 }
@@ -242,7 +256,7 @@ const CreatorCard: React.FC<CreatorCardProps> = ({ creator, className }) => {
242256 { transactionState === 'failed' && (
243257 < TransactionStatusIcon status = "failed" />
244258 ) }
245- < ShoppingCart className = "size-4 " />
259+ < ShoppingCart className = "creator-action-icon " />
246260 { transactionState === 'submitting'
247261 ? 'Processing...'
248262 : transactionState === 'success'
0 commit comments