D-ZERO のアクセシビリティ規約。マークアップやインタラクションの実装・変更・レビューで、WAI-ARIA、代替テキスト(alt)、ランドマーク、見出し、キーボード操作、フォーカスを扱うときに使う。
dzero-js
D-ZERO の JavaScript/TypeScript コーディング規約。JS/TS を書く・編集する・レビューするときに使う。イベント処理、DOM 操作、状態変更、ライブラリ追加、スクリプト読み込みに適用する。
インストール方法を見る含まれるファイル(1)
- SKILL.md3.9 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
JavaScript コーディング規約
実装レイヤー選定(
dzero-tech-selection)を経ていない場合は先にそちらを読むこと。HTML だけで実現できるものは JavaScript で実装しない。 詳細は JavaScript ガイドライン を参照。
実装規範
モジュール設計
- 目的や機能ごとにファイルを分割する
- 実行タイミングをコントロールできるよう、ひとつの関数にまとめて export する(定数の export は可)
importした時点でブラウザや DOM に影響する処理が走る実装(import 副作用)を避ける。import 後に任意に実行できる状態にするtype="module"環境のためファイル参照に拡張子は必須。TypeScript ファイルの参照は.tsを.jsに変えて書く。__assets/_libsはエイリアス@で参照する
DOM・スタイル操作
style属性のプロパティを直接書き換えない。状態の変更は、その状態を表すdata-*属性の変更で行い、スタイルは CSS 側で管理する(JS はロジックと管理に徹する)- 動的な値を反映する場合はカスタムプロパティを使う(
el.style.setProperty('--block-size', ...)) - インタラクションの呼び出しは
command属性を基本とし、規定にないアクションやフックはcommandイベント(e.command/e.source)で実装する。[commandfor]の要素に直接イベントリスナを張るような、意図と振る舞いの関連が不明確な実装は避ける
パフォーマンス
- 頻発するイベント・タイマー(
scroll/resize/mousemove/touchmove/wheel/setTimeout/setInterval)での監視は避け、代替 API を使う:- ビューポート進入の検知 → IntersectionObserver
- 要素サイズ変更の検知 → ResizeObserver
- ウィンドウ幅・メディアクエリ状態 →
window.matchMedia
- イベントリスナには Passive Event Listener(
{ passive: true })を利用する - 同一フレーム内で複数回走りうる処理は
requestAnimationFrame(+cancelAnimationFrame)で間引く - 同じ戻り値を期待できる処理(セレクタクエリ等)は変数化して繰り返さない
ライブラリ
- 許可リスト: core-js、@oddbird/popover-polyfill、invokers-polyfill、what-input、jQuery、Splide。リスト外のライブラリは必ず相談する
- 信頼性(継続的な保守運用が可能か)を十分に検証する
- yarn で NPM からインストールして
importで利用するのが基本。package.jsonとyarn.lockの変更はコミットする - CDN から直接参照しない。外部ファイルとして読み込む必要がある場合はダウンロードして同じサーバーにセルフホストする
読み込み
script要素にはtype="module"が必要。基本はimportを利用し、script要素での直接読み込みは例外(依存順に注意)- インライン JavaScript が許されるのは、タグマネージャー・トラッキング・SNS 埋め込み・そのページ限定と保証されたコードのみ。書く場合は
<script type="module">(タグマネージャー等は加工せずそのまま貼る)
lint
- リントエラー(ESLint / Prettier)は例外なく必ず修正する。
eslint-disableで逃げず、ルールが現状にそぐわない場合は Config ファイルの変更を提案する
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
D-ZERO の CSS コーディング規約。CSS を書く・編集する・レビューするときに使う。コンポーネントのスタイル、レイアウト、レスポンシブ、カスタムプロパティ、セレクタ設計に適用する。
デザインデータ(Figma などのデザインカンプ)を参照してコーディングするときの解釈原則とアセットの扱い。Figma の URL・MCP・デザイン画像・カンプをもとに実装や修正をするときに必ず使う。
D-ZERO の HTML/Pug マークアップ規約。HTML や Pug を書く・編集する・レビューするときに使う。コンポーネント設計、クラス命名、文書構造、画像、リンク、メタ情報に適用する。
フロントエンド実装のコードレビューを実施する。PR レビュー、コードレビュー、実装チェック、品質確認を依頼されたときに使う。実装レイヤー選定の妥当性から各技術軸の観点まで順に検査する。
UI・機能・コンポーネントの実装レイヤー(HTML/CSS/JavaScript)を決定する判断基準。実装・修正の着手前に必ず読む。アコーディオン、モーダル、ポップオーバー、開閉・切替などのインタラクション実装を依頼されたときに使う。