/Click feedback
Click feedback • CSS
Next Reveal Button
An outlined arrow control that expands into a bright Next button 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 @microkit/next-reveal-buttonCode
TypeScript component
1import "./next-reveal-button.css";23import { ArrowRight } from "lucide-react";45export function NextRevealButton() {6return (7<button type="button" className="next-reveal">8<span className="next-reveal-label">Next</span>9<ArrowRight className="next-reveal-arrow" size={27} strokeWidth={1.7} />10</button>11);12}
CSS
1.next-reveal {2position: relative;3display: inline-flex;4align-items: center;5justify-content: flex-end;6width: 110px;7height: 42px;8overflow: hidden;9border: 1px solid light-dark(#14181e33,#f0f0f033);10border-radius: 999px;11background: light-dark(#ffffff,#171717);12color: light-dark(#14181e,#f0f0f0);13padding: 0 15px;14cursor: pointer;15transition: background-color .5s cubic-bezier(.4, 0, .2, 1), border-color .5s cubic-bezier(.4, 0, .2, 1), color .5s cubic-bezier(.4, 0, .2, 1);16}17.next-reveal-label {18position: absolute;19left: 21px;20font-size: 16px;21font-weight: 400;22opacity: 0;23transform: translateY(160%);24transition: opacity .3s cubic-bezier(.16, 1, .3, 1), transform .3s cubic-bezier(.16, 1, .3, 1);25}26.next-reveal-arrow {27position: relative;28z-index: 1;29flex: none;30}31.next-reveal:hover,32.next-reveal:focus-visible {33border-color: transparent;34background: #f97316;35color: light-dark(#f0f2f5,#171d1a);36}37.next-reveal:hover .next-reveal-label,38.next-reveal:focus-visible .next-reveal-label {39opacity: 1;40transform: translateY(0);41}42.next-reveal:focus-visible {43outline: 2px solid #f97316;44outline-offset: 4px;45}