2025-09-03
ChatGPT風リンクバッジのイメージ

ChatGPT風リンクバッジをCSSで作成する方法

はじめに

ブログ記事やウェブサイトにリンクを設置する際、単なるテキストリンクよりも「視認性が高く、デザイン的に洗練されたリンク」の方がユーザー体験を向上させます。本記事では、小さい字で端が丸いChatGPT風のリンクバッジをCSSで実装する方法です

なぜリンクデザインが重要か?

ChatGPT風リンクバッジのCSSコード

以下のコードをHTMLファイルの<style>タグ内に記述してください。

/* 行内で並べやすい行コンテナ(任意) */
.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

/* ベースの丸い小型リンク */
.chip-link {
  --fg: #0f172a;       /* 文字色(ライト) */
  --bg: #f1f5f9;       /* 背景色(ライト) */
  --bd: #e2e8f0;       /* ボーダー色(ライト) */

  display: inline-flex;
  align-items: center;
  gap: .35em;
  font-size: .78rem;      /* 小さめ文字 */
  line-height: 1;
  font-weight: 600;
  padding: .4em .7em;
  border: 1px solid var(--bd);
  background: var(--bg);
  color: var(--fg);
  border-radius: 999px;   /* 端まる */
  text-decoration: none;
  box-shadow: 0 1px 0 rgba(0,0,0,.04), inset 0 1px 0 rgba(255,255,255,.35);
  transition: transform .12s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.chip-link:hover {
  transform: translateY(-1px);
  background: #e2e8f0;
  border-color: #cbd5e1;
  text-decoration: none;
}

.chip-link:active {
  transform: translateY(0);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.12);
}

.chip-link:focus-visible {
  outline: 2px solid transparent;
  box-shadow: 0 0 0 3px rgba(59,130,246,.45); /* アクセシブルなフォーカス */
}

/* さらに小さくしたいとき */
.chip-link--xs {
  font-size: .7rem;
  padding: .32em .6em;
}

/* ChatGPT風:緑~青系グラデ+白文字 */
.chip-link--brand {
  --fg: #ffffff;
  --bg: linear-gradient(90deg, #10b981 0%, #06b6d4 100%);
  --bd: rgba(255,255,255,.28);
  color: var(--fg);
  border-color: var(--bd);
  background: var(--bg);
  box-shadow: 0 4px 14px rgba(16,185,129,.22);
}

.chip-link--brand:hover {
  filter: brightness(1.05);
}

/* 外部リンクの矢印(target=_blankのとき自動で付与) */
.chip-link[target="_blank"]::after {
  content: "↗";
  font-size: .9em;
  margin-left: .25em;
  line-height: 1;
  aria-hidden: true;
}

/* ダークモード最適化 */
@media (prefers-color-scheme: dark) {
  .chip-link {
    --fg: #e5e7eb;
    --bg: #0b1220;
    --bd: #1f2937;
    box-shadow: none;
  }
  .chip-link:hover {
    background: #111827;
    border-color: #374151;
  }
  .chip-link--brand {
    box-shadow: 0 6px 18px rgba(16,185,129,.28);
  }
}

/* 高コントラストユーザー向け */
@media (prefers-contrast: more) {
  .chip-link { border-width: 2px; }
}

/* 実要素で外部リンクアイコンを追加する場合のスタイル */
.ext-icon {
  font-size: .9em;
  line-height: 1;
  display: inline-block;
  margin-left: .25em;
  vertical-align: middle;
}

/* スクリーンリーダー向けにだけ読ませる */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

    

HTMLでの利用例

<div class="chip-row">
<a class="chip-link" href="https://mojeld.com">通常リンク</a>
<a class="chip-link chip-link--brand" href="https://mjeld.com/headline/" target="\_blank" rel="noopener">HEADLINE</a>
</div>

出力イメージ

アクセシビリティの配慮

疑似要素で外部リンクアイコンを追加した場合、スクリーンリーダーに正しく伝わらない可能性があります。その場合は以下のように実要素を使い、aria-hidden="true" を付与すると安心です。

<a class="chip-link chip-link--brand" href="https://mojeld.com" target="_blank" rel="noopener">
サンプルリンク
<span class="ext-icon" aria-hidden="true">↗</span>
</a>
サンプルリンク

まとめ


関連リンク

.htaccessは階層で引き継がれる?Apacheの挙動を徹底解説

MBTI診断

SEO対策に必須!検索上位を狙うsitemap.xmlの完全ガイド

Google Search Consoleの「代替ページ(適切なcanonicalタグあり)」とは?原因と解決法を徹底解説!

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

Googleサイト確認のTXTレコードをnslookupで確認する方法【SEO対策】

Googleサーチコンソールに反映されるための最低限のSEO構造とは

PHPで複数ファイルを順番に削除する方法

MBTI診断 | あなたの性格タイプを分析

PDFファイル結合|パスワード設定ツール

【Anker Soundcore Liberty 4】イヤーピース紛失!代替品はAmazonで購入

JavaScriptでタイムゾーン変換!UTCとJST(日本時間)の変換方法

pnpmとは?npmとの違いとインストール方法

git switchの使い方とgit checkoutとの違い

Git push エラー回避方法|rebaseとfetchで安全にリモート変更を取り込む

CSS・JSの更新が反映されない時のキャッシュ対策方法3選

HTMLとJavaScriptモジュールでクラスを定義し、ボタンから呼び出す方法

JavaScriptでTensorFlow.jsを動的に読み込む方法|HTMLに直接書かずに機械学習を実行する

ChatGPT風リンクバッジをCSSで作成する

ffmpegでMOVファイルを逆再生する方法【音声付き対応】

Windows 11でタスクマネージャー以外からアプリを終了させる方法【PowerShell・コマンドプロンプト】

macOSでドメイン名から情報を取得する方法【初心者向け】

JavaScriptでPCの空き容量やメモリ量を取得できる?Chromeの制限と代替手法

Next.jsでbasePathを/homepage2にしてS3へ静的デプロイする完全手順

Homebrewの「update」と「upgrade」の違い+バージョン確認方法|Macのパッケージ管理

.DS_StoreをGitでアップしない方法|macユーザー向け

iPhoneからmacOSの「画面共有」でMacを操作