Liquid Snippets by ALSEL
🧭 ヘッダー/フッター/ナビゲーション中級

Alpine.js統合のメニュー開閉

Alpine.js の @click ディレクティブと :class バインディングを使ったメニュー開閉コンポーネント。ボタンクリックで open 状態を切り替え、ul 要素に expanded クラスを条件付きで付与する。

用途
ヘッダーやサイドバーのドロップダウンメニューを Alpine.js で制御したいときに使用。JavaScript フレームワークなしで軽量な状態管理を実現する。
設置場所
header.liquid や navigation.liquid などのヘッダーセクション内、またはメニュー表示の section / snippet に貼り付け。Alpine.js ライブラリの読み込みが theme.liquid の <head> 内に済んでいることが前提。
注意点
Alpine.js はテーマに別途インポートされていることが前提。@click="open = !open" は Alpine 独自構文のため、Liquid の標準機能のみで動作させることはできない。expanded クラスの CSS は別途定義して、展開時のスタイル(高さ、不透明度、ボーダーなど)を指定する必要がある。
タグ:alpine-jsmenunavigationinteractivejavascript

コード

5 行 / liquid
It should accept spec-compliant attribute names
printWidth: 1
<button @click="open = !open">Menu</button>
<ul :class="{ 'expanded': !open }"></ul>

出典・ライセンス

License:
MIT

このコードは Shopify 著作の MIT ライセンスソースです。 原本の著作権は Shopify が保有します。日本語訳は ALSEL によるものです。

関連項目

🧭 ヘッダー/フッター/ナビゲーション初級

ヘッダーのレイアウト構造

Web Component のカスタムエレメント `<c-header>` でラップしたヘッダー要素。Tailwind CSS のユーティリティクラスを使い、レスポンシブなパディングとフレックスボックスレイアウトを実装している。

📁 theme-tools·MIT·14
🧭 ヘッダー/フッター/ナビゲーション初級

ナビゲーションバーのロゴ

ストアのロゴをナビゲーションバーに表示し、クリックでホームページに戻るコンポーネント。ロゴ画像がない場合はストア名をテキストで表示する。

📁 ks-bootshop·MIT·18
🧭 ヘッダー/フッター/ナビゲーション初級

決済方法アイコン

ストアで有効な決済手段のアイコンをリスト表示するスニペット。Shopify が提供する `payment_type_svg_tag` フィルタを使い、クレジットカード・Apple Pay・Google Pay などのロゴを自動的に描画する。

📁 ks-bootshop·MIT·18
🧭 ヘッダー/フッター/ナビゲーション初級

グローバルナビゲーションメニュー

Shopify 管理画面の「メインメニュー」リンクリストをループし、トップレベルメニュー + 1階層のサブメニューを描画するスニペット。link.title と sub_link.title を escape フィルターでエスケープして XSS 対策を施している。

📁 shopify-theme-lab·MIT·19
🧭 ヘッダー/フッター/ナビゲーション初級

フッター

ストア共通のフッターセクション。管理画面で設定したフッターメニュー(リンクリスト)をループ表示し、著作権表記を出す。

📁 shopify-theme-lab·MIT·25
🧭 ヘッダー/フッター/ナビゲーション初級

ストアヘッダー

ロゴ、グローバルナビゲーション、顧客アカウントメニュー、カートへのリンクを含むストア共通ヘッダーセクション。顧客ログイン状態を判定し、ログイン前後で表示内容を出し分ける。

📁 shopify-theme-lab·MIT·37