/Click feedback
Click feedback • CSS
Read More Swap
A text link whose arrow swaps from the right side to an orange leading arrow on hover.
Installation
Requires lucide-react for its icons. The shadcn CLI installs it for you; copying the code by hand means installing it yourself.
Terminal
npx shadcn@latest add https://microkit.co/r/read-more-swap.jsonCode
TypeScript component
1import { ArrowRight } from "lucide-react";23export function ReadMoreSwap() {4return (5<button type="button" className="read-more-swap">6<ArrowRight className="read-more-arrow read-more-arrow-left" size={25} strokeWidth={2.5} />7<span>Read more</span>8<ArrowRight className="read-more-arrow read-more-arrow-right" size={25} strokeWidth={2.5} />9</button>10);11}
CSS
1.read-more-swap {2display: inline-flex;3align-items: center;4gap: 12px;5height: 48px;6border: 0;7overflow: hidden;8background: transparent;9color: #f0f0f0;10font-size: 16px;11font-weight: 500;12}13.read-more-arrow {14flex: 0 0 25px;15width: 25px;16transition: flex-basis .24s ease, width .24s ease, opacity .2s ease, transform .24s ease;17}18.read-more-arrow-left {19flex-basis: 0;20width: 0;21color: #f97316;22opacity: 0;23transform: translateX(-12px);24}25.read-more-swap:hover .read-more-arrow-left, .read-more-swap:focus-visible .read-more-arrow-left {26flex-basis: 25px;27width: 25px;28opacity: 1;29transform: translateX(0);30}31.read-more-swap:hover .read-more-arrow-right, .read-more-swap:focus-visible .read-more-arrow-right {32flex-basis: 0;33width: 0;34opacity: 0;35transform: translateX(12px);36}37.read-more-swap:focus-visible {38outline: 2px solid #f97316;39outline-offset: 4px;40}