diff --git a/KA_TEMPLATES_NOTICE b/KA_TEMPLATES_NOTICE
index 324be8451fabe49dfc55fdae61ab16c385fea26b..33e56b010ee994492d749b217cfd5d2249994faf 100644
--- a/KA_TEMPLATES_NOTICE
+++ b/KA_TEMPLATES_NOTICE
@@ -4,7 +4,7 @@ Copyright (c) 2024–Present Kartenaale
 You are free to use, share and modify everything in the repository.
 
 Website and code repository:
-https://gitlab.phaidra.org/kartenaale/card-templates
+https://gitlab.phaidra.org/kartenaale/build/card-templates
 
 -------------------------------------------------------------------------------
 
diff --git a/KA_TEMPLATES_NOTICE_DE b/KA_TEMPLATES_NOTICE_DE
new file mode 100644
index 0000000000000000000000000000000000000000..872d4fb54b268fa9418b40dbaf10bf4569833d8f
--- /dev/null
+++ b/KA_TEMPLATES_NOTICE_DE
@@ -0,0 +1,47 @@
+card-templates by kartenaale
+Copyright (c) 2024–Present Kartenaale
+
+Der Code der Karten kann ohne Einschränkung benutzt, geändert und geteilt werden.
+
+Webseite und Repository:
+https://gitlab.phaidra.org/kartenaale/build/card-templates
+
+-------------------------------------------------------------------------------
+
+Deutsche und chinesische Radikalnamen sind der deutschen Wikipedia entnommen.
+Ein herzliches Dankeschön an alle, die zu Wikipedia beigetragen haben.
+
+-------------------------------------------------------------------------------
+
+This product includes software from the hanzi-writer project (MIT), and a
+subset of its data derived from fonts (Arphic Public License).
+Copyright (c) 2014 David Chanin.
+https://github.com/chanind/hanzi-writer
+
+-------------------------------------------------------------------------------
+
+COPYING notice from the hanzi-writer project:
+
+Hanzi Writer uses data from the excellent Make Me a Hanzi project and fonts from Arphic. You can redistribute and/or modify the font data under the terms of the Arphic Public License as published by Arphic Technology Co., Ltd. You should have received a copy of this license (the directory "APL") in the data folder of this repository; if not, see http://ftp.gnu.org/non-gnu/chinese-fonts-truetype/LICENSE.
+
+Arphic PL KaitiM GB and UKai Copyright 1999 Arphic Technology Co., Ltd.; licensed under the Arphic Public License http://www.arphic.com.tw/en/home/index
+
+Make Me a Hanzi Copyright 1999 Arphic Technology Co., Ltd., copyright 2016 Shaunak Kishore; licensed under the Arphic Public License https://github.com/skishore/makemeahanzi
+
+-------------------------------------------------------------------------------
+
+This product includes software from the cnchar project (MIT).
+Copyright (c) 2017 - present theajack <theajack@qq.com>
+https://github.com/theajack/cnchar
+
+-------------------------------------------------------------------------------
+
+This product includes software from the hanzi-tool project (MIT).
+Copyright (c) 2012-2014 Jeremiah Daneil de la Rouviere
+
+-------------------------------------------------------------------------------
+
+This project also would not have been possible without these projects and the
+teams behind them:
+* Anki (https://apps.ankiweb.net/)
+* parcel (https://parceljs.org/)
diff --git a/README.md b/README.md
index 6cef2e47b1d66cdf6b456151376db7320e4ccc40..dee59fa263d2f7bea8bcb3febc43056fa9a18575 100644
--- a/README.md
+++ b/README.md
@@ -130,10 +130,42 @@ frame number. The Hanzi animation is large and optimized for single characters.
 #### Example
 TODO
 
-### molaoshi
+### vocabulary
 Built for learning Chinese writing, reading, listening, speaking, recognizing
 radicals.
 
+#### Fields
+* `English`
+* `简体字`
+* `繁體字`
+* `Pīnyīn`
+* `Examples`
+* `Remarks`
+* `Remarks (front side)`
+* `Zhuyin`
+* `Pronounciation`
+* `Audio recording`
+* `Lesson`
+* `Credits`
+* `Enable identify radical (简体字)`
+* `Enable identify radical (繁體字)`
+* `Enable listen`
+* `Enable read (Pīnyīn)`
+* `Enable read (简体字)`
+* `Enable read (繁體字)`
+* `Enable write (简体字)`
+* `Enable write (繁體字)`
+
+#### Note types
+- `Vocabulary`
+
+#### Example
+TODO
+
+### molaoshi
+Built for learning Chinese writing, reading, listening, speaking, recognizing
+radicals, but optimized for german.
+
 #### Fields
 * `Deutsch`: German or other non-Chinese
 * `简体字`: Simplified chinese characters
@@ -152,6 +184,9 @@ radicals.
 * `Lesen (繁體字) anlegen`: If non-empty, add a card for reading the traditional character down
 * `Credits`: Give credit to your source here
 * `Schreiben (繁體字) anlegen`: If non-empty, add a card for writing the simplified character down
+* `Lesen (Pīnyīn) anlegen`
+* `Lesen (简体字) anlegen`
+* `Hören anlegen`
 
 #### Note types
 * `Vokabeln`
diff --git a/make/jsonp.mk b/make/jsonp.mk
index 9e8f4a84b7dcadd99368508e7a2eb01e2e8e6bf4..89bd0d4cfd92d7d04f901baec300abad403d4caa 100644
--- a/make/jsonp.mk
+++ b/make/jsonp.mk
@@ -1,4 +1,4 @@
-JSONP_INPUT := KA_TEMPLATES_NOTICE
+JSONP_INPUT := KA_TEMPLATES_NOTICE KA_TEMPLATES_NOTICE_DE
 JSONP_OUTPUT := $(foreach I,$(JSONP_INPUT),$(BUILD_PREFIX)$(I).js)
 
 MOSTLY_CLEAN += $(JSONP_OUTPUT)
diff --git a/src/templates/index.html b/src/templates/index.html
index 700a6125d0dd74ff316a4999a83d204295f79391..452adaf1c26170a9fb5d79cd31709d6598a0374b 100644
--- a/src/templates/index.html
+++ b/src/templates/index.html
@@ -37,6 +37,55 @@
   <h4>Back</h4>
   <a href="hanzi/write/back.html">write/back.html</a>
 
+  <h2>templates/vocabulary</h2>
+  <h3>Hear</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/hear/front.html">hear/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/hear/back.html">hear/back.html</a>
+
+  <h3>Read Hanzi</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/read_hanzi/front.html">read_hanzi/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/read_hanzi/back.html">read_hanzi/back.html</a>
+
+  <h3>Read Hanzi (traditional)</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/read_hanzi_traditional/front.html">read_hanzi_traditional/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/read_hanzi_traditional/back.html">read_hanzi_traditional/back.html</a>
+
+  <h3>Read Pinyin</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/read_pinyin/front.html">read_pinyin/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/read_pinyin/back.html">read_pinyin/back.html</a>
+
+  <h3>Speak</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/speak/front.html">speak/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/speak/back.html">speak/back.html</a>
+
+  <h3>Write</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/write/front.html">write/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/write/back.html">write/back.html</a>
+
+  <h3>Identify radical</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/identify_radical/front.html">identify_radical/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/identify_radical/back.html">identify_radical/back.html</a>
+
+  <h3>Identify radical (traditional)</h3>
+  <h4>Front</h4>
+  <a href="vocabulary/identify_radical_traditional/front.html">identify_radical_traditional/front.html</a>
+  <h4>Back</h4>
+  <a href="vocabulary/identify_radical_traditional/back.html">identify_radical_traditional/back.html</a>
+
   <h2>templates/molaoshi</h2>
   <h3>Hear</h3>
   <h4>Front</h4>
diff --git a/src/templates/vocabulary/.template-spec.yaml b/src/templates/vocabulary/.template-spec.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7d99ac5181e13e8c07fdd42c1c0a42cebce93487
--- /dev/null
+++ b/src/templates/vocabulary/.template-spec.yaml
@@ -0,0 +1,53 @@
+template_version: 2024-07-22 10:00:00+00:00
+
+note_type:
+  id: 2024-02-20 12:00:00+00:00
+  name: Vocabulary
+  fields:
+  - English
+  - 简体字
+  - 繁體字
+  - Pīnyīn
+  - Examples
+  - Remarks
+  - Remarks (front side)
+  - Zhuyin
+  - Pronounciation
+  - Audio recording
+  - Lesson
+  - Credits
+  - Enable identify radical (简体字)
+  - Enable identify radical (繁體字)
+  - Enable listen
+  - Enable read (Pīnyīn)
+  - Enable read (简体字)
+  - Enable read (繁體字)
+  - Enable write (简体字)
+  - Enable write (繁體字)
+  # this is only necessary to make explicit to keep the later added fields
+  # id contents
+  - resources
+
+card_types:
+- name: Listen
+  template: hear
+- name: Read (Pīnyīn)
+  template: read_pinyin
+- name: Read (简体字)
+  template: read_hanzi
+- name: Read (繁體字)
+  template: read_hanzi_traditional
+- name: Write (简体字)
+  template: write
+- name: Write (繁體字)
+  template: write_traditional
+- name: Speak
+  template: speak
+- name: Identify radical (简体字)
+  template: identify_radical
+- name: Identify radical (繁體字)
+  template: identify_radical_traditional
+
+resource_paths:
+- '{{BUILD_PREFIX}}hanzi-data'
+- '{{BUILD_PREFIX}}KA_TEMPLATES_NOTICE.js'
diff --git a/src/templates/vocabulary/hear/back.html b/src/templates/vocabulary/hear/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..bbf067440d4f078edbb079cfff4a559c1235b07f
--- /dev/null
+++ b/src/templates/vocabulary/hear/back.html
@@ -0,0 +1,76 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back anki-template-hanyu-hear-back">
+  <dl class="translations">
+    <dt>Pīnyīn</dt>
+    <dd>{{Pīnyīn}}</dd>
+    <dt>English</dt>
+    <dd>{{English}}</dd>
+    <dt>简体字</dt>
+    <dd>
+      <span class="hanzi-print">{{简体字}}</span>
+      <div class="strichfolge-animation" no-animate="true" highlight-radical="true">
+        {{text:简体字}}
+      </div>
+    </dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks}}</dd>
+    <dt>Examples</dt>
+    <dd>{{Examples}}</dd>
+    <details class="answer-details">
+      <summary>
+        <span class="answer-details-more">Show more…</span>
+        <span class="answer-details-less">Show less…</span>
+      </summary>
+      {{#繁體字}}
+      <dt>繁體字</dt>
+      <dd>
+        <span class="hanzi-print">{{繁體字}}</span>
+        <div class="strichfolge-animation is-traditional" no-animate="true" highlight-radical="true">
+          {{text:繁體字}}
+        </div>
+      </dd>
+      {{/繁體字}}
+      <dt>Radical (简体字)</dt>
+      <dd>
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation" no-animate="true">
+          <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{#繁體字}}
+      <dt>Radical (繁體字)</dt>
+      <dd>
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation is-traditional" no-animate="true">
+          <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{/繁體字}}
+    </details>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<!-- Repeat only relevant text on the back side on AnkiDroid, not all of it -->
+<tts style="display: none" service="android" voice="zh_CN">{{text:简体字}}</tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/hear/front.html b/src/templates/vocabulary/hear/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..b9dfd261edfee4a78291598267e72e7b1c3a2d79
--- /dev/null
+++ b/src/templates/vocabulary/hear/front.html
@@ -0,0 +1,45 @@
+{{#Enable listen}}{{#Pronounciation}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front anki-template-hanyu-hear-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>汉语</dt>
+    <dd id="t2s-player-container" class="t2s-player-container">
+      <div class="anki-droid-player">
+        <tts style="display: none" service="android" voice="zh_CN">
+          {{text:Pronounciation}}
+        </tts>
+      </div>
+      <div class="anki-web-player">
+        {{text:Pronounciation}}
+      </div>
+      <div class="anki-builtin-player">
+        {{tts zh_CN:Pronounciation}}
+      </div>
+    </dd>
+    <dt>Recording</dt>
+    <dd>{{Audio recording}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/Pronounciation}}{{/Enable listen}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/identify_radical/back.html b/src/templates/vocabulary/identify_radical/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..e19454298264004c650377ce19f4d9cb87918f50
--- /dev/null
+++ b/src/templates/vocabulary/identify_radical/back.html
@@ -0,0 +1,43 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back radicals-identify-back">
+  <dl class="translations">
+    <dt>Radical (简体字)</dt>
+    <dd>
+      <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+      <div class="strichfolge-animation" no-animate="true">
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+      </div>
+    </dd>
+    <dt>Name (中文)</dt>
+    <dd hanzi-data="{{text:简体字}}" hanzi-prop="radicalMeaningZh"></dd>
+    <dt>Name (English)</dt>
+    <dd hanzi-data="{{text:简体字}}" hanzi-prop="radicalMeaningDe"></dd>
+    <dt>Strichzahl</dt>
+    <dd hanzi-data="{{text:简体字}}" hanzi-prop="count"></dd>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<!-- Suppress speech output on AnkiDroid if globally enabled -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/identify_radical/front.html b/src/templates/vocabulary/identify_radical/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..ce72ed4ee3aac70188707cc984859ea507c01f8c
--- /dev/null
+++ b/src/templates/vocabulary/identify_radical/front.html
@@ -0,0 +1,39 @@
+{{#简体字}}{{#Enable identify radical (简体字)}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front radicals-identify-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>简体字</dt>
+    <dd>
+      <span class="hanzi-print">{{简体字}}</span>
+      <div class="strichfolge-animation" no-animate="true" highlight-radical="answer">
+        {{text:简体字}}
+      </div>
+    </dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress speech output on AnkiDroid if globally enabled -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/Enable identify radical (简体字)}}{{/简体字}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/identify_radical_traditional/back.html b/src/templates/vocabulary/identify_radical_traditional/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..e713029cc153a206b21da54bd41aaf703379c45f
--- /dev/null
+++ b/src/templates/vocabulary/identify_radical_traditional/back.html
@@ -0,0 +1,43 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back radicals-identify-back">
+  <dl class="translations">
+    <dt>Radical (繁體字)</dt>
+    <dd>
+      <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+      <div class="strichfolge-animation is-traditional" no-animate="true">
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+      </div>
+    </dd>
+    <dt>Name (中文)</dt>
+    <dd hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radicalMeaningZh"></dd>
+    <dt>Name (English)</dt>
+    <dd hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radicalMeaningDe"></dd>
+    <dt>Strichzahl</dt>
+    <dd hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="count"></dd>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<!-- Suppress speech output on AnkiDroid if globally enabled -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/identify_radical_traditional/front.html b/src/templates/vocabulary/identify_radical_traditional/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..038ba0f132c40e1ec4ac18cc24975314af80b63b
--- /dev/null
+++ b/src/templates/vocabulary/identify_radical_traditional/front.html
@@ -0,0 +1,39 @@
+{{#繁體字}}{{#Enable identify radical (繁體字)}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front radicals-identify-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>繁體字</dt>
+    <dd>
+      <span class="hanzi-print">{{繁體字}}</span>
+      <div class="strichfolge-animation is-traditional" no-animate="true" highlight-radical="answer">
+        {{text:繁體字}}
+      </div>
+    </dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress speech output on AnkiDroid if globally enabled -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/Enable identify radical (繁體字)}}{{/繁體字}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/read_hanzi/back.html b/src/templates/vocabulary/read_hanzi/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..2b4baa5d453c775eacbf3af135c2eb9d57f253f8
--- /dev/null
+++ b/src/templates/vocabulary/read_hanzi/back.html
@@ -0,0 +1,84 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back anki-template-hanyu-read-hanzi-back">
+  <dl class="translations">
+    <dt>Pīnyīn</dt>
+    <dd>{{Pīnyīn}}</dd>
+    <dt>English</dt>
+    <dd>{{English}}</dd>
+    {{#Pronounciation}}
+    <dt class="t2s-player-heading">汉语</dt>
+    <dd id="t2s-player-container" class="t2s-player-container">
+      <div class="anki-droid-player">
+        <tts style="display: none" service="android" voice="zh_CN">
+          {{text:Pronounciation}}
+        </tts>
+      </div>
+      <div class="anki-web-player">
+        {{text:Pronounciation}}
+      </div>
+      <div class="anki-builtin-player">
+        {{tts zh_CN:Pronounciation}}
+      </div>
+    </dd>
+    {{/Pronounciation}}
+    <dt>Recording</dt>
+    <dd>{{Audio recording}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks}}</dd>
+    <dt>Examples</dt>
+    <dd>{{Examples}}</dd>
+    <details class="answer-details">
+      <summary>
+        <span class="answer-details-more">Show more…</span>
+        <span class="answer-details-less">Show less…</span>
+      </summary>
+      {{#繁體字}}
+      <dt>繁體字</dt>
+      <dd>
+        <span class="hanzi-print">{{繁體字}}</span>
+        <div class="strichfolge-animation is-traditional" no-animate="true" highlight-radical="true">
+          {{text:繁體字}}
+        </div>
+      </dd>
+      {{/繁體字}}
+      <dt>Radical (简体字)</dt>
+      <dd>
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation" no-animate="true">
+          <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{#繁體字}}
+      <dt>Radical (繁體字)</dt>
+      <dd>
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation is-traditional" no-animate="true">
+          <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{/繁體字}}
+    </details>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/read_hanzi/front.html b/src/templates/vocabulary/read_hanzi/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..fca7c4d45b81cb478cc4ed01b8b49b36a2064f3e
--- /dev/null
+++ b/src/templates/vocabulary/read_hanzi/front.html
@@ -0,0 +1,39 @@
+{{#Enable read (简体字)}}{{#简体字}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front anki-template-hanyu-read-hanzi-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>简体字</dt>
+    <dd>
+      <span class="hanzi-print">{{简体字}}</span>
+      <div class="strichfolge-animation" no-animate="true" highlight-radical="answer">
+        {{text:简体字}}
+      </div>
+    </dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress speech output on AnkiDroid until card flipped -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/简体字}}{{/Enable read (简体字)}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/read_hanzi_traditional/back.html b/src/templates/vocabulary/read_hanzi_traditional/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..581afc440e24b0d80c51df8f4cf299bb795ef86e
--- /dev/null
+++ b/src/templates/vocabulary/read_hanzi_traditional/back.html
@@ -0,0 +1,84 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back anki-template-hanyu-read-hanzi-back">
+  <dl class="translations">
+    <dt>Pīnyīn</dt>
+    <dd>{{Pīnyīn}}</dd>
+    <dt>English</dt>
+    <dd>{{English}}</dd>
+    {{#Pronounciation}}
+    <dt class="t2s-player-heading">汉语</dt>
+    <dd id="t2s-player-container" class="t2s-player-container">
+      <div class="anki-droid-player">
+        <tts style="display: none" service="android" voice="zh_CN">
+          {{text:Pronounciation}}
+        </tts>
+      </div>
+      <div class="anki-web-player">
+        {{text:Pronounciation}}
+      </div>
+      <div class="anki-builtin-player">
+        {{tts zh_CN:Pronounciation}}
+      </div>
+    </dd>
+    {{/Pronounciation}}
+    <dt>Recording</dt>
+    <dd>{{Audio recording}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks}}</dd>
+    <dt>Examples</dt>
+    <dd>{{Examples}}</dd>
+    <details class="answer-details">
+      <summary>
+        <span class="answer-details-more">Show more…</span>
+        <span class="answer-details-less">Show less…</span>
+      </summary>
+      {{#简体字}}
+      <dt>简体字</dt>
+      <dd>
+        <span class="hanzi-print">{{简体字}}</span>
+        <div class="strichfolge-animation" no-animate="true">
+          {{text:简体字}}
+        </div>
+      </dd>
+      {{/简体字}}
+      <dt>Radical (繁體字)</dt>
+      <dd>
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation is-traditional" no-animate="true">
+          <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{#简体字}}
+      <dt>Radical (简体字)</dt>
+      <dd>
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation" no-animate="true">
+          <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{/简体字}}
+    </details>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/read_hanzi_traditional/front.html b/src/templates/vocabulary/read_hanzi_traditional/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..aaab50a7913e007812b97e29d9bb798cced7697a
--- /dev/null
+++ b/src/templates/vocabulary/read_hanzi_traditional/front.html
@@ -0,0 +1,39 @@
+{{#Enable read (繁體字)}}{{#繁體字}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front anki-template-hanyu-read-hanzi-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>繁體字</dt>
+    <dd>
+      <span class="hanzi-print">{{繁體字}}</span>
+      <div class="strichfolge-animation is-traditional" no-animate="true" highlight-radical="answer">
+        {{text:繁體字}}
+      </div>
+    </dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress speech output on AnkiDroid until card flipped -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/繁體字}}{{/Enable read (繁體字)}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/read_pinyin/back.html b/src/templates/vocabulary/read_pinyin/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..bdbbd778803e26b8879a65540ac4091b8c3b3ced
--- /dev/null
+++ b/src/templates/vocabulary/read_pinyin/back.html
@@ -0,0 +1,89 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back anki-template-hanyu-read-pinyin-back">
+  <dl class="translations">
+    <dt>English</dt>
+    <dd>{{English}}</dd>
+    <dt>简体字</dt>
+    <dd>
+      <span class="hanzi-print">{{简体字}}</span>
+      <div class="strichfolge-animation" no-animate="true" highlight-radical="true">
+        {{text:简体字}}
+      </div>
+    </dd>
+    {{#Pronounciation}}
+    <dt class="t2s-player-heading">汉语</dt>
+    <dd id="t2s-player-container" class="t2s-player-container">
+      <div class="anki-droid-player">
+        <tts style="display: none" service="android" voice="zh_CN">
+          {{text:Pronounciation}}
+        </tts>
+      </div>
+      <div class="anki-web-player">
+        {{text:Pronounciation}}
+      </div>
+      <div class="anki-builtin-player">
+        {{tts zh_CN:Pronounciation}}
+      </div>
+    </dd>
+    {{/Pronounciation}}
+    <dt>Recording</dt>
+    <dd>{{Audio recording}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks}}</dd>
+    <dt>Examples</dt>
+    <dd>{{Examples}}</dd>
+    <details class="answer-details">
+      <summary>
+        <span class="answer-details-more">Show more…</span>
+        <span class="answer-details-less">Show less…</span>
+      </summary>
+      {{#繁體字}}
+      <dt>繁體字</dt>
+      <dd>
+        <span class="hanzi-print">{{繁體字}}</span>
+        <div class="strichfolge-animation is-traditional" no-animate="true" highlight-radical="true">
+          {{text:繁體字}}
+        </div>
+      </dd>
+      {{/繁體字}}
+      <dt>Radical (简体字)</dt>
+      <dd>
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation" no-animate="true">
+          <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{#繁體字}}
+      <dt>Radical (繁體字)</dt>
+      <dd>
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation is-traditional" no-animate="true">
+          <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{/繁體字}}
+    </details>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/read_pinyin/front.html b/src/templates/vocabulary/read_pinyin/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..f9dfae878c890d55df1d308a6fbc9e902ad136da
--- /dev/null
+++ b/src/templates/vocabulary/read_pinyin/front.html
@@ -0,0 +1,34 @@
+{{#Enable read (Pīnyīn)}}{{#Pīnyīn}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front anki-template-hanyu-read-pinyin-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>Pīnyīn</dt>
+    <dd>{{Pīnyīn}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress speech output on AnkiDroid until card flipped -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/Pīnyīn}}{{/Enable read (Pīnyīn)}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/speak/back.html b/src/templates/vocabulary/speak/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..ba21adada8edc5fcb7c2cea20e66c27a202430ec
--- /dev/null
+++ b/src/templates/vocabulary/speak/back.html
@@ -0,0 +1,89 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back anki-template-hanyu-speak-back">
+  <dl class="translations">
+    <dt>Pīnyīn</dt>
+    <dd>{{Pīnyīn}}</dd>
+    <dt>简体字</dt>
+    <dd>
+      <span class="hanzi-print">{{简体字}}</span>
+      <div class="strichfolge-animation" no-animate="true" highlight-radical="true">
+        {{text:简体字}}
+      </div>
+    </dd>
+    {{#Pronounciation}}
+    <dt class="t2s-player-heading">汉语</dt>
+    <dd id="t2s-player-container" class="t2s-player-container">
+      <div class="anki-droid-player">
+        <tts style="display: none" service="android" voice="zh_CN">
+          {{text:Pronounciation}}
+        </tts>
+      </div>
+      <div class="anki-web-player">
+        {{text:Pronounciation}}
+      </div>
+      <div class="anki-builtin-player">
+        {{tts zh_CN:Pronounciation}}
+      </div>
+    </dd>
+    {{/Pronounciation}}
+    <dt>Recording</dt>
+    <dd>{{Audio recording}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks}}</dd>
+    <dt>Examples</dt>
+    <dd>{{Examples}}</dd>
+    <details class="answer-details">
+      <summary>
+        <span class="answer-details-more">Show more…</span>
+        <span class="answer-details-less">Show less…</span>
+      </summary>
+      {{#繁體字}}
+      <dt>繁體字</dt>
+      <dd>
+        <span class="hanzi-print">{{繁體字}}</span>
+        <div class="strichfolge-animation is-traditional" no-animate="true" highlight-radical="true">
+          {{text:繁體字}}
+        </div>
+      </dd>
+      {{/繁體字}}
+      <dt>Radical (简体字)</dt>
+      <dd>
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation" no-animate="true">
+          <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{#繁體字}}
+      <dt>Radical (繁體字)</dt>
+      <dd>
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation is-traditional" no-animate="true">
+          <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{/繁體字}}
+    </details>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/speak/front.html b/src/templates/vocabulary/speak/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..16fb4d649c8f4abda11c13df8610c9c813ac0165
--- /dev/null
+++ b/src/templates/vocabulary/speak/front.html
@@ -0,0 +1,34 @@
+{{#English}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front anki-template-hanyu-speak-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>English</dt>
+    <dd>{{English}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress speech output on AnkiDroid until card flipped -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/English}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/write/back.html b/src/templates/vocabulary/write/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..4f384701e4bf80bcfe94498b01e8e3e3d5c4aa78
--- /dev/null
+++ b/src/templates/vocabulary/write/back.html
@@ -0,0 +1,89 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back anki-template-hanyu-write-back">
+  <dl class="translations">
+    <dt>简体字</dt>
+    <dd>
+      <span class="hanzi-print">{{简体字}}</span>
+      <div class="strichfolge-animation" highlight-radical="true">
+        {{text:简体字}}
+      </div>
+    </dd>
+    <dt>Pīnyīn</dt>
+    <dd>{{Pīnyīn}}</dd>
+    {{#Pronounciation}}
+    <dt class="t2s-player-heading">汉语</dt>
+    <dd id="t2s-player-container" class="t2s-player-container">
+      <div class="anki-droid-player">
+        <tts style="display: none" service="android" voice="zh_CN">
+          {{text:Pronounciation}}
+        </tts>
+      </div>
+      <div class="anki-web-player">
+        {{text:Pronounciation}}
+      </div>
+      <div class="anki-builtin-player">
+        {{tts zh_CN:Pronounciation}}
+      </div>
+    </dd>
+    {{/Pronounciation}}
+    <dt>Recording</dt>
+    <dd>{{Audio recording}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks}}</dd>
+    <dt>Examples</dt>
+    <dd>{{Examples}}</dd>
+    <details class="answer-details">
+      <summary>
+        <span class="answer-details-more">Show more…</span>
+        <span class="answer-details-less">Show less…</span>
+      </summary>
+      {{#繁體字}}
+      <dt>繁體字</dt>
+      <dd>
+        <span class="hanzi-print">{{繁體字}}</span>
+        <div class="strichfolge-animation is-traditional" highlight-radical="true">
+          {{text:繁體字}}
+        </div>
+      </dd>
+      {{/繁體字}}
+      <dt>Radical (简体字)</dt>
+      <dd>
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation" no-animate="true">
+          <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{#繁體字}}
+      <dt>Radical (繁體字)</dt>
+      <dd>
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation is-traditional" no-animate="true">
+          <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{/繁體字}}
+    </details>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/write/front.html b/src/templates/vocabulary/write/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..8dd54cc44d19369b001a41833e3ab009f4203b85
--- /dev/null
+++ b/src/templates/vocabulary/write/front.html
@@ -0,0 +1,34 @@
+{{#English}}{{#Enable write (简体字)}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front anki-template-hanyu-write-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>English</dt>
+    <dd>{{English}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress default speech output and do that from script instead -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/Enable write (简体字)}}{{/English}}
\ No newline at end of file
diff --git a/src/templates/vocabulary/write_traditional/back.html b/src/templates/vocabulary/write_traditional/back.html
new file mode 100644
index 0000000000000000000000000000000000000000..bbb9db0895a8ae5864ce7c2f32ad444da18858c1
--- /dev/null
+++ b/src/templates/vocabulary/write_traditional/back.html
@@ -0,0 +1,89 @@
+<div class="front-side-on-back">
+  {{FrontSide}}
+</div>
+
+<hr id="answer">
+
+<div class="exercise back anki-template-hanyu-write-back">
+  <dl class="translations">
+    <dt>繁體字</dt>
+    <dd>
+      <span class="hanzi-print">{{繁體字}}</span>
+      <div class="strichfolge-animation is-traditional" highlight-radical="true">
+        {{text:繁體字}}
+      </div>
+    </dd>
+    <dt>Pīnyīn</dt>
+    <dd>{{Pīnyīn}}</dd>
+    {{#Pronounciation}}
+    <dt class="t2s-player-heading">汉语</dt>
+    <dd id="t2s-player-container" class="t2s-player-container">
+      <div class="anki-droid-player">
+        <tts style="display: none" service="android" voice="zh_CN">
+          {{text:Pronounciation}}
+        </tts>
+      </div>
+      <div class="anki-web-player">
+        {{text:Pronounciation}}
+      </div>
+      <div class="anki-builtin-player">
+        {{tts zh_CN:Pronounciation}}
+      </div>
+    </dd>
+    {{/Pronounciation}}
+    <dt>Recording</dt>
+    <dd>{{Audio recording}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks}}</dd>
+    <dt>Examples</dt>
+    <dd>{{Examples}}</dd>
+    <details class="answer-details">
+      <summary>
+        <span class="answer-details-more">Show more…</span>
+        <span class="answer-details-less">Show less…</span>
+      </summary>
+      {{#简体字}}
+      <dt>简体字</dt>
+      <dd>
+        <span class="hanzi-print">{{简体字}}</span>
+        <div class="strichfolge-animation" highlight-radical="true">
+          {{text:简体字}}
+        </div>
+      </dd>
+      {{/简体字}}
+      <dt>Radical (繁體字)</dt>
+      <dd>
+        <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation is-traditional" no-animate="true">
+          <span hanzi-data="{{text:繁體字}}" hanzi-kind="traditional" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{#简体字}}
+      <dt>Radical (简体字)</dt>
+      <dd>
+        <span hanzi-data="{{text:简体字}}" hanzi-prop="radical" class="hanzi-print"></span>
+        <div class="strichfolge-animation" no-animate="true">
+          <span hanzi-data="{{text:简体字}}" hanzi-prop="radical"></span>
+        </div>
+      </dd>
+      {{/简体字}}
+    </details>
+  </dl>
+
+  <details class="answer-details">
+    <summary>
+      <span class="answer-details-more">About this pack…</span>
+      <span class="answer-details-less">Hide pack info…</span>
+    </summary>
+
+    {{Credits}}
+    <div notice-file="KA_TEMPLATES_NOTICE"></div>
+  </details>
+</div>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/back'
+</script>
\ No newline at end of file
diff --git a/src/templates/vocabulary/write_traditional/front.html b/src/templates/vocabulary/write_traditional/front.html
new file mode 100644
index 0000000000000000000000000000000000000000..22e2dc466d23d770ad32d2ffb9161909da270d68
--- /dev/null
+++ b/src/templates/vocabulary/write_traditional/front.html
@@ -0,0 +1,34 @@
+{{#English}}{{#Enable write (繁體字)}}{{#繁體字}}
+<style>
+  @import url(../../../components/global.css);
+</style>
+
+<div class="exercise front anki-template-hanyu-write-front">
+  <header class="card-info">
+    <aside class="exercise-category">
+      {{Subdeck}}
+    </aside>
+    <aside class="exercise-kind">
+      {{Card}}
+    </aside>
+  </header>
+  </header>
+
+  <dl class="prompt translations">
+    <dt>English</dt>
+    <dd>{{English}}</dd>
+    <dt>Remarks</dt>
+    <dd>{{Remarks (front side)}}</dd>
+  </dl>
+</div>
+
+<!-- Suppress default speech output and do that from script instead -->
+<tts style="display: none" service="android" voice="zh_CN"></tts>
+
+<script type="module">
+  import '../../../components/debug'
+</script>
+<script type="module">
+  import '../../../components/front'
+</script>
+{{/繁體字}}{{/Enable write (繁體字)}}{{/English}}
\ No newline at end of file