@@ -155,9 +155,6 @@ function scheduleCloseActive() {
155155 }, 80 )
156156}
157157
158- // ── Event delegation: un único listener en el <ul> ──────────────────────────
159- const listRef = ref <HTMLElement >()
160-
161158function getButtonFromEvent(e : Event ): HTMLButtonElement | null {
162159 return (e .target as Element ).closest (' button[data-cid]' )
163160}
@@ -610,32 +607,54 @@ onBeforeUnmount(() => {
610607</template >
611608
612609<style scoped>
613- [data-cid ]:focus-visible {
614- @ apply ring- 2 ring-accent scale- 110;
615- outline : none ;
616- z-index : 20 ;
610+ [data-cid ] img {
611+ transition :
612+ box-shadow 100 ms ease ,
613+ transform 200 ms ease ;
617614}
618615
619616[data-cid ][aria-expanded = ' true' ] img {
620617 @apply ring- 2 ring-accent ;
621618}
622619
623620@media (hover : hover ) {
624- [data-cid ]:hover img {
625- @apply ring-accent ;
626- ring-width : 2px ;
621+ [data-cid ]:hover img ,
622+ [data-cid ][aria-expanded = ' true' ] img {
623+ transform : scale (1.1 );
624+ --un-ring-opacity : 1 ;
625+ --un-ring-color : color-mix(in srgb , var (--accent ) var (--un-ring-opacity ), transparent );
626+ box-shadow : 0 0 0 2px var (--un-ring-color );
627627 }
628628}
629629
630+ [data-cid ]:focus-visible img {
631+ transform : scale (1.1 );
632+ --un-ring-opacity : 1 ;
633+ --un-ring-color : color-mix(in srgb , var (--accent ) var (--un-ring-opacity ), transparent );
634+ box-shadow : 0 0 0 2px var (--un-ring-color );
635+ }
636+
637+ [data-cid ]:focus-visible {
638+ outline : none ;
639+ z-index : 20 ;
640+ }
641+
630642.contributor-popover {
631643 position : fixed ;
632644 z-index : 9999 ;
633645 transform : translateX (-50% );
634- /* GPU layer: evita repaints en el main thread */
635- will-change : transform, opacity;
646+ /* GPU layer: avoid repaints in the main thread */
647+ will-change : opacity;
636648 contain : layout style ;
637- outline : none ; /* Remove focus outline from container */
649+ /* Remove focus outline from container:
650+ don't remove important to fix FF outline
651+ */
652+ outline : none !important ;
653+ /* same computePos GAP */
654+ padding-top : 8px ;
655+ margin-top : -8px ;
638656}
657+
639658.contributor-popover.align-left {
640659 transform : translateX (0 );
641660}
0 commit comments