今回のアイデアテーマはボタン!。LP制作や、CTAを設置する際に重宝するCSSです。
初心者でも安心のコピペで使えるCSSをご用意しました!
#01Slide Fill見本
サイドから背景が伸びてくる!
HTML
<button class="btn-slide">button</button>
CSS
.btn-slide{
position:relative; display:inline-block; padding:12px 18px;
border-radius:12px; border:2px solid #6366f1; background:transparent;
color:#6366f1; font:600 14px/1 ui-sans-serif,system-ui; cursor:pointer;
overflow:hidden; transition:color .3s, background-size .35s ease;
background:
linear-gradient(90deg,#6366f1,#06b6d4) 0 0 / 0% 100% no-repeat;
}
.btn-slide:hover{
background-size: 100% 100%;
color:#fff;
}
#02Press 3D見本
3Dで立体的なボタン!
HTML
<button class="btn-press">button</button>
CSS
.btn-press{
display:inline-block; padding:12px 18px; border-radius:12px; border:none;
background:#6366f1; color:#fff; font:700 14px/1 ui-sans-serif,system-ui; cursor:pointer;
box-shadow:0 7px 0 #4f46e5, 0 10px 18px rgba(0,0,0,.2);
transform: translateY(0);
transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
/* ホバーで軽く沈む(押し込み感) */
.btn-press:hover{
transform: translateY(3px);
box-shadow: 0 4px 0 #4f46e5, 0 8px 14px rgba(0,0,0,.2);
filter: brightness(0.98);
}
/* クリック中はさらに沈む */
.btn-press:active{
transform: translateY(5px);
box-shadow: 0 2px 0 #4f46e5, 0 6px 10px rgba(0,0,0,.18);
}
#03Neon Glow見本
ホバーで光彩アップ!
HTML
<button class="btn-neon">button</button>
CSS
.btn-neon{
display:inline-block; padding:12px 18px; border-radius:12px; border:2px solid #4338ca;
background:#0b0f1a; color:#c7d2fe; font:600 14px/1 ui-sans-serif,system-ui; cursor:pointer;
text-shadow:0 0 6px rgba(99,102,241,.8);
box-shadow:0 0 18px rgba(99,102,241,.6), inset 0 0 0 2px #4338ca;
transition:box-shadow .25s ease;
}
.btn-neon:hover{ box-shadow:0 0 28px rgba(99,102,241,.8), inset 0 0 0 2px #4338ca; }
#04rubber見本
黒のグラデーションでラバー感を演出。
文字だけ浮き出るおしゃれボタン
HTML
<button class="btn-rubber">button</button>
CSS
.btn-rubber{
position:relative; display:inline-block; padding:12px 18px; border-radius:14px;
border:2px solid rgba(255,255,255,.85);
background:
linear-gradient(180deg,rgba(255,255,255,0.5),rgba(255,255,255,0)),
rgba(17,24,39,1);
color:#fff; font:700 14px/1 ui-sans-serif,system-ui; cursor:pointer;
backdrop-filter: blur(12px) saturate(1.1);
-webkit-backdrop-filter: blur(12px) saturate(1.1);
text-shadow:0 1px 2px rgba(0,0,0,.6);
box-shadow:0 14px 32px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.25);
transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.btn-rubber:hover{
background:
linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.16)),
rgba(17,24,39,.32);
border-color:#fff;
}
.btn-rubber:focus-visible{ outline:2px solid rgba(255,255,255,.85); outline-offset:2px; }
@supports not ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){
.btn-rubber{ background: rgba(17,24,39,.35); }
}
#05Gradient Border見本
ボタンの枠をグラデーション。
ちょっとした遊び心に。
HTML
<button class="btn-gborder">button</button>
CSS
.btn-gborder{
position:relative; display:inline-block; padding:12px 18px; border-radius:14px;
color:#fff; font:600 14px/1 ui-sans-serif,system-ui; cursor:pointer;
background:
linear-gradient(#0b0f1a,#0b0f1a) padding-box,
conic-gradient(from 0deg, #6366f1, #06b6d4, #6366f1) border-box;
border:2px solid transparent;
transition:filter .2s ease;
}
.btn-gborder:hover{ animation:gb-spin 1.2s linear infinite; filter:saturate(1.1); }
@keyframes gb-spin{
to{
background:
linear-gradient(#0b0f1a,#0b0f1a) padding-box,
conic-gradient(from 360deg, #6366f1, #06b6d4, #6366f1) border-box;
}
}
.btn-gborder:focus-visible{ outline:3px solid rgba(99,102,241,.45); outline-offset:2px; }
#06Shine Sweep見本
マウスホバーできらめくボタン。
HTML
<button class="btn-shine">button</button>
CSS
.btn-shine{
position:relative; display:inline-block; padding:12px 18px; border-radius:12px; border:none;
background:#6366f1; color:#fff; font:700 14px/1 ui-sans-serif,system-ui; cursor:pointer;
overflow:hidden;
}
.btn-shine::after{
content:""; position:absolute; inset:-120% -40%;
background:linear-gradient(60deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);
transform:translateX(-60%);
}
.btn-shine:hover::after{ transition:transform .7s ease; transform:translateX(60%); }
.btn-shine:focus-visible{ outline:3px solid rgba(255,255,255,.6); outline-offset:2px; }
#07Arrow Move見本
矢印の動きでアクションを誘導。
HTML
<button class="btn-arrow">button</button>
CSS
.btn-arrow{
display:inline-flex; align-items:center; gap:.5em;
padding:12px 18px; border-radius:12px; background:#fff; color:#111;
border:2px solid #334155; font:600 14px/1 ui-sans-serif,system-ui; cursor:pointer;
transition:color .2s ease, border-color .2s ease;
}
.btn-arrow::after{
content:"→"; font-weight:700; transform:translateX(-4px);
transition:transform .25s ease;
}
.btn-arrow:hover::after{ transform:translateX(2px); }
.btn-arrow:hover{ color:#0f172a; border-color:#0f172a; }
.btn-arrow:focus-visible{ outline:3px solid rgba(51,65,85,.35); outline-offset:2px; }
#08Aurora Gradient見本
きらめくオーロラ風ボタン!
HTML
<button class="btn-aurora">button</button>
CSS
.list-orbit { list-style: none; padding: 0; margin: 0; }
.list-orbit li {
--core:#10b981;
position: relative; padding-left: 1.6em; line-height: 1.9;
}
.list-orbit li::before {
content:""; position:absolute; left:0; top:.58em;
width:.84em; height:.84em; border-radius:50%;
background: radial-gradient(circle .33em at 50% 50%, var(--core) 99%, #0000 100%);
box-shadow: 0 0 0 .16em color-mix(in oklab, var(--core), #000 20%);
}
#09“Outline Offset Merge見本
アウトラインボタンでスタイリッシュに。
HTML
<button class="btn-outline-merge">button</button>
CSS
.btn-outline-merge{
position: relative;
display: inline-block;
padding: 12px 20px;
border: none; /* ← アウトラインだけ(枠は疑似要素で描画) */
border-radius: 12px;
background: transparent;
color: #0f172a; /* 文字色はお好みで */
font: 700 14px/1 ui-sans-serif, system-ui;
cursor: pointer;
transition: transform .2s ease;
}
/* 上左にズレた枠(パープル) */
.btn-outline-merge::before,
.btn-outline-merge::after{
content: "";
position: absolute;
inset: 0; /* 要素サイズと同じ矩形 */
border-radius: 12px;
pointer-events: none;
transition: transform .28s cubic-bezier(.2,.6,.2,1), border-color .28s ease, opacity .28s ease;
}
.btn-outline-merge::before{
border: 2px solid #6366f1; /* パープル */
transform: translate(-6px, -6px); /* ← 上左にズレ */
}
/* 下右にズレた枠(シアン) */
.btn-outline-merge::after{
border: 2px solid #06b6d4; /* シアン */
transform: translate(6px, 6px); /* ← 下右にズレ */
}
/* ホバーで“合体”して1本の枠に見せる */
.btn-outline-merge:hover::before,
.btn-outline-merge:hover::after{
transform: translate(0,0);
border-color: #6366f1; /* 色を揃えて1本感を強める */
}
/* クリック中のちょい押し込み感(任意) */
.btn-outline-merge:active{ transform: translateY(1px); }
/* アクセシビリティ:キーボード操作でリング表示 */
.btn-outline-merge:focus-visible{
outline: 3px solid rgba(99,102,241,.45);
outline-offset: 3px;
}
/* 表示用の説明 */
.sub{font-size:12px;color:#64748b;margin:4px 0 10px}
#10Corner Frame見本
シンプルながらもホバーでアクセント!
HTML
<button class="btn-corner-frame">button</button>
CSS
.btn-corner-frame{
position:relative;
display:inline-block;
padding:12px 24px;
background:transparent;
border:none; border-radius:12px;
color:#0f172a; /* ← 好きな色に変更可 */
font:700 14px/1 ui-sans-serif,system-ui;
cursor:pointer;
transition: background-size .4s ease, color .2s ease, transform .2s ease;
background-repeat: no-repeat;
/* 角のL字を8つの背景レイヤーで描く(TL横/縦, TR横/縦, BL横/縦, BR横/縦) */
background-image:
linear-gradient(currentColor,currentColor), linear-gradient(currentColor,currentColor),
linear-gradient(currentColor,currentColor), linear-gradient(currentColor,currentColor),
linear-gradient(currentColor,currentColor), linear-gradient(currentColor,currentColor),
linear-gradient(currentColor,currentColor), linear-gradient(currentColor,currentColor);
/* 角から8px内側に置く(視覚的余白) */
background-position:
left 8px top 8px, left 8px top 8px,
right 8px top 8px, right 8px top 8px,
left 8px bottom 8px,left 8px bottom 8px,
right 8px bottom 8px,right 8px bottom 8px;
/* 初期サイズ:短いL字(横18×2 / 縦2×18) */
background-size:
18px 2px, 2px 18px,
18px 2px, 2px 18px,
18px 2px, 2px 18px,
18px 2px, 2px 18px;
}
/* ホバーで四辺へスーッと伸びて“1本の枠”になる */
.btn-corner-frame:hover{
background-size:
calc(100% - 16px) 2px, 2px calc(100% - 16px),
calc(100% - 16px) 2px, 2px calc(100% - 16px),
calc(100% - 16px) 2px, 2px calc(100% - 16px),
calc(100% - 16px) 2px, 2px calc(100% - 16px);
}
/* クリックでわずかに沈む */
.btn-corner-frame:active{ transform: translateY(1px); }
いかがでしたでしょうか?
今回はボタンのCSSのアイデアを考えてみました!
背景との相性を考えて、コントラストをはっきりさせると効果も出やすいですよ!

ホームページ制作でお悩みならまずは相談してみませんか?


コメント