diff --git a/apps/client/src/common/components/link/external-link/ExternalLink.module.scss b/apps/client/src/common/components/link/external-link/ExternalLink.module.scss index 83c26d3e8..59162642a 100644 --- a/apps/client/src/common/components/link/external-link/ExternalLink.module.scss +++ b/apps/client/src/common/components/link/external-link/ExternalLink.module.scss @@ -21,4 +21,15 @@ outline: none; box-shadow: 0 1px 0 0 currentColor; } + + &:hover .icon, + &:focus-visible .icon { + transform: translateX(0.25rem); + } +} + +.icon { + flex: 0 0 1.5em; + font-size: 1em; + transition: transform $transition-time-action; } diff --git a/apps/client/src/common/components/link/external-link/ExternalLink.tsx b/apps/client/src/common/components/link/external-link/ExternalLink.tsx index 7b7c4c76a..105f5d8e3 100644 --- a/apps/client/src/common/components/link/external-link/ExternalLink.tsx +++ b/apps/client/src/common/components/link/external-link/ExternalLink.tsx @@ -1,5 +1,5 @@ import { MouseEvent, ReactNode } from 'react'; -import { IoOpenOutline } from 'react-icons/io5'; +import { HiArrowLongRight } from 'react-icons/hi2'; import { openLink } from '../../../utils/linkUtils'; import { cx } from '../../../utils/styleUtils'; @@ -10,9 +10,10 @@ interface ExternalLinkProps { href: string; children: ReactNode; inline?: boolean; + className?: string; } -export default function ExternalLink({ href, inline, children }: ExternalLinkProps) { +export default function ExternalLink({ href, inline, className, children }: ExternalLinkProps) { const handleClick = (event: MouseEvent) => { event.preventDefault(); openLink(href); @@ -23,10 +24,11 @@ export default function ExternalLink({ href, inline, children }: ExternalLinkPro href='#!' target='_blank' rel='noreferrer' - className={cx([style.link, inline && style.inline])} + className={cx([style.link, inline && style.inline, className])} onClick={handleClick} > - {children} + {children} + ); }