Open demo

CSS code

HTML
<div><span class="lbl">Share popover anchored to its button, with copy link</span>
<article class="mc-post">
  <div><h3>How we cut our build time in half</h3><p>Northline engineering blog · 6 min read</p></div>
  <button class="mc-trigger" type="button" popovertarget="mc-pop"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="m8.6 13.5 6.8 4m0-11-6.8 4"/></svg>Share</button>
  <div class="mc-pop" id="mc-pop" popover role="dialog" aria-labelledby="mc-pop-title">
    <p class="mc-pop-title" id="mc-pop-title">Share this article</p>
    <ul class="mc-apps" role="list">
      <li><a class="mc-app mc-x" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg></span><span><span class="sr-only">Share on </span>X</span></a></li>
      <li><a class="mc-app mc-bluesky" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg></span><span><span class="sr-only">Share on </span>Bluesky</span></a></li>
      <li><a class="mc-app mc-threads" href="https://www.threads.net/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M18.263 11.097c-.03-3.486-1.92-5.586-5.111-5.586-2.13 0-3.922.963-4.863 2.499l2.062 1.438c.535-.843 1.272-1.543 2.628-1.543 1.528 0 2.318.85 2.544 2.431a15 15 0 0 0-2.236-.173c-4.125 0-6.068 1.867-6.068 4.336s1.943 3.99 4.804 3.99c3.139 0 5.013-2.115 5.781-4.735.798.361 1.348 1.204 1.348 2.47 0 3.387-3.907 5.232-7.22 5.232-4.885 0-8.077-3.207-8.077-8.424 0-6.392 4.223-10.487 9.9-10.487 3.808 0 5.69 1.671 6.97 3.914l2.108-1.475C21.44 2.078 18.331 0 13.663 0 6.227 0 1.168 5.277 1.168 12.934c0 7 4.953 11.066 10.856 11.066 4.878 0 9.809-2.846 9.809-7.716 0-2.545-1.46-4.231-3.569-5.187m-6.33 4.855c-1.077 0-2.026-.512-2.026-1.453 0-1.483 1.822-1.934 3.606-1.934.678 0 1.34.045 1.927.173-.422 1.927-1.671 3.215-3.508 3.214Z"/></svg></span><span><span class="sr-only">Share on </span>Threads</span></a></li>
      <li><a class="mc-app mc-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg></span><span><span class="sr-only">Share on </span>LinkedIn</span></a></li>
      <li><a class="mc-app mc-whatsapp" href="https://wa.me/?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/></svg></span><span><span class="sr-only">Share on </span>WhatsApp</span></a></li>
      <li><a class="mc-app mc-email" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg></span><span><span class="sr-only">Share by </span>Email</span></a></li>
    </ul>
    <div class="mc-copy">
      <label class="sr-only" for="mc-url">Article link</label>
      <input id="mc-url" type="text" value="https://example.com/blog/faster-builds" readonly>
      <button type="button" data-copy="mc-url" data-status="mc-status"><span class="mc-idle"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7"/><path d="M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7"/></svg>Copy</span><span class="mc-done"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7.5"/></svg>Copied</span></button>
    </div>
    <p class="mc-status" id="mc-status" role="status"></p>
  </div>
</article></div>
<div><span class="lbl">CSS-only tooltips that flip with anchor positioning</span>
<ul class="mc-tips" role="list">
  <li><a class="mc-tl mc-github" href="https://github.com/uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg><span class="mc-tip"><span class="sr-only">uiCookies on </span>GitHub</span></a></li>
  <li><a class="mc-tl mc-mastodon" href="https://mastodon.social/@uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z"/></svg><span class="mc-tip"><span class="sr-only">uiCookies on </span>Mastodon</span></a></li>
  <li><a class="mc-tl mc-bluesky" href="https://bsky.app/profile/uicookies.com"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="mc-tip"><span class="sr-only">uiCookies on </span>Bluesky</span></a></li>
  <li><a class="mc-tl mc-youtube" href="https://www.youtube.com/@uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg><span class="mc-tip"><span class="sr-only">uiCookies on </span>YouTube</span></a></li>
  <li><a class="mc-tl mc-dribbble" href="https://dribbble.com/uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12-5.385 12-12 12zm10.12-10.358c-.35-.11-3.17-.953-6.384-.438 1.34 3.684 1.887 6.684 1.992 7.308 2.3-1.555 3.936-4.02 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4 1.73 1.358 3.92 2.166 6.29 2.166 1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765.135-.045.27-.084.405-.12-.26-.585-.54-1.167-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248-1.698-3.018-3.53-5.558-3.8-5.928-2.868 1.35-5.01 3.99-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6 3.645-1.365 5.19-3.44 5.373-3.702-1.81-1.61-4.19-2.586-6.795-2.586-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04.24.49.47.985.68 1.486.08.18.15.36.22.53 3.41-.43 6.8.26 7.14.33-.02-2.42-.88-4.64-2.31-6.38z"/></svg><span class="mc-tip"><span class="sr-only">uiCookies on </span>Dribbble</span></a></li>
  <li><a class="mc-tl mc-discord" href="https://discord.gg/uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg><span class="mc-tip"><span class="sr-only">uiCookies on </span>Discord</span></a></li>
</ul></div>
<div><span class="lbl">One share bar, laid out by container width</span>
<div class="cq-demo">
  <div class="cq-slot"><small>In a 240px sidebar</small>
    <div class="mc-cq"><ul class="mc-bar" role="list" aria-label="Share this article">
      <li><a class="mc-btn mc-x" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg><span class="mc-name"><span class="sr-only">Share on </span>X</span></a></li>
      <li><a class="mc-btn mc-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg><span class="mc-name"><span class="sr-only">Share on </span>LinkedIn</span></a></li>
      <li><a class="mc-btn mc-bluesky" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="mc-name"><span class="sr-only">Share on </span>Bluesky</span></a></li>
      <li><a class="mc-btn mc-reddit" href="https://www.reddit.com/submit?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds&title=How%20we%20cut%20our%20build%20time%20in%20half"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg><span class="mc-name"><span class="sr-only">Share on </span>Reddit</span></a></li>
      <li><a class="mc-btn mc-email" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg><span class="mc-name"><span class="sr-only">Share by </span>Email</span></a></li>
    </ul></div>
  </div>
  <div class="cq-slot"><small>In the main column</small>
    <div class="mc-cq"><ul class="mc-bar" role="list" aria-label="Share this article">
      <li><a class="mc-btn mc-x" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg><span class="mc-name"><span class="sr-only">Share on </span>X</span></a></li>
      <li><a class="mc-btn mc-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg><span class="mc-name"><span class="sr-only">Share on </span>LinkedIn</span></a></li>
      <li><a class="mc-btn mc-bluesky" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="mc-name"><span class="sr-only">Share on </span>Bluesky</span></a></li>
      <li><a class="mc-btn mc-reddit" href="https://www.reddit.com/submit?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds&title=How%20we%20cut%20our%20build%20time%20in%20half"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg><span class="mc-name"><span class="sr-only">Share on </span>Reddit</span></a></li>
      <li><a class="mc-btn mc-email" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg><span class="mc-name"><span class="sr-only">Share by </span>Email</span></a></li>
    </ul></div>
  </div>
</div></div>
CSS
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Modern CSS social share icons: popover + anchor positioning, :has() for the copied state, CSS-only
   tooltips and a container query. Icons are aria-hidden; every link is named by its text. */
/* 1. share popover: native popover (no JS to open or close), placed under its button with anchor positioning */
.mc-post{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;padding:20px 22px;
  border:1px solid #e2e8f0;border-radius:18px;background:#fff}
.mc-post h3{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;color:#0f172a}
.mc-post p{margin:2px 0 0;font-size:.85rem;color:#475569}
.mc-trigger{anchor-name:--mc-share;display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px 0 14px;border:0;border-radius:999px;
  background:#0f172a;color:#fff;font:inherit;font-size:.92rem;font-weight:600;cursor:pointer}
.mc-trigger svg{width:18px;height:18px}
.mc-pop{width:min(330px,calc(100vw - 32px));padding:18px;border:1px solid #e2e8f0;border-radius:18px;background:#fff;color:#0f172a;
  box-shadow:0 24px 48px -16px rgba(15,23,42,.35);transition:opacity .16s,translate .16s}
.mc-pop:not(:popover-open){display:none}
@starting-style{.mc-pop:popover-open{opacity:0;translate:0 -6px}}
@supports (position-area:bottom){
  .mc-pop{position-anchor:--mc-share;position-area:bottom span-left;inset:auto;margin:10px 0;position-try-fallbacks:flip-block,flip-inline}
}
.mc-pop-title{margin:0 0 14px;font-size:.9rem;font-weight:700}
.mc-apps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 16px;padding:0;list-style:none}
.mc-app{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border-radius:12px;color:#334155;font-size:.75rem;font-weight:600;text-decoration:none}
.mc-app>span:first-child{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--mc-brand);color:var(--mc-on)}
.mc-app svg{width:20px;height:20px;fill:currentColor}
.mc-app:hover,.mc-app:focus-visible{background:#f1f5f9;color:#0f172a}
.mc-copy{display:flex;gap:8px}
.mc-copy input{flex:1;min-width:0;height:40px;padding:0 12px;border:1px solid #94a3b8;border-radius:10px;background:#f8fafc;color:#0f172a;font:inherit;font-size:.85rem}
.mc-copy button{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border:0;border-radius:10px;background:#0f172a;color:#fff;
  font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.mc-copy button svg{width:16px;height:16px}
.mc-idle,.mc-done{align-items:center;gap:6px}
.mc-idle{display:inline-flex}
.mc-done{display:none}
.mc-copy:has([data-copied]) .mc-idle{display:none}
.mc-copy:has([data-copied]) .mc-done{display:inline-flex}
.mc-copy:has([data-copied]) button{background:#047857}
.mc-status{min-height:1.3em;margin:8px 0 0;font-size:.8rem;color:#475569}
/* 2. tooltips: the name is real text inside the link, shown on hover and focus. The fallback sits above the
   icon; where anchor positioning and anchor-scope are supported it flips below near the top of the window. */
.mc-tips{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}
.mc-tl{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#e2e8f0;color:#334155;text-decoration:none;
  transition:background-color .2s,color .2s}
.mc-tl svg{width:20px;height:20px;fill:currentColor}
.mc-tl:hover,.mc-tl:focus-visible{background:var(--mc-brand);color:var(--mc-on)}
.mc-tip{position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50% 4px;padding:5px 9px;border-radius:7px;background:#0f172a;color:#fff;
  font-size:.75rem;font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s,translate .15s}
.mc-tl:hover .mc-tip,.mc-tl:focus-visible .mc-tip{opacity:1;translate:-50% 0}
@supports (position-area:top) and (anchor-scope:all){
  .mc-tips>li{anchor-scope:--mc-tl}
  .mc-tl{position:static;anchor-name:--mc-tl}
  .mc-tip{position-anchor:--mc-tl;position-area:top;bottom:auto;left:auto;margin:10px 0;translate:0 4px;position-try-fallbacks:flip-block}
  .mc-tl:hover .mc-tip,.mc-tl:focus-visible .mc-tip{translate:0 0}
}
/* 3. container query bar: icons only in a narrow slot, icons and names from 28rem of container width */
.mc-cq{container-type:inline-size}
.mc-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.mc-btn{display:grid;place-items:center;width:42px;height:42px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;
  font-size:.88rem;font-weight:600;text-decoration:none;transition:background-color .2s,border-color .2s}
.mc-btn svg{width:18px;height:18px;fill:var(--mc-ink)}
.mc-btn:hover,.mc-btn:focus-visible{border-color:#0f172a;background:#f1f5f9}
.mc-name{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@container (min-width:28rem){
  .mc-btn{display:inline-flex;align-items:center;gap:8px;width:auto;padding:0 16px 0 13px;border-radius:999px}
  .mc-name{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
}
.mc-trigger:focus-visible,.mc-app:focus-visible,.mc-copy :focus-visible,.mc-tl:focus-visible,.mc-btn:focus-visible{outline:3px solid #0f172a;outline-offset:3px}
.mc-app:focus-visible{outline-offset:0}
@media (prefers-reduced-motion:reduce){.mc-pop,.mc-tl,.mc-tip,.mc-btn{transition:none}}
.mc-bluesky{--mc-brand:#1185FE;--mc-on:#ffffff;--mc-ink:#1185FE}
.mc-discord{--mc-brand:#5865F2;--mc-on:#ffffff;--mc-ink:#5865F2}
.mc-dribbble{--mc-brand:#EA4C89;--mc-on:#ffffff;--mc-ink:#EA4C89}
.mc-email{--mc-brand:#0F766E;--mc-on:#ffffff;--mc-ink:#0F766E}
.mc-github{--mc-brand:#181717;--mc-on:#ffffff;--mc-ink:#181717}
.mc-linkedin{--mc-brand:#0A66C2;--mc-on:#ffffff;--mc-ink:#0A66C2}
.mc-mastodon{--mc-brand:#6364FF;--mc-on:#ffffff;--mc-ink:#6364FF}
.mc-reddit{--mc-brand:#FF4500;--mc-on:#ffffff;--mc-ink:#FF4500}
.mc-threads{--mc-brand:#000000;--mc-on:#ffffff;--mc-ink:#000000}
.mc-whatsapp{--mc-brand:#25D366;--mc-on:#0b0f17;--mc-ink:#0f172a}
.mc-x{--mc-brand:#000000;--mc-on:#ffffff;--mc-ink:#000000}
.mc-youtube{--mc-brand:#FF0000;--mc-on:#ffffff;--mc-ink:#FF0000}
JavaScript
// Copy link: writes the field's value to the clipboard, marks the button with data-copied (CSS uses :has() to
// show the tick) and announces the result in the role="status" line. Without JS the field can be copied by hand.
document.querySelectorAll('[data-copy]').forEach((btn) => {
  btn.addEventListener('click', async () => {
    const field = document.getElementById(btn.dataset.copy);
    const status = document.getElementById(btn.dataset.status);
    try {
      await navigator.clipboard.writeText(field.value);
      status.textContent = 'Link copied';
      btn.dataset.copied = '';
      setTimeout(() => { delete btn.dataset.copied; status.textContent = ''; }, 2000);
    } catch {
      field.select();
      status.textContent = 'Press Ctrl+C or Cmd+C to copy the selected link';
    }
  });
});

Bootstrap 5 code

Requires: Bootstrap 5.3.8 CSS

HTML
<div><span class="lbl">Share popover anchored to its button, with copy link</span>
<article class="mc-post card flex-row">
  <div><h3>How we cut our build time in half</h3><p>Northline engineering blog · 6 min read</p></div>
  <button class="btn mc-trigger" type="button" popovertarget="mc-pop"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="m8.6 13.5 6.8 4m0-11-6.8 4"/></svg>Share</button>
  <div class="mc-pop card" id="mc-pop" popover role="dialog" aria-labelledby="mc-pop-title">
    <p class="mc-pop-title" id="mc-pop-title">Share this article</p>
    <ul class="mc-apps" role="list">
      <li><a class="mc-app mc-x" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg></span><span><span class="visually-hidden">Share on </span>X</span></a></li>
      <li><a class="mc-app mc-bluesky" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg></span><span><span class="visually-hidden">Share on </span>Bluesky</span></a></li>
      <li><a class="mc-app mc-threads" href="https://www.threads.net/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M18.263 11.097c-.03-3.486-1.92-5.586-5.111-5.586-2.13 0-3.922.963-4.863 2.499l2.062 1.438c.535-.843 1.272-1.543 2.628-1.543 1.528 0 2.318.85 2.544 2.431a15 15 0 0 0-2.236-.173c-4.125 0-6.068 1.867-6.068 4.336s1.943 3.99 4.804 3.99c3.139 0 5.013-2.115 5.781-4.735.798.361 1.348 1.204 1.348 2.47 0 3.387-3.907 5.232-7.22 5.232-4.885 0-8.077-3.207-8.077-8.424 0-6.392 4.223-10.487 9.9-10.487 3.808 0 5.69 1.671 6.97 3.914l2.108-1.475C21.44 2.078 18.331 0 13.663 0 6.227 0 1.168 5.277 1.168 12.934c0 7 4.953 11.066 10.856 11.066 4.878 0 9.809-2.846 9.809-7.716 0-2.545-1.46-4.231-3.569-5.187m-6.33 4.855c-1.077 0-2.026-.512-2.026-1.453 0-1.483 1.822-1.934 3.606-1.934.678 0 1.34.045 1.927.173-.422 1.927-1.671 3.215-3.508 3.214Z"/></svg></span><span><span class="visually-hidden">Share on </span>Threads</span></a></li>
      <li><a class="mc-app mc-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg></span><span><span class="visually-hidden">Share on </span>LinkedIn</span></a></li>
      <li><a class="mc-app mc-whatsapp" href="https://wa.me/?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/></svg></span><span><span class="visually-hidden">Share on </span>WhatsApp</span></a></li>
      <li><a class="mc-app mc-email" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg></span><span><span class="visually-hidden">Share by </span>Email</span></a></li>
    </ul>
    <div class="mc-copy input-group">
      <label class="visually-hidden" for="mc-url">Article link</label>
      <input class="form-control" id="mc-url" type="text" value="https://example.com/blog/faster-builds" readonly>
      <button class="btn" type="button" data-copy="mc-url" data-status="mc-status"><span class="mc-idle"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7"/><path d="M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7"/></svg>Copy</span><span class="mc-done"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7.5"/></svg>Copied</span></button>
    </div>
    <p class="mc-status" id="mc-status" role="status"></p>
  </div>
</article></div>
<div><span class="lbl">CSS-only tooltips that flip with anchor positioning</span>
<ul class="mc-tips list-unstyled" role="list">
  <li><a class="mc-tl mc-github" href="https://github.com/uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg><span class="mc-tip"><span class="visually-hidden">uiCookies on </span>GitHub</span></a></li>
  <li><a class="mc-tl mc-mastodon" href="https://mastodon.social/@uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z"/></svg><span class="mc-tip"><span class="visually-hidden">uiCookies on </span>Mastodon</span></a></li>
  <li><a class="mc-tl mc-bluesky" href="https://bsky.app/profile/uicookies.com"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="mc-tip"><span class="visually-hidden">uiCookies on </span>Bluesky</span></a></li>
  <li><a class="mc-tl mc-youtube" href="https://www.youtube.com/@uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg><span class="mc-tip"><span class="visually-hidden">uiCookies on </span>YouTube</span></a></li>
  <li><a class="mc-tl mc-dribbble" href="https://dribbble.com/uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12-5.385 12-12 12zm10.12-10.358c-.35-.11-3.17-.953-6.384-.438 1.34 3.684 1.887 6.684 1.992 7.308 2.3-1.555 3.936-4.02 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4 1.73 1.358 3.92 2.166 6.29 2.166 1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765.135-.045.27-.084.405-.12-.26-.585-.54-1.167-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248-1.698-3.018-3.53-5.558-3.8-5.928-2.868 1.35-5.01 3.99-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6 3.645-1.365 5.19-3.44 5.373-3.702-1.81-1.61-4.19-2.586-6.795-2.586-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04.24.49.47.985.68 1.486.08.18.15.36.22.53 3.41-.43 6.8.26 7.14.33-.02-2.42-.88-4.64-2.31-6.38z"/></svg><span class="mc-tip"><span class="visually-hidden">uiCookies on </span>Dribbble</span></a></li>
  <li><a class="mc-tl mc-discord" href="https://discord.gg/uicookies"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg><span class="mc-tip"><span class="visually-hidden">uiCookies on </span>Discord</span></a></li>
</ul></div>
<div><span class="lbl">One share bar, laid out by container width</span>
<div class="cq-demo">
  <div class="cq-slot"><small>In a 240px sidebar</small>
    <div class="mc-cq"><ul class="mc-bar" role="list" aria-label="Share this article">
      <li><a class="btn mc-btn mc-x" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>X</span></a></li>
      <li><a class="btn mc-btn mc-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>LinkedIn</span></a></li>
      <li><a class="btn mc-btn mc-bluesky" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>Bluesky</span></a></li>
      <li><a class="btn mc-btn mc-reddit" href="https://www.reddit.com/submit?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds&title=How%20we%20cut%20our%20build%20time%20in%20half"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>Reddit</span></a></li>
      <li><a class="btn mc-btn mc-email" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg><span class="mc-name"><span class="visually-hidden">Share by </span>Email</span></a></li>
    </ul></div>
  </div>
  <div class="cq-slot"><small>In the main column</small>
    <div class="mc-cq"><ul class="mc-bar" role="list" aria-label="Share this article">
      <li><a class="btn mc-btn mc-x" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>X</span></a></li>
      <li><a class="btn mc-btn mc-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>LinkedIn</span></a></li>
      <li><a class="btn mc-btn mc-bluesky" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>Bluesky</span></a></li>
      <li><a class="btn mc-btn mc-reddit" href="https://www.reddit.com/submit?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds&title=How%20we%20cut%20our%20build%20time%20in%20half"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg><span class="mc-name"><span class="visually-hidden">Share on </span>Reddit</span></a></li>
      <li><a class="btn mc-btn mc-email" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg><span class="mc-name"><span class="visually-hidden">Share by </span>Email</span></a></li>
    </ul></div>
  </div>
</div></div>
CSS
/* Modern CSS social share icons (Bootstrap): .btn, .card-like popover, .input-group and .form-control for the
   copy row. Bootstrap's own popovers and tooltips need its JavaScript, so these use the native popover
   attribute, anchor positioning, :has() and a container query instead, written as in the plain version. */
.mc-copy .form-control{height:40px;font-size:.85rem;border-color:#94a3b8;background:#f8fafc}
.mc-copy .form-control:focus{box-shadow:none;border-color:#0f172a}
.mc-copy.input-group{gap:8px}
.mc-copy.input-group>.form-control,.mc-copy.input-group>.btn{border-radius:10px!important;margin-left:0!important}
.mc-copy .btn{--bs-btn-bg:#0f172a;--bs-btn-border-color:#0f172a;--bs-btn-color:#fff;--bs-btn-hover-bg:#1e293b;--bs-btn-hover-border-color:#1e293b;--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:#1e293b;--bs-btn-active-color:#fff}
.mc-copy:has([data-copied]) .btn{--bs-btn-bg:#047857;--bs-btn-border-color:#047857;--bs-btn-hover-bg:#047857;--bs-btn-hover-border-color:#047857}
.btn.mc-trigger{--bs-btn-bg:#0f172a;--bs-btn-color:#fff;--bs-btn-hover-bg:#1e293b;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#1e293b;--bs-btn-active-color:#fff;
  --bs-btn-border-width:0;--bs-btn-border-radius:999px;--bs-btn-font-weight:600;--bs-btn-font-size:.92rem}
.btn.mc-btn{--bs-btn-padding-x:0;--bs-btn-padding-y:0;--bs-btn-border-color:#cbd5e1;--bs-btn-bg:#fff;--bs-btn-color:#0f172a;--bs-btn-hover-bg:#f1f5f9;
  --bs-btn-hover-border-color:#0f172a;--bs-btn-hover-color:#0f172a;--bs-btn-active-bg:#f1f5f9;--bs-btn-active-color:#0f172a;--bs-btn-font-weight:600;--bs-btn-font-size:.88rem}
.btn.mc-trigger:focus-visible,.btn.mc-btn:focus-visible,.mc-copy .btn:focus-visible,.mc-copy .form-control:focus-visible{box-shadow:none}

/* 1. share popover: native popover (no JS to open or close), placed under its button with anchor positioning */
.mc-post{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;padding:20px 22px;
  border:1px solid #e2e8f0;border-radius:18px;background:#fff}
.mc-post h3{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;color:#0f172a}
.mc-post p{margin:2px 0 0;font-size:.85rem;color:#475569}
.mc-trigger{anchor-name:--mc-share;display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px 0 14px;border:0;border-radius:999px;
  background:#0f172a;color:#fff;font:inherit;font-size:.92rem;font-weight:600;cursor:pointer}
.mc-trigger svg{width:18px;height:18px}
.mc-pop{width:min(330px,calc(100vw - 32px));padding:18px;border:1px solid #e2e8f0;border-radius:18px;background:#fff;color:#0f172a;
  box-shadow:0 24px 48px -16px rgba(15,23,42,.35);transition:opacity .16s,translate .16s}
.mc-pop:not(:popover-open){display:none}
@starting-style{.mc-pop:popover-open{opacity:0;translate:0 -6px}}
@supports (position-area:bottom){
  .mc-pop{position-anchor:--mc-share;position-area:bottom span-left;inset:auto;margin:10px 0;position-try-fallbacks:flip-block,flip-inline}
}
.mc-pop-title{margin:0 0 14px;font-size:.9rem;font-weight:700}
.mc-apps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 16px;padding:0;list-style:none}
.mc-app{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border-radius:12px;color:#334155;font-size:.75rem;font-weight:600;text-decoration:none}
.mc-app>span:first-child{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--mc-brand);color:var(--mc-on)}
.mc-app svg{width:20px;height:20px;fill:currentColor}
.mc-app:hover,.mc-app:focus-visible{background:#f1f5f9;color:#0f172a}
.mc-copy{display:flex;gap:8px}
.mc-copy input{flex:1;min-width:0;height:40px;padding:0 12px;border:1px solid #94a3b8;border-radius:10px;background:#f8fafc;color:#0f172a;font:inherit;font-size:.85rem}
.mc-copy button{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border:0;border-radius:10px;background:#0f172a;color:#fff;
  font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.mc-copy button svg{width:16px;height:16px}
.mc-idle,.mc-done{align-items:center;gap:6px}
.mc-idle{display:inline-flex}
.mc-done{display:none}
.mc-copy:has([data-copied]) .mc-idle{display:none}
.mc-copy:has([data-copied]) .mc-done{display:inline-flex}
.mc-copy:has([data-copied]) button{background:#047857}
.mc-status{min-height:1.3em;margin:8px 0 0;font-size:.8rem;color:#475569}
/* 2. tooltips: the name is real text inside the link, shown on hover and focus. The fallback sits above the
   icon; where anchor positioning and anchor-scope are supported it flips below near the top of the window. */
.mc-tips{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}
.mc-tl{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#e2e8f0;color:#334155;text-decoration:none;
  transition:background-color .2s,color .2s}
.mc-tl svg{width:20px;height:20px;fill:currentColor}
.mc-tl:hover,.mc-tl:focus-visible{background:var(--mc-brand);color:var(--mc-on)}
.mc-tip{position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50% 4px;padding:5px 9px;border-radius:7px;background:#0f172a;color:#fff;
  font-size:.75rem;font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s,translate .15s}
.mc-tl:hover .mc-tip,.mc-tl:focus-visible .mc-tip{opacity:1;translate:-50% 0}
@supports (position-area:top) and (anchor-scope:all){
  .mc-tips>li{anchor-scope:--mc-tl}
  .mc-tl{position:static;anchor-name:--mc-tl}
  .mc-tip{position-anchor:--mc-tl;position-area:top;bottom:auto;left:auto;margin:10px 0;translate:0 4px;position-try-fallbacks:flip-block}
  .mc-tl:hover .mc-tip,.mc-tl:focus-visible .mc-tip{translate:0 0}
}
/* 3. container query bar: icons only in a narrow slot, icons and names from 28rem of container width */
.mc-cq{container-type:inline-size}
.mc-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.mc-btn{display:grid;place-items:center;width:42px;height:42px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;
  font-size:.88rem;font-weight:600;text-decoration:none;transition:background-color .2s,border-color .2s}
.mc-btn svg{width:18px;height:18px;fill:var(--mc-ink)}
.mc-btn:hover,.mc-btn:focus-visible{border-color:#0f172a;background:#f1f5f9}
.mc-name{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@container (min-width:28rem){
  .mc-btn{display:inline-flex;align-items:center;gap:8px;width:auto;padding:0 16px 0 13px;border-radius:999px}
  .mc-name{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
}
.mc-trigger:focus-visible,.mc-app:focus-visible,.mc-copy :focus-visible,.mc-tl:focus-visible,.mc-btn:focus-visible{outline:3px solid #0f172a;outline-offset:3px}
.mc-app:focus-visible{outline-offset:0}
@media (prefers-reduced-motion:reduce){.mc-pop,.mc-tl,.mc-tip,.mc-btn{transition:none}}
.mc-bluesky{--mc-brand:#1185FE;--mc-on:#ffffff;--mc-ink:#1185FE}
.mc-discord{--mc-brand:#5865F2;--mc-on:#ffffff;--mc-ink:#5865F2}
.mc-dribbble{--mc-brand:#EA4C89;--mc-on:#ffffff;--mc-ink:#EA4C89}
.mc-email{--mc-brand:#0F766E;--mc-on:#ffffff;--mc-ink:#0F766E}
.mc-github{--mc-brand:#181717;--mc-on:#ffffff;--mc-ink:#181717}
.mc-linkedin{--mc-brand:#0A66C2;--mc-on:#ffffff;--mc-ink:#0A66C2}
.mc-mastodon{--mc-brand:#6364FF;--mc-on:#ffffff;--mc-ink:#6364FF}
.mc-reddit{--mc-brand:#FF4500;--mc-on:#ffffff;--mc-ink:#FF4500}
.mc-threads{--mc-brand:#000000;--mc-on:#ffffff;--mc-ink:#000000}
.mc-whatsapp{--mc-brand:#25D366;--mc-on:#0b0f17;--mc-ink:#0f172a}
.mc-x{--mc-brand:#000000;--mc-on:#ffffff;--mc-ink:#000000}
.mc-youtube{--mc-brand:#FF0000;--mc-on:#ffffff;--mc-ink:#FF0000}
JavaScript
// Copy link: writes the field's value to the clipboard, marks the button with data-copied (CSS uses :has() to
// show the tick) and announces the result in the role="status" line. Without JS the field can be copied by hand.
document.querySelectorAll('[data-copy]').forEach((btn) => {
  btn.addEventListener('click', async () => {
    const field = document.getElementById(btn.dataset.copy);
    const status = document.getElementById(btn.dataset.status);
    try {
      await navigator.clipboard.writeText(field.value);
      status.textContent = 'Link copied';
      btn.dataset.copied = '';
      setTimeout(() => { delete btn.dataset.copied; status.textContent = ''; }, 2000);
    } catch {
      field.select();
      status.textContent = 'Press Ctrl+C or Cmd+C to copy the selected link';
    }
  });
});

Tailwind 4 code

Requires: Tailwind CSS 4

HTML
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#475569] uppercase">Share popover anchored to its button, with copy link</span>
<article class="flex flex-wrap items-center justify-between gap-x-5 gap-y-3.5 rounded-[18px] border border-[#e2e8f0] bg-white px-[22px] py-5">
  <div><h3 class="text-[1.05rem] font-extrabold tracking-[-.01em] text-[#0f172a]">How we cut our build time in half</h3><p class="mt-0.5 text-[.85rem] text-[#475569]">Northline engineering blog · 6 min read</p></div>
  <button class="inline-flex h-[42px] cursor-pointer items-center gap-2 rounded-full bg-[#0f172a] pr-[18px] pl-3.5 text-[.92rem] font-semibold text-white [anchor-name:--mc-share] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a]" type="button" popovertarget="mc-pop"><svg class="size-[18px]" viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="m8.6 13.5 6.8 4m0-11-6.8 4"/></svg>Share</button>
  <div class="w-[min(330px,calc(100vw-32px))] rounded-[18px] border border-[#e2e8f0] bg-white p-[18px] text-[#0f172a] shadow-[0_24px_48px_-16px_rgba(15,23,42,.35)] transition-[opacity,translate] duration-150 starting:open:-translate-y-1.5 starting:open:opacity-0 motion-reduce:transition-none supports-[position-area:bottom]:inset-auto supports-[position-area:bottom]:my-2.5 supports-[position-area:bottom]:[position-anchor:--mc-share] supports-[position-area:bottom]:[position-area:bottom_span-left] supports-[position-area:bottom]:[position-try-fallbacks:flip-block,flip-inline]" id="mc-pop" popover role="dialog" aria-labelledby="mc-pop-title">
    <p class="mb-3.5 text-[.9rem] font-bold" id="mc-pop-title">Share this article</p>
    <ul class="mb-4 grid grid-cols-3 gap-1.5" role="list">
      <li><a class="flex flex-col items-center gap-1.5 rounded-xl px-1 py-2 text-[.75rem] font-semibold text-[#334155] hover:bg-[#f1f5f9] hover:text-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-[#0f172a]" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span class="grid size-11 place-items-center rounded-[14px] bg-[#000000] text-[#ffffff]"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg></span><span><span class="sr-only">Share on </span>X</span></a></li>
      <li><a class="flex flex-col items-center gap-1.5 rounded-xl px-1 py-2 text-[.75rem] font-semibold text-[#334155] hover:bg-[#f1f5f9] hover:text-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-[#0f172a]" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span class="grid size-11 place-items-center rounded-[14px] bg-[#1185FE] text-[#ffffff]"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg></span><span><span class="sr-only">Share on </span>Bluesky</span></a></li>
      <li><a class="flex flex-col items-center gap-1.5 rounded-xl px-1 py-2 text-[.75rem] font-semibold text-[#334155] hover:bg-[#f1f5f9] hover:text-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-[#0f172a]" href="https://www.threads.net/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span class="grid size-11 place-items-center rounded-[14px] bg-[#000000] text-[#ffffff]"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M18.263 11.097c-.03-3.486-1.92-5.586-5.111-5.586-2.13 0-3.922.963-4.863 2.499l2.062 1.438c.535-.843 1.272-1.543 2.628-1.543 1.528 0 2.318.85 2.544 2.431a15 15 0 0 0-2.236-.173c-4.125 0-6.068 1.867-6.068 4.336s1.943 3.99 4.804 3.99c3.139 0 5.013-2.115 5.781-4.735.798.361 1.348 1.204 1.348 2.47 0 3.387-3.907 5.232-7.22 5.232-4.885 0-8.077-3.207-8.077-8.424 0-6.392 4.223-10.487 9.9-10.487 3.808 0 5.69 1.671 6.97 3.914l2.108-1.475C21.44 2.078 18.331 0 13.663 0 6.227 0 1.168 5.277 1.168 12.934c0 7 4.953 11.066 10.856 11.066 4.878 0 9.809-2.846 9.809-7.716 0-2.545-1.46-4.231-3.569-5.187m-6.33 4.855c-1.077 0-2.026-.512-2.026-1.453 0-1.483 1.822-1.934 3.606-1.934.678 0 1.34.045 1.927.173-.422 1.927-1.671 3.215-3.508 3.214Z"/></svg></span><span><span class="sr-only">Share on </span>Threads</span></a></li>
      <li><a class="flex flex-col items-center gap-1.5 rounded-xl px-1 py-2 text-[.75rem] font-semibold text-[#334155] hover:bg-[#f1f5f9] hover:text-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-[#0f172a]" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span class="grid size-11 place-items-center rounded-[14px] bg-[#0A66C2] text-[#ffffff]"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg></span><span><span class="sr-only">Share on </span>LinkedIn</span></a></li>
      <li><a class="flex flex-col items-center gap-1.5 rounded-xl px-1 py-2 text-[.75rem] font-semibold text-[#334155] hover:bg-[#f1f5f9] hover:text-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-[#0f172a]" href="https://wa.me/?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span class="grid size-11 place-items-center rounded-[14px] bg-[#25D366] text-[#0b0f17]"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/></svg></span><span><span class="sr-only">Share on </span>WhatsApp</span></a></li>
      <li><a class="flex flex-col items-center gap-1.5 rounded-xl px-1 py-2 text-[.75rem] font-semibold text-[#334155] hover:bg-[#f1f5f9] hover:text-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-[#0f172a]" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><span class="grid size-11 place-items-center rounded-[14px] bg-[#0F766E] text-[#ffffff]"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg></span><span><span class="sr-only">Share by </span>Email</span></a></li>
    </ul>
    <div class="group flex gap-2">
      <label class="sr-only" for="mc-url">Article link</label>
      <input class="h-10 min-w-0 flex-1 rounded-[10px] border border-[#94a3b8] bg-[#f8fafc] px-3 text-[.85rem] text-[#0f172a] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a]" id="mc-url" type="text" value="https://example.com/blog/faster-builds" readonly>
      <button class="inline-flex h-10 cursor-pointer items-center gap-1.5 rounded-[10px] bg-[#0f172a] px-3.5 text-[.85rem] font-semibold text-white group-has-[[data-copied]]:bg-[#047857] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a]" type="button" data-copy="mc-url" data-status="mc-status"><span class="inline-flex items-center gap-1.5 group-has-[[data-copied]]:hidden"><svg class="size-4" viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7"/><path d="M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7"/></svg>Copy</span><span class="hidden items-center gap-1.5 group-has-[[data-copied]]:inline-flex"><svg class="size-4" viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7.5"/></svg>Copied</span></button>
    </div>
    <p class="mt-2 min-h-[1.3em] text-[.8rem] text-[#475569]" id="mc-status" role="status"></p>
  </div>
</article></div>
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#475569] uppercase">CSS-only tooltips that flip with anchor positioning</span>
<ul class="flex flex-wrap gap-3" role="list">
  <li class="supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-scope:--mc-tl]"><a class="group relative grid size-[46px] place-items-center rounded-full bg-[#e2e8f0] text-[#334155] transition-colors duration-200 hover:bg-(--b) hover:text-(--on) focus-visible:bg-(--b) focus-visible:text-(--on) focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:static supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-name:--mc-tl] [--b:#181717] [--on:#ffffff] [--ink:#181717]" href="https://github.com/uicookies"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg><span class="pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 -translate-x-1/2 translate-y-1 rounded-[7px] bg-[#0f172a] px-[9px] py-[5px] text-[.75rem] font-semibold whitespace-nowrap text-white opacity-0 transition duration-150 group-hover:translate-y-0 group-hover:opacity-100 group-focus-visible:translate-y-0 group-focus-visible:opacity-100 motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:inset-auto supports-[(position-area:top)_and_(anchor-scope:all)]:my-2.5 supports-[(position-area:top)_and_(anchor-scope:all)]:translate-x-0 supports-[(position-area:top)_and_(anchor-scope:all)]:[position-anchor:--mc-tl] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-area:top] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-try-fallbacks:flip-block]"><span class="sr-only">uiCookies on </span>GitHub</span></a></li>
  <li class="supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-scope:--mc-tl]"><a class="group relative grid size-[46px] place-items-center rounded-full bg-[#e2e8f0] text-[#334155] transition-colors duration-200 hover:bg-(--b) hover:text-(--on) focus-visible:bg-(--b) focus-visible:text-(--on) focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:static supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-name:--mc-tl] [--b:#6364FF] [--on:#ffffff] [--ink:#6364FF]" href="https://mastodon.social/@uicookies"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z"/></svg><span class="pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 -translate-x-1/2 translate-y-1 rounded-[7px] bg-[#0f172a] px-[9px] py-[5px] text-[.75rem] font-semibold whitespace-nowrap text-white opacity-0 transition duration-150 group-hover:translate-y-0 group-hover:opacity-100 group-focus-visible:translate-y-0 group-focus-visible:opacity-100 motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:inset-auto supports-[(position-area:top)_and_(anchor-scope:all)]:my-2.5 supports-[(position-area:top)_and_(anchor-scope:all)]:translate-x-0 supports-[(position-area:top)_and_(anchor-scope:all)]:[position-anchor:--mc-tl] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-area:top] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-try-fallbacks:flip-block]"><span class="sr-only">uiCookies on </span>Mastodon</span></a></li>
  <li class="supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-scope:--mc-tl]"><a class="group relative grid size-[46px] place-items-center rounded-full bg-[#e2e8f0] text-[#334155] transition-colors duration-200 hover:bg-(--b) hover:text-(--on) focus-visible:bg-(--b) focus-visible:text-(--on) focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:static supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-name:--mc-tl] [--b:#1185FE] [--on:#ffffff] [--ink:#1185FE]" href="https://bsky.app/profile/uicookies.com"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 -translate-x-1/2 translate-y-1 rounded-[7px] bg-[#0f172a] px-[9px] py-[5px] text-[.75rem] font-semibold whitespace-nowrap text-white opacity-0 transition duration-150 group-hover:translate-y-0 group-hover:opacity-100 group-focus-visible:translate-y-0 group-focus-visible:opacity-100 motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:inset-auto supports-[(position-area:top)_and_(anchor-scope:all)]:my-2.5 supports-[(position-area:top)_and_(anchor-scope:all)]:translate-x-0 supports-[(position-area:top)_and_(anchor-scope:all)]:[position-anchor:--mc-tl] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-area:top] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-try-fallbacks:flip-block]"><span class="sr-only">uiCookies on </span>Bluesky</span></a></li>
  <li class="supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-scope:--mc-tl]"><a class="group relative grid size-[46px] place-items-center rounded-full bg-[#e2e8f0] text-[#334155] transition-colors duration-200 hover:bg-(--b) hover:text-(--on) focus-visible:bg-(--b) focus-visible:text-(--on) focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:static supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-name:--mc-tl] [--b:#FF0000] [--on:#ffffff] [--ink:#FF0000]" href="https://www.youtube.com/@uicookies"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg><span class="pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 -translate-x-1/2 translate-y-1 rounded-[7px] bg-[#0f172a] px-[9px] py-[5px] text-[.75rem] font-semibold whitespace-nowrap text-white opacity-0 transition duration-150 group-hover:translate-y-0 group-hover:opacity-100 group-focus-visible:translate-y-0 group-focus-visible:opacity-100 motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:inset-auto supports-[(position-area:top)_and_(anchor-scope:all)]:my-2.5 supports-[(position-area:top)_and_(anchor-scope:all)]:translate-x-0 supports-[(position-area:top)_and_(anchor-scope:all)]:[position-anchor:--mc-tl] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-area:top] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-try-fallbacks:flip-block]"><span class="sr-only">uiCookies on </span>YouTube</span></a></li>
  <li class="supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-scope:--mc-tl]"><a class="group relative grid size-[46px] place-items-center rounded-full bg-[#e2e8f0] text-[#334155] transition-colors duration-200 hover:bg-(--b) hover:text-(--on) focus-visible:bg-(--b) focus-visible:text-(--on) focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:static supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-name:--mc-tl] [--b:#EA4C89] [--on:#ffffff] [--ink:#EA4C89]" href="https://dribbble.com/uicookies"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12-5.385 12-12 12zm10.12-10.358c-.35-.11-3.17-.953-6.384-.438 1.34 3.684 1.887 6.684 1.992 7.308 2.3-1.555 3.936-4.02 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4 1.73 1.358 3.92 2.166 6.29 2.166 1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765.135-.045.27-.084.405-.12-.26-.585-.54-1.167-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248-1.698-3.018-3.53-5.558-3.8-5.928-2.868 1.35-5.01 3.99-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6 3.645-1.365 5.19-3.44 5.373-3.702-1.81-1.61-4.19-2.586-6.795-2.586-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04.24.49.47.985.68 1.486.08.18.15.36.22.53 3.41-.43 6.8.26 7.14.33-.02-2.42-.88-4.64-2.31-6.38z"/></svg><span class="pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 -translate-x-1/2 translate-y-1 rounded-[7px] bg-[#0f172a] px-[9px] py-[5px] text-[.75rem] font-semibold whitespace-nowrap text-white opacity-0 transition duration-150 group-hover:translate-y-0 group-hover:opacity-100 group-focus-visible:translate-y-0 group-focus-visible:opacity-100 motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:inset-auto supports-[(position-area:top)_and_(anchor-scope:all)]:my-2.5 supports-[(position-area:top)_and_(anchor-scope:all)]:translate-x-0 supports-[(position-area:top)_and_(anchor-scope:all)]:[position-anchor:--mc-tl] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-area:top] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-try-fallbacks:flip-block]"><span class="sr-only">uiCookies on </span>Dribbble</span></a></li>
  <li class="supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-scope:--mc-tl]"><a class="group relative grid size-[46px] place-items-center rounded-full bg-[#e2e8f0] text-[#334155] transition-colors duration-200 hover:bg-(--b) hover:text-(--on) focus-visible:bg-(--b) focus-visible:text-(--on) focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:static supports-[(position-area:top)_and_(anchor-scope:all)]:[anchor-name:--mc-tl] [--b:#5865F2] [--on:#ffffff] [--ink:#5865F2]" href="https://discord.gg/uicookies"><svg class="size-5 fill-current" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg><span class="pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 -translate-x-1/2 translate-y-1 rounded-[7px] bg-[#0f172a] px-[9px] py-[5px] text-[.75rem] font-semibold whitespace-nowrap text-white opacity-0 transition duration-150 group-hover:translate-y-0 group-hover:opacity-100 group-focus-visible:translate-y-0 group-focus-visible:opacity-100 motion-reduce:transition-none supports-[(position-area:top)_and_(anchor-scope:all)]:inset-auto supports-[(position-area:top)_and_(anchor-scope:all)]:my-2.5 supports-[(position-area:top)_and_(anchor-scope:all)]:translate-x-0 supports-[(position-area:top)_and_(anchor-scope:all)]:[position-anchor:--mc-tl] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-area:top] supports-[(position-area:top)_and_(anchor-scope:all)]:[position-try-fallbacks:flip-block]"><span class="sr-only">uiCookies on </span>Discord</span></a></li>
</ul></div>
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#475569] uppercase">One share bar, laid out by container width</span>
<div class="grid gap-5 md:grid-cols-[240px_1fr] md:items-start">
  <div class="rounded-[14px] border border-dashed border-[#94a3b8] p-4"><small class="mb-2.5 block text-[.75rem] text-[#475569]">In a 240px sidebar</small>
    <div class="@container"><ul class="flex flex-wrap gap-2" role="list" aria-label="Share this article">
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#000000] [--on:#ffffff] [--ink:#000000]" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>X</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#0A66C2] [--on:#ffffff] [--ink:#0A66C2]" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>LinkedIn</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#1185FE] [--on:#ffffff] [--ink:#1185FE]" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>Bluesky</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#FF4500] [--on:#ffffff] [--ink:#FF4500]" href="https://www.reddit.com/submit?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds&title=How%20we%20cut%20our%20build%20time%20in%20half"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>Reddit</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#0F766E] [--on:#ffffff] [--ink:#0F766E]" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share by </span>Email</span></a></li>
    </ul></div>
  </div>
  <div class="rounded-[14px] border border-dashed border-[#94a3b8] p-4"><small class="mb-2.5 block text-[.75rem] text-[#475569]">In the main column</small>
    <div class="@container"><ul class="flex flex-wrap gap-2" role="list" aria-label="Share this article">
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#000000] [--on:#ffffff] [--ink:#000000]" href="https://x.com/intent/post?text=How%20we%20cut%20our%20build%20time%20in%20half&url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>X</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#0A66C2] [--on:#ffffff] [--ink:#0A66C2]" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 2h15A2.5 2.5 0 0 1 22 4.5v15a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 19.5v-15A2.5 2.5 0 0 1 4.5 2zM7 5.15a1.65 1.65 0 1 0 0 3.3 1.65 1.65 0 1 0 0-3.3zM5.6 9.6v8.9h2.8V9.6zM10.4 9.6v8.9h2.8v-4.3c0-1.45.7-2.3 1.95-2.3 1.2 0 1.5.95 1.5 2.1v4.5h2.8v-5.05c0-2.45-.75-4.1-3.35-4.1-1.45 0-2.5.7-2.95 1.5V9.6z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>LinkedIn</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#1185FE] [--on:#ffffff] [--ink:#1185FE]" href="https://bsky.app/intent/compose?text=How%20we%20cut%20our%20build%20time%20in%20half%20https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>Bluesky</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#FF4500] [--on:#ffffff] [--ink:#FF4500]" href="https://www.reddit.com/submit?url=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds&title=How%20we%20cut%20our%20build%20time%20in%20half"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share on </span>Reddit</span></a></li>
      <li><a class="grid size-[42px] place-items-center rounded-[10px] border border-[#cbd5e1] bg-white text-[.88rem] font-semibold text-[#0f172a] transition-colors duration-200 hover:border-[#0f172a] hover:bg-[#f1f5f9] focus-visible:border-[#0f172a] focus-visible:bg-[#f1f5f9] focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-[#0f172a] motion-reduce:transition-none @md:inline-flex @md:w-auto @md:items-center @md:gap-2 @md:rounded-full @md:pr-4 @md:pl-[13px] [--b:#0F766E] [--on:#ffffff] [--ink:#0F766E]" href="mailto:?subject=How%20we%20cut%20our%20build%20time%20in%20half&body=https%3A%2F%2Fexample.com%2Fblog%2Ffaster-builds"><svg class="size-[18px] fill-(--ink)" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4zM5.7 6 12 10.75 18.3 6zM4 7.25V17.5c0 .28.22.5.5.5h15a.5.5 0 0 0 .5-.5V7.25l-7.4 5.55a1 1 0 0 1-1.2 0z"/></svg><span class="sr-only @md:not-sr-only"><span class="sr-only">Share by </span>Email</span></a></li>
    </ul></div>
  </div>
</div></div>
JavaScript
// Copy link: writes the field's value to the clipboard, marks the button with data-copied (CSS uses :has() to
// show the tick) and announces the result in the role="status" line. Without JS the field can be copied by hand.
document.querySelectorAll('[data-copy]').forEach((btn) => {
  btn.addEventListener('click', async () => {
    const field = document.getElementById(btn.dataset.copy);
    const status = document.getElementById(btn.dataset.status);
    try {
      await navigator.clipboard.writeText(field.value);
      status.textContent = 'Link copied';
      btn.dataset.copied = '';
      setTimeout(() => { delete btn.dataset.copied; status.textContent = ''; }, 2000);
    } catch {
      field.select();
      status.textContent = 'Press Ctrl+C or Cmd+C to copy the selected link';
    }
  });
});

About this set

Share and social icon patterns that usually need a JavaScript library, built with current CSS instead. The share popover is opened by a button with the popover attribute, so the browser handles opening, closing on Escape or an outside click, and the top layer. Anchor positioning places it under the button and flips it when there is no room, and @starting-style fades it in. Inside are six share targets as app-style tiles and a copy link field. Copying needs the Clipboard API, so about fifteen lines of vanilla JavaScript copy the link, set data-copied on the button and announce Link copied; :has() then swaps the button to a green Copied state. The tooltips are real text inside each icon link, shown on hover and focus, and positioned with anchor positioning and anchor-scope so they flip below an icon near the top of the window; without support they sit above the icon. The share bar uses a container query: in a narrow sidebar it shows icons only, and from 28rem of container width the same markup shows icons with names. The Bootstrap version adds .btn, .card, .input-group and .form-control.

What’s included

  • Popover share menu with no JavaScript to open or close it
  • Anchor positioning with flip fallbacks for the popover and the tooltips
  • Copied state driven by :has() and announced in a status line
  • CSS-only tooltips whose text is the link name
  • Container query switches the share bar between icons and labels

Accessibility

The Share button is a native popover trigger and the popover is a dialog labelled Share this article, closed with Escape. Share links and tooltip links are named by visible plus hidden text, the copy field has a label and the result is announced through role=status. Every control shows a 3px focus outline, and the popover, tooltip and colour transitions are removed under prefers-reduced-motion.

Customise it

Change the anchor name, position-area and position-try-fallbacks in .mc-pop and .mc-tip to move the popover and tooltips, and the 28rem breakpoint in the @container rule. Colours are the #0f172a ink and the .mc-network brand classes; in Tailwind the same values sit in arbitrary properties and the @md: variant.