shopify
Shopifyテーマ開発のエキスパートとして、Liquid、Online Store 2.0、CSS、JavaScript、およびUXベストプラクティスに関する専門的なガイダンスを提供します。テーマのカスタマイズや新規開発時に活用でき、高品質なShopifyストア構築をサポートします。
description の原文を見る
Expert Shopify theme development guidelines for Liquid, Online Store 2.0, CSS, JavaScript, and UX best practices
SKILL.md 本文
Shopifyテーマ開発
Shopifyテーマ開発、Liquidテンプレート、Online Store 2.0、およびeコマースのベストプラクティスの専門家です。
コア原則
- クリーンで保守性の高いLiquidコードを書く
- Online Store 2.0のアーキテクチャパターンに従う
- パフォーマンスとCore Web Vitalsを最適化する
- アクセシビリティコンプライアンスを確保する
- レスポンシブでモバイルファーストのデザインを実装する
Liquidテンプレート
ベストプラクティス
- 意味のある変数名を使用する
- Liquidフィルターを効果的に活用する
- テンプレート内のロジックを最小化し、再利用可能なコードにはスニペットを使用する
{% cache %}ブロックで負荷の高い処理をキャッシュする- 廃止された
{% include %}の代わりに{% render %}を使用する
一般的なパターン
{% comment %} Product card snippet {% endcomment %}
{% render 'product-card', product: product, show_vendor: true %}
{% comment %} Conditional rendering {% endcomment %}
{% if product.available %}
<button type="submit">Add to Cart</button>
{% else %}
<button disabled>Sold Out</button>
{% endif %}
{% comment %} Loop with forloop object {% endcomment %}
{% for product in collection.products limit: 12 %}
{% render 'product-card', product: product %}
{% endfor %}
Online Store 2.0
セクションアーキテクチャ
- モジュール化された再利用可能なセクションを作成する
- 適切な設定でセクションスキーマを定義する
- セクション内の繰り返しコンテンツにはブロックを使用する
- テンプレートの柔軟性のためにセクショングループを実装する
セクションスキーマ
{% schema %}
{
"name": "Featured Collection",
"settings": [
{
"type": "collection",
"id": "collection",
"label": "Collection"
},
{
"type": "range",
"id": "products_to_show",
"min": 2,
"max": 12,
"step": 2,
"default": 4,
"label": "Products to show"
}
],
"presets": [
{
"name": "Featured Collection"
}
]
}
{% endschema %}
JSONテンプレート
- 柔軟なページレイアウトにはJSONテンプレートを使用する
- JSON形式でテンプレートセクションを定義する
- マーチャントがテーマエディタでカスタマイズできるようにする
JavaScriptのベストプラクティス
テーマJavaScript
- モダンなES6+構文を使用する
- 適切なイベントデリゲーションを実装する
- 重要でないスクリプトを遅延ロードする
- 動的な更新にはShopifyのSection Rendering APIを使用する
カート機能
// Add to cart with Fetch API
async function addToCart(variantId, quantity = 1) {
const response = await fetch('/cart/add.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
id: variantId,
quantity: quantity,
}),
});
return response.json();
}
CSSとスタイリング
- テーマ設定にはCSS カスタムプロパティを使用する
- モバイルファーストのレスポンシブデザインを実装する
- レイアウトにはCSS GridとFlexboxを活用する
- レンダリングをブロックするCSSを最小化する
- 多言語対応のために論理的プロパティを使用する
パフォーマンス最適化
- Shopifyの画像CDNで画像を最適化する
- 画像とセクションの遅延読み込みを実装する
- Liquidループと複雑な計算を最小化する
- 重要なアセットに
preloadを使用する - Core Web Vitals (LCP、FID、CLS)を監視する
画像最適化
{{ product.featured_image | image_url: width: 800 | image_tag:
loading: 'lazy',
widths: '200, 400, 600, 800',
sizes: '(max-width: 600px) 100vw, 50vw'
}}
アクセシビリティ
- セマンティックHTML要素を使用する
- 適切なARIA属性を実装する
- キーボードナビゲーションを確保する
- 色のコントラスト比を保つ
- スクリーンリーダーでテストする
テーマ設定
- settings_schema.jsonで設定を論理的に整理する
- 適切なデフォルト値を提供する
- 適切な設定タイプを使用する
- マーチャント向けに有用な情報テキストを含める
メタフィールド
- カスタム商品データにはメタフィールドを使用する
- テンプレート内で効率的にメタフィールドにアクセスする
- テーマでメタフィール定義を定義する
テスト
- ブラウザとデバイス全体でテストする
- Liquid構文を検証する
- アクセシビリティコンプライアンスをチェックする
- パフォーマンスメトリクスを監視する
- チェックアウトフローを徹底的にテストする
ファイル構造
theme/
├── assets/
├── config/
│ ├── settings_data.json
│ └── settings_schema.json
├── layout/
│ └── theme.liquid
├── locales/
├── sections/
├── snippets/
└── templates/
├── customers/
└── *.json
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。