Commit Graph

146 Commits

Author SHA1 Message Date
79e07cdd47 fix: clear animation timeout on navigation to prevent border flash 2026-01-14 11:40:29 +01:00
3bb62ef1fd refactor: keep only +1 ASCII binary quote 2026-01-14 03:18:49 +01:00
637748ddc4 feat: add binary-themed quotes (00000001, 0b00000001, +1 in ASCII) 2026-01-14 03:17:40 +01:00
c881a7ecf6 fix: sync gradient border with completion badge state 2026-01-14 03:14:10 +01:00
4cafcb584e feat: enhance success animation with scale, random quotes, and persistent border
- Add scale transition (50% → 100%) to crispy badge animation
- Rotate through random encouraging quotes on completion
- Keep gradient border visible after completing a lesson
- Match completion badge gradient colors to glow effect
- Improve bounce animation with elastic bezier curve
2026-01-14 03:13:44 +01:00
f6c7cca63f feat: reorder learning path for design students and improve animations
Learning path changes:
- Reorder modules: CSS visual (selectors, colors, typography) first,
  then layout (flexbox, grid), then HTML structure last
- Add intro lessons on CSS property syntax before selectors
- Add Figure module (images with captions)
- Remove Progress/Meter module (too niche)
- Reduce Tables from 3 to 1 lesson
- Reduce Form Validation from 3 to 1 lesson
- Rename "CSS Selectors" module to "CSS Basics"

Animation improvements:
- Change success text to "Your CODE looks CRISPY!"
- Increase animation duration to 3s
- Fix Firefox glow: use linear-gradient pulse instead of conic rotation
- Fix expected result toggle: match padding to prevent layout jump

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-14 01:30:19 +01:00
c397397c54 feat: bigger border (6px), colorful conic glow, reduced padding
- Border increased from 4px to 6px
- Glow layer uses same conic-gradient with 20px blur
- Reduced preview-frame padding to compensate
- Higher glow opacity (0.8) for more vibrant effect
2026-01-13 21:29:19 +01:00
4d0f511814 fix: thicker border (4px) and add transparent border by default
- preview-wrapper now has 4px transparent border by default
- No layout jump when animation activates
- Larger glow layer for better effect
2026-01-13 21:27:59 +01:00
bd55af0682 feat: implement rotating gradient border using @property technique
Based on https://codetv.dev/blog/animated-css-gradient-border
- Uses @property for smooth angle interpolation
- Two backgrounds: padding-box + border-box approach
- Blurred glow layer synced with border rotation
- Works in Chrome, Safari, Edge (not Firefox)
2026-01-13 21:26:18 +01:00
432066a6d4 fix: simplify rotating border with proper z-index and drop-shadow glow 2026-01-13 21:23:04 +01:00
5cfa72dab0 fix: make gradient rotate anti-clockwise around border
Use transform: rotate(-360deg) to physically spin the conic-gradient
around the preview border. Two layers:
- Blurred glow layer (z-index: -2)
- Crisp border using mask-composite (z-index: -1)

The gradient colors (purple/magenta/cyan/violet) now visually travel
anti-clockwise around the border like Gemini's UI.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-13 21:17:52 +01:00
7f3b1944d2 fix: use box-shadow animation for cross-browser compatibility
Previous implementation used CSS @property which isn't supported in
Firefox. New approach uses animated box-shadow with three layers:
- 3px solid border cycling through colors
- 15px inner glow
- 30px outer glow

Colors cycle: purple → magenta → cyan → violet → purple, then fade out.
Works in all modern browsers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-13 21:15:50 +01:00
d96c70be05 feat: replace completion animation with Gemini-style rotating gradient glow
- Remove bouncing "CRISPY" text animation (dvd-bounce)
- Add rotating conic-gradient border with glow effect
- Colors: purple (#9b59b6), magenta (#e040fb), cyan (#00bcd4), violet (#7c4dff)
- Animation plays once (2.5s) then fades out so students can continue
- Update success colors from green to purple theme:
  - success-color: #9b6dd4
  - success-color-dark: #7c4dff
  - success-color-light: #c9b8e8
- Uses CSS @property for animating conic-gradient angle
- Two layers: blurred glow + crisp border using mask-composite

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-13 21:13:54 +01:00
76e7e40256 feat: restructure learning path with new modules and enhanced explanations
- 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)
2026-01-13 20:32:45 +01:00
f7a8b85157 feat: add reset code confirmation dialog with skip option
- Add dialog to confirm resetting code to initial state
- Allow users to skip confirmation with "don't show again" checkbox
- Save preference to user settings
- Improve i18n and CodeEditor components
2026-01-07 14:16:45 +01:00
03029a757f fix(rtl): comprehensive layout fixes for Arabic
- Swap left/right panels in RTL mode
- Flip left panel border to left side
- Flip hint border to right side
- Flip lessons container indentation (margin, border, padding)
- Flip module expand icon and lesson checkmark margins
- Flip toggle switch slider margin
- Reverse setting row and preview controls
2025-12-31 10:31:49 +01:00
af5a5a2045 refactor: move language picker to sidebar as dropdown
- Remove language button from header
- Add language select dropdown in sidebar settings
- Add translations for "Language" label in all languages
- Remove unused .lang-switch CSS
2025-12-31 10:26:51 +01:00
b7a34b02d8 fix(rtl): auto-detect text direction for untranslated content 2025-12-31 01:51:01 +01:00
62157e8b78 fix(rtl): keep Code Crispies logo in LTR order 2025-12-31 01:50:26 +01:00
822afd574b fix(i18n): show current language and add RTL support for Arabic
- Language switcher now shows current language code (EN, DE, PL, etc.)
- Add RTL layout support for Arabic (dir="rtl" on html element)
- Sidebar slides from right in RTL mode
- Flip horizontal layouts, navigation, and text alignment for RTL
2025-12-31 01:49:03 +01:00
513c5a8506 feat(i18n): add support for Polish, Spanish, Arabic, and Ukrainian
- Create lesson directories and copy English lessons as templates
- Add full UI translations for pl, es, ar, uk languages
- Update lessons.js with module stores for all new languages
- Implement language cycling (en → de → pl → es → ar → uk → en)
- Fix playground mode detection (lesson.mode takes precedence)
2025-12-31 01:45:52 +01:00
7744468aaa refactor: merge playground into welcome module
- Rename welcome lessons to Get Started, Overview, Playground
- Remove separate playground module files
- Fix playground detection to check lesson.mode instead of module.id
2025-12-31 00:46:42 +01:00
8c1683f3f3 fix: playground mode with HTML & CSS editor, no validation 2025-12-31 00:38:41 +01:00
c0bb79da9f feat: add Playground module with full-height editor 2025-12-31 00:36:14 +01:00
13798f5e83 feat: make logo clickable to navigate to welcome page 2025-12-31 00:30:34 +01:00
d5f9f1a843 style: improve hamburger menu icon with cleaner CSS 2025-12-31 00:28:18 +01:00
6c073b3517 seo: update meta description and title for HTML & CSS learning 2025-12-30 22:37:42 +01:00
d234408e1c style: improve CRISPY animation and simplify sidebar footer
- Remove ! from CRISPY, add spacing to smiley
- Use darker green for better contrast
- Increase font size to 1.3rem
- Remove GitHub link from sidebar (keep only Gitea)
2025-12-30 22:35:55 +01:00
11bcdc9c62 feat: hide Run button, update LibreTECH branding, improve welcome lessons
- Hide Run button (live preview is stable)
- Update all references from librete.ch to LibreTECH
- Add context to repo links (Gitea Source, GitHub Mirror)
- Fix welcome lesson redundant text
- Slow down CRISPY animation to 8s
- Remove editor-tools margin-right
2025-12-30 22:22:00 +01:00
9181f4019a fix: shorten CRISPY animation to 4s, visible for 5s 2025-12-30 22:02:29 +01:00
59c8bf6a45 fix: center CRISPY animation with translate offset 2025-12-30 21:59:44 +01:00
926e431180 fix: simplify welcome validations, remove deprecated shortcuts, fix rerun text 2025-12-30 21:58:21 +01:00
c404ae3ab1 fix: purple reset-code button instead of sidebar reset 2025-12-30 21:53:20 +01:00
31a99197f8 fix: update German translations and make reset button prominent 2025-12-30 21:52:13 +01:00
5a36f094a5 fix: mobile preview-header above preview-wrapper 2025-12-30 21:47:01 +01:00
3992dcdb92 fix: mobile preview visibility with explicit flex display 2025-12-30 21:45:41 +01:00
e28f23d126 feat: add welcome lesson, DVD bounce animation, mobile layout reorder
- Add Welcome module with intro lessons (EN/DE)
- Success message now bounces like DVD screensaver (10s duration)
- Mobile: nav bar at top, preview before editor
- Logo: CODE with purple background pill
2025-12-30 21:44:37 +01:00
7f3451922a style: purple background pill for CODE in logo 2025-12-30 21:34:45 +01:00
66e047a440 fix: editor min-height 50vh, scrollable instructions on desktop 2025-12-30 21:28:48 +01:00
a4787731dc feat: add More Projects section to help dialog
- Add HTML over JS and Web Engineering Mandala projects
- Include i18n translations for EN and DE
- Add userCode to lesson cache for faster reload
2025-12-30 21:21:47 +01:00
1185d452dc fix: make module-pill expand on mobile with spacing to buttons 2025-12-30 21:10:44 +01:00
1cb7aebb42 fix: move preview-header back to bottom, add spacing beneath 2025-12-30 21:09:46 +01:00
00b0a0f3f8 fix: remove max-height constraint from module-list 2025-12-30 21:08:26 +01:00
b6655ced44 perf: make module loading synchronous, flip right panel layout
- Remove unnecessary async/await from loadModules (static imports)
- Move game controls to top of right panel
- Move preview header below controls, above preview
- Flip inset shadow to top of preview section
2025-12-30 21:07:00 +01:00
3d71e37828 feat: add gentle loading fallback after 3 seconds
If no lesson loads within 3 seconds, show a centered, gray notice
with fade-in animation suggesting to select from menu or check help.
Includes link to help dialog.
2025-12-30 20:57:54 +01:00
801fbe918e fix: remove all placeholder text, cache level indicator
- Remove "Please select a lesson" default text
- Remove "1 of 3" default level indicator
- Add level indicator to lesson cache for instant restore
2025-12-30 20:54:57 +01:00
b703992713 fix: prevent Loading text flash on page load
- Remove data-i18n="loading" from lesson title and module name
- Start with empty content instead of "Loading..." placeholder
- Remove data-i18n attribute after restoring cache to prevent overwrites
2025-12-30 20:53:38 +01:00
d601ae5286 feat: cache lesson content for instant restore on reload
Store lesson title, description, and task in localStorage after each
lesson load. On page reload, immediately restore the cached content
to avoid showing "Loading..." placeholder text.
2025-12-30 20:50:25 +01:00
0fc5af959f fix: add transition effect to language switch
Apply transitioning class during language toggle to prevent
content flash when switching between English and German.
2025-12-30 20:48:40 +01:00
52142f1594 feat: add contact section and smooth lesson transitions
- Add contact section to help dialog with librete.ch, GitHub, Gitea, LinkedIn links
- Add HTML/CSS prefixes to English module titles for consistency with German
- Add CSS transitions for smooth lesson switching
- Add transitioning class to prevent content flash during lesson changes
2025-12-30 20:48:03 +01:00