feat: Extend skeleton loaders to all 13 CV sections with structural fidelity
Implemented comprehensive skeleton loaders for the entire CV curriculum, providing smooth loading animations during language transitions across all sections. **Sections Implemented (13 total):** - Header (title-badges + personal info) - Education - Skills Summary - Experience (with company logos, descriptions, responsibilities) - Awards (with logos, issuers, descriptions) - Projects (with icons, descriptions, tech stacks) - Courses (with icons, institutions, dates) - Languages - References - Other Information - Skills Sidebars (left and right) - Footer **Key Features:** - Structural fidelity: Skeletons mirror exact HTML structure of actual content - Each section has realistic placeholders (e.g., 3 experience items, 2 projects) - Smooth CSS transitions with shimmer animations - Zero layout shift - Component-level architecture allows independent loading states **Technical Implementation:** - Modified all section templates in templates/partials/sections/ - Added .component-wrapper with .actual-content + .skeleton-content structure - Extended skeleton.css with structural skeleton classes - JavaScript event handlers in main.js already handle all sections via CSS cascade **Testing:** - Manual Playwright test: 13/13 component wrappers verified - Automated test: 7/7 tests passing - All skeleton loaders show during language switches - No stuck loading states **Documentation:** - Updated tests/TEST-SUMMARY.md with all 13 sections - Updated doc/2-MODERN-WEB-TECHNIQUES.md with comprehensive details - Added structural fidelity table showing skeleton elements for each section Files modified: 14 templates + CSS + 2 docs
This commit is contained in:
+18
-2
@@ -292,8 +292,8 @@ When adding tests:
|
||||
**Philosophy**: Zero redundancy - Every test is essential and unique
|
||||
|
||||
### 12-skeleton-language-transitions.test.mjs
|
||||
**Purpose**: Skeleton loader animations during language transitions
|
||||
- ✅ Component wrapper structure (dual-state: actual + skeleton content)
|
||||
**Purpose**: Skeleton loader animations during language transitions for ALL 13 curriculum sections
|
||||
- ✅ Component wrapper structure (dual-state: actual + skeleton content) - **13 sections total**
|
||||
- ✅ Skeleton CSS loaded (shimmer animation verified)
|
||||
- ✅ First language switch (EN → ES) - Loading class added/removed
|
||||
- ✅ Second language switch (ES → EN) - Consistent behavior
|
||||
@@ -301,9 +301,25 @@ When adding tests:
|
||||
- ✅ No stuck loading states (all containers clean after transition)
|
||||
- ✅ JavaScript event handlers configured (languageSwitching flag)
|
||||
|
||||
**Sections with skeleton loaders (structural fidelity)**:
|
||||
1. Header (title-badges + personal info)
|
||||
2. Education
|
||||
3. Skills Summary
|
||||
4. Experience (with company logos, descriptions, responsibilities)
|
||||
5. Awards (with logos, issuers, descriptions)
|
||||
6. Projects (with icons, descriptions, tech stacks)
|
||||
7. Courses (with icons, institutions, dates)
|
||||
8. Languages
|
||||
9. References
|
||||
10. Other Information
|
||||
11. Skills Sidebar (left) - Technical Skills
|
||||
12. Skills Sidebar (right) - More Skills
|
||||
13. Footer
|
||||
|
||||
**Implementation**: JavaScript event handlers in `static/js/main.js`
|
||||
- `htmx:beforeRequest` - Adds `.loading` class to page containers
|
||||
- `htmx:afterSettle` - Removes `.loading` class after swap completes (100ms delay)
|
||||
- **Structural fidelity**: Each skeleton mirrors the exact structure of its actual content (logos, text lines, lists)
|
||||
|
||||
**Critical**: Migrated from hyperscript to JavaScript for reliable Playwright testing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user