Commit Graph

68 Commits

Author SHA1 Message Date
15afa72a2f style: add code element styling and accessibility enhancements
- Style code elements in task instructions with white alpha background
- Style code elements in lesson descriptions and hints
- Add skip-link CSS for keyboard navigation
- Add sidebar shift animation when drawer is open
- Add focus styles for sidebar navigation items
2025-12-30 12:25:02 +01:00
71f0381554 feat: improve sidebar keyboard accessibility
- Add skip-to-content link for keyboard users
- Convert module headers and lesson items from divs to buttons
- Add ARIA attributes (aria-expanded, aria-controls, aria-label)
- Add focus return to trigger element when closing sidebar
- Shift main content when sidebar is open using CSS :has()
- Add code element styling in instruction boxes
2025-12-30 12:24:53 +01:00
6ea81a67e9 feat: add CSS lessons matching lecture content (box model, flexbox, responsive, transitions, variables)
- Add 5 CSS modules to lessons.js config (EN)
- Create German translations for all 5 CSS modules
- Add CSS modules to lessons.de.js config
- Fix test to use toBeGreaterThanOrEqual for module count
2025-12-29 15:26:59 +01:00
027232f5e8 fix: add kbd tags to validation messages for clarity
- Wrap HTML element names in <kbd> tags in all validation messages
- Apply consistent formatting to both English and German lessons
- Make hints clearer about which elements/attributes to use
- Fix mobile editor layout overflow issue
2025-12-25 15:55:26 +01:00
2c8d46d592 fix: improve WCAG compliance and mobile editor height
- Add aria-describedby to password inputs for screen readers
- Connect hint text to input via id reference
- Increase mobile editor min-height to 50vh
2025-12-25 15:28:11 +01:00
eb67d733d6 fix: add minimum height for code editor on mobile
- Set min-height: 200px for editor-section
- Set min-height: 150px for editor-content
- Ensures editor is usable on small screens
2025-12-25 15:27:03 +01:00
8949d5e709 feat: add module pill indicator and cross-module navigation
- Add module title pill above lesson title showing current category
- Enable next/prev buttons to cross module boundaries
- Automatically advance to next module when completing last lesson
- Go to last lesson of previous module when navigating back
2025-12-25 15:25:39 +01:00
d2cbf7d381 feat: add 10 new HTML5 lesson modules (EN + DE)
New lesson modules covering native HTML5 features:
- Details & Summary: disclosure widgets
- Progress & Meter: progress bars and gauges
- Datalist: autocomplete inputs
- Data Attributes: custom data-* attributes
- Dialog: native modal dialogs
- Forms with Fieldset: grouped form controls
- Figure & Figcaption: self-contained content
- Tables: structured data with caption, thead, tbody, tfoot
- Marquee: classic scrolling text (deprecated but fun)
- SVG Basics: drawing circles, rectangles, and lines

Each module includes 2-3 progressive lessons with fancy
styling (pastel gradients, 100vh layouts, etc).
2025-12-25 14:23:37 +01:00
ac662ea11d feat: rename success message to "CRISPY!" with Japanese smiley
- Update overlay text: "Perfect Match!" → "CRISPY! ٩(◕‿◕)۶"
- Update success hint in English and German versions
- Fun branding touch matching the app name
2025-12-24 01:43:26 +01:00
46ecbaba68 refactor: replace custom modal with native HTML dialog element
- Convert help and reset modals to native <dialog> elements
- Content is now in HTML, not dynamically generated via JS
- Use dialog.showModal() and dialog.close() native API
- Dialog handles Escape key natively for closing
- Fix list indentation in help dialog with proper padding
- Add styled kbd elements for keyboard shortcuts
- Separate dialogs for help and reset confirmation
- Apply same changes to German version

Benefits:
- Better accessibility (native focus trapping, escape handling)
- Simpler JavaScript (no DOM manipulation for content)
- Content visible in HTML source for easier editing
- Native backdrop styling via ::backdrop
2025-12-24 00:57:24 +01:00
79e7f69414 feat: add language switcher between English and German
- Add language toggle button in header (EN/DE)
- Link directly to the other language version
- Style consistent with existing header buttons
- Accessible with proper aria-labels
2025-12-24 00:51:54 +01:00
81614431e9 feat: add complete German translation of the website
- Add German HTML entry point (index.de.html)
- Add German app.js with translated UI strings (app.de.js)
- Add German lesson config (lessons.de.js)
- Add German translations of all 6 lesson modules:
  - HTML Elements: Block vs Inline
  - HTML Forms: Basic Inputs
  - HTML Forms: Validation
  - CSS: Basic Selectors
  - CSS: Advanced Selectors
  - Tailwind: Basics

All IDs, variable names, and code examples remain in English.
Only user-facing text has been translated to German.
2025-12-24 00:32:07 +01:00
df981f77d7 fix: remove unused validation percentage indicator
The 0% indicator next to the Run button was not providing useful
feedback. Removed from HTML, CSS, and app.js.
2025-12-24 00:17:28 +01:00
34659a1c85 feat: add undo/redo/reset editor tools with keyboard shortcuts
- Add history extension to CodeMirror for undo/redo support
- Ctrl+Z for undo, Ctrl+Shift+Z for redo now work
- Add toolbar buttons: ↶ Undo, ↷ Redo, ⟲ Reset
- Reset button restores editor to initial lesson code
- Add .btn-icon and .editor-tools CSS styles
2025-12-23 23:14:32 +01:00
be5f71bea5 fix: hide original textarea to prevent browser form restoration artifact
- Add display:none to initial textarea (CodeMirror replaces it)
- Add autocomplete=off to prevent browser from restoring old form values
2025-12-22 10:06:55 +01:00
8ee6f3dd0a fix: resolve initialization bugs breaking level indicator and expected preview
- Fix renderLesson to handle null inputEl (CodeMirror replaces textarea)
- Fix renderExpectedPreview to use 'solution' property instead of 'solutionCode'
- These fixes restore level indicator, expected preview, and auto-run functionality
2025-12-22 10:04:41 +01:00
0169c8c9a9 fix: use One Dark theme for CodeMirror syntax highlighting
- Replace custom highlight styles with @codemirror/theme-one-dark
- Cleaner implementation with official CodeMirror theme
- Keep custom font and padding overrides
2025-12-22 01:17:10 +01:00
238853d2e1 feat: add CodeMirror 6 editor with Emmet support
- Replace textarea with CodeMirror 6 for syntax highlighting
- Add Emmet abbreviation expansion (Tab to expand)
- Support HTML and CSS language modes with autocomplete
- Add dark theme matching app design
- Tab indentation with Shift-Tab for outdent
- Update help modal with Emmet shortcuts
2025-12-21 23:37:14 +01:00
60017aa1ba refactor: redesign layout to Flexbox Froggy style with slide-out sidebar
- Implement 50/50 split layout (left: instructions + editor, right: preview)
- Replace always-visible sidebar with slide-out drawer menu
- Move footer, progress, and settings into sidebar
- Add toggleable expected result overlay (hidden by default)
- Create new hint system with step progress indicators
- Add ghost button styles for modal and text button for sidebar reset
- Fix HTML lesson task instruction and typo ("important" not "importing")
- Add padding to preview frames to prevent corner clipping
- Optimize layout for iPadOS and tablet devices
2025-12-21 23:20:07 +01:00
50c4d51523 feat: add HTML lessons mode and side-by-side comparison UI
- Add HTML mode support with new validation types (element_exists,
  element_count, attribute_value, element_text, parent_child, sibling)
- Create 3 HTML lesson modules: Elements, Forms Basic, Forms Validation
- Implement side-by-side preview comparison (Your Output vs Expected)
- Add merge animation with "Perfect Match!" overlay on validation success
- Render expected output from solutionCode field in lesson JSON
- Update schema to support HTML mode and solutionCode
- Reorder modules: HTML first, then CSS, then Tailwind
- Update tests for new functionality
2025-12-21 22:12:00 +01:00
Michael Czechowski
671b6cc813 refactor: clean up unused lesson imports and improve code consistency 2025-06-10 23:45:46 +02:00
Michael Czechowski
0f55403b86 fix: update validation message for clarity and consistency 2025-06-05 23:38:00 +02:00
Michael Czechowski
0ff032439f fix: update success background color for improved visibility and remove unused color variables 2025-06-05 23:37:25 +02:00
Michael Czechowski
72ad162a73 feat: update instruction styles with new colors and enhanced readability 2025-06-05 23:31:19 +02:00
Michael Czechowski
7c9daa413c feat: enhance LessonEngine to manage user progress and code storage 2025-06-05 23:31:13 +02:00
Michael Czechowski
e30bb40b1a feat: enhance lesson functionality with user code storage and progress tracking 2025-06-05 14:05:35 +02:00
10fce10033 feat: implement tailwind validations and basic example 2025-06-01 22:34:55 +02:00
Michael Czechowski
6e4b3a141c wip 2025-05-23 14:35:05 +02:00
Michael Czechowski
17da3eb647 feat: add CSS carousels module and update lesson imports 2025-05-23 08:12:23 +02:00
Michael Czechowski
5b3068898d feat: add advanced selectors module and update lesson imports accordingly and release 2025-05-23 08:05:00 +02:00
Michael Czechowski
6995ab94e4 feat: add extended CSS examples and update lesson imports 2025-05-23 07:47:48 +02:00
Michael Czechowski
5a8df62c2c feat: add footer with links to project repository and author website 2025-05-20 19:42:17 +02:00
Michael Czechowski
9a562c46fd feat: make sure to scroll to the top when navigating to lesson 2025-05-20 18:49:39 +02:00
Michael Czechowski
868015f344 fix: update scroll behavior for lesson navigation and adjust lesson description width for better scrolling 2025-05-20 18:29:40 +02:00
Michael Czechowski
3cb2b9c412 fix: correct casing in validation message for consistency 2025-05-20 02:18:10 +02:00
Michael Czechowski
dcb4f77c09 style: organize CSS with section headers and sort rules 2025-05-20 01:51:50 +02:00
Michael Czechowski
0065cf497e feat: enhance module list rendering with expandable lessons and active lesson tracking 2025-05-20 01:43:57 +02:00
Michael Czechowski
7ffd6f92a0 fix: adjust hamburger menu animation for improved visual effect 2025-05-20 00:54:34 +02:00
Michael Czechowski
edf737092a feat: implement responsive hamburger menu and enhance header layout 2025-05-20 00:52:23 +02:00
Michael Czechowski
c00cac389c feat: update progress bar styling to increase height and change background color 2025-05-20 00:39:54 +02:00
Michael Czechowski
0f368b7373 feat: add toggle switch for disabling error feedback and persist user settings 2025-05-20 00:37:36 +02:00
Michael Czechowski
7cdbf0807f feat: update validation message to enhance user feedback 2025-05-20 00:26:47 +02:00
Michael Czechowski
d05a70fb08 feat: enhance styling for lesson components and improve kbd element appearance 2025-05-20 00:17:55 +02:00
Michael Czechowski
1f50963028 feat: enhance lesson preview functionality and improve run button interaction; change lesson indicator to percentage; split preview css for better isolation 2025-05-19 23:30:22 +02:00
Michael Czechowski
1e81d0e66b feat: add kbd css styles and make sidebar transparent for better focus on lessons 2025-05-19 22:14:18 +02:00
Michael Czechowski
49e5d2d458 fix: race condition closing error feedback to early when next should appear 2025-05-19 22:13:42 +02:00
Michael Czechowski
e644ee2c6a feat: increase logo size for better visibility and add shadow to logo 2025-05-19 20:27:17 +02:00
Michael Czechowski
2c8174d1a0 feat: implement better progress tracking and user feedback, run code after some idle time 2025-05-19 20:21:53 +02:00
Michael Czechowski
dc1da0ffd6 feat: refine lessons 2025-05-19 20:20:49 +02:00
Michael Czechowski
bd695c973f feat: add new logos and color schema 2025-05-19 20:20:23 +02:00