初級編のSTEP02にチャレンジ

Figma のデザインカンプをもとに、HTML と CSS で Web ページを“再現する力”をさらに磨いていきましょう。

下記の デモページFigmaデザインカンプ を参照しながら進めます。

STEP
フォルダを作成しよう

作業用フォルダを 1 つ準備します。名前は任意ですが、ここでは step02 とします。

フォルダ内には以下のように作成をしておきます

step02/
├── index.html
├── style.css
├── reset.css
└── images/   ← Figmaから書き出した画像を入れるフォルダ
STEP
Figmaから画像をエクスポート

Figma のデザインカンプを見ながら必要な画像を書き出します。

書き出し方法が不安な方はこちら

あわせて読みたい
Figmaでアイコン作成とエクスポートしてみよう 今までの学習を踏まえて、下記のアイコンを作成してみましょう。 基本フレーム 新しいキャンバスを開いたら、32px * 32px のフレームを作成します。32pxは見出し1の大...
STEP
reset.css をコピーして貼り付ける

今回の課題用にカスタマイズした リセット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;
  }
}
あわせて読みたい
Reset CSSとは?Webデザインを始めるなら必ず押さえておきたい初期化スタイル+モダンCSS Webサイトをコーディングしていて、「ブラウザによって少し見た目が違うな…?」と感じたことはありませんか?実はそれ、ブラウザごとに設定されている「初期スタイル(U...
STEP
HTML(index.html)を作成しよう

HTMLは、Figmaで作成したデザインカンプを見ながら構造を意識して作成します。
このステップでは、ページ全体の骨組みを作ることが目的です。 <header><main><footer>などのセマンティック要素を使い、「どこに、どんな意味のコンテンツがあるのか」をHTMLで表現してみましょう。

  • ページの一番上には店名を<h1>で配置し、<header> 要素を使いましょう
  • ページ全体の内容は <main>要素でまとめましょう
  • ブログ記事やコラムなど、1つで完結する情報を扱う場合は<article>要素を使うこともあります(今回は必須ではありません)
  • article 要素は「その部分だけを切り取っても意味が通じる内容」に使います。
あわせて読みたい
HTML基礎 はじめてHTMLに触れる方のための「HTML基礎」講座です。このトレーニングでは、自己紹介ページの作成からスタートして、見出し・リスト・画像・リンク・表・フォームな...
STEP
CSS(style.css)を仕様書どおりに書いてみよう

次に 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の基礎トレーニングは下記を参考にしてください。

あわせて読みたい
CSS基礎 この「CSS基礎」では、Web制作でよく使うプロパティを中心に学習していきます。それぞれのプロパティがどのような役割を持ち、どんな値を指定できるのかを、実際にコー...
あわせて読みたい
CSS-CLASS設計 この「CSS-CLASS設計」では、CSSを記述する際にどのような class名 を付けるべきか迷う場面や、実際の現場でどのような命名ルールが使われているのかわからないといった...
吹き出し
WebTraining AI
WebTraining AI へようこそ!
HTML / CSS / JavaScript / Wordpress/ PHP など、 コードやプログラミングについて何でも質問できます。