模写コーディング一覧【初級〜上級・Figma模写の全31記事】


模写コーディングとは、公開されているWebサイトやデザインカンプを見ながら、同じ見た目のページをHTML・CSSで組み直す練習方法です。作るものが最初から決まっているので、何を作るか悩む時間がゼロになり、書いたコードの正解・不正解をその場で見比べられるのが最大の利点です。

ただし「見本を開いて上から書き写す」だけだと途中で止まります。止まる原因はレベル選びを外しているか、どこまでやれば終わりなのかを決めていないかのどちらかです。このページには課題そのものに加えて、レベルの判定表・1本を終えるまでの手順・詰まりやすい箇所・「終えた」と言える判定基準を置きました。まず判定表で始点を決め、その一覧から1本選んでください。


どのレベルから始めるかを決める

模写でいちばん多い失敗は、実力に対して重すぎる課題を選んで途中で止まることです。逆に軽すぎると、写経になって学習になりません。次の表で、いまの自分に当てはまる行を1つだけ選んでください。当てはまる行が2つあるときは、上の行(やさしいほう)を取ります。

いまの状態から始点を決める判定表

いまの状態始めるレベル最初の1本
タグを調べながらならHTMLが書ける。CSSはコピペが中心初級模写初級 #001
1枚のページは組めるが、部品ごとの作り分けが曖昧準中級模写準中級 #001
Flexboxで横並びは作れる。CSS Gridに自信がない中級模写中級 #001
複数セクションのLPを崩さず組める。JSライブラリは未経験上級模写上級 #001
コードは書けるが、デザインの読み取りに自信がないFigma模写Figma模写 #1

迷ったら初級 #001 から始めてください。軽ければすぐ上に飛べますが、上級から入ると詰まった原因が実力不足なのか課題の粒度なのかを自分で切り分けられません。

レベルが上がると何が増えるのか

レベルの違いは「見た目の派手さ」ではありません。同時に面倒を見なければならない要素の数が増えます。所要時間は各課題ページに書かれている目安で、実装量から見積もった値です(計測値ではありません)。

レベル増える要素1本の目安
初級パーツ単位。HTMLとCSSだけで完結する2〜3時間
準中級状態を持つ部品(開閉・固定・現在地の表示)2〜4時間
中級複数セクション・CSS Grid・フレームワーク3〜6時間
上級JSライブラリ・アニメーション・画像最適化6時間以上
Figma模写デザインデータから数値を自分で読み取る作業3〜4時間

Figma模写だけは軸が違い、デザインデータを開いて余白・比率・色の値を自分で拾う作業が主役です。コードは書けるのに再現できない人は、先にこちらを1本やると詰まりの正体が見えます。


初級(5記事)

HTMLの構造とCSSの基本レイアウトだけで完結する課題です。#001から#005まで順に進めると、1ページに必要な部品がひととおり揃います。

タグやセレクタの意味があやふやなときは、CSSセレクタ一覧を開いたまま進めて構いません。調べながら書くのは反則ではありません。


準中級(5記事)

実務でそのまま使い回せる部品を1つずつ仕上げる課題です。初級との違いは、開閉・固定・現在地の表示といった「状態」を持つ要素が出てくることです。


中級(6記事)

複数セクションのサイトを1ページ丸ごと組む課題です。ここからは画面幅を変えても崩れないことが合格条件に入ります。#004以降はフレームワークやJSライブラリに乗る側の作法も扱います。

中級で最初に立ちはだかるのはCSS Gridです。ライン番号や領域名から確認したいときは、グリッドレイアウト完全ガイドを先に読んでから課題に入ってください。


上級(7記事)

アニメーションライブラリ・画像最適化・Next.jsなど、見た目の再現だけでは合格にならない課題です。動く分、原因を切り分ける手数も増えます。1本6時間以上を見込んでください。


差分チェックツールで効率UPお手本コードと自分のコードを比較して、違いを一目で確認できます。練習前にブックマークしておくと便利です。
Diff Checkerを開く →

Figma模写シリーズ(8記事)

Figma Community の無料テンプレートを見本にする課題です。HTML模写と違い、余白・比率・色の値をデザインデータから自分で読み取るところから始まります。ツールの操作も同時に身につきます。

配色の決め方に迷ったら、Webデザインの基礎9つで余白・整列・配色の考え方を押さえると、テンプレートから拾う値の意味が分かります。


模写1本を終えるまでの手順

どのレベルでも進め方は同じ6手順です。順番に意味があります。HTMLとCSSを行き来しながら書くと、崩れたときに原因が構造なのか装飾なのか切り分けられなくなるからです。各手順に「ここまでできたら次へ」の判定を付けました。

手順1 見本をセクションに割る

見本を上から下までスクロールし、横一線で切れる場所で区切ります。ヘッダー・ヒーロー・サービス紹介・料金・フッター、という具合です。このときいくつに割れたかを数字で書き出してください。全体像があると、どこまで進んだかが分かります。

次へ進む判定:セクションの数を言えて、それぞれに一言の名前が付いている。

手順2 CSSを書かずにHTMLだけを最後まで書く

手順1で割ったセクションを、上から順にHTMLだけで書き切ります。色も余白も無視して構いません。この段階のページは装飾のない、縦に長い状態になります。それが正しい姿です。見出しが見出しに、リストがリストになっているかを、装飾抜きで確かめられます。

ここで手が止まる人は「見た目のためのdiv」と「意味のあるタグ」を混ぜています。まず意味だけで書き、divは後から必要な分だけ足してください。

次へ進む判定:CSSを1行も読み込んでいない状態で、上から読んで内容の順序が通じる。

手順3 土台のCSSを先に置く

装飾に入る前に、ページ全体で共通する土台を書きます。コンテンツの最大幅・左右の余白・箱の計算方法・画像のはみ出し防止の4つです。ここを先に決めると、後半の「なぜか幅が揃わない」が減ります。

:root {
  --content-width: 1120px;
  --gutter: 24px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

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

.container {
  width: 100%;
  max-width: var(--content-width);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

box-sizing: border-box は、要素の幅に padding と border を含めて計算する指定です。MDNによれば既定値の content-box は width が中身の領域だけを指し、border-box では padding と border が width の内側に収まります(MDN box-sizing/2026-08-02取得)。模写で「余白を足したら幅がずれた」が起きるのはここです。

コンテンツ幅やカラムの決め方に根拠が欲しいときは、デザインカンプ前に決めるWebデザインのルールを先に読むと、見本から拾う数値の意味が変わります。

次へ進む判定:どのセクションにも同じ左右余白が付き、ブラウザ幅を広げてもコンテンツが一定幅で止まる。

手順4 上から1セクションずつ寄せる

1つのセクションを寄せ切ってから次へ移ります。同時に何箇所も触らないでください。崩れたときに、直前に書いた数行だけが容疑者になる状態を保つのが目的です。

寄せる順番は、並び方(縦か横か・何列か)→ 余白 → 文字 → 色と影です。色から入ると、レイアウトが崩れているのか色が違うだけなのかが分からなくなります。

次へ進む判定:いま触っているセクションだけを見本と並べて、要素の並び順と間隔が一致している。

手順5 画面幅を320pxまで狭める

全セクションを寄せ終わったら、開発者ツールで画面幅を320pxまで狭めます。この幅の根拠はW3CのWCAG 2.2「Reflow」の解説にあります。横書きの内容は320 CSSピクセル相当の幅に狭めたときに折り返して収まることが求められ、この値は基準の起草当時に一般的だった小型端末の報告ビューポート幅に合わせて選ばれたと説明されています(W3C Understanding SC 1.4.10 Reflow/2026-08-02にW3C公式のWCAGソースリポジトリで本文を確認)。

つまり320pxは「小さいスマホ」の話ではなく、ここで横スクロールが出なければ、より広い幅では基本的に破綻しないという下限の基準です。見本がPC表示しかない課題でも、この確認は自分で回してください。

次へ進む判定:幅320pxで横方向のスクロールバーが出ない。文字が箱からはみ出していない。

手順6 見本と自分のコードを突き合わせる

最後に、自分のコードと見本のコードを並べます。ここは答え合わせではなく、違いの理由を言語化する工程です。「同じ見た目なのに書き方が違う」箇所ほど学びが多くなります。

差分を目で追うのが大変なときは、Diff Checker(コード比較ツール)に貼り付けると違う行だけが色分けされます。開発者ツールの使い方そのものに不安がある場合は、Chrome DevToolsで仮説と検証を回す手順を先に一読してください。

次へ進む判定:見本と自分の書き方が違う箇所を3つ挙げ、それぞれ理由を一言で説明できる。


詰まるのはだいたいこの5か所

レベルが違っても、手が止まる場所はほとんど同じです。当てはまるものが無いときは、直前に書いた数行をいったん消して、崩れが直るかどうかで切り分けます。

症状原因として多いもの最初に試すこと
画面を狭めると横スクロールが出る固定px幅の要素、または画像・表のはみ出し幅指定を max-width に替え、画像に max-width: 100% を当てる
余白を足したら幅がずれたpadding と border が幅の外側に加算されているbox-sizing: border-box を全体に当てる
画像が伸びる・潰れるwidth と height を両方指定して比率が崩れているobject-fit と aspect-ratio で比率を保つ
上下の余白が消える・二重になる隣り合う margin が相殺されている余白の向きを片側に統一する
中央に寄らないmargin の auto に対して幅の上限が無い親要素に max-width を付けてから auto を効かせる

3行目の object-fit は画像などの中身を box にどう収めるかの指定で、cover なら比率を保ったまま box を埋めるよう切り抜かれます(MDN object-fit/2026-08-02取得)。4行目の余白の消失は不具合ではなく、隣接ブロックの上下 margin が1つにまとめられるCSSの仕様です(MDN Margin collapsing/2026-08-02取得)。

画像の出し分けでつまずいたときは、pictureタグで画像を画面サイズごとに切り替えるにデモ付きの実装があります。上級 #002 の予習にも使えます。


「1本終えた」と言える基準

「見た目が似ている」で終わらせると、次の課題に何も引き継げません。他人に見せなくても自分で合否を出せる基準を4つ置きます。

合否を判定する4つの基準

  1. 幅320pxで横方向のスクロールが出ない。開発者ツールのコンソールで document.documentElement.scrollWidthdocument.documentElement.clientWidth を比べ、前者が大きくなっていない
  2. 画像をすべて別のサイズの画像に差し替えても、レイアウトが崩れない
  3. マウスを使わず、Tabキーだけでリンクとボタンをすべてたどれて、いまどこにいるかが画面上で分かる
  4. 自分のHTMLを、CSSを外した状態で上から読んで内容の順序が通じる

1つ目で使う scrollWidth は、要素の内容の実際の幅(あふれている部分を含む)を返すプロパティで、clientWidth は見えている表示領域の幅を返します(MDN Element.scrollWidth/2026-08-02取得)。2つが同じならあふれは無く、scrollWidth のほうが大きければ何かがはみ出しているという判定になります。目でスクロールバーを探すより確実です。

判定が外れたときに最初に疑うところ

1つでも外れたら、次の1手だけ試します。直らなければ課題ページの「つまずきポイント」に戻ってください。深追いすると模写そのものが止まります。

外れた基準最初に疑うところ
幅320pxで横スクロールが出る固定px幅・長いURL文字列・table・はみ出す画像のいずれか。開発者ツールで要素を1つずつ非表示にして犯人を絞る
画像を差し替えると崩れる画像の実寸に依存したレイアウトになっている。比率指定に置き換える
Tabでたどれない・現在地が分からないボタンをdivで作っている、または focus の表示を消している
CSSを外すと順序が通じない見た目の位置を優先してHTMLを並べ替えている。意味の順に戻す

タップ領域やコントラストまで含めて数値で合否を出したい場合は、UIの合否を数値で出す手順に測り方がまとまっています。模写の課題を「提出できる作品」に引き上げる段階で使ってください。


模写を終えたあとに何をするか

模写は見本がある状態で書く練習、実務は見本が無い状態で要件から決める仕事です。この段差を埋める方法は2つあります。

  1. 模写した課題を1つ選び、構造は変えずに色・文字・写真だけ自分で差し替える
  2. 要件だけを渡された状態でLPを1枚作り、他人に見てもらう

1つ目は今日から一人でできます。2つ目は見てくれる相手が要ります。要件定義から始めてデザインと完成後の2回の添削を受けられるのが模擬案件プランです。

模写で作った静的なページに動きを付けるのがJavaScriptのDOM操作です。ブラウザ上でコードを書いてその場で実行できる〈JavaScript DOM操作クイズ〉なら、タブUIやモーダルなど模写ページにそのまま足せるUIパーツを20問で練習できます。


模写で使う解説記事と道具

課題の途中で「そもそもこの書き方でいいのか」が気になったときに開く記事です。全部読む必要はありません。詰まった項目だけ拾ってください。

課題ページの一覧は模写練習カテゴリからも辿れます。コードの差分比較にはDiff Checkerを使ってください。


よくある質問(FAQ)

Q. 模写コーディングとは何ですか?

模写コーディングとは、公開されているWebサイトやデザインカンプを見ながら、同じ見た目のページをHTML・CSSで組み直す学習方法です。作るものが決まっているため題材選びに悩まず、書いたコードの正しさを見本と見比べてその場で判断できます。レイアウト構築・CSS設計・レスポンシブ対応を、実務に近い順序でまとめて練習できます。

Q. 模写コーディングのやり方が分かりません。何から始めればいいですか?

見本をセクションに割る、HTMLだけ最後まで書く、土台のCSSを置く、上から1セクションずつ寄せる、幅320pxまで狭める、見本とコードを突き合わせる——この6手順を順に回してください。HTMLとCSSを行き来しながら書くと、崩れたときに構造の問題か装飾の問題かを切り分けられなくなります。

Q. どのレベルの練習サイトから始めればいいですか?

タグを調べながらHTMLが書ける段階なら初級、Flexboxで横並びは作れるがCSS Gridに自信がなければ中級、複数セクションのLPを崩さず組めてJSライブラリ未経験なら上級が目安です。迷ったらやさしいほうを選んでください。初級は1本2〜3時間が目安なので、合わないと分かった時点ですぐ上へ移れます。

Q. 模写を1本終えたと判断する基準はありますか?

見た目の一致ではなく、次の4点で判定します。幅320pxで横スクロールが出ない、画像を差し替えても崩れない、Tabキーだけでリンクとボタンをたどれて現在地が分かる、CSSを外しても読む順序が通じる。いずれも他人の評価を待たずに確認できるため、独学でも合否を出せます。

Q. Figma模写とHTML模写の違いは何ですか?

Figma模写はデザインデータを開いて余白・比率・色の値を読み取るところから始まり、デザインの読解力を鍛えます。HTML模写は見本ページをHTML・CSSで再現する練習で、実装力を鍛えます。コードは書けるのに似せられない人はFigma模写を、デザインは読めるのに実装で止まる人はHTML模写を先に回すと、詰まりの正体がはっきりします。

Q. 見本のコードを見ながら進めても意味はありますか?

あります。ただし順番を守ってください。まず自分で書き、詰まってから見るなら学習になりますが、最初から見ながら書き写すと写経になり、次の課題で同じ場所に詰まります。目安は、同じ箇所で15分手が動かなければ見本を開き、読んだあとに「なぜその書き方なのか」を一言で説明できるところまで戻すことです。

Q. 模写した成果物をポートフォリオに載せてもいいですか?

見本サイトの写真・ロゴ・文言をそのまま使ったものは掲載を避けてください。デザインや素材には権利者がいるためです。掲載するなら、レイアウトの構造だけを再利用し、写真・文言・配色をすべて自分で用意したものに差し替えます。この作業自体が、見本の無い状態で作る練習になります。