/Navigation
Navigation • CSS
Floating Newsletter Button
A compact newsletter button that scales and lifts into a soft white glow on hover.
Installation
Terminal
npx shadcn@latest add https://microkit.co/r/floating-newsletter-button.jsonCode
TypeScript component
1import "./floating-newsletter-button.css";23export function FloatingNewsletterButton() {4return (5<button type="button" className="floating-newsletter-button">6<span className="floating-newsletter-button__content">7<span>Newsletter</span>8<svg className="floating-newsletter-button__arrow" viewBox="0 0 20 32" fill="none" aria-hidden="true">9<path d="M3 3 16 16 3 29" stroke="currentColor" strokeWidth="4" strokeLinecap="round" strokeLinejoin="round" />10</svg>11</span>12</button>13);14}
CSS
1.floating-newsletter-button {2display: inline-flex;3align-items: center;4justify-content: center;5border: 0;6border-radius: 9999px;7background: #0d0f12;8padding: 18px 34px;9color: #f5f5f7;10font-size: 17px;11font-weight: 400;12line-height: 1.2;13letter-spacing: -.3px;14cursor: pointer;15transition:16box-shadow 420ms cubic-bezier(.22, 1, .36, 1);17}18.floating-newsletter-button__content {19display: inline-flex;20align-items: center;21gap: 10px;22transition: transform 420ms cubic-bezier(.22, 1, .36, 1);23}24.floating-newsletter-button__arrow {25width: 14px;26height: 22px;27flex: none;28}29.floating-newsletter-button:hover,30.floating-newsletter-button:focus-visible {31box-shadow:320 0 0 1px rgba(255, 255, 255, .05),330 0 26px rgba(255, 255, 255, .13),340 22px 34px rgba(0, 0, 0, .32);35}36.floating-newsletter-button:hover .floating-newsletter-button__content,37.floating-newsletter-button:focus-visible .floating-newsletter-button__content {38transform: scale(1.04);39}40.floating-newsletter-button:active .floating-newsletter-button__content {41transform: scale(1.01);42}43.floating-newsletter-button:focus-visible {44outline: 2px solid rgba(255, 255, 255, .85);45outline-offset: 5px;46}47@media (max-width: 420px) {48.floating-newsletter-button {49padding: 14px 26px;50font-size: 15px;51}52.floating-newsletter-button__content {53gap: 8px;54}55.floating-newsletter-button__arrow {56width: 12px;57height: 20px;58}59}60@media (prefers-reduced-motion: reduce) {61.floating-newsletter-button,62.floating-newsletter-button__content {63transition-duration: .01ms;64}65}