
初級編のSTEP02にチャレンジ
Figma のデザインカンプをもとに、HTML と CSS で Web ページを“再現する力”をさらに磨いていきましょう。
下記の デモページ と Figmaデザインカンプ を参照しながら進めます。
作業用フォルダを 1 つ準備します。名前は任意ですが、ここでは step02 とします。
フォルダ内には以下のように作成をしておきます
step02/ ├── index.html ├── style.css ├── reset.css └── images/ ← Figmaから書き出した画像を入れるフォルダ
Figma のデザインカンプを見ながら必要な画像を書き出します。
書き出し方法が不安な方はこちら

今回の課題用にカスタマイズした リセットCSS を用意しています。
コードをコピーし、reset.css に貼り付けましょう。
/* ========================================
2025年版モダンリセットCSS
WebTraining.jp Recommended
======================================== */
:root {
--color-primary: #e8a6b8; /* メインピンク */
--color-primary-dark: #cc869b; /* 見出しなどの濃い色 */
--color-primary-light: #f7e8ed; /* ほんのりピンクの背景 */
/* ベース・背景 */
--color-bg: #ffffff; /* カード用 */
--color-bg-sub: #faf7f8; /* 全体の淡いピンクベージュ */
/* 文字色 */
--color-text: #444; /* やさしい深グレー */
/* 枠線(ピンクがかるグレー) */
--color-border: #e6d7dd;
/* リンク */
--color-link: #d27a92;
--color-link-hover: #bb617a;
/* フォーカス */
--color-focus: #cc869b;
--color-focus-visible: #e8a6b8;
}
/* ========================================
基本リセット
======================================== */
html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
blockquote,
table,
th,
td {
margin: 0;
padding: 0;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
/* ========================================
HTML・BODY設定
======================================== */
html {
font-size: 100%; /* 基本16px */
line-height: 1.75;
-webkit-text-size-adjust: 100%; /* モバイル文字サイズ自動調整防止 */
scroll-behavior: smooth;
}
@media (max-width: 768px) {
html {
font-size: 87.5%; /* 約14px */
}
}
body {
margin: 0;
font-size: 16px;
color: var(--color-text);
background-color: var(--color-bg);
min-height: 100vh;
text-rendering: optimizeSpeed;
}
/* ========================================
メディア要素
======================================== */
img,
picture,
video,
canvas,
svg {
display: block;
max-width: 100%;
height: auto;
vertical-align: bottom;
}
video {
filter: drop-shadow(0px 0px #fff);
}
/* ========================================
テキスト要素
======================================== */
a {
text-decoration: none;
color: inherit;
cursor: pointer;
}
a:hover {
color: var(--color-link-hover);
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: normal;
}
/* ========================================
リスト・ナビゲーション
======================================== */
ul,
ol,
nav ul,
nav ol {
list-style: none;
}
/* ========================================
フォーム系要素
======================================== */
input,
button,
textarea,
select {
font: inherit;
color: inherit;
background: none;
border: none;
outline: none;
}
button {
cursor: pointer;
}
textarea {
resize: none;
}
::placeholder {
color: #aaa;
opacity: 1;
}
/* ========================================
テーブル
======================================== */
table {
border-collapse: collapse;
width: 100%;
}
/* ========================================
フォーカス表示(アクセシビリティ対応)
======================================== */
:focus {
outline: 2px solid var(--color-focus);
outline-offset: 2px;
}
:focus-visible {
outline: 3px solid var(--color-focus-visible);
outline-offset: 3px;
}
/* ========================================
ダークモード対応
======================================== */
@media (prefers-color-scheme: dark) {
body {
background-color: #121212;
color: #e0e0e0;
}
a {
color: #90caf9;
}
a:hover {
color: #64b5f6;
}
::placeholder {
color: #666;
}
}

HTMLは、Figmaで作成したデザインカンプを見ながら構造を意識して作成します。
このステップでは、ページ全体の骨組みを作ることが目的です。 <header><main><footer>などのセマンティック要素を使い、「どこに、どんな意味のコンテンツがあるのか」をHTMLで表現してみましょう。
- ページの一番上には店名を
<h1>で配置し、<header>要素を使いましょう - ページ全体の内容は
<main>要素でまとめましょう - ブログ記事やコラムなど、1つで完結する情報を扱う場合は
<article>要素を使うこともあります(今回は必須ではありません) article要素は「その部分だけを切り取っても意味が通じる内容」に使います。

次に CSS を書いていきます。下記の 仕様書 をもとに、レイアウトを再現してみましょう。仕様書にないところはデザインカンプを参考にしながら可能な限り近づけていきましょう。
全体設定(ベース)
■ フォント:Noto Sans JP
font-family: “Noto Sans JP”, “Inter”, “Helvetica Neue”, Arial, sans-serif;
■ 文字サイズ
基準フォントサイズ:16px 基本行間:1.75rem
■文字色
通常テキスト色:#444
カラー設計
■ メインカラー
- メインピンク:#e8a6b8
- 見出し用(濃):#cc869b
- サブ背景(淡):#f7e8ed
■ 背景色
- ページ全体背景:#fffafa
- カード背景:#fffafa
■枠線
枠線カラー:#e6d7dd
レイアウト
■ メインコンテンツ
- 最大幅:912px
- 左右中央寄せ
■ スマートフォン表示(768px以下)
- 横幅:90%
- 中央寄せを維持
ヘッダー
■背景
- グラデーション背景
- 上:#e8a6b8
- 下:#f3c4d2
■ タイトル(h1)
- フォントサイズ:2rem(32px)
- 太さ:bold
- 下余白:1.5rem
- 中央揃え
■ ナビゲーション
- 横並び(flex)
- 間隔:2rem
- 中央配置
見出し
■h2(セクションタイトル)
- フォントサイズ:1.5rem(24px)
- 文字色:#cc869b
- 太字
- 中央揃え
- 下余白:2rem
■ h3(記事タイトル)
- フォントサイズ:1.25rem(20px)
- 文字色:#cc869b
- 太字
- 下余白:1.25rem
記事カード
カード全体
- 背景色:#fffafa
- 枠線:1px solid #e6d7dd
- 角丸:10px
- 内側余白:1.25rem(20px)
- 下余白:2rem
影
- 影:
0 4px 12px rgba(61, 125, 204, 0.12) - ふんわり浮かせる印象
記事内部レイアウト
PC表
- 2カラムレイアウト
- 横幅:均等(1fr / 1fr)
- カラム間余白:1.25rem
スマートフォン表示
- 1カラム表示に変更
.news-reverseクラスが付いた場合- → 画像を上、文章を下に表示
画像
- 幅:100%
- 角丸:6px
文章(説明文)
pタグ
- フォントサイズ:1rem(16px)
- 行間:2(32px)
- 読みやすさ重視
お知らせリストpタグ
- 行間:2
- 横幅:18rem
- 中央寄せ
フッター
背景色 #e8a6b8
文字
- 色:#ffffff
- サイズ:0.85rem
- 文字間:0.2px
- 中央揃え
上記以外の余白は Figmaデザインを参考にして調整してください。 見た目が近ければ余白などは任意でもかまいません。また Figma通りに完全再現できていなくても問題ありません。 step02は細部に渡る デザインの再現をCSSでできるかを体験することが目的です。CSSの基礎トレーニングは下記を参考にしてください。


