OSS探訪GitHubでログイン

既存HTMLへcontroller・target・action属性でbehaviorを追加するHTML-first JavaScript framework

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
13,103
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/09/13
ページ内ナビ

概要

Stimulusはserver-rendered HTMLを置き換えず、DOMへ小さなcontroller behaviorを足すJavaScript frameworkです。data-controller、target、action等のattributeを使ってHTMLとJavaScriptを接続し、DOMの追加・削除に合わせてcontroller lifecycleを自動管理します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

data-controller・target・actionでHTMLとJavaScriptを接続する

HTML側にcontroller、target、action属性を記述し、JavaScript controller class側でevent handlingとDOM更新を実装します。markupがbehaviorの接続点を明示するため、server-rendered viewと共存しやすい設計です。

出典:[1]

DOM変更を監視してcontroller lifecycleを自動管理する

Stimulusはpageを継続的に監視し、対象attributeやelementの出入りに応じてcontrollerをconnect/disconnectします。TurboやAjax等でDOMが差し替わる場合も同じlifecycle modelを利用できます。

出典:[1]

frontend全体をrenderするのではなく既存HTMLをaugmentする

Stimulus自身はHTML rendering frameworkではなく、serverが生成したHTMLへ必要なinteractionだけを追加することを目的としています。Turboと組み合わせるとHotwireのclient-side behavior層を担います。

出典:[1]

向いている用途

server-rendered applicationへ局所的なUI behaviorを追加したい場合に向く

SPA frameworkでfrontend全体を再構築せず、form、menu、modal、keyboard action等のinteractionをcontroller単位で足したいRails等のHTML-centric applicationに適します。

出典:[1]

導入前の確認

stable releaseは3.2.2でcurrent mainもpackage versionは3.2.2のまま

最新GitHub releaseは2023年のv3.2.2ですが、repositoryは2026年も更新されています。一方、current mainのpackage.jsonもversion 3.2.2のため、mainの変更をrelease済みAPIとして扱わずstable packageとの差分を確認してください。

出典:[2][3][4]

runtimeはDOMを前提とするためbrowser lifecycleを考慮する

StimulusはDOM element・event・attributeを中心に動作します。server-sideのみのenvironmentではなくbrowser側behaviorとして利用し、Turbo等によるDOM replacement時のconnect/disconnectも前提にcontrollerを設計します。

出典:[1]

参考にした公式資料

  1. [1]Stimulus v3.2.2 README(2026-10-04)
  2. [2]Stimulus v3.2.2 release(2026-10-04)
  3. [3]Stimulus v3.2.2 package metadata(2026-10-04)
  4. [4]Stimulus current main package metadata(2026-10-04)
  5. [5]Stimulus MIT license(2026-10-04)
編集部からの補足

Stimulusはfrontend全体をrenderするframeworkではありません。server-rendered HTMLを維持し、必要なinteractionだけをcontroller単位で追加する用途に向きます。

3ステップで試す

  1. 1

    Stimulus 3.2.2をlocal dependencyとして追加する

    stable release 3.2.2をversion固定してinstallします。

    mkdir -p stimulus-demo && cd stimulus-demo && npm init -y >/dev/null && npm install @hotwired/stimulus@3.2.2
  2. 2

    package version・license・entry pointを確認する

    browserを起動せずpackage metadataからversion、MIT license、bundle entry pointを確認します。

    cd stimulus-demo && node -e 'const p=require("./node_modules/@hotwired/stimulus/package.json"); console.log(`version=${p.version} license=${p.license} main=${p.main}`)'
  3. 3

    controllerとHTML接続の最小例を作る

    server起動は行わず、controller・action・targetがどう接続されるかをfileで確認します。

    cd stimulus-demo && printf '%s\n' 'import { Controller } from "@hotwired/stimulus"' 'export default class extends Controller {' ' static targets = ["output"]' ' greet() { this.outputTarget.textContent = "Hello from Stimulus" }' '}' > hello_controller.js && printf '%s\n' '<div data-controller="hello">' ' <button data-action="click->hello#greet">Greet</button>' ' <span data-hello-target="output"></span>' '</div>' > fragment.html
公式READMEで確認

成長

成長の推移 · 直近30日

13,103 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
41

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
13,103
Forks
442
Watchers
190
Open Issues
30
Contributors
87
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/09/13

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?