Commit Graph

249 Commits

Author SHA1 Message Date
5083032735 feat: add shareable lesson links with URL routing
- Add share button with SVG link icon in lesson title row
- Create share dialog with copy URL functionality
- Implement URL hash-based routing for lesson navigation
- Support browser back/forward navigation
- Add i18n translations for share dialog in all languages
- Position share button between title and completion badge
- Add RTL support for title row layout

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-14 21:35:49 +01:00
ede3e56a5a cleanup: remove commented out and duplicate RTL code 2026-01-14 20:25:41 +01:00
0595b2b718 replace: remove hex complete message due to not so funny and replace with +1 2026-01-14 19:20:37 +01:00
53003888f1 fix(rtl): orientation and direction of elements in the sidebar 2026-01-14 19:17:36 +01:00
bb96aa1d81 fix(rtl): sidebar chevron and titles right-aligned using order property 2026-01-14 18:37:04 +01:00
1928cda18d fix(rtl): let natural RTL flex flow position burger on right edge 2026-01-14 18:36:20 +01:00
37a15d3ce0 fix(rtl): header layout, completion badge spacing, sidebar alignment, list bullets, code blocks 2026-01-14 18:12:24 +01:00
df2c8ca6f4 fix: use native details/summary marker instead of custom chevrons 2026-01-14 17:59:07 +01:00
3f88bec31a fix: use clip-path for sidebar chevrons (better cross-browser support) 2026-01-14 17:56:50 +01:00
e53233b08c fix: header pill shows module name + level, fix RTL checkmark spacing 2026-01-14 17:53:29 +01:00
72362de88b feat: add header level pill on desktop, use native details/summary for sidebar
- Add lesson indicator pill to header (visible on desktop only)
- Logo stays centered, pill on left with burger menu
- Replace emoji arrows with CSS triangles for iOS compatibility
- Use native <details>/<summary> for expand/collapse
- Update tests for new implementation
2026-01-14 17:51:34 +01:00
954f82b27c fix(animation): sync disappear timing (bowl 3s, bubble 2.7s + 0.3s delay) 2026-01-14 17:45:25 +01:00
7e9d49cead fix(animation): offset speech bubble timing for bounce effect 2026-01-14 17:27:35 +01:00
036ddc1071 fix: change +1 message from binary to hex (0x2B 0x31) 2026-01-14 17:26:20 +01:00
0494e4fe37 fix(animation): position speech bubble above the bowl 2026-01-14 17:24:45 +01:00
fee0e728dc fix(animation): speech bubble now animates like bowl with scale 2026-01-14 17:23:53 +01:00
033d6f51fc feat(animation): proper SVG speech bubble with tail using mask-image 2026-01-14 17:15:49 +01:00
c45c9c6682 feat(animation): speech bubble shape with tail pointing to bowl 2026-01-14 17:03:51 +01:00
1107885a7a fix(animation): bowl size to 50% of wrapper 2026-01-14 17:01:50 +01:00
3f1bd46deb fix(animation): responsive bowl size - min 200px or 1/3 wrapper width 2026-01-14 17:01:21 +01:00
95fa884471 fix(animation): center bowl peek horizontally 2026-01-14 16:59:39 +01:00
81b1e18a36 fix(animation): simplify text scale to 4 smooth keyframes 2026-01-14 15:53:19 +01:00
649180b7ec fix(animation): more dramatic text scale on entrance 2026-01-14 15:51:05 +01:00
637236c31b fix(animation): sync bowl peek timing with text animation 2026-01-14 15:50:29 +01:00
cd587ec30b fix(animation): smoother bowl peek with gentle settle motion 2026-01-14 15:49:46 +01:00
3c187ca28e fix(animation): move bowl inside preview-frame with overflow hidden 2026-01-14 15:48:53 +01:00
67db0b9ac5 fix(animation): move bowl to preview-wrapper and increase size 2026-01-14 15:47:40 +01:00
f830cf9a70 feat(animation): add bowl smiley peek animation on success
Bowl mascot now peeks up from bottom right corner when a lesson
is completed, synced with the existing "Crispyyyyyy!" animation.
2026-01-14 15:44:58 +01:00
4bed75eb74 fix(i18n): sync all lesson translations with English source
Synchronizes 72 lesson files across 5 languages (de, pl, es, ar, uk) to match
the English source. This ensures code, solutions, and validations are identical
while only title, description, task, and message fields are translated.

Changes include:
- Box model lessons (01-box-model.json)
- Units and variables (05-units-variables.json)
- Transitions and animations (06-transitions-animations.json)
- Responsive design (08-responsive.json)
- HTML elements (20-html-elements.json)
- HTML forms basic and validation (21, 22)
- HTML details/summary, progress/meter (23, 24)
- HTML datalist, dialog, fieldset (25, 27, 28)
- HTML tables and SVG (30, 32)
- HTML marquee (31)
- Welcome module (00-welcome.json)

Fixes validation inconsistencies and removes extra content that exceeded
English source. German translations were largely correct; Polish, Spanish,
Arabic, and Ukrainian required full translations.
2026-01-14 15:39:22 +01:00
cc2faa5104 feat: sync all flexbox translations to match English version
- Updated de, pl, es, ar, uk flexbox lessons to use identical structure
- All 6 lessons now match English: previewHTML, validations, solutions
- Only title, description, task, and message fields are translated
- Real-world examples: nav menus, headers, cards, toolbars

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-14 12:07:35 +01:00
0e16b76f3c fix(lessons): clarify task instructions when codePrefix provides selector
Task text now says "Add property: value" instead of "Set property on selector"
since the selector is already shown in the editor via codePrefix.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-14 12:00:33 +01:00
857e110905 feat: sync all language files to match English CSS Basics lessons
- Updated de, pl, es, ar, uk translations to have identical structure
- All 10 lessons now match English: code, solutions, validations
- Only title, description, task, and message fields are translated
- Removed obsolete lessons not present in English version

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-14 11:55:30 +01:00
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
883586e62c refactor(lessons): improve CSS Basics and Typography with real-world examples
CSS Basics:
- Rewrite lessons 3-10 with real UI components (coffee shop, dashboard, buttons)
- Remove artificial examples with dashed borders
- Students write full selectors when learning selector syntax
- Use codePrefix only when focus is on property concepts

Typography:
- Replace Georgia font with universal monospace for code examples
- Use system-ui throughout for consistent rendering
- Replace text-shadow with text-transform and letter-spacing
- Add rich descriptions explaining the "why" behind each property
2026-01-14 02:43:27 +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
bd3f9ab96a refactor: rewrite CSS lessons with realistic real-world examples
- Box Model: profile cards, alerts, buttons instead of generic boxes
- Flexbox: navigation bars, headers, toolbars, card layouts
- Grid: photo gallery with SVG images, product cards, dashboard layout
- Colors: notification alerts, buttons, badges with visible changes
- Units/Variables: article width, brand variables, sidebar calc, hero vh
- Responsive: feature cards grid instead of numbered divs
- Added missing solutions to enable "Show Expected" feature
- Fixed barely visible border color change in colors lesson

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-13 21:11:41 +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
9f09d47088 test: update tests for new features and fix test expectations 2026-01-07 14:16:51 +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