/** * Microinteractions for icons * TODO: Look into animating the SVG directly */ :is( a, button, summary ) { .citizen-ui-icon { transition: var( --transition-hover ); transition-property: transform; } @media ( hover: hover ) { &:hover { .citizen-ui-icon { // Move pen to the right like drawing a line // TODO: Perhaps we can add a line somehow through CSS &.mw-ui-icon-wikimedia-edit { transform: translateX( 2px ); } // Spin anti-clockwise like a door handle, to open a vertical menu &.mw-ui-icon-wikimedia-ellipsis { transform: rotate( -90deg ); } // Move up &.mw-ui-icon-wikimedia-speechBubbles, &.mw-ui-icon-wikimedia-userAdd { transform: translateY( -2px ); } // Move up to indicate going to the top // rotate( 90deg ) is needed because of how the icon is set up &.mw-ui-icon-wikimedia-first { transform: translateY( -2px ) rotate( 90deg ); } // Spin anti-clockwise and get the arrow to point backward &.mw-ui-icon-wikimedia-history { transform: rotate( -270deg ); } // Move towards where the arrow is pointing &.mw-ui-icon-wikimedia-logIn, &.mw-ui-icon-wikimedia-share { transform: translateX( 2px ); } // Rotate the icon &.mw-ui-icon-wikimedia-settings { transform: rotate( 90deg ); } } } } } .citizen-header__logo { .mw-logo-icon, .citizen-ui-icon { transition-timing-function: var( --transition-timing-function-ease ); transition-duration: var( --transition-duration-base ); transition-property: transform, opacity; transform-origin: center center; } .citizen-header__button:hover { .mw-logo-icon { opacity: 0; } .mw-logo-icon, .citizen-ui-icon { transition-duration: var( --transition-duration-medium ); transform: rotate( 360deg ); } } }