Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías by agustinkassis · Pull Request #56 · lacrypta/lacrypta-dev · GitHub
Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías by agustinkassis · Pull Request #56 · lacrypta/lacrypta-dev · GitHub
Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías by agustinkassis · Pull Request #56 · lacrypta/lacrypta-dev · GitHub
Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías by agustinkassis · Pull Request #56 · lacrypta/lacrypta-dev · GitHub
Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías by agustinkassis · Pull Request #56 · lacrypta/lacrypta-dev · GitHub
Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías by agustinkassis · Pull Request #56 · lacrypta/lacrypta-dev · GitHub
Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías by agustinkassis · Pull Request #56 · lacrypta/lacrypta-dev · GitHub
Skip to content

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías - #56

Merged
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider
Jul 2, 2026
Merged

feat(home): horizontal slider for Hackatones / Proyectos / Tecnologías#56
agustinkassis merged 5 commits into
mainfrom
feat/home-sections-horizontal-slider

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

Redesigns the home "Hackatones · Proyectos · Tecnologías" block from a vertical scroll (desktop scroll-jacking + mobile stacked sections) into a single horizontal slider with 3 fixed-height slides.

  • Navigation: prev/next arrows (‹ ›), dot indicators, swipe/drag (pointer events, works on touch + mouse), and ← / → keyboard.
  • Fixed-height slides (~86vh, uniform) with content centered — consistent "panel" feel across the three.
  • Reuses all existing content: features list, animated stats/counters, TechMatrix, project marquee, floating tech icons, CTAs.
  • Removes the now-unused SectionPanel, Timeline and TechChips helpers (net −327 lines).

Implementation notes

  • Track uses explicit widths (width: N*100%, slides 100/N%) + translateX(-index * 100/N %) so the transform is deterministic regardless of measured width.
  • Swipe via onPointerDown/Up on the viewport (50px threshold); taps still pass through to links/CTAs.

Testing

  • tsc --noEmit clean.
  • Verified in the browser: carousel renders full-width (1270px), 3 slides of 1270px (track 3810px); translateX resolves to 0 / -1270 / -2540 for indices 0/1/2; dots + arrows update aria-current and the transform; each slide fully rendered (title, features, stats, TechMatrix, CTA).
  • Note: a clean scrolled screenshot couldn't be captured due to a preview-harness scroll quirk (scroll kept resetting), so the visual was verified via DOM/geometry rather than a screenshot — worth an eyeball before merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Reworked the home section into a carousel-style experience with keyboard navigation, swipe gestures, and dot/arrow controls.
    • Added active-slide visual feedback, including ambient glow and horizontal sliding tied to the current slide.
  • Enhancements
    • Updated slide content rendering for clearer, consistent presentation and refreshed in-view animations for feature items.
    • Simplified the bottom call-to-action area to a single, uniform link per slide.

Replace the desktop scroll-jacking + mobile stacked layout of Hackatones /
Proyectos / Tecnologías with a single horizontal slider: 3 fixed-height slides
navigated by arrows, dot indicators, swipe (pointer) and ← / → keys. Reuses all
the section content (features, stats, TechMatrix, project marquee, floating
icons, animated counters). Drops the now-unused SectionPanel, Timeline and
TechChips helpers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
lacrypta-devReadyReadyPreview, CommentJul 2, 2026 12:08am

Request Review

@coderabbitai

coderabbitaiBot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bef9ea3c-fcdc-441e-921b-eb5501f0042c

📥 Commits

Reviewing files that changed from the base of the PR and between fdb80f8 and 516a1dd.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

📝 Walkthrough

Walkthrough

HomeScroll is converted from a scroll-driven sticky layout into an index-based carousel with keyboard, swipe, arrow, and dot navigation. Section content rendering is updated, the CTA row is simplified, and some section data and sizing values change.

Changes

HomeScroll Carousel Refactor

Layer / File(s)Summary
Imports and carousel navigation state
components/sections/HomeScroll.tsx
framer-motion imports are updated and HomeScroll is reworked into an index-driven carousel with keyboard, swipe, arrow, and dot navigation.
Section data and matrix sizing
components/sections/HomeScroll.tsx
The hackathons stat value changes to 50 with a plus suffix, and the TechMatrix container height uses a 38vh-based sizing range with min and max constraints.
SlidePanel content and CTA rendering
components/sections/HomeScroll.tsx
SlidePanel content rendering is updated with viewport-based animations, and the bottom CTA is replaced with a single unified Link CTA row.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
participant User
participant HomeScroll
participant SlidePanel
User->>HomeScroll: keyboard, swipe, arrow, or dot input
HomeScroll->>HomeScroll: go(index) updates bounded index state
HomeScroll->>SlidePanel: render active section via translated track
SlidePanel-->>User: display section content
Loading

Possibly related PRs

  • lacrypta/lacrypta-dev#2: Directly modifies the same HomeScroll.tsx scroll-driven implementation later replaced by this PR's carousel rework.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly describes the main change: converting the home section into a horizontal slider for Hackatones, Proyectos, and Tecnologías.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/home-sections-horizontal-slider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@components/sections/HomeScroll.tsx`:
- Around line 195-204: Inactive slides in HomeScroll are only marked with
aria-hidden, so their nested CTA Link remains keyboard-focusable. Update the
SECTIONS.map render in HomeScroll so the offscreen slide wrapper also receives
inert when i !== index, keeping inactive SlidePanel content out of both the
accessibility tree and tab order while preserving the existing aria-hidden
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65464be9-33da-4a9b-bcae-40e5a1e2d367

📥 Commits

Reviewing files that changed from the base of the PR and between 6437f31 and fdb80f8.

📒 Files selected for processing (1)
  • components/sections/HomeScroll.tsx

Comment threadcomponents/sections/HomeScroll.tsx
… slide
Remove the FloatingTechIcons overlay (Lightning/Nostr/NWC icons + connecting
lines + ambient glow) that sat behind the Hackatones slide and cluttered the
content. Deletes the now-unused component and its type.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump the Hackatones-slide stat from 48 to 50 with a "+" suffix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The TechMatrix was a fixed 460/520px which, with the title + description + CTA,
overflowed the 86vh slide and got cropped top/bottom by the centered
overflow-hidden panel. Make the matrix viewport-relative (38vh, clamped
280–440px) and tighten the description/matrix margins so the whole slide fits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR review: offscreen slides were only aria-hidden, leaving their CTA <Link>
in the tab order. Add `inert` (React 19 boolean) on inactive slides so they're
removed from both the accessibility tree and keyboard navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@agustinkassis
agustinkassis merged commit fdb3c6c into mainJul 2, 2026
1 of 3 checks passed
@agustinkassis
agustinkassis deleted the feat/home-sections-horizontal-slider branch July 2, 2026 00:08
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@agustinkassis