一键导入
geometric-clip-path
切り欠き(ノッチ)、コーナーカット、平行四辺形などの幾何学的な形状を CSS clip-path polygon() で設計・実装するためのスキル。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
切り欠き(ノッチ)、コーナーカット、平行四辺形などの幾何学的な形状を CSS clip-path polygon() で設計・実装するためのスキル。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | geometric-clip-path |
| description | 切り欠き(ノッチ)、コーナーカット、平行四辺形などの幾何学的な形状を CSS clip-path polygon() で設計・実装するためのスキル。 |
切り欠き(ノッチ)、コーナーカット、平行四辺形などの幾何学的な形状を CSS clip-path: polygon() で設計・実装するためのスキル。
ユーザーが以下のいずれかを要求した場合にこのスキルを使用する:
clip-path の設計・デバッグをしたい/* CUT = カットサイズ (px) */
clip-path: polygon(
0 0, 100% 0,
100% calc(100% - CUT),
calc(100% - CUT) 100%,
0 100%
);
clip-path: polygon(
0 0,
calc(100% - CUT) 0,
100% CUT,
100% 100%,
0 100%
);
/* 右上 + 右下 */
clip-path: polygon(
0 0,
calc(100% - CUT) 0,
100% CUT,
100% calc(100% - CUT),
calc(100% - CUT) 100%,
0 100%
);
/* 左右の辺が同じ傾きで平行。OFFSET = height / 傾き */
clip-path: polygon(
OFFSET 0,
100% 0,
calc(100% - OFFSET) 100%,
0 100%
);
clip-path: polygon(
INSET 0,
calc(100% - INSET) 0,
100% 100%,
0 100%
);
clip-path: polygon(
INSET 0,
calc(100% - INSET) 0,
100% 50%,
calc(100% - INSET) 100%,
INSET 100%,
0 50%
);
clip-path: polygon(
0 0, 70% 0,
100% 50%,
70% 100%, 0 100%
);
/* 右辺に上下ノッチ(凹み)を持つパネル */
clip-path: polygon(
0 0,
100% 0,
100% TOP_NOTCH_START,
calc(100% - NOTCH_DEPTH) TOP_NOTCH_END,
calc(100% - NOTCH_DEPTH) BOTTOM_NOTCH_START,
100% BOTTOM_NOTCH_END,
100% 100%,
0 100%
);
border + clip-path の組み合わせCSS の border は clip-path で切られるため、カット部分のボーダーが途切れる。
外側にボーダー色の背景、内側に本体の背景を重ねる。
<div className="relative" style={{ clipPath: "polygon(...)" }}>
{/* ボーダーレイヤー(背景色 = ボーダー色) */}
<div className="absolute inset-0 bg-[BORDER_COLOR]" />
{/* 背景レイヤー(B px 内側、カット値を調整) */}
<div
className="absolute inset-[Bpx] bg-[BG_COLOR]"
style={{
clipPath: "polygon(...)", /* 内側用に調整(後述) */
}}
/>
{/* コンテンツ */}
<div className="relative z-10">...</div>
</div>
inset で内側レイヤーを縮めるだけでは、斜め辺のボーダーが水平・垂直辺より太くなる。斜め辺に垂直な方向の距離は、水平・垂直の inset 値より小さくなるため。
均一にするには、内側 clip-path のカット値を斜め辺の角度から計算して調整する必要がある:
斜め辺の角度 θ = atan2(CUT_Y, CUT_X)
水平方向の内側オフセット = B / sin(θ)
垂直方向の内側オフセット = B / cos(θ)
ただし 45度カット(CUT_X == CUT_Y)の場合:
内側カット値 ≈ CUT - B * (√2 - 1) ≈ CUT - B * 0.414
実用的な近似: 45度カットでボーダー幅 1px の場合、内側カット値を外側より 1px 小さくすれば視覚的にはほぼ問題ない。厳密な均一性が必要な場合のみ上記の計算を行う。
パネル全体に SVG を absolute inset-0 で重ねてボーダーを描画する。SVG の stroke は辺の角度に関係なく均一な太さで描画されるため、斜め辺の太さ調整が不要。
<div className="relative w-full">
<div className="relative" style={{ clipPath: "..." }}>
{/* コンテンツ */}
</div>
<svg
className="absolute inset-0 w-full h-full pointer-events-none"
viewBox="0 0 WIDTH HEIGHT"
preserveAspectRatio="none"
fill="none"
>
<path d="M0 0 L..." stroke="..." strokeWidth="2" vectorEffect="non-scaling-stroke" />
</svg>
</div>
注意: preserveAspectRatio="none" は viewBox を引き伸ばすため、斜め辺の角度がアスペクト比で変わる。vectorEffect="non-scaling-stroke" でストローク幅は維持される。
| 状況 | 推奨手法 |
|---|---|
| 固定サイズ or 高さが大きく変わらない要素 | レイヤー重ね |
| 斜め辺のボーダー幅の均一性が重要 | SVG オーバーレイ |
| 可変高さのパネル全体のボーダー | SVG オーバーレイ |
| ボーダー不要(背景のみ) | clip-path 単体で OK |
プロジェクト全体で斜め辺の傾きを統一すると一貫性が出る。基準を決めて揃えること。
例: y = 2x(高さに対して水平オフセットが半分)を基準にする場合:
高さ 24px → オフセット 12px
高さ 32px → オフセット 16px
高さ 42px → オフセット 21px
コーナーカットや斜めカットで左右非対称な形状を作ると、中のコンテンツが視覚的に偏って見える場合がある。clip-path で切り取られた領域にコンテンツが被らないよう、カット側のパディングを追加する必要がある。
{/* 右下カット: 右側・下側のパディングをカット分だけ増やす */}
<div style={{ clipPath: "polygon(0 0, 100% 0, 100% calc(100% - 32px), calc(100% - 32px) 100%, 0 100%)" }}>
<div className="pl-4 pr-12 pt-4 pb-10"> {/* 右と下を多めに */}
...
</div>
</div>
{/* 平行四辺形: 左右のパディングをオフセット分だけ増やす */}
<div style={{ clipPath: "polygon(16px 0, 100% 0, calc(100% - 16px) 100%, 0 100%)" }}>
<div className="px-8"> {/* 左右を多めに */}
...
</div>
</div>
原則: カットされる三角形の底辺の半分程度を、その方向のパディングに加算すると自然に見える。
px を使う(角度が安定)calc(100% - Npx) でカットサイズを px 固定% のみ(ただし角度がアスペクト比に依存)clip-path を直接編集して微調整Get structured design feedback on usability, hierarchy, and consistency. Trigger with "review this design", "critique this mockup", "what do you think of this screen?", or when sharing a Figma link or screenshot for feedback at any stage from exploration to final polish.
Generate developer handoff specs from a design. Use when a design is ready for engineering and needs a spec sheet covering layout, design tokens, component props, interaction states, responsive breakpoints, edge cases, and animation details.
Audit, document, or extend your design system. Use when checking for naming inconsistencies or hardcoded values across components, writing documentation for a component's variants, states, and accessibility notes, or designing a new pattern that fits the existing system.
Figma デザインからコードを生成する際に使用するスキル。Figma MCP サーバーを活用して、デザインの取得・コード生成・コンポーネントマッピングを行う。