htmxを学習するための日本語サンプルリポジトリ 🚀
このリポジトリは、htmx初心者の方がスムーズに学習を始められるように作成されたオンボーディング教材です。
実際に動かせるサンプルアプリケーションと分かりやすい日本語のドキュメントを用意しています。
htmxは、HTMLの属性を追加するだけでAJAXやWebSocketなどの機能を実装できる軽量JavaScriptライブラリです。
主な特徴:
- 📝 JavaScriptを書かずに動的なWebアプリを作成
- ⚡ 約14kBの軽量ライブラリ
- 🔧 どんなバックエンド言語とも組み合わせ可能
- 🎨 既存のプロジェクトに段階的に導入可能
git clone https://github.com/mashharuki/htmx-sample.git
cd htmx-samplecd samples/01-basic
python -m http.server 8000# http-serverをインストール(初回のみ)
npm install -g http-server
cd samples/01-basic/counter.html
http-server -p 8000http://localhost:8000 にアクセスして、サンプルファイルを開いてください。
初心者向けの基本的なサンプルです。htmxの核となる機能を学べます。
-
counter.html - カウンターアプリ(hx-getの基本)
- ボタンクリックでサーバーからデータを取得
hx-get,hx-target,hx-swapの使い方
-
form.html - フォーム送信(hx-postの基本)
- ページをリロードせずにフォームを送信
- フォームデータの自動収集
-
search.html - リアルタイム検索(hx-triggerの活用)
- 入力に応じて即座に検索結果を表示
- デバウンス処理(入力が止まるまで待つ)
より実践的なアプリケーションの例です。
-
todo.html - TODOアプリ(CRUD操作)
- 追加・更新・削除の実装
- チェックボックスによる状態管理
-
tabs.html - タブ切り替え(コンテンツ切り替え)
- クリックで異なるコンテンツを表示
- SPA風のユーザー体験
-
infinite-scroll.html - 無限スクロール
- スクロールで自動的にコンテンツを読み込み
hx-trigger="revealed"の活用
高度な機能を組み合わせた実践的なサンプルです。
-
validation.html - フォームバリデーション
- リアルタイムで入力をチェック
- ユーザーフレンドリーなエラー表示
-
polling.html - ポーリング(自動更新)
- ダッシュボードの定期的な更新
- リアルタイムモニタリング
このリポジトリには以下のドキュメントが用意されています:
docs/ONBOARDING.md - オンボーディングガイド
詳しい学習ガイドです。以下の内容が含まれています:
- htmxの基本概念
- 主要な属性の詳細説明
- 学習の進め方
- よくある質問
- トラブルシューティング
docs/QUICK_REFERENCE.md - クイックリファレンス
よく使う属性とパターンの早見表です:
- 全ての主要な属性の一覧
- hx-swap、hx-triggerの値の説明
- 実践的なコードパターン集
- デバッグのTips
-
基本サンプルを動かす
samples/01-basic/counter.htmlから始める- ブラウザの開発者ツールでリクエストを観察
-
コードを読む
- HTMLファイル内の日本語コメントを読む
- どの属性が何をしているか理解する
-
改造してみる
hx-targetやhx-swapの値を変更してみる- 動作がどう変わるか確認する
-
自分で作る
- 学んだ知識で簡単なアプリを作成
- 実際のバックエンドと統合してみる
すべてのサンプルには以下が含まれています:
- ✅ 動作するコード - すぐに試せます
- 📝 詳細な日本語コメント - コードの各部分を説明
- 💡 学習ポイントの解説 - 何が学べるか明示
- 🔍 試してみようセクション - 実際に手を動かすヒント
- 🎨 見やすいUI - 理解しやすいデザイン
- htmx 1.9.10 - メインライブラリ
- HTML5 - 構造
- CSS3 - スタイリング
- JavaScript - モックAPIサーバー(学習用)
改善提案やバグ報告は Issue や Pull Request でお願いします!
このサンプルコードはMITライセンスの下で公開されています。 自由に学習・改変・再配布していただけます。
わからないことや改善提案があれば、お気軽にIssueを立ててください!
Happy learning with htmx! 🎉
htmxを使って、シンプルで強力なWebアプリケーションを作りましょう!