- Add CSS Colors, Typography, Advanced Selectors, and Grid modules - Remove deprecated HTML Marquee module from all languages - Remove redundant div & span lesson from HTML Block & Inline - Move SVG module from HTML to CSS section - Enhance first lessons with comprehensive explanations: - Flexbox: historical context, axes concept - Colors: named colors, background-color explained - Grid: comparison to Flexbox, key properties - Swap header logo highlight (CRISPIES instead of CODE) - Use English fallbacks for new modules in non-EN languages - Fix test to include 'playground' mode New path: 19 modules (~78 lessons) vs previous 16 modules (62 lessons) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
852 lines
31 KiB
Markdown
852 lines
31 KiB
Markdown
# Code Crispies Lesson Evaluation
|
|
|
|
This document evaluates all lessons using the 5-question framework to identify gaps, improvements needed, and restructuring recommendations.
|
|
|
|
## Evaluation Framework
|
|
|
|
### The 5 Questions
|
|
1. **Q1: PURPOSE** - What concept does this teach and why does a student need it?
|
|
2. **Q2: PREREQUISITES** - Does it assume knowledge already taught?
|
|
3. **Q3: TASK CLARITY** - Can students complete it without guessing?
|
|
4. **Q4: EXPLANATION DEPTH** - Is depth appropriate for position?
|
|
5. **Q5: PROGRESSION** - Does it prepare for the next lesson?
|
|
|
|
### Scoring
|
|
- **5** = Excellent
|
|
- **4** = Good
|
|
- **3** = Adequate
|
|
- **2** = Needs Improvement
|
|
- **1** = Requires Rewrite
|
|
|
|
---
|
|
|
|
## Module 1: Welcome (00-welcome.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Get Started | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Overview | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Playground | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
|
|
**Module Summary:** Excellent onboarding. Comprehensive explanation of platform, clear navigation guidance.
|
|
|
|
**Issues:** None
|
|
|
|
**Recommendation:** Keep as-is
|
|
|
|
---
|
|
|
|
## Module 2: HTML Block & Inline (20-html-elements.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Block vs Inline | 4 | 5 | 5 | 3 | 5 | 22/25 | Enhance |
|
|
| Semantic Tags | 4 | 5 | 4 | 3 | 5 | 21/25 | Enhance |
|
|
| div & span | 2 | 5 | 5 | 2 | 4 | 18/25 | **REMOVE** |
|
|
|
|
**Module Summary:** Good content but lesson 3 (div & span) is redundant with lesson 1.
|
|
|
|
**Issues:**
|
|
- Q4: First lesson (Block vs Inline) needs more historical context about document flow
|
|
- Q4: Missing explanation of why block/inline matters for layout
|
|
- Q1: Lesson 3 (div & span) is redundant - block/inline already covered in lesson 1
|
|
|
|
**Recommendation:**
|
|
- **REMOVE lesson 3 (div & span)** - redundant to lesson 1
|
|
- Enhance lesson 1 with comprehensive explanation (~200 words)
|
|
- Add "why" context: Why does HTML distinguish block from inline?
|
|
|
|
---
|
|
|
|
## Module 3: HTML Forms - Basics (21-html-forms-basic.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Form Structure | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Input Types | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Submit Button | 5 | 5 | 5 | 3 | 5 | 23/25 | Minor edit |
|
|
|
|
**Module Summary:** Well-structured with good accessibility focus (mentions `for` attribute).
|
|
|
|
**Issues:**
|
|
- Q4: First lesson could have more context about why forms exist, HTTP form submission
|
|
- Q4: Depth is similar across all lessons instead of progressive reduction
|
|
|
|
**Recommendation:**
|
|
- Add comprehensive intro to lesson 1 about forms' role in web applications
|
|
- Reduce depth in lesson 3 (Submit Button)
|
|
|
|
---
|
|
|
|
## Module 4: HTML Validation (22-html-forms-validation.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Required Fields | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Constraints | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Full Form | 5 | 5 | 4 | 3 | 5 | 22/25 | Minor edit |
|
|
|
|
**Module Summary:** Good coverage of native validation attributes.
|
|
|
|
**Issues:**
|
|
- Q3: Full Form lesson task says "Add required attributes, proper input types, and validation constraints" - somewhat vague
|
|
- Q4: Difficulty marked as "intermediate" but content is beginner-friendly
|
|
|
|
**Recommendation:**
|
|
- Clarify task in lesson 3: specify exactly what to add
|
|
- Change difficulty to "beginner"
|
|
|
|
---
|
|
|
|
## Module 5: HTML Details & Summary (23-html-details-summary.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| First Widget | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Pre-expanded | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| FAQ Accordion | 5 | 5 | 5 | 4 | 4 | 23/25 | Keep |
|
|
|
|
**Module Summary:** Excellent demonstration of native HTML interactivity.
|
|
|
|
**Issues:**
|
|
- Q4: First lesson could mention historical context (before details, needed JS)
|
|
- Q5: FAQ Accordion is a good capstone but doesn't connect to next module
|
|
|
|
**Recommendation:**
|
|
- Add "why" context to lesson 1: "Before HTML5, collapsible content required JavaScript"
|
|
|
|
---
|
|
|
|
## Module 6: HTML Progress & Meter (24-html-progress-meter.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Progress Bars | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Indeterminate | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Meter Gauges | 5 | 5 | 5 | 4 | 4 | 23/25 | Keep |
|
|
|
|
**Module Summary:** Good coverage of native visualization elements.
|
|
|
|
**Issues:**
|
|
- Q4: Meter lesson has many attributes - could be overwhelming
|
|
|
|
**Recommendation:** Keep as-is
|
|
|
|
---
|
|
|
|
## Module 7: HTML Tables (30-html-tables.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Basic Table | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Head & Body | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Complete Table | 5 | 5 | 5 | 3 | 4 | 22/25 | Minor edit |
|
|
|
|
**Module Summary:** Good semantic table structure teaching.
|
|
|
|
**Issues:**
|
|
- Q4: First lesson could explain when to use tables (tabular data, not layout!)
|
|
- Q4: Progressive depth reduction works well
|
|
|
|
**Recommendation:**
|
|
- Add context to lesson 1: "Tables are for tabular data, not page layout"
|
|
|
|
---
|
|
|
|
## Module 8: HTML SVG (32-html-svg.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Drawing Circles | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Rectangles & Lines | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Multiple Shapes | 5 | 5 | 5 | 3 | 3 | 21/25 | Review |
|
|
|
|
**Module Summary:** Good intro to SVG but positioned oddly in HTML section.
|
|
|
|
**Issues:**
|
|
- Q5: Final lesson doesn't connect to CSS section that follows
|
|
- Position: SVG involves graphics/styling - better fit in CSS section
|
|
|
|
**Recommendation:**
|
|
- MOVE to CSS section after Units & Variables
|
|
- Add comprehensive intro about SVG vs raster images
|
|
|
|
---
|
|
|
|
## Module 9: HTML Marquee (31-html-marquee.json) - DEPRECATED
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Scrolling Text | 2 | 5 | 5 | 3 | 3 | 18/25 | REMOVE |
|
|
| Direction & Behavior | 2 | 5 | 5 | 3 | 3 | 18/25 | REMOVE |
|
|
| Retro News Ticker | 2 | 5 | 5 | 3 | 2 | 17/25 | REMOVE |
|
|
|
|
**Module Summary:** Teaches deprecated HTML element.
|
|
|
|
**Issues:**
|
|
- Q1: Marquee is deprecated and should not be taught as standard practice
|
|
- Q5: Doesn't lead to anything practical
|
|
|
|
**Recommendation:**
|
|
- **REMOVE from learning path**
|
|
- Could be moved to optional "Web History" section if desired
|
|
|
|
---
|
|
|
|
## Module 10: CSS Selectors (00-basic-selectors.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| What's a Selector? | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Type Selectors | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Class Selectors | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Multiple Classes | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Combining Types | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| ID Selectors | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Type + ID | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Selector Lists | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Universal (*) | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Specificity | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
|
|
**Module Summary:** EXCELLENT! This is the gold standard for explanation depth. First lesson has comprehensive "why" context with code examples.
|
|
|
|
**Issues:** None significant
|
|
|
|
**Recommendation:**
|
|
- Keep as-is
|
|
- Use as template for other modules
|
|
- Note: Progressive depth reduction could be stronger (lessons 5-10 have similar depth)
|
|
|
|
---
|
|
|
|
## Module 11: CSS Box Model (01-box-model.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Box Model Components | 5 | 5 | 5 | 4 | 5 | 24/25 | Enhance |
|
|
| Adding Borders | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Adding Margins | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Box Sizing | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Margin Collapse | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Margin Shorthand | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Padding Shorthand | 5 | 5 | 5 | 2 | 5 | 22/25 | Keep |
|
|
| Border on Specific Sides | 5 | 5 | 5 | 2 | 4 | 21/25 | Keep |
|
|
|
|
**Module Summary:** Good structure with proper progression.
|
|
|
|
**Issues:**
|
|
- Q4: First lesson could have MORE comprehensive explanation (like CSS Selectors has)
|
|
- Q4: Last lessons appropriately brief - good depth progression!
|
|
|
|
**Recommendation:**
|
|
- Enhance lesson 1 description with "why" context (like CSS Selectors lesson 1)
|
|
- Visual diagram reference would help but not critical
|
|
|
|
---
|
|
|
|
## Module 12: CSS Units & Variables (05-units-variables.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Absolute vs Relative | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| CSS Custom Properties | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Unit Calculations | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Viewport & Responsive | 5 | 5 | 5 | 3 | 4 | 22/25 | Keep |
|
|
|
|
**Module Summary:** Good coverage of units and variables.
|
|
|
|
**Issues:**
|
|
- Q5: Last lesson could better transition to Flexbox module
|
|
- GAP: Colors and Typography should come BEFORE this module
|
|
|
|
**Recommendation:**
|
|
- Add transition text mentioning layout modules next
|
|
- INSERT Colors and Typography modules before this one
|
|
|
|
---
|
|
|
|
## Module 13: CSS Flexbox (flexbox.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Container | 5 | 5 | 5 | 2 | 5 | 22/25 | **ENHANCE** |
|
|
| Direction & Wrap | 5 | 5 | 5 | 2 | 5 | 22/25 | Keep |
|
|
| Justify Content | 5 | 5 | 5 | 2 | 5 | 22/25 | Keep |
|
|
| Align Items | 5 | 5 | 5 | 2 | 5 | 22/25 | Keep |
|
|
| Flex Grow | 5 | 5 | 5 | 2 | 5 | 22/25 | Keep |
|
|
| Align Self | 5 | 5 | 5 | 2 | 4 | 21/25 | Keep |
|
|
|
|
**Module Summary:** MAJOR ISSUE - First lesson has minimal explanation compared to CSS Selectors!
|
|
|
|
**Issues:**
|
|
- Q4: **CRITICAL** - Lesson 1 description is only 2 sentences + code block
|
|
- Q4: No "why" context about flexbox history or when to use it
|
|
- Q4: All lessons have similar minimal depth - no progressive reduction
|
|
|
|
**Recommendation:**
|
|
- **REWRITE lesson 1** with comprehensive explanation:
|
|
- History: Before flexbox, layout was done with floats/positioning
|
|
- Why: Flexbox solves the "vertical centering problem" and responsive layouts
|
|
- Main vs cross axis explained
|
|
- When to use flexbox vs grid
|
|
- Keep lessons 2-6 brief (appropriate for later lessons)
|
|
|
|
---
|
|
|
|
## Module 14: CSS Responsive Design (08-responsive.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Media Queries | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Fluid Type | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Responsive Grid | 5 | 4 | 5 | 3 | 5 | 22/25 | Review |
|
|
| Mobile-First | 5 | 5 | 5 | 3 | 4 | 22/25 | Keep |
|
|
|
|
**Module Summary:** Good coverage but has prerequisite issue.
|
|
|
|
**Issues:**
|
|
- Q2: Lesson 3 (Responsive Grid) uses CSS Grid concepts but Grid hasn't been taught!
|
|
- GAP: Grid module should come BEFORE Responsive Design
|
|
|
|
**Recommendation:**
|
|
- ADD Grid module before Responsive Design
|
|
- Or remove/rewrite Responsive Grid lesson to use flexbox only
|
|
|
|
---
|
|
|
|
## Module 15: CSS Animations (06-transitions-animations.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Transitions | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Timing Funcs | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Keyframes | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Animation Properties | 5 | 5 | 5 | 3 | 4 | 22/25 | Keep |
|
|
|
|
**Module Summary:** Good structure with appropriate progression.
|
|
|
|
**Issues:**
|
|
- Q4: First lesson could have more context about when to use animations (UX principles)
|
|
|
|
**Recommendation:**
|
|
- Add brief UX context to lesson 1: "Animations should enhance UX, not distract"
|
|
|
|
---
|
|
|
|
## Module 16: Goodbye (99-goodbye.json)
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Well Done! | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Contribute | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Keep Learning | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
|
|
**Module Summary:** Excellent closing with resources and encouragement.
|
|
|
|
**Issues:** None
|
|
|
|
**Recommendation:** Keep as-is
|
|
|
|
---
|
|
|
|
# Unused Modules Evaluation
|
|
|
|
## Colors (03-colors.json) - NOT IN PATH
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Setting Background Colors | 5 | 5 | 4 | 3 | 5 | 22/25 | Enhance |
|
|
| Text Color and Contrast | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| CSS Gradients | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Background Images | 5 | 5 | 4 | 3 | 4 | 21/25 | Review |
|
|
|
|
**Issues:**
|
|
- Q3: Lesson 1 uses hex code (#e0f7fa) instead of named color - inconsistent with guidelines
|
|
- Q4: First lesson needs more explanation about color theory, accessibility
|
|
- Q3: Lesson 4 task is vague: "using a placeholder URL"
|
|
|
|
**Recommendation:**
|
|
- **ADD to learning path** after CSS Selectors
|
|
- Change hex codes to named colors where possible
|
|
- Enhance lesson 1 with color accessibility context (contrast ratios)
|
|
- Clarify task in lesson 4
|
|
|
|
---
|
|
|
|
## Typography (04-typography.json) - NOT IN PATH
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Font Family & Fallbacks | 5 | 5 | 5 | 3 | 5 | 23/25 | Enhance |
|
|
| Font Size & Line Height | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Font Weight & Style | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Text Decoration & Shadow | 5 | 5 | 4 | 3 | 4 | 21/25 | Review |
|
|
|
|
**Issues:**
|
|
- Q4: First lesson needs more context about web fonts, system fonts, why fallbacks matter
|
|
- Q3: Lesson 4 task is vague: "Apply an underline... and a light shadow"
|
|
|
|
**Recommendation:**
|
|
- **ADD to learning path** after Colors
|
|
- Enhance lesson 1 with font loading context
|
|
- Specify exact values in lesson 4 task
|
|
|
|
---
|
|
|
|
## Grid (grid.json) - NOT IN PATH
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| Grid Container Basics | 5 | 5 | 5 | 4 | 5 | 24/25 | Enhance |
|
|
| Grid Template Areas | 5 | 5 | 5 | 4 | 5 | 24/25 | Keep |
|
|
| Spanning Grid Cells | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Automatic Grid Placement | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Grid Alignment | 5 | 5 | 5 | 3 | 5 | 23/25 | Keep |
|
|
| Overlapping Grid Items | 5 | 5 | 5 | 3 | 4 | 22/25 | Keep |
|
|
|
|
**Issues:**
|
|
- Q4: First lesson needs comprehensive intro about Grid vs Flexbox (when to use which)
|
|
|
|
**Recommendation:**
|
|
- **ADD to learning path** after Flexbox
|
|
- Enhance lesson 1 with Grid vs Flexbox comparison
|
|
|
|
---
|
|
|
|
## Advanced Selectors (01-advanced-selectors.json) - NOT IN PATH
|
|
|
|
| Lesson | Q1 | Q2 | Q3 | Q4 | Q5 | Total | Action |
|
|
|--------|----|----|----|----|----|----|--------|
|
|
| [attribute] | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Attr Matching | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Child (>) | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Descendant | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Adjacent (+) | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| Sibling (~) | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| :hover | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
| :first-child | 5 | 5 | 5 | 5 | 5 | 25/25 | Keep |
|
|
|
|
**Issues:** None - this is an excellent module!
|
|
|
|
**Recommendation:**
|
|
- **ADD to learning path** after CSS Basic Selectors
|
|
- This module has the BEST explanation depth of all modules
|
|
|
|
---
|
|
|
|
# Summary
|
|
|
|
## Overall Statistics
|
|
|
|
| Category | Count |
|
|
|----------|-------|
|
|
| Total Active Lessons | 62 |
|
|
| Lessons Scoring 24-25 | 35 (56%) |
|
|
| Lessons Scoring 21-23 | 22 (35%) |
|
|
| Lessons Scoring <21 | 5 (8%) |
|
|
| Modules to REMOVE | 1 (Marquee) |
|
|
| Modules to ADD | 4 (Colors, Typography, Grid, Adv Selectors) |
|
|
|
|
## Critical Issues
|
|
|
|
### 1. Missing Modules (HIGH PRIORITY)
|
|
- **Colors** - Students use colors without learning them
|
|
- **Typography** - Font properties not taught
|
|
- **Grid** - Essential layout missing
|
|
- **Advanced Selectors** - Excellent content not being used
|
|
|
|
### 2. Explanation Depth Issues (MEDIUM PRIORITY)
|
|
- **Flexbox Lesson 1** - Needs comprehensive rewrite (currently only 2 sentences)
|
|
- **HTML Block & Inline Lesson 1** - Needs "why" context
|
|
- **Box Model Lesson 1** - Could be more comprehensive
|
|
|
|
### 3. Module Position Issues (MEDIUM PRIORITY)
|
|
- **SVG** - Should be in CSS section, not HTML section
|
|
- **Responsive Design** - Uses Grid concepts before Grid is taught
|
|
|
|
### 4. Deprecated Content (HIGH PRIORITY)
|
|
- **Marquee** - Remove from learning path
|
|
|
|
## Recommended New Structure
|
|
|
|
```
|
|
1. Welcome
|
|
2. HTML Block & Inline
|
|
3. HTML Forms - Basics
|
|
4. HTML Forms - Validation
|
|
5. HTML Details & Summary
|
|
6. HTML Progress & Meter
|
|
7. HTML Tables
|
|
8. CSS Selectors - Basics (existing)
|
|
9. CSS Selectors - Advanced (ADD - excellent content)
|
|
10. CSS Colors (ADD)
|
|
11. CSS Typography (ADD)
|
|
12. CSS Box Model
|
|
13. CSS Units & Variables
|
|
14. CSS SVG (MOVE from HTML)
|
|
15. CSS Flexbox (ENHANCE lesson 1)
|
|
16. CSS Grid (ADD)
|
|
17. CSS Responsive Design
|
|
18. CSS Animations
|
|
19. What's Next?
|
|
|
|
REMOVED: HTML Marquee
|
|
```
|
|
|
|
## Priority Actions
|
|
|
|
### Immediate (Before Next Release)
|
|
1. Remove HTML Marquee from `src/config/lessons.js`
|
|
2. Remove "div & span" lesson from HTML Block & Inline (redundant)
|
|
3. Add Advanced Selectors to path after Basic Selectors
|
|
4. Enhance Flexbox lesson 1 with comprehensive explanation
|
|
|
|
### Short-term
|
|
5. Add Colors module to path (after Basic Selectors)
|
|
6. Add Typography module to path (after Colors)
|
|
7. Add Grid module to path (after Flexbox)
|
|
8. Move SVG from HTML section to CSS section
|
|
|
|
### Medium-term
|
|
9. Enhance all first lessons with comprehensive explanations
|
|
10. Fix hex colors in Colors module to use named colors
|
|
11. Clarify vague tasks (Typography lesson 4, Colors lesson 4)
|
|
|
|
### Long-term
|
|
12. Implement progressive depth reduction across all modules
|
|
13. Update translations for new module order
|
|
|
|
---
|
|
|
|
## UI Changes
|
|
|
|
### Header Logo
|
|
- **Current:** "code" has background highlight, "crispies" is plain
|
|
- **Change:** Swap so "crispies" has background highlight, "code" is plain
|
|
|
|
---
|
|
|
|
# Detailed Lesson-Level Improvements
|
|
|
|
## HTML Section Lessons
|
|
|
|
### Module: HTML Block & Inline (20-html-elements.json)
|
|
|
|
#### Lesson 1: Block vs Inline Elements
|
|
**Current Description:**
|
|
> "HTML elements fall into two main categories: Block elements (containers) start on a new line and take full width. Examples: div, p, h1, section. Inline elements flow within text and only take needed width. Examples: span, a, strong, em"
|
|
|
|
**Issues:**
|
|
- No "why" context - why does HTML distinguish between block and inline?
|
|
- No historical context
|
|
- No practical application explanation
|
|
|
|
**Improved Description:**
|
|
```
|
|
<strong>Understanding Document Flow</strong><br><br>
|
|
|
|
When browsers render HTML, they follow a concept called <em>document flow</em> - the natural way elements arrange themselves on a page. This fundamental concept, dating back to HTML's origins as a document markup language, divides elements into two categories:<br><br>
|
|
|
|
<strong>Block elements</strong> behave like paragraphs in a word processor - they start on a new line and stretch to fill available width. Think of them as "containers" that stack vertically. Examples: <kbd><div></kbd>, <kbd><p></kbd>, <kbd><h1></kbd>, <kbd><section></kbd><br><br>
|
|
|
|
<strong>Inline elements</strong> behave like words in a sentence - they flow within text without breaking the line, taking only the width they need. Examples: <kbd><span></kbd>, <kbd><a></kbd>, <kbd><strong></kbd>, <kbd><em></kbd><br><br>
|
|
|
|
<strong>Why this matters:</strong> Understanding block vs inline is essential for CSS layout. You cannot set width/height on inline elements, and vertical margins behave differently. This distinction forms the foundation of all web layout.
|
|
```
|
|
|
|
#### Lesson 2: Semantic Tags
|
|
**Current Description:** Good, but could add brief "why" for accessibility
|
|
|
|
**Add to beginning:**
|
|
```
|
|
Semantic HTML helps both browsers and assistive technologies (like screen readers) understand your content structure. Using the right semantic elements improves accessibility and SEO.<br><br>
|
|
```
|
|
|
|
#### Lesson 3: div & span
|
|
**Action:** REMOVE (redundant - block/inline already covered in lesson 1)
|
|
|
|
---
|
|
|
|
### Module: HTML Forms - Basics (21-html-forms-basic.json)
|
|
|
|
#### Lesson 1: Form Structure
|
|
**Current Description:**
|
|
> "Every form needs a form wrapper. Inside, use label to describe inputs and input for user data entry. The for attribute on labels should match the id on inputs for accessibility."
|
|
|
|
**Issues:**
|
|
- No context about what forms ARE or why they exist
|
|
- No mention of HTTP form submission
|
|
|
|
**Improved Description:**
|
|
```
|
|
<strong>HTML forms are the primary way users send data to websites</strong> - from login credentials to search queries to payment information. Without forms, the web would be read-only.<br><br>
|
|
|
|
Every form needs a <kbd><form></kbd> wrapper that defines where data goes when submitted. Inside, you build the interface with:<br><br>
|
|
|
|
• <kbd><label></kbd> - Describes what each input is for<br>
|
|
• <kbd><input></kbd> - Where users enter data<br><br>
|
|
|
|
<strong>Accessibility tip:</strong> The <kbd>for</kbd> attribute on labels should match the <kbd>id</kbd> on inputs. This lets users click the label to focus the input - essential for users with motor impairments.
|
|
```
|
|
|
|
#### Lesson 2: Input Types
|
|
**Status:** Good as-is (score 24/25)
|
|
|
|
#### Lesson 3: Submit Button
|
|
**Current Description:** Good but could be briefer (this is lesson 3)
|
|
**Action:** Reduce slightly - appropriate for late-module position
|
|
|
|
---
|
|
|
|
### Module: HTML Forms - Validation (22-html-forms-validation.json)
|
|
|
|
#### Lesson 3: Full Form (Complete Registration)
|
|
**Current Task:**
|
|
> "Complete the registration form. Add required attributes, proper input types, and validation constraints."
|
|
|
|
**Issue:** Task is vague - doesn't specify exactly what to add
|
|
|
|
**Improved Task:**
|
|
```
|
|
Complete the registration form by adding:<br>
|
|
1. <kbd>required</kbd> to all fields marked with *<br>
|
|
2. <kbd>type="email"</kbd> to the email input<br>
|
|
3. <kbd>type="password"</kbd> to the password input<br>
|
|
4. <kbd>minlength="8"</kbd> to the password input<br>
|
|
5. <kbd>required</kbd> to the terms checkbox
|
|
```
|
|
|
|
---
|
|
|
|
### Module: HTML Details & Summary (23-html-details-summary.json)
|
|
|
|
#### Lesson 1: First Widget
|
|
**Add to description beginning:**
|
|
```
|
|
Before HTML5, creating collapsible content required JavaScript. The <kbd><details></kbd> element gives you this functionality natively - no scripts needed, fully accessible, works everywhere.<br><br>
|
|
```
|
|
|
|
---
|
|
|
|
### Module: HTML Tables (30-html-tables.json)
|
|
|
|
#### Lesson 1: Basic Table Structure
|
|
**Add to description beginning:**
|
|
```
|
|
<strong>Important:</strong> Tables are for <em>tabular data</em> only (like spreadsheets, schedules, or comparison charts). Never use tables for page layout - that's what CSS Grid and Flexbox are for.<br><br>
|
|
```
|
|
|
|
---
|
|
|
|
### Module: HTML SVG (32-html-svg.json)
|
|
|
|
#### Lesson 1: Drawing Circles
|
|
**Add to description beginning:**
|
|
```
|
|
<strong>SVG (Scalable Vector Graphics)</strong> creates images using mathematical descriptions rather than pixels. Unlike JPG or PNG, SVG images stay crisp at any size - perfect for logos, icons, and illustrations.<br><br>
|
|
```
|
|
|
|
---
|
|
|
|
## CSS Section Lessons
|
|
|
|
### Module: CSS Selectors (00-basic-selectors.json)
|
|
**Status:** EXCELLENT - Use as template for other modules. No changes needed.
|
|
|
|
---
|
|
|
|
### Module: CSS Box Model (01-box-model.json)
|
|
|
|
#### Lesson 1: Box Model Components
|
|
**Current Description:**
|
|
> "The CSS box model consists of four concentric layers: content area (innermost), padding, border, and margin (outermost). Understanding how these components interact is essential for precise layout control."
|
|
|
|
**Issues:**
|
|
- Good but could be more comprehensive like CSS Selectors lesson 1
|
|
|
|
**Improved Description:**
|
|
```
|
|
<strong>The CSS box model is the foundation of all web layout.</strong> Every HTML element is rendered as a rectangular box, and understanding this box is crucial for controlling spacing and sizing.<br><br>
|
|
|
|
The box model consists of four concentric layers (from inside out):<br>
|
|
1. <strong>Content</strong> - Your actual text, images, or nested elements<br>
|
|
2. <strong>Padding</strong> - Space between content and border (inside the element)<br>
|
|
3. <strong>Border</strong> - The visible edge of the element<br>
|
|
4. <strong>Margin</strong> - Space between this element and others (outside the element)<br><br>
|
|
|
|
<pre>.box {
|
|
/* Content is determined by width/height */
|
|
padding: 20px; /* Inside spacing */
|
|
border: 2px solid black;
|
|
margin: 10px; /* Outside spacing */
|
|
}</pre>
|
|
|
|
<strong>Key insight:</strong> Padding adds to the element's visual size; margin creates empty space around it.
|
|
```
|
|
|
|
---
|
|
|
|
### Module: CSS Flexbox (flexbox.json) - CRITICAL
|
|
|
|
#### Lesson 1: Container
|
|
**Current Description:**
|
|
> "Learn how to create a flex container and understand the main and cross axes.
|
|
> [code block]"
|
|
|
|
**Issues:**
|
|
- ONLY 2 sentences before code block!
|
|
- No "why" context
|
|
- No comparison to older methods
|
|
- No explanation of when to use flexbox
|
|
|
|
**Improved Description:**
|
|
```
|
|
<strong>Flexbox revolutionized CSS layout.</strong> Before flexbox (2012), developers used floats and positioning hacks for layouts - techniques that were never designed for that purpose. Flexbox was created specifically to solve common layout problems.<br><br>
|
|
|
|
<strong>When to use Flexbox:</strong><br>
|
|
• Centering content (finally easy!)<br>
|
|
• Distributing space between items<br>
|
|
• Aligning items in a row or column<br>
|
|
• Creating responsive navigation bars<br>
|
|
• Building card layouts<br><br>
|
|
|
|
<strong>The two axes:</strong><br>
|
|
Flexbox works along two perpendicular axes:<br>
|
|
• <strong>Main axis</strong> - The direction items flow (horizontal by default)<br>
|
|
• <strong>Cross axis</strong> - Perpendicular to main axis (vertical by default)<br><br>
|
|
|
|
<pre>.container {
|
|
display: flex; /* Creates flex container */
|
|
justify-content: center; /* Align on main axis */
|
|
align-items: center; /* Align on cross axis */
|
|
}</pre>
|
|
|
|
To start, you only need <kbd>display: flex</kbd> on the parent container. This immediately makes all direct children "flex items" that can be aligned and distributed.
|
|
```
|
|
|
|
#### Lessons 2-6
|
|
**Status:** Good as-is - appropriately brief for later lessons
|
|
|
|
---
|
|
|
|
### Module: CSS Responsive Design (08-responsive.json)
|
|
|
|
#### Lesson 1: Media Queries
|
|
**Add to description beginning:**
|
|
```
|
|
<strong>Responsive design</strong> means your layout adapts to different screen sizes - from phones to desktops. Media queries are CSS rules that only apply when certain conditions (like screen width) are met.<br><br>
|
|
```
|
|
|
|
---
|
|
|
|
### Module: CSS Animations (06-transitions-animations.json)
|
|
|
|
#### Lesson 1: Transitions
|
|
**Add to description:**
|
|
```
|
|
<strong>UX principle:</strong> Animations should enhance usability, not distract. Use subtle, fast transitions (0.2-0.3s) for interactive feedback. Reserve longer animations for meaningful state changes.<br><br>
|
|
```
|
|
|
|
---
|
|
|
|
## Unused Modules to Add
|
|
|
|
### Module: CSS Colors (03-colors.json)
|
|
|
|
#### Lesson 1: Setting Background Colors
|
|
**Current Issues:**
|
|
- Uses hex code (#e0f7fa) instead of named color
|
|
- No context about color accessibility
|
|
|
|
**Improved Description:**
|
|
```
|
|
<strong>Color is fundamental to web design</strong>, but it's also one of the most important accessibility considerations. Approximately 8% of men have some form of color blindness.<br><br>
|
|
|
|
CSS offers multiple ways to specify colors:<br>
|
|
• <strong>Named colors:</strong> <kbd>steelblue</kbd>, <kbd>coral</kbd>, <kbd>gold</kbd> (147 names)<br>
|
|
• <strong>Hex codes:</strong> <kbd>#3498db</kbd> (harder to read)<br>
|
|
• <strong>RGB:</strong> <kbd>rgb(52, 152, 219)</kbd><br>
|
|
• <strong>HSL:</strong> <kbd>hsl(204, 70%, 53%)</kbd> (easiest to adjust)<br><br>
|
|
|
|
For learning, we'll use named colors - they're memorable and readable.
|
|
```
|
|
|
|
**Fix task:** Change `#e0f7fa` to `lightcyan` (equivalent named color)
|
|
|
|
#### Lesson 4: Background Images
|
|
**Current Task:** "Set a background image on '.bg-img' using a placeholder URL, center it, and prevent tiling."
|
|
|
|
**Issue:** Vague - what URL? What values?
|
|
|
|
**Improved Task:**
|
|
```
|
|
The background image is already set. Add these properties to <kbd>.bg-img</kbd>:<br>
|
|
1. <kbd>background-position: center</kbd><br>
|
|
2. <kbd>background-repeat: no-repeat</kbd>
|
|
```
|
|
|
|
---
|
|
|
|
### Module: CSS Typography (04-typography.json)
|
|
|
|
#### Lesson 1: Font Family & Fallbacks
|
|
**Add context:**
|
|
```
|
|
<strong>Web fonts vs System fonts:</strong> Web fonts (like Google Fonts) load from the internet, adding download time. System fonts (like Georgia, Arial) are already on users' devices - instant and reliable.<br><br>
|
|
|
|
<strong>Fallback stacks</strong> ensure text displays even if your preferred font fails to load. Always end with a generic family (<kbd>serif</kbd>, <kbd>sans-serif</kbd>, <kbd>monospace</kbd>).
|
|
```
|
|
|
|
#### Lesson 4: Text Decoration & Shadow
|
|
**Current Task:** "Apply an underline with text-decoration and a light shadow using text-shadow on '.fancy'."
|
|
|
|
**Issue:** Doesn't specify shadow values
|
|
|
|
**Improved Task:**
|
|
```
|
|
Style <kbd>.fancy</kbd> with:<br>
|
|
1. <kbd>text-decoration: underline</kbd><br>
|
|
2. <kbd>text-shadow: 1px 1px 2px gray</kbd>
|
|
```
|
|
|
|
---
|
|
|
|
### Module: CSS Grid (grid.json)
|
|
|
|
#### Lesson 1: Grid Container Basics
|
|
**Add context about Grid vs Flexbox:**
|
|
```
|
|
<strong>Grid vs Flexbox - when to use which?</strong><br><br>
|
|
|
|
• <strong>Flexbox:</strong> One-dimensional layouts (a row OR a column)<br>
|
|
• <strong>Grid:</strong> Two-dimensional layouts (rows AND columns together)<br><br>
|
|
|
|
Use Grid when you need to align items in both directions simultaneously - like a photo gallery, dashboard, or page layout. Use Flexbox for navigation bars, card rows, or centering content.<br><br>
|
|
|
|
Grid was the last major layout feature added to CSS (2017), completing the layout toolkit that web designers had wanted for decades.
|
|
```
|
|
|
|
---
|
|
|
|
# Summary: Lessons Requiring Changes
|
|
|
|
| Module | Lesson | Change Type | Priority |
|
|
|--------|--------|-------------|----------|
|
|
| HTML Block & Inline | 1. Block vs Inline | Rewrite description | HIGH |
|
|
| HTML Block & Inline | 2. Semantic Tags | Add accessibility context | MEDIUM |
|
|
| HTML Block & Inline | 3. div & span | **REMOVE** | HIGH |
|
|
| HTML Forms | 1. Form Structure | Enhance description | MEDIUM |
|
|
| HTML Forms Validation | 3. Full Form | Clarify task | MEDIUM |
|
|
| HTML Details | 1. First Widget | Add history context | LOW |
|
|
| HTML Tables | 1. Basic Table | Add "not for layout" warning | MEDIUM |
|
|
| HTML SVG | 1. Drawing Circles | Add SVG vs raster context | LOW |
|
|
| CSS Box Model | 1. Components | Enhance description | MEDIUM |
|
|
| **CSS Flexbox** | **1. Container** | **REWRITE description** | **CRITICAL** |
|
|
| CSS Responsive | 1. Media Queries | Add responsive context | LOW |
|
|
| CSS Animations | 1. Transitions | Add UX principle | LOW |
|
|
| CSS Colors | 1. Background Colors | Fix hex→named, add a11y | MEDIUM |
|
|
| CSS Colors | 4. Background Images | Clarify task | MEDIUM |
|
|
| CSS Typography | 1. Font Family | Add web font context | MEDIUM |
|
|
| CSS Typography | 4. Decoration | Specify shadow values | MEDIUM |
|
|
| CSS Grid | 1. Container Basics | Add Grid vs Flexbox | MEDIUM |
|