Design resources

Social buttons that respect the page and the reader

Build useful follow and share controls with clear labels, real links, and lightweight behavior instead of a wall of third-party widgets.

A social button should answer one question: what will happen when I activate it? “Follow”, “share”, “copy link”, and “subscribe” are distinct actions. Giving all four the same logo-only treatment makes the interface harder to understand.

This is an updated guide at the address of OpenSourceHunter’s original social-button collection. The original downloadable artwork is not reproduced; today’s recommendation is to use clear labels and a small, consistent icon set.

An anchor is enough for a link to a social profile. Keep its href usable even if every script fails. If opening a new tab is necessary, tell the reader and include rel="noopener noreferrer" with target="_blank".

<a href="https://github.com/lucide-icons/lucide">
  Explore Lucide on GitHub
</a>

Use Simple Icons for brand artwork or Lucide for generic actions such as copying or sharing. Retain the applicable notices and review brand rules separately.

Share the page deliberately

The Web Share API can hand a title and URL to the device’s share interface after a user gesture. Feature-detect navigator.share, handle cancellation quietly, and provide a copy-link option when sharing is unavailable.

The clipboard API requires a secure context and can fail. A fallback should expose the URL in selectable text, rather than reporting “Copied” before the operation succeeds. Do not automatically read the clipboard or open a popup on page load.

Design a quiet, accessible group

Keep touch targets comfortable, focus visible, and text contrast sufficient. Use text labels for unusual services. Arrange controls in a meaningful order, and use CSS wrapping rather than clipping a row on narrow screens.

Do not include invented share counts or imply that a reader has endorsed the page. For a small publication, three controls are often enough: a profile link, a copy-link button, and an RSS subscription.

Measure the cost before adding a widget

A third-party sharing bundle may download code, set cookies, or contact another service before anyone clicks. If a direct link meets the need, it is easier to maintain and explain. Add a widget only when its specific behavior is worth that tradeoff.