# Monday Template — Word Parts & Meaning Phase
**Theme:** Learn It
**Pages:** ~6 (continuous flow with forced breaks)
**Generator:** `monday_wp.py` → `generate_monday()`
---
## Page Layout
### PAGE 1 — Word Introduction
| Section | Data Key | Description |
|---|---|---|
| Header | auto | "Week N, Monday -- TOPIC" |
| **Here's What We're Learning** | `learning_text` | HTML explanation of the concept (prefixes, suffixes, etc.) |
| **Word Cards** | `words` | 3-column grid, 12 cards total. Each card: word, breakdown (colored orange), definition, write line |
→ **[PAGE BREAK]** ←
### PAGE 2 — Story + Grammar + Add Prefix
| Section | Data Key | Description |
|---|---|---|
| **Prefix Examples** | `prefix_examples` | 2-column list of prefix rules (e.g., "un- = not") |
| **Spelling Story** | `story_text` | Story with all 12 words bolded. Instruction: "Circle each spelling word." |
| **Grammar: Pronouns** | `grammar_deep` | Grammar concept explanation in secnote |
| **Practice: Find the Pronouns** | `grammar_practice` | 2-column table, 6 items. Rewrite sentences with pronouns |
→ **[PAGE BREAK]** ← (then `add_prefix_html` flows to top of page 3 if data exists)
### PAGE 3 — Add Prefix + Sort
| Section | Data Key | Description |
|---|---|---|
| **Add the Prefix** | `add_prefix_data` | 8 items: prefix + base_word = ___line___. Optional (empty = skip) |
| **[Sort Title]** | `sort_labels`, `sort_title` | Word bank + sort columns (3 cols for 3 prefixes). Each col has 3 write lines |
→ **[PAGE BREAK]** ←
### PAGE 4 — Copy Practice
| Section | Data Key | Description |
|---|---|---|
| **Copy Practice** | `words` | 12 words in large teal text with sky/fence/ground lines |
→ **[PAGE BREAK]** ←
### PAGE 5 — Fill in the Blank
| Section | Data Key | Description |
|---|---|---|
| **Fill in the Blank** | `fill_data` | Word bank + 8 fill-in sentences with write lines |
→ **[PAGE BREAK]** ←
### PAGE 6 — Opposites + Sentences
| Section | Data Key | Description |
|---|---|---|
| **Opposite Match-Up** | `opposite_words` | 2-column table, 6 words total. Write the opposite of each |
| **Sentence Writing** | `sentence_words` | 2-column table, 8 words. Write a complete sentence for each |
→ End of document
---
## Required Data (for `generate_monday()`)
```python
words = [ # 12 items
("unhappy", "un + happy", "not happy, sad"),
...
]
learning_text = "...HTML..." # Concept explanation
prefix_examples = [ # 6 items
"un- = not (unhappy = not happy)",
...
]
grammar_note = "..." # Short grammar focus label
grammar_deep = "..." # Full grammar explanation (HTML)
grammar_practice = [ # 6 items
"The boy and the girl played together. (______)",
...
]
story_text = "...HTML..." # Story with <strong>bolded words</strong>
sort_labels = ["un-", "re-", "dis-"] # Column headers for sort
sort_instruction = "Sort each word..."
sort_title = "Prefix Sort"
fill_data = [ # 8 items
("She felt very __________ on her first day.", "unhappy"),
...
]
opposite_words = [ # 6 items
"unhappy", "unknown", ...
]
sentence_words = WORD_NAMES[:8] # 8 words
add_prefix_data = [ # 8 items (optional)
("happy", "un-", "unhappy"), # (base, prefix, answer)
...
]
```
---
## Design Notes
- Word cards use 3-column grid with breakdown in orange (#FF7043)
- All 2-column activities use `border-collapse: separate; border-spacing: 4px`
- Split items evenly: `(len + 1) // 2` for left/right columns
- Page breaks are **forced** at 5 locations
- `break-inside: avoid` on activity containers