@@ -530,6 +530,15 @@ function setupTabFiltering() {
530530 const tabs = document . querySelectorAll ( '.matrix-tab-button' ) ;
531531 const cards = document . querySelectorAll ( '.matrix-project-card' ) ;
532532
533+ console . log ( `📑 Setting up tab filtering with ${ tabs . length } tabs and ${ cards . length } cards` ) ;
534+
535+ // Ensure all cards are visible initially
536+ cards . forEach ( card => {
537+ card . classList . remove ( 'matrix-hidden' ) ;
538+ card . style . opacity = '1' ;
539+ card . style . transform = 'none' ;
540+ } ) ;
541+
533542 tabs . forEach ( tab => {
534543 tab . addEventListener ( 'click' , ( ) => {
535544 const category = tab . dataset . category ;
@@ -538,32 +547,41 @@ function setupTabFiltering() {
538547 tabs . forEach ( t => t . classList . remove ( 'active' ) ) ;
539548 tab . classList . add ( 'active' ) ;
540549
541- // Disintegration effect for non-matching cards
550+ console . log ( `🎯 Tab clicked: ${ category } ` ) ;
551+
552+ // Filter cards with animation
542553 cards . forEach ( ( card , index ) => {
543554 const cardCategory = card . dataset . category ;
544555 const shouldShow = category === 'all' || cardCategory === category ;
545556
546- if ( shouldShow && card . classList . contains ( 'matrix-hidden' ) ) {
547- // Materialize card
548- card . classList . remove ( 'matrix-hidden' ) ;
549-
550- anime ( {
551- targets : card ,
552- opacity : [ 0 , 1 ] ,
553- scale : [ 0 , 1 ] ,
554- rotateY : [ - 180 , 0 ] ,
555- duration : 600 ,
556- delay : index * 50 ,
557- easing : 'easeOutBack' ,
558- begin : ( ) => {
559- createDigitalRain ( card ) ;
560- }
561- } ) ;
562- } else if ( ! shouldShow && ! card . classList . contains ( 'matrix-hidden' ) ) {
563- // Disintegrate card
564- disintegrateCard ( card , ( ) => {
565- card . classList . add ( 'matrix-hidden' ) ;
566- } ) ;
557+ console . log ( `Card ${ index } : category=${ cardCategory } , shouldShow=${ shouldShow } ` ) ;
558+
559+ if ( shouldShow ) {
560+ // Show card
561+ if ( card . classList . contains ( 'matrix-hidden' ) ) {
562+ card . classList . remove ( 'matrix-hidden' ) ;
563+
564+ anime ( {
565+ targets : card ,
566+ opacity : [ 0 , 1 ] ,
567+ scale : [ 0 , 1 ] ,
568+ rotateY : [ - 180 , 0 ] ,
569+ duration : 600 ,
570+ delay : index * 50 ,
571+ easing : 'easeOutBack' ,
572+ begin : ( ) => {
573+ createDigitalRain ( card ) ;
574+ }
575+ } ) ;
576+ }
577+ } else {
578+ // Hide card
579+ if ( ! card . classList . contains ( 'matrix-hidden' ) ) {
580+ // Disintegrate card
581+ disintegrateCard ( card , ( ) => {
582+ card . classList . add ( 'matrix-hidden' ) ;
583+ } ) ;
584+ }
567585 }
568586 } ) ;
569587 } ) ;
0 commit comments