
中級編のProject03にチャレンジ
Figma のデザインカンプをもとに、HTML と CSS で Web ページを“再現する力”にさらに動きを加えていきます。今回は今注目を集めているCSSアニメーションを使って様々な動きを追加していきます。
下記の デモページ と Figmaデザインカンプ を参照しながら進めます。
STEP
フォルダを作成しよう
作業用フォルダを 1 つ準備します。名前は任意ですが、ここでは project03 とします。
フォルダ内には以下のように作成をしておきます
project03/ ├── 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: #6b4f3a;
/* 枠線(淡いクッキー色) */
--color-border: #e7d8cf;
/* リンク */
--color-link: #d27a92;
--color-link-hover: #bb617a;
/* フォーカス */
--color-focus: #cc869b;
--color-focus-visible: #e8a6b8;
/* フォント */
--font-family: "Kosugi Maru", sans-serif;
--title-font-family: "Delius Swash Caps", cursive;
/* サイズ系 */
--font-size-base: 16px;
--line-height-base: 1.75;
--spacing-unit: 1rem;
}
/* ========================================
基本リセット
======================================== */
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: var(--line-height-base);
-webkit-text-size-adjust: 100%; /* モバイル文字サイズ自動調整防止 */
scroll-behavior: smooth;
}
@media (max-width: 768px) {
html {
font-size: 87.5%; /* 約14px */
}
}
body {
margin: 0;
font-family: var(--font-family);
font-size: var(--font-size-base);
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で作成したデザインカンプを見ながら構造を意識して作成します。
このステップの目的は、見た目を整えることではなく、「どこに、どんな意味のコンテンツがあるのか」を
HTMLで正しく表現することです。
<header>・<main>・<footer> などのセマンティック要素を使って、ページの役割が分かるHTMLを書いてみましょう
- ページの一番上には 店名を
<h1>で配置し、<header>要素を使いましょう<header>には、サイトタイトルやナビゲーションをまとめます
- ページの主な内容は
<main>要素でまとめましょう- About / Shop / Access など、ページの中心となる情報を配置します
- ページ内の各コンテンツは
<section>要素で区切りましょう- それぞれのセクションには
<h2>を配置し、内容のまとまりを表します
- それぞれのセクションには
- 商品一覧など、画像と説明がセットになった内容は
<figure>と<figcaption>を使うと、意味が分かりやすくなります
- キービジュアルや装飾的な要素は、コンテンツの意味を持たないため
<div>を使って構成しても問題ありません
あわせて読みたい


HTML基礎
はじめてHTMLに触れる方のための「HTML基礎」講座です。このトレーニングでは、自己紹介ページの作成からスタートして、見出し・リスト・画像・リンク・表・フォームな...
STEP
CSS(style.css)をFigmaを参考に書いてみよう
次に、style.css を作成していきます。このステップでは、仕様書に書かれている内容をヒントにしながら、Figmaのデザインカンプをよく観察し、自分で必要なCSSを考えて書くことを目的とします。参考にしながら可能な限り近づけていきましょう。
■ レイアウト設計
コンテンツ幅
- メインコンテンツの最大幅:960px
- 画面サイズに応じて縮小する可変レイアウト
- 左右中央寄せ
■フォント設計(書体)
使用フォント
- 基本フォント:Kosugi Maru(本文・説明文)
- 見出し・ナビゲーション:Delius Swash Caps
- フォントは Google Fonts から読み込む
■文字色・配色ルール
基本文字色
- 通常テキスト:CSS変数
--color-text
見出し色
- h1 / h2 などの見出し:CSS変数
--color-primary-dark
リンク色
- 通常時:
--color-link - ホバー時:
--color-link-hover
■背景色・枠線
背景色
- ページ全体の背景:
--color-bg-sub - セクション背景(必要に応じて):
--color-primary-light
枠線
- 区切り線・セクション境界:
--color-border
■背景色・枠線
背景色
- ページ全体の背景:
--color-bg-sub - セクション背景(必要に応じて):
--color-primary-light
枠線
- 区切り線・セクション境界:
--color-border
■見出しデザイン
h1(サイトタイトル)
- フォントサイズ:32px 前後
- 太さ:bold
- 見出し用フォントを使用
- ヘッダー内に配置
h2(セクションタイトル)
- 中央揃え
- 見出し用フォントを使用
- 下線や区切り線を使い、セクションの切り替わりを分かりやすくする
■セクション構成
About / Shop / Access
- 各セクションは
<section>要素で構成 - セクションごとに十分な余白を確保する
- 余白量は デザインカンプを見て判断
■商品一覧
レイアウト
- Grid レイアウトを使用
- 画面サイズに応じて自動でカラム数が変わる設計
構成
- 商品1点につき
<figure>要素を使用 - 商品名・説明は
<figcaption>に記述
■アニメーション(fadein)
表示アニメーション
- スクロールに合わせて、
- ふわっと下から表示される演出
- CSSアニメーションのみで実装(JavaScript は使用しない)
上記以外の余白は Figmaデザインを参考にして調整してください。 見た目が近ければ余白などは任意でもかまいません。また Figma通りに完全再現できていなくても問題ありません。 Projecr02は細部に渡る デザインの再現をCSSでできるかを体験することが目的です。CSSの基礎トレーニングは下記を参考にしてください。
あわせて読みたい


CSS-CLASS設計
この「CSS-CLASS設計」では、CSSを記述する際にどのような class名 を付けるべきか迷う場面や、実際の現場でどのような命名ルールが使われているのかわからないといった...
あわせて読みたい


CSS応用と実践
この「CSS応用と実践」では、より実務に近い装飾表現やインタラクションを通して、CSSの幅広い表現力をしっかり身につけていきます。基本のプロパティを理解した上で、...

