media
marching ants / animated dashed line / flow line
経路の上を破線が途切れず流れ続け、「どちらへ」「いま動いている」を線1本で伝える演出。実体は stroke-dashoffset を1周期ぶん動かすだけで、フロー図・配送ルート・選択範囲の枠に古くから効く。
02 — Prompt template
03 — Params
cycle(破線1周期の時間 s) — 範囲 0.3〜4 / 初期 1.2
dash+gap 1つぶんが流れきる時間。0.8〜1.5sが「動いている」と読めて煩くない。0.5s以下は視線を奪いすぎる。dash(線分の長さ) — 範囲 2〜24 / 初期 6
gapより短いと「粒が流れる」、長いと「線が送られる」印象になる。データの粒度感に合わせる。gap(空白の長さ) — 範囲 2〜30 / 初期 10
dashの1.5〜2倍が流れの向きを一番読み取りやすい。詰めすぎると実線に見えて動きが消える。direction(流れる向き) — 選択: forward / reverse(初期: forward)
dashoffsetを減らすと始点→終点、増やすと逆流。矢印の向きと必ず揃える。
04 — Vocab
stroke-dasharray — 破線の「線分の長さ / 空白の長さ」。この2値の合計が破線1周期になる。
stroke-dashoffset — 破線パターンの開始位置。1周期ぶん動かすと元と同じ絵に戻るので、継ぎ目なく無限ループできる。
marching ants — 選択範囲の枠が蟻の行列のように流れる表現の英語名。画像編集ソフト由来で、Webのフロー図や経路表示にもそのまま通じる。
pathLength — SVGパスに「全長をこの値とみなす」と宣言できる属性。100を入れるとdasharrayを全長の百分率で書けるので、経路を差し替えても破線の粒が崩れない。
05 — NG → OK examples
NG
言い方: 「「線が流れてる感じのアニメーションにして」」
なぜNG: 「流れる」だけでは経路そのものを動かす実装(パスをtranslateさせる・SVGごと動かす)が返ってくる。dasharrayを使った実装でも、1周期と合わない距離をdashoffsetに与えるため、ループのたびに破線がガタッと飛ぶものが多い。
OK
言い方: 「「marching antsで実装。ベースの実線に破線を重ね、stroke-dasharray: 6 10、stroke-dashoffsetを16→0へ1.2s linear infinite。dashoffset以外は動かさない。linecapはbutt、reduced-motionは静止破線+矢印」」
なぜOK: 1周期=dash+gap という「継ぎ目が出ない条件」を数値で示している。「dashoffset以外は動かさない」の一言が、パスごと動かす実装を封じる。
