/Click feedback
Click feedback • CSS
White Contact Orbit Button
A white Get in touch pill whose arrow settles into a black circular control 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/white-contact-orbit-button.jsonCode
TypeScript component
1"use client";23import { ArrowRight } from "lucide-react";45import "./white-contact-orbit-button.css";67export function WhiteContactOrbitButton() {8return (9<button type="button" className="white-contact-orbit-button">10<span className="white-contact-orbit-button-label">Get in touch</span>11<span className="white-contact-orbit-button-icon" aria-hidden="true">12<span className="white-contact-orbit-button-icon-surface" />13<ArrowRight size={21} strokeWidth={2.6} />14</span>15</button>16);17}
CSS
1.white-contact-orbit-button {2appearance: none;3position: relative;4display: inline-flex;5align-items: center;6justify-content: center;7width: 160px;8height: 50px;9overflow: hidden;10border: 0;11border-radius: 999px;12padding: 0;13background: #fff;14color: #111;15font-family: Arial, Helvetica, sans-serif;16cursor: pointer;17}18.white-contact-orbit-button-label {19position: relative;20z-index: 1;21margin-right: 20px;22font-size: 16px;23font-weight: 400;24line-height: 1;25letter-spacing: -.03em;26transition: transform .5s cubic-bezier(.16, 1, .3, 1);27}28.white-contact-orbit-button-icon {29position: absolute;30right: 8px;31display: grid;32width: 34px;33height: 34px;34place-items: center;35border-radius: 50%;36color: #111;37transition: color .12s ease;38}39.white-contact-orbit-button-icon-surface {40position: absolute;41inset: 0;42border-radius: inherit;43background: #111;44transform: scale(0);45transform-origin: center;46transition: transform .42s cubic-bezier(.16, 1, .3, 1);47}48.white-contact-orbit-button-icon svg {49position: relative;50z-index: 1;51transition: transform .5s cubic-bezier(.16, 1, .3, 1);52}53.white-contact-orbit-button:hover .white-contact-orbit-button-icon,54.white-contact-orbit-button:focus-visible .white-contact-orbit-button-icon {55color: #fff;56transition-delay: .08s;57}58.white-contact-orbit-button:hover .white-contact-orbit-button-icon-surface,59.white-contact-orbit-button:focus-visible .white-contact-orbit-button-icon-surface {60transform: scale(1);61}62.white-contact-orbit-button:hover .white-contact-orbit-button-icon svg,63.white-contact-orbit-button:focus-visible .white-contact-orbit-button-icon svg {64transform: rotate(-45deg);65}66.white-contact-orbit-button:focus-visible {67outline: 2px solid #fff;68outline-offset: 4px;69}70@media (prefers-reduced-motion: reduce) {71.white-contact-orbit-button-icon,72.white-contact-orbit-button-icon-surface,73.white-contact-orbit-button-icon svg {74transition: none;75}76}