Transformジェネレーター
CSSのtransformプロパティを視覚的に作成し、プレビューします。
CSS Transformは、ウェブ要素を2Dまたは3D空間で変形させることができる強力なCSSプロパティです。translate、rotate、scale、skewなどの変換を通じて、動的でインタラクティブなウェブデザインを作成できます。リアルタイムプレビューで目的の効果を簡単に作成できます。
transform: none;
Transform関数
- • translate(x, y): translate(x, y): 要素をx, yの量だけ移動
- • scale(x, y): scale(x, y): 要素をx, yの比率で拡大縮小
- • rotate(angle): rotate(angle): 要素を角度だけ回転
- • skew(x, y): skew(x, y): 要素をx, yの角度だけ傾斜
使用のヒント
- • 複数のtransform関数はスペースで組み合わせ可能
- • transform-originで変換の基点を変更
- • transitionと併用してアニメーション効果を作成
- • 3D変換にはperspectiveプロパティを使用
🎯 Transformの基本概念
CSS Transformは、要素の形状、サイズ、位置を変更するCSSプロパティです。通常のドキュメントフローを妨げることなく、要素を視覚的に変換できます。
基本構文:
transform: function(value) function(value) ...;
📐 Transform関数の詳細
🔄 Translate (移動)
- •
translate(x, y)
: translate(x, y): X, Y軸に沿って移動 - •
translateX(x)
: translateX(x): X軸に沿ってのみ移動 - •
translateY(y)
: translateY(y): Y軸に沿ってのみ移動 - •
translate3d(x, y, z)
: translate3d(x, y, z): 3D移動
transform: translate(50px, 100px);
📏 Scale (拡大縮小)
- •
scale(x, y)
: scale(x, y): X, Y軸で拡大縮小 - •
scaleX(x)
: scaleX(x): X軸のみ拡大縮小 - •
scaleY(y)
: scaleY(y): Y軸のみ拡大縮小 - • 1より大きいと拡大、1より小さいと縮小
transform: scale(1.5, 0.8);
🔄 Rotate (回転)
- •
rotate(angle)
: rotate(angle): Z軸周りに回転 - •
rotateX(angle)
: rotateX(angle): X軸周りに回転 - •
rotateY(angle)
: rotateY(angle): Y軸周りに回転 - • 角度にはdeg, rad, turn単位を使用
transform: rotate(45deg);
📐 Skew (傾斜)
- •
skew(x, y)
: skew(x, y): X, Y軸に沿って傾斜 - •
skewX(angle)
: skewX(angle): X軸に沿って傾斜 - •
skewY(angle)
: skewY(angle): Y軸に沿って傾斜 - • 平行四辺形に変形
transform: skew(15deg, 5deg);
🎨 Transform Origin (変換の基点)
transform-originプロパティは変換の基点を設定します。デフォルトは要素の中心(50% 50%)です。
キーワードを使用
transform-origin: top left;
パーセンテージを使用
transform-origin: 25% 75%;
ピクセルを使用
transform-origin: 10px 20px;
⚡ パフォーマンス最適化のヒント
✅ 推奨事項
- • transformとopacityのみをアニメーション化
- • will-changeプロパティを使用
- • 3Dアクセラレーションを使用 (translateZ(0))
- • パフォーマンス向上のために合成レイヤーを作成
❌ 避けるべきこと
- • width, heightのアニメーション化
- • left, top位置のアニメーション化
- • 過度なtransformのネスト
- • 不要なwill-changeの使用
パフォーマンス最適化の例:
.optimized {
will-change: transform;
transform: translateZ(0); /* 3D 가속 */
transition: transform 0.3s ease;
}
🎬 アニメーションとトランジション
TransformはCSS TransitionやAnimationと併用して、滑らかな効果を作成できます。
トランジションの例
.hover-effect {
transition: transform 0.3s ease;
}
.hover-effect:hover {
transform: scale(1.1) rotate(5deg);
}
キーフレームアニメーションの例
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-20px); }
}
.bounce { animation: bounce 1s infinite; }
🌐 ブラウザ互換性
CSS Transformはすべてのモダンブラウザでサポートされていますが、古いブラウザではベンダープレフィックスが必要な場合があります。
ベンダープレフィックスの例:
-webkit-transform: rotate(45deg); /* Safari, Chrome */
-moz-transform: rotate(45deg); /* Firefox */
-ms-transform: rotate(45deg); /* IE 9 */
transform: rotate(45deg); /* 표준 */
🎯 実用的な使用例
カードのホバー効果
.card {
transition: transform 0.3s ease;
cursor: pointer;
}
.card:hover {
transform: translateY(-10px) scale(1.02);
}
ローディングスピナー
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.spinner {
animation: spin 1s linear infinite;
}
モーダルの出現効果
.modal {
transform: scale(0) rotate(180deg);
transition: transform 0.3s ease;
}
.modal.show {
transform: scale(1) rotate(0deg);
}
ボタンのクリック効果
.button {
transition: transform 0.1s ease;
}
.button:active {
transform: scale(0.95);
}
🔧 デバッグと開発ツール
ブラウザ開発者ツール
- • 要素パネルでのリアルタイム編集
- • 計算済みタブで最終値を確認
- • パフォーマンスタブでパフォーマンス分析
- • 3Dビューでレイヤー構造を確認
便利なCSSプロパティ
- •
transform-style: preserve-3d
- •
perspective: 1000px
- •
backface-visibility: hidden
- •
will-change: transform
💡 プロのヒント
パフォーマンスのヒント
transform3d()またはtranslateZ(0)を使用して合成レイヤーを作成し、GPUアクセラレーションを有効にすると、アニメーションのパフォーマンスが大幅に向上します。
アクセシビリティのヒント
動きに敏感なユーザーのために、prefers-reduced-motionメディアクエリを使用して代替手段を提供します。
デザインのヒント
transform-originを適切に設定すると、より自然な変換効果を作成できます。
開発のヒント
CSS変数を使用してtransformの値を動的に制御すると、JavaScriptとの連携が容易になります。