Anki

【コピペOK】Ankiテンプレート3選|「無骨な画面」をCSSでおしゃれ&学習特化型に変える方法

majinalife.com
あなた
あなた

Ankiって地味で面白くない…

Ankiを使い始めたばかりの方なら、誰もが一度はこう感じるのではないでしょうか。 デフォルトの画面は、真っ白な背景に黒い文字が表示されるだけ。市販の英語学習アプリのような華やかさはなく、まさに「無骨」という言葉がぴったりです。

「学習ツールにデザインなんて関係ない」と思われるかもしれません。しかし、私は現役のエンジニアとして、そして10年近くAnkiを愛用しTOEICスコアを300点以上アップさせた一人の学習者として断言します。

森田ユウゴ
森田ユウゴ

デザインはただの飾りではありません。脳の負担を減らすための重要な『機能』です!

画面が見にくいと、脳は無意識のうちに「情報を読み取る」ことにエネルギーを使ってしまいます。これをAnkiのテンプレートを整えることで解消し、脳のリソースを100%「記憶すること」だけに集中させることができるのです。

「でも、プログラミングやCSSなんてわからない…」 そんな方も安心してください。Ankiの見た目は、難しい知識がなくても劇的に変えることができます。

この記事を読み終える頃には、あなたのAnkiは見違えるほど使いやすく、愛着の湧くツールになっているはずです。

Ankiテンプレート無料配布

この記事の対象読者

  • Ankiを使い始めたばかりの初心者の方
  • Ankiのデザイン(HTML/CSS)のカスタマイズに挑戦してみたい方

Ankiカスタマイズの基本として、コピペするだけで使える3つの無料デザインテンプレートをプレゼントします。

HTMLやCSSの知識は一切不要です。 まずはこのテンプレートを使って、「見やすさ=学習のしやすさ」を体感してみてください。あなたのAnkiが、今日から「使いたくなるアプリ」に生まれ変わります。

森田ユウゴ
森田ユウゴ

台湾で「面倒解決エンジニア」として活動している森田ユウゴです!

私は台湾在住のソフトウェアエンジニアです。「面倒くさい!」を原動力に、kintoneカスタマイズやChrome拡張機能開発などを通して、日常や業務の課題をテクノロジーで解決することに注力しています。

ご相談はこちらから▼

Ankiのカスタマイズで「学習効率」が上がる科学的理由

Ankiの見た目を変えることは、単なる自己満足ではありません。 学習効率、つまり「記憶の定着率」を上げるための合理的な戦略です。

なぜデザインを変えるだけで記憶力が変わるのか? その理由は「認知負荷(Cognitive Load)」という脳科学の概念で説明できます。

ただの「おしゃれ」ではない。「認知負荷」を下げるためのデザイン

人間の脳が一度に処理できる情報量には限界があります。学習中、脳のリソースは可能な限り「問題の答えを思い出すこと」に使いたいですよね。

しかし、画面のデザインが悪い(文字が小さい、行間が詰まっている、どこを見ればいいかわからない)と、脳は無意識に次のような処理を行います。

あなた
あなた

この小さな文字はなんて書いてあるんだ?

あなた
あなた

どこからどこまでが例文なんだ?

あなた
あなた

答えはどの部分だ?

この「情報を視覚的に整理・認識するための労力」が、無駄な「認知負荷」です。

微々たるものに見えますが、Ankiで数百枚のカードをこなすと、このチリ積もった負荷が脳のスタミナを奪います。「なんだかAnkiをやるとすぐ疲れる」「数分で集中力が切れる」という原因の1つは、実はこの画面の視認性の悪さにあることが多いのです。

エンジニアが考える「良いUI」=「思い出すこと以外に脳を使わせない」

私は普段、システムの画面(UI:ユーザーインターフェース)を設計する際、「ユーザーに余計なことを考えさせない」ことを最優先にします。これをAnkiに当てはめると、良いデザインの定義はこうなります。

  1. 視線誘導がスムーズである
    • パッと見た瞬間に、一番大事な情報(単語など)が目に飛び込んでくる。
  2. 情報の階層化ができている
    • 「主役(覚えたいこと)」と「脇役(補足情報)」の区別が、文字サイズや色ではっきりしている。
  3. ノイズがない
    • 学習に必要な情報以外が削ぎ落とされている。

これから紹介するテンプレートは、この「脳のリソースを記憶だけに集中させる」というエンジニア視点の設計思想で作られています。

Ankiテンプレート設定の基本|いじるのは「3箇所」だけ

理屈がわかったところで、次は実践です。 「カスタマイズ」と聞くと難しそうですが、Ankiの構造は「データ(ノート / カード)」と「テンプレート(ノートタイプ / カードタイプ)」が明確に分かれています。

ノートタイプやノート・カードなどのキーワードが分からない方は下記の記事もご参照ください!

あわせて読みたい
Ankiでフラッシュカード作成効率化の鍵:ノートタイプ「基本」「穴埋め問題」「画像穴埋め問題」の違いを徹底解説
Ankiでフラッシュカード作成効率化の鍵:ノートタイプ「基本」「穴埋め問題」「画像穴埋め問題」の違いを徹底解説

今回は、安全な「デザイン」の部分だけを変更します。

初心者は「フィールド」を増やさず「デザイン」だけで遊ぼう

Ankiの本来の凄さは、実は「フィールド(入力項目)」を自由にカスタマイズできる点にあります。「画像」や「音声」、「品詞」「メモ」といった専用の箱を用意してデータを整理するのは、非常に効率的で素晴らしい機能です。

しかし、いきなりデータ構造の話を始めると、説明がとても長くなり、設定も少し複雑になってしまいます。そこで今回は、あえて一番シンプルな構成でデザインだけを変える方法をとります。

  • フィールド(Field): データの入力欄。今回は初期状態の「表面(Front)」「裏面(Back)」の2つだけを使います。
  • カードタイプ(Template/Style):データの見せ方。今回いじるのはこっちです。

「データ(フィールド)はそのままでも、見た目(カードタイプ)の記述を変えるだけでここまで変わる!」 まずはこの感動を体験してください。

私が配布するコードも、デフォルトの「表面」と「裏面」さえあれば誰でも動かせるように作っています。

失敗しないための準備:実験用の「ノートタイプ」を作ろう

いきなり普段使っているカードのデザインを変えるのは、少し怖いですよね。万が一、設定を間違えて戻せなくなったら大変です。

そこで、まずは練習用に「カスタマイズ実験用」のノートタイプを作りましょう。これなら、いくら失敗しても普段の学習データには一切影響しません。

Ankiを起動します。

メニューバーの「ツール」→「ノートタイプを管理」をクリックします。
Ankiの「ツール」→「ノートタイプを管理」の画面
出てきた画面で「追加」ボタンをクリックします。
Ankiのノートタイプ追加ボタンの画面
「ノートタイプを追加」という画面が出るので、一番上の「追加: 基本」を選んでください。
Ankiのノートタイプ追加画面で基本(Basic)を選択
名前の入力を求められます。ここでは「カスタマイズサンプル」と入力して「OK」をクリックします。
Ankiのノートタイプ名入力画面
リストの中に「カスタマイズサンプル」が増えていれば準備完了です!
Ankiでオリジナルのノートタイプ「カスタマイズサンプル」を追加した画面

これ以降の手順で迷ったら、ノートタイプを追加して再度試してみましょう!

ノートタイプを削除したり、今回は紹介していないですがフィールドの追加・削除をすると下記のようなポップアップが表示されます。

Ankiで「この変更を他のデバイスと同期するには…」の警告画面

これは簡単に言うと「全同期が必要」な状態です。複数デバイスで学習している場合は、先にスマホで同期→PCで同期→フィールドを変更という流れにしましょう。

不安だったり分からないことは是非、ココナラのサービスをご活用ください!

いよいよ実装!Ankiにデザインをコピペで適用する手順

箱(ノートタイプ)が用意できたので、次はいよいよデザインを書き換えます。

さきほどの「ノートタイプを管理」画面で、作ったばかりの「カスタマイズサンプル」を選択し、右側にある「カード」ボタンをクリックします。

※この画面を閉じてしまった場合、メニューバーの「ツール」→「ノートタイプを管理」で表示可能です

Ankiで自作のカスタマイズサンプルのカードテンプレートを編集するボタンの画面
カスタマイズの設定画面が開きます。Ankiのカードタイプ編集画面

画面にはいろいろなボタンや文字がありますが、初心者が触るのは以下の3つのエリアだけでOKです。

  1. 表面テンプレート(左上):問題を表示する画面のHTML
  2. 裏面テンプレート(左下):解答を表示する画面のHTML
  3. スタイル(中央):全体のデザイン(CSS)
【実験】試しにこのコードを貼ってみよう

百聞は一見にしかずです。以下のコードをそれぞれのエリアにコピペしてみてください。まずは「見た目の変化」が分かりやすいようなデザインとしています。

※元々書かれている文字はすべて消してから貼り付けてください。

【表面テンプレート】

<div class="front-card">
    {{表面}}
</div>

【裏面テンプレート】

{{FrontSide}}

<hr id=answer>

<div class="back-card">
    {{裏面}}
</div>

【スタイル】

.card {
    font-family: sans-serif;
    font-size: 20px;
    text-align: center;
    color: black;
    background-color: #f0f8ff; /* 薄い水色 */
}

.front-card {
    font-weight: bold;
    color: #00008b; /* 濃い青 */
    padding: 20px;
    border: 2px solid #00008b;
}

.back-card {
    margin-top: 20px;
    color: #ff4500; /* オレンジっぽい赤 */
    font-size: 24px;
}
「保存」をする前に「プレビュー」が見れる

ほぼリアルタイムで、追加したHTMLやCSSの確認を右の「プレビュー」で確認することが出来ます。

ラジオボタンで表示されている通り「表面のプレビュー」は表面、「裏面のプレビュー」は裏面が表示されます。

Ankiのカードタイプのプレビュー画面

なんとこれだけでカードテンプレートのカスタマイズは出来ます!

次に追加したカードテンプレートでカードを追加して、プレビューを見てみましょう。

カードを作って変化を確認しよう

Ankiのトップ画面に戻り、「追加」をクリックします。
ここが最重要です。 追加画面の左上にある「ノートタイプ」をクリックし、「カスタマイズサンプル」に変更して選択します。
Ankiでカード追加時の「ノートタイプ」変更画面
「表面」に「りんご」、「裏面」に「Apple」など適当に入力して「追加」ボタンを押します。
Ankiで適当なカードを追加する画面
画面下の「履歴」ボタンをクリックし、今追加したカードを選んで「編集」画面を開きます(またはブラウザ画面から選択)。
Ankiで追加した履歴からブラウザを開けるリンクの画面
画面右上にある「プレビュー」ボタンを押してみてください。
Ankiのブラウザ画面における「プレビューボタン」の位置
プレビューが表示されます!
Ankiのプレビュー画面(今回追加したカスタマイズサンプルのノートタイプ)

いかがでしょうか? 背景が薄い水色になり、文字が青や赤に変わっていれば成功です!

これがAnkiカスタマイズの基本サイクルです。 「ノートタイプを作る」→「カード画面でコードを貼る」→「プレビューで確認」。 この流れさえ掴めれば、あとはコードの中身を入れ替えるだけで、どんなデザインも自由自在です。

それでは、私の作成した「おすすめテンプレート3選」のコードを紹介します。気に入ったものを、先ほどの「表面」「裏面」「スタイル」に上書きして使ってみてください。

【無料配布】コピペで完了!おすすめAnkiテンプレート3選

お待たせしました。それでは、コピペですぐに使える3つのテンプレートを紹介します。 それぞれ「表面」「裏面」「スタイル」のコードを用意していますので、先ほどの実験用カード(あるいは本番用カード)に貼り付けてみてください。

HTML/CSSだけでなく、JavaScriptも少し活用した「アプリ顔負け」の高機能なデザインです。

カードに関するお問い合わせやカスタマイズは、ココナラにて有償で承っております。

より複雑なカードを作成したい方は、ぜひご相談ください!

カスタマイズサンプル1:スマホアプリ風「フリップアニメーション」型

まるで市販の洗練された単語帳アプリのような操作感を実現するテンプレートです。

森田ユウゴのAnkiカスタマイズサンプル1の概要の画像
特徴

リッチなアニメーション: Anki特有の「パッと切り替わる」挙動ではなく、カードがくるりと裏返るようなアニメーションを実装しました。

没入型全画面デザイン: 画面全体をキャンバスとして使い、カードが中央に浮かぶモダンなUIです。

フローティングボタン: 画面右下にアクションボタン(反転ボタン)が表示され、タップすることで裏面を確認できます。

森田ユウゴのAnkiカスタマイズサンプル1の特徴

ダークモード完全対応: システム設定に応じて、目に優しいダークカラーへ自動で切り替わります。

森田ユウゴのAnkiカスタマイズサンプル2の特徴の画像2
こんな人・用途におすすめ
  • 通勤・通学中のスマホ学習メインの方: タップエリアが広く、片手操作が快適です。
  • 英単語・短文暗記: 1問1答形式のシンプルなカードを、テンポよくこなしたい時に最適です。
  • デザイン重視派: 「Ankiの古臭い見た目」から脱却したい方に一番のオススメです。

Point: コード内の <div class="card-animator"> がカードの挙動を制御しており、触っていて楽しい「物理的なカード感」を演出しています。

Q
表面(タップしてソースコードを表示)
<!--
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-01 - Front
    Description: 高度なカスタマイズサンプル単語帳カードテンプレート(表面)
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
-->

<!--
 Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 https://www.gnu.org/licenses/gpl.html
-->

<div class="anki-card-container">
    <div class="card-animator">
      <div class="card-header">
        <div class="deck-name">{{Deck}}</div>
        <div class="tags">{{Tags}}</div>
      </div>
      <div class="header-separator"></div>
      <div class="main-area">
        <div id="content-front">
          <div class="content-text">{{表面}}</div>
          <div class="free-area"></div>
        </div>
        <div id="content-back" class="is-hidden"></div>
      </div>
    </div>
  </div>
Q
裏面(タップしてソースコードを表示)
<!--
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-01 - Back
    Description: 高度なカスタマイズサンプル単語帳カードテンプレート(裏面)
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
-->

<!--
 Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 https://www.gnu.org/licenses/gpl.html
-->

{{FrontSide}}

<div id="raw-back-content" style="display: none;">
  <div class="content-text">{{裏面}}</div>
  <div class="free-area"></div>
</div>

<div id="flip-btn" class="flip-button">
  <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></svg>
</div>

<script>
(function() {
  const ids = { f: 'content-front', b: 'content-back', r: 'raw-back-content', btn: 'flip-btn' };
  const front = document.getElementById(ids.f);
  const back = document.getElementById(ids.b);
  const raw = document.getElementById(ids.r);
  const ctr = document.querySelector('.anki-card-container');
  const animator = document.querySelector('.card-animator');
  const btn = document.getElementById(ids.btn);

  if (!front || !back || !raw || !ctr || !animator) return;
  if (ctr.classList.contains('init')) return;

  back.innerHTML = raw.innerHTML;
  front.classList.add('is-hidden');
  back.classList.remove('is-hidden');
  ctr.classList.add('clickable-area', 'init');

  if (btn) {
    animator.appendChild(btn);
    setTimeout(() => { btn.style.opacity = '1'; btn.style.transform = 'scale(1)'; }, 50);
  }

  ctr.onclick = function(e) {
    if (e.target.tagName === 'A') return;
    const isBack = !back.classList.contains('is-hidden');
    if (isBack) {
      back.classList.add('is-hidden');
      front.classList.remove('is-hidden');
    } else {
      front.classList.add('is-hidden');
      back.classList.remove('is-hidden');
    }
  };
})();
</script>
Q
スタイル(タップしてソースコードを表示)
/*
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-01 - Style
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
*/

/*
 * Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 * License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 * https://www.gnu.org/licenses/gpl.html
 */
 
:root {
    --bg-canvas: #2f73ae;
    --bg-card: #ffffff;
    --text-main: #222222;
    --text-sub: #666666;
    --border-color: #eeeeee;
    --edge-margin: 10px;
    --card-radius: 12px;
    --font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  }
  
  .nightMode {
    --bg-canvas: #1a1a1a;
    --bg-card: #2c2c2c;
    --text-main: #dddddd;
    --text-sub: #888888;
    --border-color: #444444;
  }
  
  html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: var(--bg-canvas);
    touch-action: manipulation;
  }
  
  .card {
    font-family: var(--font-family);
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
  }
  
  .anki-card-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 100;
    padding: var(--edge-margin);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  
  .card-animator {
    width: 100%;
    height: 100%;
    background-color: var(--bg-card);
    color: var(--text-main);
    border-radius: var(--card-radius);
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    transition: transform 0.1s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
  }
  
  .anki-card-container:active .card-animator {
    transform: scale(0.985);
  }
  
  .card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 12px 20px;
    font-size: 0.75rem;
    color: var(--text-sub);
    flex-shrink: 0;
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
  }
  
  .deck-name {
    text-align: left;
    padding-right: 10px;
  }
  
  .tags {
    text-align: right;
    padding-left: 10px;
  }
  
  .header-separator {
    width: 100%;
    height: 1px;
    background-color: var(--border-color);
    flex-shrink: 0;
  }
  
  .main-area {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 20px 20px 80px 20px;
    text-align: center;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  .content-text {
    font-weight: 600;
    font-size: 2rem;
    width: 100%;
  }
  
  .free-area {
    font-weight: normal;
    font-size: 1rem;
    margin-top: 20px;
    width: 100%;
    color: var(--text-main);
    opacity: 0.9;
  }
  
  .main-area img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 4px;
  }
  
  .flip-button {
    position: absolute;
    bottom: 20px;
    right: 20px;
    width: 64px;
    height: 64px;
    color: var(--bg-canvas);
    background-color: rgba(47, 115, 174, 0.1);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    z-index: 200;
  }
  
  .nightMode .flip-button {
    color: #5d9cd6;
    background-color: rgba(93, 156, 214, 0.15);
  }
  
  .flip-button svg {
    width: 36px;
    height: 36px;
  }
  
  .is-hidden {
    display: none !important;
  }

カスタマイズサンプル2:気分で色を変える「テーマカラー切り替え」型

「毎日同じ画面だと飽きる…」という問題を解決する、カラフルで視認性の高いデザインです。

森田ユウゴのAnkiカスタマイズサンプル2の概要の画像

テンプレートのコード内の設定を1行書き換えるだけで、下記のようにイメチェンが出来ます。

森田ユウゴのAnkiカスタマイズサンプル2の特徴の画像1
特徴

設定一つでテーマ変更: コード内の config = { theme: 'green' } を書き換えるだけで、「青・緑・アプリコット・ライラック・黒・白」の6色に瞬時に着せ替え可能。

森田ユウゴのAnkiカスタマイズサンプル2の特徴の画像2

実用的なノートデザイン: 表面は「質問ボックス」、裏面は「罫線入りのノート」というデザインで、どこに何が書いてあるかが一目でわかります。

森田ユウゴのAnkiカスタマイズサンプル2の特徴の画像3

科目ごとの使い分け: 例えば「英語はブルー」「法律はグリーン」のように、ノートタイプを分けて視覚的に区別することができます。

※応用として、1つのノートタイプで特定のフィールドをもとに色を決めるという仕組みも可能です!ココナラで有償カスタマイズいたしますのでご相談ください!

こんな人・用途におすすめ
  • 飽き性の方: 週替わりで色を変えるなど、ちょっとした気分転換が学習継続の鍵になります。
  • 長文・例文暗記: 裏面が罫線デザインになっているため、文章が読みやすく、記述問題の対策にも向いています。
  • 視認性を重視する方: 文字色と背景色のコントラストが計算されているため、長時間見ても目が疲れにくい設計です。

Point: JavaScriptでCSS変数を動的に書き換える仕組みを採用しており、プログラミング学習の教材としても面白い構造になっています。

Q
表面(タップしてソースコードを表示)
<!--
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-02 - Front
    Description: 高度なカスタマイズサンプル単語帳カードテンプレート(表面)
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
-->

<!--
 Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 https://www.gnu.org/licenses/gpl.html
-->
 
<div class="flashcard" id="card-content">
    <div class="question-box">
      {{表面}}
    </div>
  </div>
  
  <script>
    // ============================================
    // ▼ ここで色を設定してください
    // 'white', 'black', 'blue', 'green', 'apricot', 'lilac'
    // ============================================
    var config = {
      theme: 'green' 
    };
    
    (function() {
      var themes = {
        white:   { bg: '#FAFAFA', text: '#333333', line: '#CBD5E0' },
        black:   { bg: '#2C3E50', text: '#E0E0E0', line: '#5D6D7E' }, // 黒背景・白文字
        blue:    { bg: '#D6EAF8', text: '#333333', line: '#A9CCE3' },
        green:   { bg: '#B9F6CA', text: '#333333', line: '#69F0AE' }, // 鮮やかな緑
        apricot: { bg: '#FAE5D3', text: '#333333', line: '#EDBB99' },
        lilac:   { bg: '#EBDEF0', text: '#333333', line: '#C39BD3' }
      };
  
      var t = themes[config.theme] || themes['white'];
      var card = document.getElementById('card-content');
      
      if(card) {
        card.style.setProperty('--js-bg', t.bg);
        card.style.setProperty('--js-text', t.text);
        card.style.setProperty('--js-line', t.line);
      }
    })();
  </script>
Q
裏面(タップしてソースコードを表示)
<!--
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-02 - Back
    Description: 高度なカスタマイズサンプル単語帳カードテンプレート(裏面)
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
-->

<!--
 Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 https://www.gnu.org/licenses/gpl.html
-->

<div class="flashcard" id="card-content-back">
    <div class="question-box">
      {{表面}}
    </div>
  
    <div class="answer-area">
      {{裏面}}
    </div>
  </div>
  
  <script>
    // ============================================
    // ▼ ここで色を設定してください (表面と同じにする)
    // 'white', 'black', 'blue', 'green', 'apricot', 'lilac'
    // ============================================
    var config = {
      theme: 'green' 
    };
    
    (function() {
      var themes = {
        white:   { bg: '#FAFAFA', text: '#333333', line: '#CBD5E0' },
        black:   { bg: '#2C3E50', text: '#E0E0E0', line: '#5D6D7E' },
        blue:    { bg: '#D6EAF8', text: '#333333', line: '#A9CCE3' },
        green:   { bg: '#B9F6CA', text: '#333333', line: '#69F0AE' },
        apricot: { bg: '#FAE5D3', text: '#333333', line: '#EDBB99' },
        lilac:   { bg: '#EBDEF0', text: '#333333', line: '#C39BD3' }
      };
  
      var t = themes[config.theme] || themes['white'];
      // 裏面用のIDを取得
      var card = document.getElementById('card-content-back');
      
      if(card) {
        card.style.setProperty('--js-bg', t.bg);
        card.style.setProperty('--js-text', t.text);
        card.style.setProperty('--js-line', t.line);
      }
    })();
  </script>
Q
スタイル(タップしてソースコードを表示)
/*
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-02 - Style
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
*/

/*
 * Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 * License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 * https://www.gnu.org/licenses/gpl.html
 */

/* =========================================
   1. ベーススタイル (JSで色制御)
   ========================================= */

/* Ankiの背景 */
.card {
    font-family: "Helvetica", "Arial", sans-serif;
    font-size: 20px;
    text-align: center;
    color: black;
    background-color: transparent; /* 本体設定に従う */
  }
  
  /* カードの台紙 */
  .flashcard {
    /* JSの設定色をそのまま使う(ダークモードでも維持) */
    background-color: var(--js-bg, #E2E6F5); 
    
    border-radius: 15px;
    width: 90%;
    max-width: 600px;
    margin: 30px auto;
    padding: 20px;
    box-shadow: 2px 2px 8px rgba(0,0,0,0.15);
    text-align: left;
  }
  
  /* 質問ボックス (通常モード) */
  .question-box {
    background-color: #FFFFFF; /* 基本は白 */
    border-radius: 10px;
    padding: 20px;
    min-height: 60px;
    color: #333333;            /* 基本は黒文字 */
    font-weight: bold;
    text-align: left;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
    margin-bottom: 20px;
  }
  
  /* 解答エリア */
  .answer-area {
    padding: 5px 15px;
    color: var(--js-text, #333); /* JSの設定色 */
    font-size: 18px;
    line-height: 2.6em;
  
    /* 罫線 */
    background-image: linear-gradient(var(--js-line, #ccc) 1px, transparent 1px);
    background-size: 100% 2.6em;
    background-position: 0 2.5em;
  }
  
  
  /* =========================================
     2. ダークモード部分調整
        ※ カードの色は維持し、白い箱だけ暗くする
     ========================================= */
  
  /* ダークモード時の質問ボックス */
  .nightMode .question-box {
    background-color: #2C2C2C !important; /* 暗いグレーに変更 */
    color: #E0E0E0 !important;            /* 文字を白く */
    border: 1px solid #444;               /* 境界が見やすいよう枠線追加 */
    box-shadow: none;
  }
  
  /* ※台紙の色(.flashcard)や解答欄(.answer-area)は
       JSの設定(テーマカラー)がそのまま維持されます */

カスタマイズサンプル3:情報整理の王道「タブ切り替えUI」型

1枚のカードに情報を詰め込みたいけれど、ごちゃごちゃするのは嫌。そんな上級者の悩みを解決する高機能テンプレートです。

森田ユウゴのAnkiカスタマイズサンプル3の概要の画像
特徴

タブナビゲーション: 画面上部にタブがあり、「表面(問題)」と「裏面(解答)」をタップで行き来できます。

答え合わせ後の振り返り: 裏面を表示した後でも、「あれ、問題文なんだっけ?」と思った時に、タブで瞬時に表面へ戻れます(Ankiの標準機能ではこれが地味に面倒です)。

拡張性: 構造上、タブを3つ、4つと増やすことが容易です。「解説」「類義語」「画像」など、情報をレイヤー分けして格納できます。

森田ユウゴ
森田ユウゴ

サンプル1,2に比べると地味ですが、拡張の幅が大きいサンプルです!

こんな人・用途におすすめ
  • 医学生・司法試験受験生: 1つのキーワードに対して覚えるべき付帯情報(定義、判例、例外など)が大量にある方。
  • 複雑なカード構成: 画像や音声、長文解説を含むカードを作成している方。
  • じっくり思考型: 一瞬で答えを出すのではなく、問題を何度も見返しながら理解を深めたい学習スタイルの方。

Point: 情報を一度に全て表示せず、必要な時にタブで呼び出す設計により、「情報過多による認知負荷」を下げることができます。

Q
表面(タップしてソースコードを表示)
<!--
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-03 - Front
    Description: 高度なカスタマイズサンプル単語帳カードテンプレート(表面)
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
-->

        <!--
 Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 https://www.gnu.org/licenses/gpl.html
-->

<div class="layout-root">
    <nav class="tab-nav">
        <div class="tab-item active" id="btn-tab1">
            表面
        </div>
        
        <div class="tab-item hidden-on-front" id="btn-tab2">
            裏面
        </div>

        </nav>

    <main class="tab-content">
        <div class="content-body active" id="pane-tab1">
            {{表面}}
        </div>

        <div class="content-body" id="pane-tab2"></div>
        <div class="content-body" id="pane-tab3"></div>
    </main>
</div>
Q
裏面(タップしてソースコードを表示)
<!--
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-03 - Back
    Description: 高度なカスタマイズサンプル単語帳カードテンプレート(裏面)
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
-->

<!--
 Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 https://www.gnu.org/licenses/gpl.html
-->

{{FrontSide}}

<div id="data-source-back" style="display:none;">{{裏面}}</div>
<script>
    (function() {
        // 設定: ボタンID, ペインID, ソースIDの紐付け
        const TABS = [
            { btnId: 'btn-tab1', paneId: 'pane-tab1' },
            { btnId: 'btn-tab2', paneId: 'pane-tab2', sourceId: 'data-source-back' },
            // { btnId: 'btn-tab3', paneId: 'pane-tab3', sourceId: 'data-source-extra' }
        ];
        
        const DEFAULT_INDEX = 1; // 初期表示 (0=表面, 1=裏面)

        const allBtns = document.querySelectorAll('.tab-item');
        const allPanes = document.querySelectorAll('.content-body');

        // データ注入とタブ有効化
        TABS.forEach((tab, index) => {
            // 1. データ注入
            if (tab.sourceId) {
                const source = document.getElementById(tab.sourceId);
                const dest = document.getElementById(tab.paneId);
                if (source && dest) dest.innerHTML = source.innerHTML;
            }

            // 2. ボタン設定 (DOM要素が存在する場合のみ)
            const btn = document.getElementById(tab.btnId);
            if (btn) {
                btn.classList.remove('hidden-on-front'); // 表示
                btn.classList.add('clickable');          // 操作有効化
                btn.onclick = () => switchTab(index);
            }
        });

        // タブ切り替え処理
        function switchTab(index) {
            allBtns.forEach(b => b.classList.remove('active'));
            allPanes.forEach(p => p.classList.remove('active'));

            if (allBtns[index]) allBtns[index].classList.add('active');
            if (allPanes[index]) allPanes[index].classList.add('active');
        }

        // 初期実行
        switchTab(DEFAULT_INDEX);
    })();
</script>
Q
スタイル(タップしてソースコードを表示)
/*
    Version: 1.0.0
    Title: 単語帳カスタマイズ-advanced-sample-03 - Style
    Changelog:
        v1.0.0 (2025-12-28): Initial release as V1.0
*/

/*
 * Copyright (c) 2025 森田ユウゴ https://moritayugo.com/
 * License: GPL-3.0 (改変・再配布時は同じライセンスで公開してください)
 * https://www.gnu.org/licenses/gpl.html
 */

/* --- 変数定義 (Colors) --- */
:root {
    --tab-active-bg: #2f73ae;
    --tab-inactive-bg: #8caecf;
    --tab-text-color: #ffffff;
}

.card.nightMode {
    --tab-inactive-bg: #3a5f7d;
}

/* --- ベースレイアウト (Base Layout) --- */
.card {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    margin: 0;
    padding: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: transparent;
}

.layout-root {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    overflow: hidden;
}

/* --- タブナビゲーション (Tab Nav) --- */
.tab-nav {
    display: flex;
    flex-shrink: 0;
    padding: 0;
    margin: 0;
    background-color: transparent; /* 背景透明(非表示タブの透過用) */
}

/* --- タブアイテム (Tab Item) --- */
.tab-item {
    flex: 1;
    margin: 0;
    padding: 12px 0;
    
    /* デザインリセット & フラット化 */
    background-color: var(--tab-inactive-bg);
    color: var(--tab-text-color);
    font-size: 1rem;
    font-weight: bold;
    font-family: inherit;
    line-height: 1.2;
    
    /* 配置 */
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* 挙動 (デフォルト無効) */
    cursor: default;
    pointer-events: none;
    user-select: none;
}

/* 裏面での有効化状態 */
.tab-item.clickable {
    pointer-events: auto;
    cursor: pointer;
}

/* --- 状態変化 (States) --- */
/* ホバー時の色変化を防止 */
.tab-item:hover {
    background-color: var(--tab-inactive-bg) !important;
    opacity: 1;
}

/* アクティブ状態 */
.tab-item.active {
    background-color: var(--tab-active-bg) !important;
}

.tab-item.active:hover {
    background-color: var(--tab-active-bg) !important;
}

/* --- コンテンツエリア (Content) --- */
.tab-content {
    flex-grow: 1;
    position: relative;
    overflow: hidden;
}

.content-body {
    display: none;
    height: 100%;
    overflow-y: auto;
    padding: 20px;
    box-sizing: border-box;
    font-size: 1.1rem;
    line-height: 1.6;
}

.content-body.active {
    display: block;
}

img { max-width: 100%; height: auto; }

/* --- 表面用制御クラス --- */
.hidden-on-front {
    visibility: hidden; /* 領域は確保しつつ非表示 */
}

デザインを変えると「やりたいこと」が増えてくる

いかがでしたか? テンプレートを変えるだけで、Ankiが全く別のアプリのように感じられたのではないでしょうか。

デザインが整ってくると、不思議と学習へのモチベーションも上がります。そして同時に、こんな欲求も出てくるはずです。

あなた
あなた

もっと自分好みにしたい!

あなた
あなた

こんな機能は追加できないかな?

標準機能(HTML/CSS)だけでも、ここまで自動化できる

実は、今回紹介したテクニック(HTML/CSS/JavaScript)を応用すれば、Ankiの可能性は無限大に広がります。

  • 「ヒント」のスマート化: ボタンを押した時だけ、和訳や例文を表示させる(段階的表示)。
  • 条件付きデザイン: 「動詞」なら赤、「名詞」なら青と、品詞によって背景色を自動で変える。
  • 外部連携: ワンクリックでGoogle画像検索や、オンライン辞書をポップアップで開く。
  • 参考書再現: 愛用している市販の参考書のレイアウトを、そのまま画面上で再現する。

これらは全て、Ankiの標準機能だけで実現可能です。

フィールド(データ構造)を変えれば、理想の学習ツールになる

さらに一歩進んで、冒頭で少し触れた「フィールド(データ構造)」のカスタマイズに踏み込めば、Ankiは「あなた専用の最強学習データベース」に進化します。

しかし、ここから先は少し専門的な知識が必要になります。 特にJavaScriptを使った動的な制御や、フィールド設計の変更は、失敗するとデータが崩れてしまうリスクもあります。

あなた
あなた

自分で勉強して作るのは大変そう…

あなた
あなた

でも、もっと使いやすいカードが欲しい…

そんな方は、ぜひプロに頼ることも検討してみてください。

私は現役のエンジニアとして、またkintone認定資格者として、データの構造設計やUIデザインのプロフェッショナルです。

森田ユウゴ
森田ユウゴ

もし、あなたのAnkiをさらに進化させたいなら、私のココナラサービスへご相談ください。

まとめ:まずは「見やすさ=覚えやすさ」を体感しよう

Ankiは「記憶の定着」において最強のツールですが、その「見た目」で損をしている人がとても多いです。

今回ご紹介したテンプレートを使うだけで、毎日の学習ストレスは大きく減らせます。 文字が見やすい、操作が気持ちいい。それだけで、Ankiを開くハードルが下がり、結果として学習が継続できるようになります。

まずは無料テンプレートを試して、その効果を体感してみてください。 そして、もし「もっとこだわりたい!」と思ったら、いつでも相談してくださいね。

道具を磨いて、学習効果を最大化していきましょう!

スキルプラットフォーム「ココナラ」では、Ankiのカスタマイズを私「森田ユウゴ」に依頼ができます!

ご相談はこちらから▼
森田ユウゴのプロフィール | ココナラ

Ankiユーザーでもあり、「面倒解決エンジニア」の私にご依頼をお待ちしております!

ABOUT ME
森田ユウゴ(Yugo Morita)
森田ユウゴ(Yugo Morita)
面倒解決エンジニア
専門学校卒業後、新卒で大手ITベンダーに入社して約10年勤務、働きながら通信制大学も卒業。その後1年ほどXR/メタバース関連企業で挑戦後、現在は台湾のIT企業でソフトウェアエンジニアとして勤務。プライベートでは「面倒をなくしたい」想いでAI駆動の便利ツール(Chrome拡張/kintone等)開発に熱中しています。尽きない好奇心とインフラ経験、AIであなたの「不便」を解決へ導きます。
記事URLをコピーしました