[Userscript] Stroke Order — animated stroke diagrams in lessons and reviews

Animated stroke order for kanji, kana and vocabulary, right inside your WaniKani
lessons and reviews.

The panel drawing the fourteen strokes of 語 one at a time    The panel drawing both kanji of the word 除外 in order

Play it through, step one stroke at a time, or scrub back when a stroke goes by
too fast. Numbered guides and centre lines are on by default.

Install

  1. Install Tampermonkey.
  2. Get stroke-order.user.js from the repo and drag the file
    into the Tampermonkey dashboard or create a new one and paste the code.
  3. Reload WaniKani.

Use

A 筆 button sits in the bottom-left corner whenever the current item has stroke
data. Click it to open the panel.

Shortcut Action
Alt + Step forward one stroke
Alt + Step back one stroke

Where it runs

  • Lessons
  • Reviews
  • Extra Study
  • Recent Mistakes
  • Individual Kanji pages
  • Individual Vocabulary pages

Licence and attribution

The script is MIT licensed.

Stroke order data is from the KanjiVG project, copyright © 2009-2026 Ulrich
Apel, distributed under the
Creative Commons Attribution-Share Alike 3.0 licence.
SVG files are fetched at runtime from the jsDelivr mirror of the KanjiVG
repository; they are not redistributed here. See https://kanjivg.tagaini.net.

Prior art / Inspo

oatmilkcat/wanikani-stroke-order
did this in 2018 against the Kanji Alive API. It no longer runs: it depends on
jStorage, and the Kanji Alive database covers 1,235 kanji against the roughly
2,000 WaniKani teaches, leaving higher levels blank.

Pretty cool, looks very neat during the review. Nicely done.

I just wanted to ask if there is any reason you don’t upload it also to GreasyFork so we can just add it with a single click and get updates in case you change sth? e.g. like double check does it so you only to open this website and click install?

https://greasyfork.org/en/scripts/35063-wanikani-double-check

no reason at all, I just didn’t come around to do it yet >< will upload it later :slight_smile: