web-css について
web-cssは、CSSの生成・最適化・デバッグを行うOpenClawスキルです。レスポンシブな画面やモジュール化されたスタイルを扱うWeb開発者向けです。
主な機能
- 01GridとFlexboxのレイアウト
- 02CSSカスタムプロパティ
- 03キーフレームアニメーション
- 04レスポンシブなメディアクエリ
- 05BEMとCSS Modules
- 06:has()や:is()などのモダンセレクター
活用シーン
- 01レスポンシブなコンポーネントレイアウトの作成
- 02画面要素へのアニメーション追加
- 03BEMやCSS Modulesによるスタイル整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill web-cssインストール後、Claude Code で/web-cssを入力して読み込まれたか確認します。
詳細
web-css
目的
このスキルを使用すると、OpenClaw は Grid や Flexbox レイアウト、カスタムプロパティ(変数)、アニメーション、メディアクエリ、BEM 手法、CSS Modules、:has() や :is() などのセレクターといった高度な機能に重点を置いて、CSS コードを生成、最適化、デバッグできます。
使用する場面
React や Vue などのフレームワークを使用するプロジェクトで、レスポンシブレイアウトの作成、要素のアニメーション化、スタイルのモジュール化など、コンポーネントのスタイリングを伴うウェブ開発タスクにこのスキルを使用します。コードに効率性、保守性、最新ブラウザーとの互換性が必要な場合に適用してください。
主な機能
- Grid/Flexbox:CSS Grid(例:
display: grid; grid-template-columns: repeat(3, 1fr);)または Flexbox(例:display: flex; justify-content: space-between;)を使用してレイアウトを作成します。 - カスタムプロパティ:テーマ設定用に、
--primary-color: #007bff;のような変数を定義して使用します。 - アニメーション:キーフレームアニメーションを実装します。例:
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }。 - メディアクエリ:レスポンシブ対応を行います。例:
@media (max-width: 768px) { .container { flex-direction: column; } }。 - BEM:拡張性の高い CSS のために、
.block__element--modifierのような命名規則を適用します。 - CSS Modules:スコープ付きスタイルを生成します。例:
import styles from './styles.module.css';としてインポートし、className={styles.button}を使用します。 - セレクター::has() や :is() を活用します。例:
div:has(p) { margin: 10px; }またはbutton:is(:hover, :active) { background: red; }。
使用パターン
OpenClaw でこのスキルを呼び出すには、CLI コマンド openclaw execute web-css --input "task description" --options key=value を使用します。API と連携する場合は、/api/skills/web-css に { "task": "generate grid layout", "params": { "elements": 3 } } のような JSON ボディを指定して POST リクエストを送信します。認証用の環境変数 $OPENCLAW_API_KEY は必ず設定してください。入力は文字列または JSON オブジェクトとして渡します。たとえば、--feature grid や --feature animations のようなフラグで CSS 機能を指定します。
一般的なコマンド/API
- レイアウトの生成:
openclaw execute web-css --task generate --type flexbox --properties "justify-content:center; align-items:center;"を実行すると、Flexbox のスニペットが出力されます。 - アニメーションの追加:API エンドポイント
POST /api/skills/web-cssに{ "action": "add-animation", "selector": ".fade-element", "keyframes": "from { opacity: 0; }" }というボディを指定すると、アニメーションコードが追加されます。 - メディアクエリの最適化:コマンド
openclaw execute web-css --optimize --breakpoints "mobile:480px, tablet:768px"を使用して、レスポンシブスタイルを調整します。 - 設定形式:
{ "bem": true, "modules": { "path": "./src/styles" } }のように、設定を JSON 形式で指定します。CSS Modules の場合、出力にimport styles from './Component.module.css';のような import 文が含まれていることを確認してください。 - コードスニペットの例:
.container { display: flex; flex-wrap: wrap; }openclaw execute web-css --task layout --type flexboxで生成されます。
統合に関する注意
出力をモジュール形式でラップして、このスキルを Webpack や Vite などのビルドツールと統合します。たとえば、OpenClaw の出力を CSS プロセッサーにパイプします:openclaw execute web-css --output file.css && postcss file.css --use autoprefixer。Node.js 環境で使用する場合は、const openclaw = require('openclaw-sdk'); openclaw.run('web-css', { auth: process.env.OPENCLAW_API_KEY }); としてインポートします。CSS の出力が使用するフレームワークと互換性があることを確認してください。React では、BEM パターンに沿ったクラス名を生成します。CSS Modules 用の css-loader などのライブラリを含めて、依存関係に対応してください。
エラー処理
よくあるエラーには、CSS 構文の誤りや API キーの不足があります。レスポンスに「SyntaxError」が含まれていないか確認し、入力を修正して再試行してください。認証に失敗した場合は、$OPENCLAW_API_KEY が設定済みで、有効期限が切れていないことを確認します。API 呼び出しでは、401(未認証)などの HTTP エラーを捕捉し、ログに記録して再認証を促してください。コードでは、try-catch を使用します:
try {
const response = await fetch('/api/skills/web-css', { headers: { 'Authorization': `Bearer ${process.env.OPENCLAW_API_KEY}` } });
if (!response.ok) throw new Error('API error');
} catch (error) {
console.error('Handle:', error.message); // Output: "API error"
}
実行前に必ず入力を検証してください。たとえば、セレクターが有効な文字列であることを確認します。
具体的な使用例
-
Flexbox レイアウトの生成:レスポンシブなナビゲーションバーを作成するには、
openclaw execute web-css --task generate-layout --type flexbox --selectors ".nav" --properties "justify-content:space-around;"を実行します。次の出力が得られます:.nav { display: flex; justify-content: space-around; }その後、
<nav class="nav">...</nav>として HTML に組み込みます。 -
レスポンシブ対応のメディアクエリ:グリッドベースのギャラリーには、
openclaw execute web-css --task add-media --breakpoint "768px" --selector ".gallery" --styles "grid-template-columns:1fr;"を使用します。生成されるコードは次のとおりです:@media (min-width: 768px) { .gallery { grid-template-columns: repeat(2, 1fr); } }プロジェクトに適用すると、ギャラリーがタブレットの画面に合わせて表示されます。
グラフの関係
- 関連項目:web-html(構造を依存先として使用)、web-js(動的なスタイル設定に統合)、tools-build(CSS Modules の処理に使用)。
- クラスター:共通のウェブタスクを扱う web-dev クラスターを介して接続されています。
- タグ:スキル横断検索のため、「css」および「web」と重複しています。