`](#2-7-何でもない便利要素-div)
+ - [3. レイアウトとデザインを考えよう](#3-レイアウトとデザインを考えよう)
+ - [3-1. CSSを始めよう](#3-1-cssを始めよう)
+ - [3-2. ボックスモデルと `box-sizing`](#3-2-ボックスモデルと-box-sizing)
+ - [発展: なぜ `border-box` のほうが直感的?](#発展-なぜ-border-box-のほうが直感的)
+ - [3-3. スタイルシートの種類と優先度](#3-3-スタイルシートの種類と優先度)
+ - [3-4. セレクタ](#3-4-セレクタ)
+ - [3-4-1. 基本セレクタと結合子](#3-4-1-基本セレクタと結合子)
+ - [3-4-2. 疑似表記](#3-4-2-疑似表記)
+ - [3-5. 思いどおりの見た目を作ろう](#3-5-思いどおりの見た目を作ろう)
+ - [3-5-1. CSSカスタムプロパティ](#3-5-1-cssカスタムプロパティ)
+ - [発展: カスタムプロパティを使うと何が嬉しい?](#発展-カスタムプロパティを使うと何が嬉しい)
+ - [3-5-2. 文字の見た目](#3-5-2-文字の見た目)
+ - [3-5-3. 要素の見た目](#3-5-3-要素の見た目)
+ - [3-5-4. 形をつくろう](#3-5-4-形をつくろう)
+ - [3-6. 思いどおりに配置しよう](#3-6-思いどおりに配置しよう)
+ - [3-6-1. グリッドレイアウト](#3-6-1-グリッドレイアウト)
+ - [3-6-2. フレックスボックス](#3-6-2-フレックスボックス)
+ - [グリッドとフレックスのどちらを使うか](#グリッドとフレックスのどちらを使うか)
+ - [発展: HTML構造が複雑になると何が困る?](#発展-html構造が複雑になると何が困る)
+ - [4. ページに変更を加えよう](#4-ページに変更を加えよう)
+ - [4-1. HTMLでユーザーの入力を受け取ろう](#4-1-htmlでユーザーの入力を受け取ろう)
+ - [4-1-1. ボタン要素](#4-1-1-ボタン要素)
+ - [4-1-2. 要素のイベントを処理する](#4-1-2-要素のイベントを処理する)
+ - [4-2. JavaScriptで要素に変更を加えよう](#4-2-javascriptで要素に変更を加えよう)
+ - [4-2-1. コンテンツの変更](#4-2-1-コンテンツの変更)
+ - [4-2-2. 見た目の変更](#4-2-2-見た目の変更)
+ - [4-3. CSSで要素の変化を魅せよう](#4-3-cssで要素の変化を魅せよう)
+ - [5. 発展: VisBugを使ってみよう](#5-発展-visbugを使ってみよう)
+ - [6. Challenge: 外部で練習する](#6-challenge-外部で練習する)
+ - [7. 終わりに](#7-終わりに)
+ - [8. 参考文献](#8-参考文献)
+
+
+
+---
+
+## 1. HTML/CSSを観察してみよう
+
+Web開発では `HTML` / `CSS` / `JavaScript` の3つをよく使います。まずはブラウザ上でそれらを観察するところから始めましょう。
+
+### 1-1. 開発者ツールを見よう
+
+ブラウザ右上のメニューから「その他のツール」→「デベロッパーツール」で開発者ツールを開きます。
+
+
+
+主に使うタブは以下の3つです。
+
+| タブ | 用途 |
+| ---- | ---- |
+| Elements (要素) | ページの要素ツリーを表示・編集します。左上の選択ツールでページ上の要素を選べます。 |
+| Styles (スタイル) | 選択した要素に適用されているCSSを確認・書き換えできます。 |
+| Computed (計算済み) | 選択した要素の最終的な大きさ(margin / border / padding / content)を表示します。 |
+
+
+
+
+
+> **Try(目安: 3分)**: 好きなWebページで見出しを1つ選び、開発者ツールの Styles から文字色を変更してみましょう。リロードすると変更が元に戻ることも確認しましょう。
+>
+> 完成条件: ページ上の見出しの表示が変わり、リロード後に元へ戻ることを確認できる。
+
+#### 発展: 各タブの使い分け
+
+- **Elements** は「HTMLの構造を確認・実験する」ための場所です。ここでの変更はページに即時反映されますが、リロードすると元に戻ります。気軽に試して構いません。
+- **Styles** は「あるセレクタからどのプロパティが効いているか/打ち消されているか」を確認できます。取り消し線が引かれているプロパティは、他のスタイル指定に優先度で負けています。
+- **Computed** は「最終的に何pxになっているか」を見るのに便利です。意図しない余白や境界線が入っていないかをここで確認できます。
+
+## 2. ページを作ってみよう
+
+ここからは [StackBlitz](https://stackblitz.com/?starters=vanilla) を使います。GitHubアカウントでログインし、New Project → Vanilla タブの **Static** を選びます。`index.html` / `package.json` / `package-lock.json` の3ファイルだけ残して他は削除しておきましょう。
+
+
+
+### 2-1. HTMLをはじめよう
+
+`index.html` を空にして、以下を書きます。
+
+```html
+Hello, World !
+```
+
+次に `
` で囲みます。
+
+```html
+Hello, World !
+```
+
+文字が大きくなります。
+
+
+
+#### 用語
+
+| 用語 | 説明 |
+| ---- | ---- |
+| タグ | `` や `
` のような記述。開始タグ / 終了タグがあります。 |
+| 要素 | 開始タグから終了タグまでを含む全体。 |
+| マークアップ | 文字列をタグで囲んで意味付けすること。 |
+
+`h1` は heading(見出し)の h で、最も重要な見出しを表します。
+
+#### 発展: マークアップすると何が嬉しい?
+
+文字列をタグで囲むと、ブラウザは「これは見出しだ」「これは段落だ」と内容を解釈できるようになります。その結果、以下のような恩恵が得られます。
+
+- ブラウザが意味に合わせた既定の見た目(見出しは大きく太く、など)を適用する。
+- スクリーンリーダーが文書構造を読み上げられる。
+- 検索エンジンが文書の構造を理解できる。
+
+「見た目を変える」だけが目的ではなく、「意味を伝える」のがマークアップの本質です。
+
+### 2-2. HTMLの基本的な構造を知ろう
+
+実用的なHTMLは以下のような構造で書きます。
+
+```html
+
+
+
+
+
+ サンプルページ
+
+
+ Hello, World !
+
+
+```
+
+2-1のコードと比べて表示が少し変わります。1行ずつコメントアウト(StackBlitzでは `Ctrl`+`/`(ショートカット)、HTMLでは `` で囲む)して挙動を確認してみましょう。
+
+
+
+#### 各要素の役割
+
+| 要素 | 役割 |
+| ---- | ---- |
+| `` | 文書型定義。HTMLであることをブラウザに伝えます。これがないと表示が崩れることがあります。 |
+| `` | ルート要素。子に `` と `` を1つずつ持ちます。 |
+| `` | 閲覧者に直接見せないメタ情報を入れます。 |
+| `` | ページに表示されるすべてのコンテンツを入れます。 |
+
+`` のように、タグの中に書く設定を **属性** と呼びます。`lang="ja"` はページが日本語で書かれていることを示します。
+
+#### 発展: なぜ `` が必要なの?
+
+ブラウザには「標準モード」と「互換モード(quirks mode)」という2つの解釈モードがあります。`` がないと、ブラウザは古いHTMLとの互換性を保つために互換モードで動き、CSSの解釈などが微妙に変わってしまいます。
+
+現代のWeb開発ではほぼ常に標準モードで動かしたいので、HTMLファイルの先頭には必ず `` を書きます。
+
+#### `` の中身
+
+| 要素 | 役割 |
+| ---- | ---- |
+| `` | 文書の文字セットを指定します。 |
+| `` | スマホ等での表示領域の指定です。 |
+| `` | ブラウザのタブに表示されるタイトルです。 |
+| `
+
+
+
+
+
+```
+
+```javascript
+const mainButton = document.querySelector('#main-button');
+
+const showAlert = function () {
+ window.alert('ボタンがクリックされました。');
+};
+
+mainButton.addEventListener('click', showAlert);
+```
+
+
+
+| 用語 | 説明 |
+| ---- | ---- |
+| イベント | ユーザー操作などをきっかけに発生する出来事(クリックなど) |
+| 発火 | イベントが発生すること |
+| イベントハンドラ | イベント発火時に呼ばれる関数 |
+
+`document.querySelector('<セレクタ>')` でCSSセレクタを使って要素を取得できます。
+
+
+もう少し詳しく: `defer` 属性の意味
+
+`defer` は、HTMLの解析が終わってからスクリプトを実行する指定です。これがないと、要素が読み込まれる前にスクリプトが走ってエラーになる場合があります。
+
+たとえば上のサンプルで `defer` を外すと、`document.querySelector('#main-button')` を実行する時点ではまだ `
+
+### 4-2. JavaScriptで要素に変更を加えよう
+
+#### 4-2-1. コンテンツの変更
+
+| プロパティ | HTMLタグを含むか | 備考 |
+| ---- | ---- | ---- |
+| `innerHTML` | 含む | HTMLとして解釈されます |
+| `innerText` | 含まない | 非表示テキストは除外、`\n` で改行 |
+| `textContent` | 含まない | 非表示テキストも含めて取得 |
+
+```html
+
+
+
+
+```
+
+```javascript
+let clickCount = 0;
+
+const mainButton = document.querySelector('#main-button');
+const messages = document.querySelector('#messages');
+
+const updateMessage = function () {
+ clickCount++;
+ messages.innerText += `${clickCount}回クリックされました。\n`;
+};
+
+mainButton.addEventListener('click', updateMessage);
+```
+
+
+
+#### 4-2-2. 見た目の変更
+
+`element.style.<プロパティ名>` でCSSを直接書き換えられます。
+
+```javascript
+const colorList = ['pink', 'cyan', 'yellow'];
+let clickCount = 0;
+
+const mainButton = document.querySelector('#main-button');
+const messages = document.querySelector('#messages');
+
+const updateMessage = function () {
+ clickCount++;
+ messages.innerText += `${clickCount}回クリックされました。\n`;
+ messages.style.backgroundColor = colorList[clickCount % 3];
+};
+
+mainButton.addEventListener('click', updateMessage);
+```
+
+
+
+### 4-3. CSSで要素の変化を魅せよう
+
+`transition` プロパティを使うと、CSSの値が変わるときの変化をなめらかにできます。
+
+```html
+
+
+```
+
+```css
+#main-button { margin-bottom: 16px; }
+
+#field {
+ position: relative;
+ width: 300px;
+ height: 300px;
+ border: 2px solid gray;
+}
+
+#box {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100px;
+ height: 100px;
+ display: grid;
+ place-content: center;
+ background-color: pink;
+ transition: all ease 0.2s;
+}
+```
+
+```javascript
+let clickCount = 0;
+
+const mainButton = document.querySelector('#main-button');
+const box = document.querySelector('#box');
+
+const moveBox = function () {
+ clickCount++;
+ box.textContent = `${clickCount % 4}`;
+ box.style.top = [0, 1].includes(clickCount % 4) ? '0px' : '200px';
+ box.style.left = [0, 3].includes(clickCount % 4) ? '0px' : '200px';
+};
+
+mainButton.addEventListener('click', moveBox);
+```
+
+
+
+| 値 | 意味 |
+| ---- | ---- |
+| `all` | すべてのプロパティを対象に |
+| `0.2s` | 変化にかける時間 |
+| `ease` | 変化のタイミング関数。始めと終わりがゆっくり。他に `linear` など。 |
+
+> 注: ここで紹介したのは `transition` による補間で、いわゆる「CSSアニメーション」とは別物です。詳しくは [MDN: CSS animations](https://developer.mozilla.org/ja/docs/Web/CSS/CSS_animations/Using_CSS_animations) を参照してください。
+
+---
+
+## 5. 発展: VisBugを使ってみよう
+
+Chrome拡張機能 [VisBug](https://chrome.google.com/webstore/detail/visbug/cdockenadnadldjbbgcallicgledbeoc?hl=ja) を入れると、ページ上の要素を直接観察・調整できます。必要になったときに試してみましょう。
+
+`Alt`+`Shift`+`D` で起動できます。
+
+| ツール | 用途 |
+| ---- | ---- |
+| ガイドツール | クリック中とホバー中の要素の大きさの差分を表示します。 |
+| インスペクトツール | ホバー中の要素のサイズや色設定を一覧表示します。 |
+
+
+
+
+---
+
+## 6. Challenge: 外部で練習する
+
+ここまでの内容を終えた人は、外部コンテンツでさらに練習してみましょう。すべて任意の Challenge です。
+
+| Challenge | 対象 | 取り組み方 |
+| ---- | ---- | ---- |
+| [HTML Master](https://www.html-master.com/) | HTMLの基本タグと文書構造 | 「HTML基礎」のレベルに取り組む |
+| [Flexbox Froggy](https://flexboxfroggy.com/#ja) | Flexbox | レベル1〜10をクリアする |
+| [Grid Garden](https://cssgridgarden.com/#ja) | CSS Grid | レベル1〜10をクリアする |
+
+---
+
+## 7. 終わりに
+
+この資料ではHTML/CSSの基礎と、JavaScriptを組み合わせた動的なページ変更までを扱いました。
+ここで扱いきれなかった要素やプロパティは多数あるので、使うときにMDNや検索で調べながら書いていきましょう。
+
+## 8. 参考文献
+
+- MDN web docs
+ - HTML:
+ - CSS:
diff --git a/html-css/RENEWAL.md b/html-css/RENEWAL.md
new file mode 100644
index 00000000..55f03148
--- /dev/null
+++ b/html-css/RENEWAL.md
@@ -0,0 +1,93 @@
+# HTML/CSS 資料 リニューアル方針メモ
+
+`html-css/DOCS.md` のリニューアルにあたって、変更したい内容をまとめたドキュメント。
+まずは「現状の不満」「変えたい方向性」を出し切ることを目的とし、具体的な書き換えは別途行う。
+
+## 1. ユーザーから挙がっている変更点
+
+### 1-1. VisBug の扱いを後ろに移す
+
+- 現状: [DOCS.md 1-2](DOCS.md#1-2-visbugを使ってみよう) で、開発者ツールの直後に VisBug を紹介している。
+- 課題: 拡張機能のインストールが資料冒頭の必須準備になっており、初学者にとってハードルになっている。学習の本筋(HTML/CSS)から脱線している。
+- 方針: VisBug の節は資料の後半(または付録/コラム扱い)に移す。事前準備からも外し、「興味があれば入れてみる」程度に格下げ。
+
+### 1-2. StackBlitz → CodePen に変更
+
+- 現状: [StackBlitz](https://stackblitz.com/?starters=vanilla) を使用。ログインさせ、Vanilla Static テンプレートを作り、不要ファイルを削除させる手順を踏んでいる。
+- 課題:
+ - GitHub ログインが必要で初動が重い。
+ - スクショ([imgs/stackblitz-*](imgs/))が頻繁に古くなる。
+ - ファイル削除など「学習に直接関係ない準備」が多い。
+- 方針: CodePen に切り替える。HTML/CSS/JS の3ペインが最初から開いていて、ログイン不要で書き始められる。`` の組み立てや `` の説明は別途必要だが、初動の摩擦は大きく下がる。
+- 検討事項:
+ - CodePen はファイル分割(`style.css` を別ファイル化など)ができないため、[3-1 CSSを始めよう](DOCS.md#3-1-cssを始めよう)で行っている「`` で読み込ませる」体験が再現できない。これをどう扱うか要検討。
+ - JavaScript の `defer` 属性の説明([4-1-2](DOCS.md#4-1-2-要素のイベントを処理する))も CodePen だと自動処理されてしまい、説明意義が薄れる。
+
+### 1-3. 用語説明を表形式に
+
+- 現状: [2-1 HTMLをはじめよう](DOCS.md#2-1-htmlをはじめよう) の末尾で、「タグ」「開始タグ/終了タグ」「要素」「マークアップ」を地の文で説明している。
+- 課題: 用語が連続して出てきて見分けがつきにくい。後から見返すリファレンスとしても使いづらい。
+- 方針: 用語と説明を表にする。例:
+
+ | 用語 | 説明 |
+ | ------------------- | ------------------------------------ |
+ | タグ | `` や `
` のような記述 |
+ | 開始タグ / 終了タグ | 要素の開始 / 終了を示すタグ |
+ | 要素 | 開始タグから終了タグまでを含む全体 |
+ | マークアップ | タグで文字列を囲み、意味付けすること |
+
+- 同様に、[2-2-1 文書型定義とルート要素](DOCS.md#2-2-1-文書型定義とルート要素)の「属性」「子・親・兄弟・子孫」も表化候補。
+
+### 1-4. 「表示が少しだけ変わった〜」の言い回しを改善
+
+- 現状: [2-2](DOCS.md#2-2-htmlの基本的な構造を知ろう) 冒頭の以下の文:
+ > 表示が少しだけ変わったかと思います。これは本来2-1.で示したコードでは表示がうまくいっていないことを示しています。
+- 課題:
+ - 「うまくいっていない」が曖昧。何が・なぜ・どう困るかが伝わらない。
+ - 直前で「Hello, World ! が大きくなったはず」と成功体験を作ったのに、直後に「あれは実は失敗だった」と冷や水を浴びせる構成になっている。
+- 方針案:
+ - 「2-1 のコードは最低限ブラウザが解釈してくれていたが、本来は文書型定義などを書かないとブラウザが互換モード(quirks mode)に入ってしまい、意図しない表示崩れが起きうる」といった事実ベースの説明に書き換える。
+ - もしくは「2-1 は学習用の最小コードで、これから実用的な雛形に書き換えていく」という前向きな繋ぎ方にする。
+
+## 2. 補足: 他に気になった点
+
+DOCS.md を一通り読み返して気になった点。リニューアル時に一緒に直したい候補。
+
+### 2-1. セクション番号のずれ
+
+- [3-6 思いどおりに配置しよう](DOCS.md#3-6-思いどおりに配置しよう) 配下の小節が `3-4-1. グリッドレイアウト` / `3-4-2. フレックスボックス` になっている。`3-6-1` / `3-6-2` が正しい。TOC のアンカーも同じくずれている。
+
+### 2-2. コード・本文中の typo
+
+- [3-6-1 グリッドレイアウト](DOCS.md#3-4-1-グリッドレイアウト) のサンプルCSS内に `right-colmun`(正しくは `column`)が複数箇所。
+- [3-5-2 文字の見た目を変更しよう](DOCS.md#3-5-2-文字の見た目を変更しよう) のテーブル: `igms/../imgs/css-font-family-smple.png` → `imgs/css-font-family-sample.png`(`igms`、`smple` 両方typo)。
+- [3-3 スタイルシートの種類と優先度](DOCS.md#3-3-スタイルシートの種類と優先度) の「オーサー: Auther/著者」→ `Author` が正しい。
+- [4-1-2 defer属性の意味](DOCS.md#4-1-2-要素のイベントを処理する) 折りたたみ内: 「文書の解析語」→「文書の解析後」。
+- [2-3-2 箇条書き](DOCS.md#2-3-2-箇条書きリスト) のうどん作り方サンプル: 「生地の橋から」→「生地の端から」。
+
+### 2-3. HTML 仕様的に怪しいサンプル
+
+- [2-3-3 強調と重要の表現](DOCS.md#2-3-3-強調と重要の表現とその違い) のクイズ例で、`` 要素の中に `
` を入れている。`` の中に block 要素は入れられない仕様(パーサーが暗黙に `
` を補完する)。教材として誤った例にならないよう、`` に変えるか、リストを外に出すのが望ましい。
+
+### 2-4. 想定時間 90分 の現実味
+
+- 章のボリュームに対して 90 分は厳しい印象。リニューアル時に「コア章(必修)」と「読み物章(任意)」を明示的に分け、当日にやる範囲を絞れるようにしておきたい。
+
+### 2-5. スクリーンショットの保守コスト
+
+- StackBlitz の UI 更新ごとに [imgs/stackblitz-*](imgs/) を撮り直している(`2025` というファイル名サフィックスから察するに毎年更新が発生)。
+- CodePen 移行とあわせて、UI スクショは最小限(ログイン/作成手順は文章のみ)にし、本筋のコードと出力結果のスクショに絞る方針が保守コスト的に良い。
+
+### 2-6. JavaScript 章の位置づけ
+
+- [4. ページに変更を加えよう](DOCS.md#4-ページに変更を加えよう) は実質 JavaScript 入門。タイトルが「HTML/CSS を始めよう」なのに最後の1/4が JS になっており、対象スコープがぶれている。
+ - 案A: JS 章は別資料に切り出す。
+ - 案B: タイトルを「Webフロントエンド入門」等に変える。
+ - 案C: 4章は「HTML/CSS を活かすためのJSさわり」と位置づけを明示し、軽量化する。
+
+## 3. 次のステップ
+
+- [ ] 上記の方針について、メンター/関係者と認識合わせ
+- [ ] リニューアル後の章立て案(目次)をドラフト
+- [ ] CodePen 移行可否の最終判断(ファイル分割不可・defer 不要問題の取り扱い)
+- [ ] スクショ撮り直しが必要な箇所のリストアップ
diff --git a/html-css/imgs/css-font-family-smple.png b/html-css/imgs/css-font-family-sample.png
similarity index 100%
rename from html-css/imgs/css-font-family-smple.png
rename to html-css/imgs/css-font-family-sample.png