/Click feedback
Click feedback • CSS
Preview in Browser Button
An outlined pill button with a diagonal arrow that slides through 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/preview-browser-button.jsonCode
TypeScript component
1import { ArrowRight } from "lucide-react";23export function PreviewInBrowserButton() {4return (5<button type="button" className="preview-browser-button">6<span>Preview in browser</span>7<span className="preview-browser-icon" aria-hidden="true">8<ArrowRight className="preview-browser-arrow preview-browser-arrow-current" size={17} strokeWidth={2.4} />9<ArrowRight className="preview-browser-arrow preview-browser-arrow-incoming" size={17} strokeWidth={2.4} />10</span>11</button>12);13}
CSS
1.preview-browser-button {2display: inline-flex;3align-items: center;4justify-content: center;5gap: 8px;6border: 1px solid #f0f0f0;7border-radius: 999px;8background: transparent;9padding: 12px 24px;10color: #f0f0f0;11font-size: 16px;12font-weight: 500;13}14.preview-browser-icon {15position: relative;16display: grid;17width: 17px;18height: 20px;19place-items: center;20overflow: hidden;21}22.preview-browser-arrow {23position: absolute;24transform: rotate(-45deg);25transition: transform .5s cubic-bezier(.16, 1, .3, 1);26}27.preview-browser-arrow-incoming {28transform: translate(-16px, 12px) rotate(-45deg);29}30.preview-browser-button:hover .preview-browser-arrow-current,31.preview-browser-button:focus-visible .preview-browser-arrow-current {32transform: translate(16px, -12px) rotate(-45deg);33}34.preview-browser-button:hover .preview-browser-arrow-incoming,35.preview-browser-button:focus-visible .preview-browser-arrow-incoming {36transform: translate(0, 0) rotate(-45deg);37}38.preview-browser-button:focus-visible {39outline: 2px solid #f97316;40outline-offset: 3px;41}