lucasmarkes/hairline

ポインターの動きに反応する19種類の等角図形アニメーションを提供するReact/DOM用のTypeScriptライブラリです。

開発の材料自由に使える · MITWeb・Next.js・フルスタックTypeScript難易度
1,3910 保存
67フォーク0Issue
デモ・公式サイトをひらくhairline.lucasmarkes.com

中辛 の解説

hairlineは、ポインターの位置や速度に応じて形が変わる19種類の等角図形コンポーネントを、Webページに組み込むためのライブラリです。npm i @lucasmarkes/hairlineでインストールし、Reactなら<Terrain />のようにコンポーネントとして使い、それ以外の環境ではterrain(element)のような関数を呼んでupdateとdestroyで制御します。この関数の形はSvelteのactionとも互換があると説明されています。intensity(反応の強さ)、theme、label、onReadという4つのオプションを各図形が共有しており、--hairline-plateなど6つのCSS変数で配色を調整できます。サーバーサイドレンダリング時はアスペクト比を保った空のボックスになり、描画自体はクライアント側のeffectやonMountで行う前提です。さらに、hairline-createという拡張機能を使うと、Claude CodeやCursorなどコーディングエージェントに指示を出して、既存19種と同じ仕組みで動く新しい図形を1つのHTMLファイルとして生成させることもできます。

こんなリポジトリです

こんなときに便利です

  • Reactアプリのヒーローセクションに<Terrain />のようなポインター反応型の等角図形を組み込みたい開発者
  • shadcn構成のプロジェクトでテーマトークンに合わせたアニメーションコンポーネントを追加したい開発者
  • Claude CodeなどのコーディングエージェントにhairlineCreateスキルを使わせて、独自アイデアの新規図形をHTML1枚として生成させたい開発者

主な機能

ポインター追従で動く19種類の等角(アイソメトリック)図形Reactコンポーネントとvanilla DOM用関数(update/destroy)の両方を提供CSSカスタムプロパティによる配色テーマ調整とintensity等の共通オプション

ほかとの違い

全図形で単一のrequestAnimationFrameループを共有し画面外・静止中は計算をスキップする点と、hairline-createスキルでコーディングエージェントに新規図形を同じ仕組みで生成させられる拡張性が特徴です。

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

準備するもの

  • Node.jsとnpmの実行環境
  • Reactで使う場合はReact 18以上(/reactエントリのみ必須)
  • shadcn経由で導入する場合はshadcn CLIの設定済み環境
  • hairline-createスキルを使う場合はClaude CodeやCursorなどskillsに対応したコーディングエージェント

すぐに始める

  1. パッケージをインストールします(依存なし・ESM専用、Reactで使う場合はReact 18以上が別途必要です)。
npm i @lucasmarkes/hairline
  1. (任意)shadcnを使っている場合は、テーマ連動ラッパー付きで追加できます。
npx shadcn@latest add https://hairline.lucasmarkes.com/r/hairline.json
  1. (任意)コーディングエージェントで新規図形を生成したい場合は、hairline-createスキルを導入します。
npx skills add lucasmarkes/hairline

ギット飯トライで味見

入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。

ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。

npx gitbap-try lucasmarkes/hairline

Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →

スター推移 · 7日

1,3917日間の増加数を計算するための比較データが不足しています

確認日時

使いやすさ · まねしやすいか

サンプル評点 34/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

最近の更新あり · 2026 年に作成

「Web・Next.js・フルスタック」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/lucasmarkes/hairline.svg)](https://www.gitbap.com/r/lucasmarkes/hairline)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る