diff --git a/design/imgs/fig-action-place.svg b/design/imgs/fig-action-place.svg
new file mode 100644
index 00000000..51adcc4c
--- /dev/null
+++ b/design/imgs/fig-action-place.svg
@@ -0,0 +1,66 @@
+
diff --git a/design/imgs/fig-answer.svg b/design/imgs/fig-answer.svg
new file mode 100644
index 00000000..f3e8351e
--- /dev/null
+++ b/design/imgs/fig-answer.svg
@@ -0,0 +1,64 @@
+
diff --git a/design/imgs/fig-bridge.svg b/design/imgs/fig-bridge.svg
new file mode 100644
index 00000000..c85e08ff
--- /dev/null
+++ b/design/imgs/fig-bridge.svg
@@ -0,0 +1,24 @@
+
diff --git a/design/imgs/fig-collection.svg b/design/imgs/fig-collection.svg
new file mode 100644
index 00000000..2b4f8976
--- /dev/null
+++ b/design/imgs/fig-collection.svg
@@ -0,0 +1,40 @@
+
diff --git a/design/imgs/fig-compare.svg b/design/imgs/fig-compare.svg
new file mode 100644
index 00000000..f3be7c46
--- /dev/null
+++ b/design/imgs/fig-compare.svg
@@ -0,0 +1,99 @@
+
diff --git a/design/imgs/fig-extract-demo.svg b/design/imgs/fig-extract-demo.svg
new file mode 100644
index 00000000..bd359289
--- /dev/null
+++ b/design/imgs/fig-extract-demo.svg
@@ -0,0 +1,41 @@
+
diff --git a/design/imgs/fig-flow-step1.svg b/design/imgs/fig-flow-step1.svg
new file mode 100644
index 00000000..20300ac9
--- /dev/null
+++ b/design/imgs/fig-flow-step1.svg
@@ -0,0 +1,32 @@
+
diff --git a/design/imgs/fig-flow-step2.svg b/design/imgs/fig-flow-step2.svg
new file mode 100644
index 00000000..234ed230
--- /dev/null
+++ b/design/imgs/fig-flow-step2.svg
@@ -0,0 +1,32 @@
+
diff --git a/design/imgs/fig-flow-step3.svg b/design/imgs/fig-flow-step3.svg
new file mode 100644
index 00000000..d4e0a1a3
--- /dev/null
+++ b/design/imgs/fig-flow-step3.svg
@@ -0,0 +1,32 @@
+
diff --git a/design/imgs/fig-flow.svg b/design/imgs/fig-flow.svg
new file mode 100644
index 00000000..3c088375
--- /dev/null
+++ b/design/imgs/fig-flow.svg
@@ -0,0 +1,45 @@
+
diff --git a/design/imgs/fig-interface.svg b/design/imgs/fig-interface.svg
new file mode 100644
index 00000000..98ad32c1
--- /dev/null
+++ b/design/imgs/fig-interface.svg
@@ -0,0 +1,32 @@
+
diff --git a/design/imgs/fig-item-navigation.svg b/design/imgs/fig-item-navigation.svg
new file mode 100644
index 00000000..7b2abc19
--- /dev/null
+++ b/design/imgs/fig-item-navigation.svg
@@ -0,0 +1,19 @@
+
diff --git a/design/imgs/fig-item-object.svg b/design/imgs/fig-item-object.svg
new file mode 100644
index 00000000..6a923812
--- /dev/null
+++ b/design/imgs/fig-item-object.svg
@@ -0,0 +1,24 @@
+
diff --git a/design/imgs/fig-layout-list.svg b/design/imgs/fig-layout-list.svg
new file mode 100644
index 00000000..9d2d1441
--- /dev/null
+++ b/design/imgs/fig-layout-list.svg
@@ -0,0 +1,32 @@
+
diff --git a/design/imgs/fig-layout-single.svg b/design/imgs/fig-layout-single.svg
new file mode 100644
index 00000000..3056c650
--- /dev/null
+++ b/design/imgs/fig-layout-single.svg
@@ -0,0 +1,40 @@
+
diff --git a/design/imgs/fig-object-to-screen.svg b/design/imgs/fig-object-to-screen.svg
new file mode 100644
index 00000000..242b6b83
--- /dev/null
+++ b/design/imgs/fig-object-to-screen.svg
@@ -0,0 +1,62 @@
+
diff --git a/design/imgs/fig-single.svg b/design/imgs/fig-single.svg
new file mode 100644
index 00000000..ff9c6c56
--- /dev/null
+++ b/design/imgs/fig-single.svg
@@ -0,0 +1,24 @@
+
diff --git a/design/imgs/fig-summary.svg b/design/imgs/fig-summary.svg
new file mode 100644
index 00000000..e0b0a761
--- /dev/null
+++ b/design/imgs/fig-summary.svg
@@ -0,0 +1,78 @@
+
diff --git a/design/imgs/fig-tap-a.svg b/design/imgs/fig-tap-a.svg
new file mode 100644
index 00000000..c36c8fa8
--- /dev/null
+++ b/design/imgs/fig-tap-a.svg
@@ -0,0 +1,86 @@
+
diff --git a/design/imgs/fig-tap-b.svg b/design/imgs/fig-tap-b.svg
new file mode 100644
index 00000000..c83fddff
--- /dev/null
+++ b/design/imgs/fig-tap-b.svg
@@ -0,0 +1,88 @@
+
diff --git a/design/imgs/fig-ui-vs-visual.svg b/design/imgs/fig-ui-vs-visual.svg
new file mode 100644
index 00000000..deab34b3
--- /dev/null
+++ b/design/imgs/fig-ui-vs-visual.svg
@@ -0,0 +1,40 @@
+
diff --git a/design/imgs/fig-ui.svg b/design/imgs/fig-ui.svg
new file mode 100644
index 00000000..c40b65cc
--- /dev/null
+++ b/design/imgs/fig-ui.svg
@@ -0,0 +1,42 @@
+
diff --git a/design/imgs/fig-way-a.svg b/design/imgs/fig-way-a.svg
new file mode 100644
index 00000000..76665ab4
--- /dev/null
+++ b/design/imgs/fig-way-a.svg
@@ -0,0 +1,29 @@
+
diff --git a/design/slide.md b/design/slide.md
index cdf9e029..721cce26 100644
--- a/design/slide.md
+++ b/design/slide.md
@@ -2,15 +2,252 @@
marp: true
theme: uncover
paginate: true
+style: |
+ /* 見出しは2行になっても、行の長さが揃うようにする */
+ section h1,
+ section h2 {
+ letter-spacing: 1px;
+ line-height: 1.25;
+ text-wrap: balance;
+ }
+
+ section li {
+ line-height: 1.5;
+ }
+
+ /* 見出しと本文、図のまわりの余白をそろえる */
+ section h2 {
+ margin: 0 0 0.5em;
+ }
+
+ section p:has(img) {
+ margin: 0.5em 0 0;
+ }
+
+ /* 箇条書きは内容の幅で中央に置き、見出しと中心をそろえる */
+ section ul,
+ section ol {
+ display: table;
+ margin: 0 auto 0.3em;
+ }
+
+ /* ヘッダーがあるスライドは、上に余白を足して見出しとぶつからないようにする */
+ section[data-header] {
+ padding-top: 76px;
+ }
+
+ /* 箇条書きの点を、見出しと同じアクセントカラーの四角にする */
+ section ul {
+ list-style: none;
+ padding-left: 0;
+ }
+
+ section ul > li {
+ padding-left: 1.1em;
+ position: relative;
+ }
+
+ section ul > li::before {
+ background: var(--color-highlight-heading);
+ border-radius: 3px;
+ content: "";
+ height: 0.36em;
+ left: 0;
+ position: absolute;
+ top: 0.6em;
+ width: 0.36em;
+ }
+
+ /* 番号は、丸バッジにして順序を目立たせる */
+ section ol {
+ counter-reset: item;
+ list-style: none;
+ padding-left: 0;
+ }
+
+ section ol > li {
+ counter-increment: item;
+ padding-left: 1.9em;
+ position: relative;
+ }
+
+ section ol > li::before {
+ background: var(--color-highlight-heading);
+ border-radius: 50%;
+ color: var(--color-background);
+ content: counter(item);
+ font-size: 0.6em;
+ font-weight: 700;
+ height: 1.65em;
+ left: 0;
+ letter-spacing: 0;
+ line-height: 1.65em;
+ position: absolute;
+ text-align: center;
+ top: 0.45em;
+ width: 1.65em;
+ }
+
+ /* 目次は行間を広げる */
+ section.agenda li {
+ margin-bottom: 0.4em;
+ }
+
+ /* 章の扉は、見出しを大きくしてアクセントカラーの下線を引く */
+ section.chapter h2 {
+ font-size: 2.1em;
+ }
+
+ section.chapter h2::after {
+ background: var(--color-highlight-heading);
+ border-radius: 3px;
+ content: "";
+ display: block;
+ height: 6px;
+ margin: 0.45em auto 0;
+ width: 2.2em;
+ }
+
+ /* 小節の扉は、章の扉より1段小さくして親子関係がわかるようにする */
+ section.chapter.sub h2 {
+ font-size: 1.5em;
+ }
+
+ /* 章の結論は、囲み枠にして「あとで戻ってくる場所」にする */
+ section.point h2 {
+ color: var(--color-header);
+ font-size: 1.1em;
+ }
+
+ section.point h2 + p {
+ background: var(--color-background-code);
+ border: 3px solid var(--color-highlight-heading);
+ border-radius: 12px;
+ display: table;
+ font-size: 1.35em;
+ font-weight: 700;
+ /* 見出しと同じ字間にしないと、中心がわずかにずれて見える */
+ letter-spacing: 1px;
+ line-height: 1.4;
+ margin: 0 auto;
+ padding: 0.7em 1em;
+ text-wrap: balance;
+ }
+
+ /* 手を動かすスライドは、見出しの上にラベルを置いて説明と見分けられるようにする */
+ section.exercise h3 {
+ background: var(--color-highlight-heading);
+ border-radius: 999px;
+ color: var(--color-background);
+ display: table;
+ font-size: 0.6em;
+ letter-spacing: 2px;
+ margin: 0 auto 0.5em;
+ padding: 0.2em 1.1em;
+ }
+
+ /* つくるアプリの仕様は、カードに入れて何度でも同じ形で見せる */
+ section.spec ul {
+ background: var(--color-background-code);
+ border-left: 6px solid var(--color-highlight-heading);
+ border-radius: 6px;
+ display: table;
+ font-size: 1.15em;
+ padding: 0.6em 1.3em;
+ }
+
+ /* 仕様のどこに注目しているかを、色でも示す */
+ section.spec li strong {
+ color: var(--color-highlight-heading);
+ }
+
+ /* 仕様カードの上に置くラベル */
+ section.spec h2 + p {
+ font-size: 0.8em;
+ }
+
+ /* 見出しのなかで、いちばん言いたい一語だけを大きくする */
+ section h2 .big {
+ color: var(--color-highlight-heading);
+ display: block;
+ font-size: 1.5em;
+ margin-top: 0.15em;
+ }
+
+ /* 図を並べる表は、罫線を消してラベルを控えめにする */
+ section table > thead > tr > th {
+ border-bottom: none;
+ color: var(--color-header);
+ font-size: 0.7em;
+ font-weight: 400;
+ }
+
+ /* テキストと図を1行に並べ、余った幅をスライドの左右に均等に配る。
+ bg right は図をパネル中央に固定するので、テキストとのあいだだけが空く */
+ section.split {
+ text-align: left;
+ }
+
+ section.split header {
+ text-align: center;
+ }
+
+ section.split .cols {
+ align-items: center;
+ display: flex;
+ gap: 56px;
+ justify-content: center;
+ width: 100%;
+ }
+
+ /* 行頭を揃えるため、左のテキストは1つの塊にする。
+ 幅を固定しないと、テキスト量の差で図の位置がスライドごとに動き、
+ 送ったときにガタつく。入りきらないときは flex が縮めてくれる */
+ section.split .txt {
+ width: 640px;
+ }
+
+ section.split .cols p:has(img) {
+ margin: 0;
+ }
+
+ section.split h2 {
+ font-size: 1.3em;
+ }
+
+ section.split ul,
+ section.split ol {
+ font-size: 0.95em;
+ margin-left: 0;
+ }
+
+ section.split p {
+ font-size: 0.95em;
+ }
+
+ /* リンクが多いスライドは、文字を小さくして1行に収める */
+ section.small ul {
+ font-size: 0.7em;
+ }
---
# 使いやすいUIデザイン
-
+
---
-## 目次
+
+
+## この時間の目標
+
+**チームで作るアプリの画面**を
自分で考えられるようになる
+
+---
+
+
+
+## 今日は4本立て
1. UIとは
2. UIを作ってみる
@@ -20,347 +257,342 @@ paginate: true
---
+
## 1. UIとは
---
-## User Interface (UI)
+## 「UI = 見た目」
**ではない**
-UIは、ユーザーと情報の境界。情報をやり取りする
+**UI**と聞くと、
色や形を思い浮かべがち
-
+---
+
+## UIデザインと
ビジュアルデザインは別
+
+
---
-## UIは、情報の**表示**と**操作**を提供する
+## **UI** = **User Interface**
-- ユーザーに**情報を表示**する
-- **情報の操作**をユーザーに提供する
+ユーザーと**サービス**の
**あいだ**にあるもの
-
+
---
-## UIデザインとビジュアルデザインは別
-
-- ビジュアルデザインは、表現や装飾を重視
- - 色や形、フォントなどを考える
-- UIデザインは、UserInterfaceの設計を重視
- - 情報の表示と操作を考える
+## その**あいだ**にあるのは、
この**2種類**
-今回は**UIデザイン**の話
+
---
+
-## 早速UIを作ってみよう
+## 2. UIを作ってみる
---
-## ToDoアプリを考えてみる
+
----
+### ハンズオン ①
-## やってみよう: ToDoアプリのUI
+## 備品貸出アプリを考えてみよう!
-- ToDo一覧を**見る**
-- 新しいToDoを**追加する**
-- 追加したToDoを**完了にする**
-- ToDoのタイトルと詳細を**書く**
+学校の備品を借りるアプリ
-これらの機能が実現できるアプリ
+- 備品の一覧を**見る**
+- 備品の**名前と数を見る**
+- 備品を**借りる**
+- 借りた備品を**返す**
---
-## 機能から**直接**UIを作ると、使いにくい
-- 同じ画面がたくさんある
-- ToDoがすぐ表示されない
-- 機能を選択してToDoが表示
+
-
+