/Click feedback
Click feedback • CSS
Sliding Send Button
A bordered share pill whose label glides right as an orange send icon enters from the left.
Installation
Terminal
npx shadcn@latest add https://microkit.co/r/sliding-send-button.jsonCode
TypeScript component
1import "./styles.css";23export function SlidingSendButton() {4return (5<button type="button" className="sliding-send-button">6<span className="sliding-send-button__content">7<span className="sliding-send-button__label">Share it now</span>8<span className="sliding-send-button__icon" aria-hidden="true">9<svg viewBox="0 0 32 32" fill="none">10<path d="M28.14 4.94 19.6 27.72c-.4 1.06-1.87 1.1-2.33.06l-4.04-9.05-9.03-4.02c-1.04-.46-1-1.93.06-2.33L27.04 3.86c.74-.28 1.38.34 1.1 1.08Z" stroke="currentColor" strokeWidth="2.4" strokeLinejoin="round" />11<path d="m13.02 18.63 5.75-5.75" stroke="currentColor" strokeWidth="2.4" strokeLinecap="round" />12</svg>13</span>14</span>15</button>16);17}
CSS
1.sliding-send-button,2.sliding-send-button * {3box-sizing: border-box;4}5.sliding-send-button {6appearance: none;7display: inline-flex;8width: min(170px, calc(100vw - 40px));9height: 50px;10align-items: center;11justify-content: center;12overflow: hidden;13border: 1px solid #48484f;14border-radius: 999px;15background: #15151b;16padding: 0;17color: #f7f7fa;18font-family: Arial, Helvetica, sans-serif;19cursor: pointer;20transition: border-color .3s ease, background-color .3s ease;21}22.sliding-send-button__content {23position: relative;24display: flex;25width: 100%;26align-items: center;27justify-content: center;28}29.sliding-send-button__label {30white-space: nowrap;31font-size: 16px;32font-weight: 400;33letter-spacing: -.4px;34line-height: 1;35transition: transform .45s cubic-bezier(.16, 1, .3, 1);36}37.sliding-send-button__icon {38position: absolute;39left: calc(50% - 59px);40display: grid;41width: 20px;42height: 20px;43place-items: center;44color: #f97316;45transform: translateX(-12px) scale(0);46transition: transform .45s cubic-bezier(.16, 1, .3, 1);47}48.sliding-send-button__icon svg {49width: 100%;50height: 100%;51transform: rotate(-5deg);52}53.sliding-send-button:hover,54.sliding-send-button:focus-visible {55border-color: #5a5a62;56background: #18181e;57}58.sliding-send-button:hover .sliding-send-button__label,59.sliding-send-button:focus-visible .sliding-send-button__label {60transform: translateX(17px);61}62.sliding-send-button:hover .sliding-send-button__icon,63.sliding-send-button:focus-visible .sliding-send-button__icon {64transform: translateX(0) scale(1);65}66.sliding-send-button:focus-visible {67outline: 2px solid #f97316;68outline-offset: 5px;69}70@media (prefers-reduced-motion: reduce) {71.sliding-send-button,72.sliding-send-button__label,73.sliding-send-button__icon {74transition: none;75}76}