CSSだけで作る、立体的に回転する奥行きのある全画面スライダー

アニメーション

CSSだけで作る、立体的に回転する奥行きのある全画面スライダー

投稿日2026/02/07

更新日2026/2/2

画像スライダーはよく見かけますが、奥行きや立体感が加わるだけで、印象は大きく変わります。

このデモは、CSSだけを使って画像が円状に並び、立体的に回転し続けるスライダーを実装したものです。
JavaScriptを使わず、CSSの3D変形とアニメーションだけで構成しています。

Preview プレビュー

Code コード

<div class="kumonosu-scene">
    <div class="kumonosu-a3d" style="--n: 12">
        <!-- 直接画像を記述 -->
        <img class="kumonosu-card" style="--i: 0" src="https://picsum.photos/400/600?random=1" alt="image">
        <img class="kumonosu-card" style="--i: 1" src="https://picsum.photos/400/600?random=2" alt="image">
        <img class="kumonosu-card" style="--i: 2" src="https://picsum.photos/400/600?random=3" alt="image">
        <img class="kumonosu-card" style="--i: 3" src="https://picsum.photos/400/600?random=4" alt="image">
        <img class="kumonosu-card" style="--i: 4" src="https://picsum.photos/400/600?random=5" alt="image">
        <img class="kumonosu-card" style="--i: 5" src="https://picsum.photos/400/600?random=6" alt="image">
        <img class="kumonosu-card" style="--i: 6" src="https://picsum.photos/400/600?random=7" alt="image">
        <img class="kumonosu-card" style="--i: 7" src="https://picsum.photos/400/600?random=8" alt="image">
        <img class="kumonosu-card" style="--i: 8" src="https://picsum.photos/400/600?random=9" alt="image">
        <img class="kumonosu-card" style="--i: 9" src="https://picsum.photos/400/600?random=10" alt="image">
        <img class="kumonosu-card" style="--i: 10" src="https://picsum.photos/400/600?random=11" alt="image">
        <img class="kumonosu-card" style="--i: 11" src="https://picsum.photos/400/600?random=12" alt="image">
    </div>
</div>
/* ====== Relevant CSS ====== */
.kumonosu-scene, .kumonosu-a3d {
	display: grid;
}
.kumonosu-scene {
	/* prevent scrollbars */
	overflow: hidden;
	/* for 3D look; smaller = more extreme effect */
	perspective: 35em;
	/* lateral fade */
	mask: linear-gradient(90deg, #0000, red 20% 80%, #0000);
	/* Safari用のマスク指定 */
	-webkit-mask: linear-gradient(90deg, #0000, #000 20% 80%, #0000);
	/* 全画面表示 */
	width: 100vw;
	height: 100vh;
}
.kumonosu-a3d {
	place-self: center;
	/* middle align */
	/* don't flatten 3D transformed children */
	transform-style: preserve-3d;
	animation: kumonosu-ry 32s linear infinite;
}
/* simplest y axis rotation */
@keyframes kumonosu-ry {
	to {
		transform: rotateY(1turn);
	}
}
.kumonosu-card {
	/* base card width */
	--w: 17.5em;
	/* compute base angle corresponding to a card */
	--ba: calc(1turn / var(--n));
	grid-area: 1/ 1;
	/* stack in same one grid cell */
	width: var(--w);
	aspect-ratio: 7/ 10;
	object-fit: cover;
	border-radius: 1.5em;
	/* don't want to see back of cards in front of screen plane */
	backface-visibility: hidden;
	/* 
        3D transform chain:
        rotate, then translate along z axis 
    */
	transform:
		rotateY(calc(var(--i) * var(--ba))) translateZ(calc(-1 * (.5 * var(--w) + .5em) / tan(.5 * var(--ba))));

	background: #222;
	/* 画像読み込み前の色 */
}
@media (prefers-reduced-motion: reduce) {
	.kumonosu-a3d {
		animation-duration: 128s;
	}
}

/* ====== General page prettifying and layout ====== */
html, body {
	display: grid;
	margin: 0;
	padding: 0;
}
html {
	height: 100%;
}
body {
	background: #000;
}

Explanation 詳しい説明

このスライダーの特徴

このスライダーには、次のような特徴があります。

  • 画像が円を描くように配置される立体レイアウト
  • 奥行きを感じる3D表現
  • 自動で回転し続けるアニメーション
  • JavaScriptを使わないCSSオンリー構成
  • 全画面表示に対応

シンプルな構成ながら、視線を引きつける動きのあるスライダーになっています。

どんな動きをするスライダーか

画像は1枚ずつ横に流れるのではなく、

  • 画像が円状に並ぶ
  • 奥行き方向に配置される
  • 全体がゆっくり回転する

という動きをします。

これにより、平面的なスライダーとは違う、立体的な見え方になります。

CSSだけで作っているポイント

このデモでは、次のCSS機能を組み合わせています。

  • perspective による奥行き表現
  • rotateYtranslateZ を使った3D配置
  • transform-style: preserve-3d による立体維持
  • @keyframes による自動回転アニメーション

JavaScriptは使っておらず、表示と動きはすべてCSSで完結しています。

カスタムしやすいポイント

コード内の数値を調整することで、次のような変更ができます。

  • 画像の枚数
  • スライダー全体のサイズ
  • 回転スピード
  • 画像カードの大きさ
  • 並び方の密度

画像を差し替えるだけで、ポートフォリオ・ギャラリー・背景演出としても使えます。

注意点

  • CSSの3D表現に対応していない古いブラウザでは正しく表示されません
  • 常に回転するため、情報を読ませる用途には不向きです
  • ビジュアル演出・雰囲気作り向けのスライダーです

こんな用途におすすめ

  • トップページの背景演出
  • ポートフォリオのビジュアル表現
  • 作品紹介・イメージ重視のギャラリー