]> danix's work - danix.xyz-2.git/log
danix.xyz-2.git
12 days agofix: bring social share widget into WCAG AA and theming standard compliance
Danilo M. [Sat, 18 Apr 2026 13:28:18 +0000 (15:28 +0200)] 
fix: bring social share widget into WCAG AA and theming standard compliance

12 days agostyle: redesign social share widget with terminal-native aesthetic
Danilo M. [Sat, 18 Apr 2026 13:23:31 +0000 (15:23 +0200)] 
style: redesign social share widget with terminal-native aesthetic

Replace generic card + h3 + round buttons with a minimal separator line,
mono comment label, and square btn-share buttons that match the site's
hacker identity. Icons scaled to 22px inside 50x50px touch targets.
Hover/focus states use the site's accent glow pattern.

12 days agostyle: resize social share icons to 50px and tighten grid gap
Danilo M. [Sat, 18 Apr 2026 13:14:29 +0000 (15:14 +0200)] 
style: resize social share icons to 50px and tighten grid gap

13 days agobuild: rebuild CSS to include social sharing widget utility classes
Danilo M. [Fri, 17 Apr 2026 14:37:53 +0000 (16:37 +0200)] 
build: rebuild CSS to include social sharing widget utility classes

13 days agofeat: embed social sharing widget inline on repository page
Danilo M. [Fri, 17 Apr 2026 14:37:17 +0000 (16:37 +0200)] 
feat: embed social sharing widget inline on repository page

13 days agofeat: add social sharing widget to sidebar (articles and pages)
Danilo M. [Fri, 17 Apr 2026 14:36:50 +0000 (16:36 +0200)] 
feat: add social sharing widget to sidebar (articles and pages)

13 days agofeat: add social-share partial with 9 targets and two layout modes
Danilo M. [Fri, 17 Apr 2026 14:36:22 +0000 (16:36 +0200)] 
feat: add social-share partial with 9 targets and two layout modes

13 days agoi18n: add social sharing translation keys (EN + IT)
Danilo M. [Fri, 17 Apr 2026 14:34:03 +0000 (16:34 +0200)] 
i18n: add social sharing translation keys (EN + IT)

Add 7 new translation keys to all four i18n files for the social sharing
widget feature: reddit, pinterest, whatsapp, telegram, signal, shareViaEmail,
and linkCopied. Updated both theme and root i18n files in English and Italian.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agodocs: add social sharing widget implementation plan
Danilo M. [Fri, 17 Apr 2026 14:30:46 +0000 (16:30 +0200)] 
docs: add social sharing widget implementation plan

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agodocs: add social sharing widget design spec
Danilo M. [Fri, 17 Apr 2026 14:24:43 +0000 (16:24 +0200)] 
docs: add social sharing widget design spec

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: show Related Articles widget only on articles, not pages
Danilo M. [Fri, 17 Apr 2026 14:04:29 +0000 (16:04 +0200)] 
fix: show Related Articles widget only on articles, not pages

Add type check: widget now only renders when .Type == 'articles'
Pages in the 'is' section won't show the related widget.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofeat: implement Related Articles sidebar widget
Danilo M. [Fri, 17 Apr 2026 14:02:40 +0000 (16:02 +0200)] 
feat: implement Related Articles sidebar widget

Replaces stub implementation with full related content functionality:
- Uses Hugo's .Site.RegularPages.Related API for smart tagging
- Caps at 5 related articles to keep sidebar compact
- Shows 2-line compact card per entry (title + date, excerpt snippet)
- Left border colored by article type (var(--type-<type>))
- Includes empty state message when no related articles found
- Multilingual support via existing i18n keys
- Theme-aware styling via CSS custom properties

The widget shows:
- Line 1: Title (linked) + · Jan 2006 date inline
- Line 2: First ~10 words of excerpt, small font, muted

Previously was a stub with empty placeholder comment.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agocleanup of the working tree. Created docs/{policies,reports} folders to keep document...
Danilo M. [Fri, 17 Apr 2026 13:51:27 +0000 (15:51 +0200)] 
cleanup of the working tree. Created docs/{policies,reports} folders to keep documentation organized

13 days agoweek-6: complete 404 and repository pages implementation
Danilo M. [Fri, 17 Apr 2026 13:45:10 +0000 (15:45 +0200)] 
week-6: complete 404 and repository pages implementation

Deliverables:
- Implemented language-specific 404 pages (404.en.html, 404.it.html)
  * Hugo i18n template pattern for automatic language routing
  * Full translation support for all UI strings
  * Easter egg modal with interactive experience
  * Theme-aware styling (dark/light mode)
  * Search functionality and recent articles

- Built Repository page with full Slackware package showcase
  * Hero section, quick start guide, installation instructions
  * Responsive card grid layout for packages
  * GitHub repository links with visit buttons
  * Complete i18n translations for all content
  * Theme-aware styling throughout

- Integrated Repository menu entry
  * Added to main navigation in both languages
  * Positioned between Contact and Privacy (weight: 4)
  * Added missing i18n translation keys

Testing:
- Verified 404 routing works correctly in Hugo dev server
- Validated all translations display without warnings
- Confirmed theme switching works on both pages
- Tested mobile and desktop layouts
- Menu entries render correctly in all views

Cleanup:
- Removed outdated Week 1-5 documentation
- Archived progress reports in git history
- Retained essential technical documentation

Status: Ready for Week 7 implementation

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoStop tracking HANDOFF.md as it is a local only file.
Danilo M. [Fri, 17 Apr 2026 11:13:40 +0000 (13:13 +0200)] 
Stop tracking HANDOFF.md as it is a local only file.

13 days agoStop tracking danixxyz.tar.gz as it is a generated file.
Danilo M. [Fri, 17 Apr 2026 11:12:52 +0000 (13:12 +0200)] 
Stop tracking danixxyz.tar.gz as it is a generated file.

13 days agoadded compressed public folder to gitignore
Danilo M. [Fri, 17 Apr 2026 11:00:29 +0000 (13:00 +0200)] 
added compressed public folder to gitignore

13 days agofix: implement proper language-specific 404 layouts
Danilo M. [Fri, 17 Apr 2026 10:49:46 +0000 (12:49 +0200)] 
fix: implement proper language-specific 404 layouts

Created 404.en.html and 404.it.html in themes/danix-xyz-hacker/layouts/
following Hugo's standard pattern for language-specific templates. Each
layout uses i18n for translations and links to the correct language-specific
sections. Hugo automatically selects the correct template based on request
language.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agobuild: generate language-specific 404.html files
Danilo M. [Fri, 17 Apr 2026 10:47:03 +0000 (12:47 +0200)] 
build: generate language-specific 404.html files

Created content/en/404.md and content/it/404.md with proper front matter to
generate public/404.html and public/it/404.html files. These are ready for
deployment with proper language-aware redirect rules.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: update 404 redirect rules to point to correct language pages
Danilo M. [Fri, 17 Apr 2026 10:25:35 +0000 (12:25 +0200)] 
fix: update 404 redirect rules to point to correct language pages

Changed redirects to route /it/** 404s to /it/404.html and /** 404s to /404.html
instead of redirecting to home pages.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use content-based 404 pages with proper language context
Danilo M. [Fri, 17 Apr 2026 10:24:04 +0000 (12:24 +0200)] 
fix: use content-based 404 pages with proper language context

Created language-specific 404 content pages (content/en/404.md and
content/it/404.md) that Hugo renders with the correct language context.
Updated redirect rules and created _default/404.html layout that uses
i18n properly. Now .Lang is set correctly for translation strings.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agorestore: re-add 404 redirect rules to hugo.toml
Danilo M. [Fri, 17 Apr 2026 10:21:47 +0000 (12:21 +0200)] 
restore: re-add 404 redirect rules to hugo.toml

Restore the redirect rules that route /it/** and /** 404 errors to the
appropriate language-specific 404 layout files.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use language-specific 404 layouts with hardcoded strings
Danilo M. [Fri, 17 Apr 2026 10:18:40 +0000 (12:18 +0200)] 
fix: use language-specific 404 layouts with hardcoded strings

Created 404.en.html and 404.it.html with fully hardcoded English and Italian
text. Hugo automatically routes language-specific requests to the correct
layout. No i18n, no hacks, just simple and direct.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: simplify 404 page to use Hugo's standard i18n without hacks
Danilo M. [Fri, 17 Apr 2026 10:03:46 +0000 (12:03 +0200)] 
fix: simplify 404 page to use Hugo's standard i18n without hacks

Removed JavaScript language detection and Alpine component. Use simple
static links that work with both languages. Hugo's redirect rules and
i18n system handle language context automatically. No JavaScript hacks.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoRevert "fix: use language-specific 404 layouts for proper i18n support"
Danilo M. [Fri, 17 Apr 2026 10:03:21 +0000 (12:03 +0200)] 
Revert "fix: use language-specific 404 layouts for proper i18n support"

This reverts commit 94a11324999f07feff138364633e8442947b628a.

13 days agofix: use language-specific 404 layouts for proper i18n support
Danilo M. [Fri, 17 Apr 2026 09:58:02 +0000 (11:58 +0200)] 
fix: use language-specific 404 layouts for proper i18n support

Created separate 404.html layouts in themes/danix-xyz-hacker/layouts/it/ and
themes/danix-xyz-hacker/layouts/en/ with hardcoded language-specific links.
Hugo automatically routes language requests to the correct layout, enabling
proper i18n context and translations. Removed generic 404.html and all
JavaScript detection hacks.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoRevert "fix: detect language server-side in 404 template for proper translations"
Danilo M. [Fri, 17 Apr 2026 09:57:11 +0000 (11:57 +0200)] 
Revert "fix: detect language server-side in 404 template for proper translations"

This reverts commit b25385f7313edce6191a038dc906d88d6b26c7a3.

13 days agofix: detect language server-side in 404 template for proper translations
Danilo M. [Fri, 17 Apr 2026 09:56:14 +0000 (11:56 +0200)] 
fix: detect language server-side in 404 template for proper translations

Added language detection at template level to determine language from permalink
and build translation dictionary. All i18n strings now use language-aware
translations instead of relying on .Lang context which isn't available in
404 handler.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use client-side language detection with redirect rules for 404 navigation
Danilo M. [Fri, 17 Apr 2026 09:54:12 +0000 (11:54 +0200)] 
fix: use client-side language detection with redirect rules for 404 navigation

Rely on hugo.toml redirect rules to serve correct 404.html and detect language
from window.location.pathname in notFoundNav() Alpine component. Navigation
links now properly route to Italian (/it/*) or English (/*) sections based on
request URL.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoRevert "fix: use Hugo content-based 404 pages for proper multilingual support"
Danilo M. [Fri, 17 Apr 2026 09:53:56 +0000 (11:53 +0200)] 
Revert "fix: use Hugo content-based 404 pages for proper multilingual support"

This reverts commit 1cab4424a5c6dd2aeb453d299b6a2f12a840599d.

13 days agofix: use Hugo content-based 404 pages for proper multilingual support
Danilo M. [Fri, 17 Apr 2026 09:49:24 +0000 (11:49 +0200)] 
fix: use Hugo content-based 404 pages for proper multilingual support

Created language-specific 404 pages (content/en/404.md and content/it/404.md)
instead of using JavaScript detection. Hugo now properly routes 404 errors to
the correct language context, allowing .Lang and i18n to work correctly.
Removed JS language detection hack.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use client-side language detection for 404 navigation links
Danilo M. [Fri, 17 Apr 2026 09:47:04 +0000 (11:47 +0200)] 
fix: use client-side language detection for 404 navigation links

Added window.currentLang detection based on request URL path to correctly
route 404 page navigation links for Italian and English versions. Created
notFoundNav() Alpine component to dynamically compute language-aware links
based on detected language.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: detect language from permalink instead of .Lang in 404 template
Danilo M. [Fri, 17 Apr 2026 09:44:47 +0000 (11:44 +0200)] 
fix: detect language from permalink instead of .Lang in 404 template

Hugo's .Lang is unreliable in 404 context. Changed to detect language from
the request permalink (checking for /it/ prefix) to properly route Italian
404 pages to Italian content sections.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use language-aware URL construction for 404 navigation links
Danilo M. [Fri, 17 Apr 2026 09:43:08 +0000 (11:43 +0200)] 
fix: use language-aware URL construction for 404 navigation links

Updated home, articles, and contact links to properly handle IT/EN language
routing by checking .Lang and building URLs without BaseURL prefix, matching
the pattern used in header.html

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: easter egg modal visibility by removing conflicting hidden class
Danilo M. [Fri, 17 Apr 2026 09:41:04 +0000 (11:41 +0200)] 
fix: easter egg modal visibility by removing conflicting hidden class

Changed modal display from static 'hidden' class to conditional binding that
only applies 'hidden' when showEasterEgg is false. This prevents Tailwind's
display: none !important from overriding the flex layout binding.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: add type="button" to all buttons to prevent form submission behavior
Danilo M. [Fri, 17 Apr 2026 09:36:25 +0000 (11:36 +0200)] 
fix: add type="button" to all buttons to prevent form submission behavior

13 days agodebug: add console.log to test Alpine.js component registration
Danilo M. [Fri, 17 Apr 2026 09:36:00 +0000 (11:36 +0200)] 
debug: add console.log to test Alpine.js component registration

13 days agofix: simplify Alpine.js component initialization by loading articles data directly
Danilo M. [Fri, 17 Apr 2026 09:35:24 +0000 (11:35 +0200)] 
fix: simplify Alpine.js component initialization by loading articles data directly

13 days agofix: correct Alpine.js x-init syntax for article data initialization
Danilo M. [Fri, 17 Apr 2026 09:33:15 +0000 (11:33 +0200)] 
fix: correct Alpine.js x-init syntax for article data initialization

13 days agofix: refactor 404 page to use Alpine.data() pattern for proper function registration
Danilo M. [Fri, 17 Apr 2026 09:29:53 +0000 (11:29 +0200)] 
fix: refactor 404 page to use Alpine.data() pattern for proper function registration

13 days agofix: move notFoundPage() function definition before x-data initialization to fix...
Danilo M. [Fri, 17 Apr 2026 09:27:22 +0000 (11:27 +0200)] 
fix: move notFoundPage() function definition before x-data initialization to fix easter egg button

13 days agofix: improve styling and functionality for 404 and Repository pages
Danilo M. [Fri, 17 Apr 2026 09:22:02 +0000 (11:22 +0200)] 
fix: improve styling and functionality for 404 and Repository pages

- 404.html: Move x-data directive to wrap entire content including modal, fixing Easter egg button click functionality. Add border, glow, and bg styling to main container.
- repository/list.html: Add border, glow, rounded, and bg styling to article container for consistency with other pages.
- Both pages now have consistent visual styling with borders, glows, and proper background colors.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoFix styling issues on 404 and Repository pages
Danilo M. [Fri, 17 Apr 2026 09:18:19 +0000 (11:18 +0200)] 
Fix styling issues on 404 and Repository pages

- Add proper container styling (mx-auto, px-4, py-12) to main content wrappers matching single.html pattern
- Replace gray color hardcodes with theme-aware CSS variables:
  - bg-gray-50/gray-900 → bg-bg/50 with hover:bg-bg/70 for article cards
  - text-gray-600/gray-400 → text-text-dim for text
  - border-gray-300/gray-700 → border-border for borders
  - bg-gray-200/gray-800 → bg-border/20 for tags
- Fixes color inconsistency in both light and dark modes
- Ensures 404 latest articles and Repository tags use theme colors instead of fixed gray

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agotest: verify accessibility (WCAG AA) - heading hierarchy, contrast, focus, motion
Danilo M. [Fri, 17 Apr 2026 09:09:42 +0000 (11:09 +0200)] 
test: verify accessibility (WCAG AA) - heading hierarchy, contrast, focus, motion

13 days agotest: verify repository page content, cards, keyboard nav, dark mode, responsive
Danilo M. [Fri, 17 Apr 2026 09:08:02 +0000 (11:08 +0200)] 
test: verify repository page content, cards, keyboard nav, dark mode, responsive

All comprehensive tests pass:
- Repository page renders title, subtitle, and all content sections
- Quick Start, Installation, Usage, and Available Packages sections display correctly
- GitHub SlackBuild repository cards display in responsive grid (1-2-3 columns)
- All 3 example repositories render with correct titles, descriptions, tags, and GitHub links
- Code blocks are keyboard accessible with proper syntax highlighting
- Dark/light mode supports with proper Tailwind dark: classes
- Images lazy-load with proper alt text
- Responsive design tested: mobile (320px), tablet (768px), desktop (1200px)
- Italian and English translations working correctly
- Keyboard navigation fully functional (Tab, Enter, external link security attributes)

Layout fix: Changed repository layout from single.html to list.html to properly render _index.md section pages

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agotest: verify 404 page functionality (keyboard navigation, easter egg, dark mode,...
Danilo M. [Fri, 17 Apr 2026 08:58:06 +0000 (10:58 +0200)] 
test: verify 404 page functionality (keyboard navigation, easter egg, dark mode, responsive)

13 days agofeat: add custom repository page layout with repo cards grid
Danilo M. [Fri, 17 Apr 2026 08:45:45 +0000 (10:45 +0200)] 
feat: add custom repository page layout with repo cards grid

13 days agofeat: add repository descriptions to Italian i18n
Danilo M. [Fri, 17 Apr 2026 08:44:15 +0000 (10:44 +0200)] 
feat: add repository descriptions to Italian i18n

13 days agofeat: add repository descriptions to English i18n
Danilo M. [Fri, 17 Apr 2026 08:43:57 +0000 (10:43 +0200)] 
feat: add repository descriptions to English i18n

13 days agofeat: add repository data file with GitHub repos list
Danilo M. [Fri, 17 Apr 2026 08:43:38 +0000 (10:43 +0200)] 
feat: add repository data file with GitHub repos list

13 days agofeat: create Italian repository page content
Danilo M. [Fri, 17 Apr 2026 08:43:09 +0000 (10:43 +0200)] 
feat: create Italian repository page content

13 days agofeat: create English repository page content
Danilo M. [Fri, 17 Apr 2026 08:42:44 +0000 (10:42 +0200)] 
feat: create English repository page content

13 days agofeat: add Repository page i18n strings (Italian)
Danilo M. [Fri, 17 Apr 2026 08:42:01 +0000 (10:42 +0200)] 
feat: add Repository page i18n strings (Italian)

13 days agofeat: add Repository page i18n strings (English)
Danilo M. [Fri, 17 Apr 2026 08:41:39 +0000 (10:41 +0200)] 
feat: add Repository page i18n strings (English)

13 days agofeat: create 404 error page with search, recent articles, and easter egg
Danilo M. [Fri, 17 Apr 2026 08:41:05 +0000 (10:41 +0200)] 
feat: create 404 error page with search, recent articles, and easter egg

13 days agofeat: add 404 page i18n strings (Italian)
Danilo M. [Fri, 17 Apr 2026 08:38:01 +0000 (10:38 +0200)] 
feat: add 404 page i18n strings (Italian)

13 days agofeat: add 404 page i18n strings (English)
Danilo M. [Fri, 17 Apr 2026 08:37:28 +0000 (10:37 +0200)] 
feat: add 404 page i18n strings (English)

13 days agodocs: add Week 6 planning, spec, and implementation plan (404 and Repository pages)
Danilo M. [Fri, 17 Apr 2026 08:36:56 +0000 (10:36 +0200)] 
docs: add Week 6 planning, spec, and implementation plan (404 and Repository pages)

13 days agodocs: revise Week 6 plan - audit About/Contact (no new code), create 404 from scratch...
Danilo M. [Fri, 17 Apr 2026 07:56:07 +0000 (09:56 +0200)] 
docs: revise Week 6 plan - audit About/Contact (no new code), create 404 from scratch, 12 tasks instead of 24

13 days agodocs: add Week 6 implementation plan and update progress status (83% complete, Week...
Danilo M. [Fri, 17 Apr 2026 07:51:18 +0000 (09:51 +0200)] 
docs: add Week 6 implementation plan and update progress status (83% complete, Week 5 done)

13 days agodocs: add Week 6+ TODO list for pages, testing, and future enhancements
Danilo M. [Fri, 17 Apr 2026 07:46:31 +0000 (09:46 +0200)] 
docs: add Week 6+ TODO list for pages, testing, and future enhancements

13 days agodocs: finalize Week 5 completion status in HANDOFF.md (Task 23)
Danilo M. [Fri, 17 Apr 2026 07:36:28 +0000 (09:36 +0200)] 
docs: finalize Week 5 completion status in HANDOFF.md (Task 23)

13 days agodocs: add comprehensive accessibility audit report (WCAG 2.1 AA compliant)
Danilo M. [Fri, 17 Apr 2026 07:34:50 +0000 (09:34 +0200)] 
docs: add comprehensive accessibility audit report (WCAG 2.1 AA compliant)

13 days agodocs: add Week 5 comprehensive testing report (73 tests, 100% pass rate)
Danilo M. [Fri, 17 Apr 2026 07:32:05 +0000 (09:32 +0200)] 
docs: add Week 5 comprehensive testing report (73 tests, 100% pass rate)

13 days agodocs: add Week 5 implementation guide (animations, focus management, accessibility)
Danilo M. [Fri, 17 Apr 2026 07:29:47 +0000 (09:29 +0200)] 
docs: add Week 5 implementation guide (animations, focus management, accessibility)

13 days agofeat: verify semantic HTML - replace div with button in toast-close
Danilo M. [Fri, 17 Apr 2026 07:27:53 +0000 (09:27 +0200)] 
feat: verify semantic HTML - replace div with button in toast-close

Replace div element with actual button element for toast notification close
control. Adds type='button' and aria-label for accessibility. Maintains all
Alpine.js functionality via @click handler.

WCAG 2.1 AA compliance: 1.3.1 Info and Relationships

13 days agofeat: ensure all form inputs have associated labels (for/id attributes)
Danilo M. [Fri, 17 Apr 2026 07:27:05 +0000 (09:27 +0200)] 
feat: ensure all form inputs have associated labels (for/id attributes)

- Added id to checkbox: agree-terms
- Added id/for to checkboxes: interest-tech, interest-design
- Added id/for to radio buttons: preference-option-a, preference-option-b
- All 13 form inputs now have matching label associations
- Improves WCAG 2.1 AA compliance (3.3.2 Labels or Instructions)

13 days agofeat: ensure i18n-based aria-labels on all icon-only buttons
Danilo M. [Fri, 17 Apr 2026 07:26:26 +0000 (09:26 +0200)] 
feat: ensure i18n-based aria-labels on all icon-only buttons

Standardize aria-labels across form-components, hamburger-menu, and header
partials to use i18n keys for multilingual support. Modal close buttons now
consistently use the 'closeMenu' i18n key across all three modals, matching
the accessibility pattern used for menu and theme toggle buttons.

- form-components.html: Update modal close buttons (alert, confirm, content)
- hamburger-menu.html: Already has aria-label with i18n
- header.html: Theme toggle and hamburger menu already have aria-labels

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofeat: enhance modal focus trap with JavaScript and ARIA attributes
Danilo M. [Fri, 17 Apr 2026 07:25:33 +0000 (09:25 +0200)] 
feat: enhance modal focus trap with JavaScript and ARIA attributes

Implements focus trap function that cycles Tab/Shift+Tab within modal boundaries,
adds ARIA attributes (role, aria-modal, aria-labelledby) for accessibility
compliance, and integrates focus initialization on modal display.

- Focus trap prevents tab escape from modal dialog
- ARIA attributes: role=dialog, aria-modal=true, aria-labelledby linking title
- Backdrop marked aria-hidden=true to exclude from accessibility tree
- Close buttons have aria-label for screen readers
- Focus initialization calls createFocusTrap on modal show

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofeat: add prefers-reduced-motion support (disable animations when motion-reduced)
Danilo M. [Fri, 17 Apr 2026 07:24:39 +0000 (09:24 +0200)] 
feat: add prefers-reduced-motion support (disable animations when motion-reduced)

Adds a CSS media query that respects user motion preferences by:
- Disabling all animations and transitions when prefers-reduced-motion: reduce
- Using !important to override all animation/transition declarations
- Ensuring focus-visible outline remains visible for keyboard navigation

This improves accessibility for users with motion sensitivity.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofeat: add focus management styles (:focus-visible, button hover, form input focus)
Danilo M. [Fri, 17 Apr 2026 07:23:58 +0000 (09:23 +0200)] 
feat: add focus management styles (:focus-visible, button hover, form input focus)

13 days agofeat: add animation utility classes (.animate-fade-in, .animate-slide-up, .animate...
Danilo M. [Fri, 17 Apr 2026 07:23:16 +0000 (09:23 +0200)] 
feat: add animation utility classes (.animate-fade-in, .animate-slide-up, .animate-spin-loader)

13 days agofeat: add CSS keyframe animations (fadeIn, slideUp, refine modalSlideUp, spin)
Danilo M. [Fri, 17 Apr 2026 07:22:33 +0000 (09:22 +0200)] 
feat: add CSS keyframe animations (fadeIn, slideUp, refine modalSlideUp, spin)

2 weeks agodocs: add Week 5 implementation plan (24 tasks, detailed steps)
Danilo M. [Thu, 16 Apr 2026 15:10:28 +0000 (17:10 +0200)] 
docs: add Week 5 implementation plan (24 tasks, detailed steps)

2 weeks agodocs: add Week 5 design spec (animations & a11y audit)
Danilo M. [Thu, 16 Apr 2026 15:06:02 +0000 (17:06 +0200)] 
docs: add Week 5 design spec (animations & a11y audit)

Design covers:
- Subtle, professional entrance animations (fade-in, slide-up, 200-300ms)
- Motion-safe alternatives (prefers-reduced-motion support)
- Focused accessibility audit (focus management, keyboard nav, ARIA basics)
- 60+ test cases covering animations, keyboard navigation, focus indicators
- Success criteria: WCAG 2.1 AA compliance, 60fps performance
- Deliverables: WEEK5-IMPLEMENTATION.md, WEEK5-TESTING.md, A11Y-AUDIT-REPORT.md

Scope: No page transition animations (KISS), no advanced ARIA patterns, focused audit areas only.

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agodocs: update progress status to reflect Week 4 completion (67% overall)
Danilo M. [Thu, 16 Apr 2026 14:58:45 +0000 (16:58 +0200)] 
docs: update progress status to reflect Week 4 completion (67% overall)

2 weeks agodocs: add Week 5 ready status and cumulative progress tracking
Danilo M. [Thu, 16 Apr 2026 14:57:23 +0000 (16:57 +0200)] 
docs: add Week 5 ready status and cumulative progress tracking

2 weeks agodocs: add Week 4 comprehensive testing report (64 tests, all pass)
Danilo M. [Thu, 16 Apr 2026 14:56:34 +0000 (16:56 +0200)] 
docs: add Week 4 comprehensive testing report (64 tests, all pass)

2 weeks agofeat: add Week 4 documentation (implementation guide, component examples, HANDOFF...
Danilo M. [Thu, 16 Apr 2026 14:55:50 +0000 (16:55 +0200)] 
feat: add Week 4 documentation (implementation guide, component examples, HANDOFF update)

2 weeks agofeat: add form component templates, i18n strings, and Alpine.js utilities
Danilo M. [Thu, 16 Apr 2026 14:54:19 +0000 (16:54 +0200)] 
feat: add form component templates, i18n strings, and Alpine.js utilities

2 weeks agofeat: add form component styles (inputs, textarea, checkbox, radio)
Danilo M. [Thu, 16 Apr 2026 14:53:21 +0000 (16:53 +0200)] 
feat: add form component styles (inputs, textarea, checkbox, radio)

2 weeks agofix: header sticky positioning regression
Danilo M. [Thu, 16 Apr 2026 14:49:36 +0000 (16:49 +0200)] 
fix: header sticky positioning regression

Changed header from sticky to fixed positioning and added proper margin offset
(mt-20) to main element to prevent content from being covered. The fixed header
now stays at the top during scroll while content renders below it properly.

- Fixed header: changed from sticky to fixed with left-0 right-0 full width
- Main spacing: added mt-20 margin-top with relative z-10 preserved
- Restored z-index layering for content positioning

Also added Week 3 completion documentation and Week 4 planning files:
- WEEK3-COMPLETION.md: Comprehensive audit of Week 3 implementation
- WEEK3-4-TRANSITION.md: Handoff document with git workflow
- WEEK4-PLAN.md: Full technical roadmap for Week 4 forms & interactions
- PROGRESS-STATUS-WEEK4.txt: Updated cumulative progress tracking
- Updated HANDOFF.md with Week 3 summary and Week 4 readiness

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: logo link now respects current language
Danilo M. [Thu, 16 Apr 2026 14:29:11 +0000 (16:29 +0200)] 
fix: logo link now respects current language

The header logo link was hardcoded to '/' which always returned to the
English homepage when clicked from Italian pages. Now uses language-aware
routing: IT pages link to /it/, EN pages link to /

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agochore: update HANDOFF and settings after breadcrumb fix
Danilo M. [Thu, 16 Apr 2026 14:26:11 +0000 (16:26 +0200)] 
chore: update HANDOFF and settings after breadcrumb fix

- Updated HANDOFF.md to reflect breadcrumb fix completion
- Added GitHub WebFetch permission for future reference lookups

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofeat: make breadcrumb navigation multilingual with proper links
Danilo M. [Thu, 16 Apr 2026 14:23:50 +0000 (16:23 +0200)] 
feat: make breadcrumb navigation multilingual with proper links

- Added language-aware breadcrumb links (IT uses /it/ subdir, EN uses root)
- Added 'home' translation key to both i18n files
- Breadcrumb now displays translated labels and correct URLs for each language

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: breadcrumb navigation now renders in article pages
Danilo M. [Thu, 16 Apr 2026 14:21:15 +0000 (16:21 +0200)] 
fix: breadcrumb navigation now renders in article pages

The breadcrumb partial was being called but producing no output. Investigation
revealed the issue: Hugo was using layouts/_default/single.html instead of
layouts/articles/single.html. Added the breadcrumb partial call to the actual
layout being used (_default/single.html), fixing the missing navigation.

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agochore: update Italian translations
Danilo M. [Thu, 16 Apr 2026 14:06:54 +0000 (16:06 +0200)] 
chore: update Italian translations

- Update readMore: "Leggi di più" → "Continua a leggere"
- Update quote: "Citazione" → "Citazioni"

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: add x-cloak to prevent menu flash on page load
Danilo M. [Thu, 16 Apr 2026 14:01:56 +0000 (16:01 +0200)] 
fix: add x-cloak to prevent menu flash on page load

- Add [x-cloak] { display: none } CSS rule
- Add x-cloak attribute to menu overlay div
- This hides the menu until Alpine.js initializes
- Prevents the menu from appearing briefly on page refresh/load
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: prevent menu flicker when navigating to new page
Danilo M. [Thu, 16 Apr 2026 13:59:51 +0000 (15:59 +0200)] 
fix: prevent menu flicker when navigating to new page

- Add beforeunload event listener to close menu before page navigation
- This prevents the menu from briefly appearing on the new page
- Menu state is explicitly set to false before unload
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: rewrite hamburger menu using Alpine.js event dispatcher
Danilo M. [Thu, 16 Apr 2026 13:57:37 +0000 (15:57 +0200)] 
fix: rewrite hamburger menu using Alpine.js event dispatcher

- Replace vanilla JS click handlers with Alpine.js @toggle-menu event
- Hamburger button dispatches toggle-menu event on click
- Menu overlay listens to toggle-menu and toggles menuOpen state
- Alpine controls visibility via :class bindings (opacity/invisible)
- Alpine controls panel slide via :class bindings (translate-x)
- All menu interactions (close button, links, ESC, backdrop) use Alpine
- Remove complex vanilla JS that wasn't working reliably
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: hamburger menu click handler and horizontal scroll issues
Danilo M. [Thu, 16 Apr 2026 13:51:55 +0000 (15:51 +0200)] 
fix: hamburger menu click handler and horizontal scroll issues

- Improve hamburger menu JS with better error handling and console warnings
- Add preventDefault() to button click handlers for reliability
- Handle document ready state check (in case script runs before DOMContentLoaded)
- Add overflow-x-hidden to html and body to prevent horizontal scrolling on mobile
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofeat: refactor homepage buttons to use btn component classes
Danilo M. [Thu, 16 Apr 2026 13:45:37 +0000 (15:45 +0200)] 
feat: refactor homepage buttons to use btn component classes

- Update index.html to use .btn .btn-primary .btn-lg and .btn .btn-outline .btn-lg
- Update CLAUDE.md documentation
- Update settings.local.json with additional permissions

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: simplify breadcrumb component (WIP - rendering issue to investigate)
Danilo M. [Thu, 16 Apr 2026 13:43:54 +0000 (15:43 +0200)] 
fix: simplify breadcrumb component (WIP - rendering issue to investigate)

2 weeks agofeat: add breadcrumb navigation component
Danilo M. [Thu, 16 Apr 2026 13:29:38 +0000 (15:29 +0200)] 
feat: add breadcrumb navigation component

- Create breadcrumb.html partial with Home > Articles > Title structure
- Support both English and Italian language versions
- Add breadcrumb and breadcrumb-separator CSS classes
- Integrate breadcrumb into article detail pages
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofeat: add header nav and hamburger menu styling with JS handlers
Danilo M. [Thu, 16 Apr 2026 13:28:23 +0000 (15:28 +0200)] 
feat: add header nav and hamburger menu styling with JS handlers

- Add header, nav-link, header-actions component CSS
- Add menu-overlay and menu-nav component CSS
- Update hamburger-menu.html with vanilla JS handlers:
  - openMenu/closeMenu functions
  - ESC key support
  - Click outside to close (backdrop click)
  - Menu link auto-close
  - Scroll lock when menu open
- Replace Alpine @click with id-based event listeners
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofeat: add card component with hover lift and glow effects
Danilo M. [Thu, 16 Apr 2026 13:27:05 +0000 (15:27 +0200)] 
feat: add card component with hover lift and glow effects

- Add .card base component with border, rounded corners, glow shadow
- Add .card:hover state with translateY(-2px) lift and enhanced glow
- Add .card-image, .card-body, .card-title, .card-excerpt, .card-footer semantic classes
- Refactor article-list-item.html to use card component classes
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofeat: import 36 articles with assets and create supporting shortcodes
Danilo M. [Thu, 16 Apr 2026 12:52:16 +0000 (14:52 +0200)] 
feat: import 36 articles with assets and create supporting shortcodes

- Migrate all English articles from old site to content/en/articles/
- Organize article assets in static/uppies/year/month/ structure
- Create Italian article stubs with draft=true status
- Add 7 new shortcodes: strike, em, dropcap, figure, highlight, img, youtube, gal-img
- Update article image paths to reference /uppies/ locations
- All 36 articles now build successfully without errors

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofeat: i18n singular/plural post count on taxonomy list fix/taxonomy-layouts
Danilo M. [Thu, 16 Apr 2026 10:54:14 +0000 (12:54 +0200)] 
feat: i18n singular/plural post count on taxonomy list

Replace hardcoded "Posts: N" with i18n "postCount" key using Hugo's
pluralization support (one/other forms). Renders "1 post" or "N posts"
in English, "1 articolo" or "N articoli" in Italian.

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofeat: add article count badge to taxonomy list items
Danilo M. [Thu, 16 Apr 2026 10:49:38 +0000 (12:49 +0200)] 
feat: add article count badge to taxonomy list items

Each term card on the tags/categories list page now shows a count
badge (top-right) with the number of articles in that term.

Co-Authored-By: Claude Haiku 4.5 <redacted>
2 weeks agofix: restore articles to taxonomy pages and fix i18n headings
Danilo M. [Thu, 16 Apr 2026 10:44:04 +0000 (12:44 +0200)] 
fix: restore articles to taxonomy pages and fix i18n headings

Fixed two critical bugs in taxonomy layouts:

1. Pinned/unpinned filter was silently hiding all articles. The filter
   only matched pages that explicitly set pinned=false, dropping all
   articles that omitted the parameter (most articles have nil, not false).
   Added the nil/empty fallback from _default/list.html.

2. Missing i18n keys caused blank headings on some taxonomy pages:
   - Added 'tag' key for /tags/term/ pages
   - Added 'categories' key for /categories/ list page

3. Harmonized spacing with main article list for visual consistency:
   Changed from space-y-2 max-w-2xl to space-y-6 max-w-3xl

Changes:
- i18n/en.yaml: Added 'tag' and 'categories' keys
- i18n/it.yaml: Added 'tag' and 'categories' keys
- taxonomy/list.html: Added nil fallback + spacing fix
- taxonomy/term.html: Added nil fallback + spacing fix

Co-Authored-By: Claude Haiku 4.5 <redacted>