Skip to content

add KHIX credits page#493

Merged
groffbo merged 3 commits into
mainfrom
khix/credits-page
Jul 15, 2026
Merged

add KHIX credits page#493
groffbo merged 3 commits into
mainfrom
khix/credits-page

Conversation

@cataladev

@cataladev cataladev commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Why

credits for ix

What

credits for ix

Closes: #ISSUE_NUMBER

Test Plan

Checklist

  • Database: No schema changes, OR I ran pnpm db:generate and committed the generated files in packages/db/drizzle/
  • Environment Variables: No environment variables changed, OR I have contacted the Development Lead to modify them on Coolify BEFORE merging.

Summary by CodeRabbit

  • New Features
    • Added a dedicated Credits page with contributor disciplines and a themed, animated layout.
    • Added a “Credits” item to the site navigation.
    • Included the Credits page in the sitemap for improved discoverability.
  • Bug Fixes
    • Improved internal anchor link handling for hash-based navigation.
  • Style
    • Enhanced mobile menu open-state animation timing and staggering.
    • Added responsive visuals, entrance/glow animations, and reduced-motion support to the Credits page.

Co-authored-by: Codex <codex@openai.com>
@cataladev cataladev requested a review from groffbo July 12, 2026 23:00
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: b1ad0271-5eda-4fc2-9aaf-7d902d43a0a7

📥 Commits

Reviewing files that changed from the base of the PR and between cbab8ae and e160d99.

📒 Files selected for processing (2)
  • apps/khix/src/app/credits/page.module.css
  • apps/khix/src/app/credits/page.tsx
🚧 Files skipped from review as they are similar to previous changes (2)
  • apps/khix/src/app/credits/page.tsx
  • apps/khix/src/app/credits/page.module.css

📝 Walkthrough

Walkthrough

Adds a new /credits route with contributor content, responsive visual styling, navigation access, sitemap registration, and updated mobile menu animation timing.

Changes

Credits page feature

Layer / File(s) Summary
Navigation and sitemap wiring
apps/khix/src/app/_components/navbar/site-navigation.ts, apps/khix/src/app/_components/navbar/Navbar.module.css, apps/khix/src/app/sitemap.ts
Adds the Credits navigation item, generalizes hash-link rewriting, adjusts mobile menu staggering, and registers /credits in the sitemap.
Credits route and content
apps/khix/src/app/credits/page.tsx
Defines route metadata, typed contributor groups, hero content, contributor links, closing navigation, and footer rendering.
Responsive credits presentation
apps/khix/src/app/credits/page.module.css
Adds page styling, decorative backgrounds, animations, responsive layouts, interactive states, and reduced-motion overrides.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

  • KnightHacks/forge#481: Adds the navbar component and types used by the navigation and mobile menu changes.

Suggested labels: Hack Sites, Feature

Suggested reviewers: groffbo

Sequence Diagram(s)

sequenceDiagram
  participant Visitor
  participant Navbar
  participant CreditsPage
  participant CREDIT_GROUPS
  participant Footer
  Visitor->>Navbar: Select Credits
  Navbar->>CreditsPage: Navigate to /credits
  CreditsPage->>CREDIT_GROUPS: Read contributor groups
  CREDIT_GROUPS-->>CreditsPage: Return grouped contributor data
  CreditsPage->>Footer: Render page footer
  CreditsPage-->>Visitor: Render hero and credits list
Loading

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title matches the change, but it does not start with an issue number in brackets as required. Prefix the title with the issue number, e.g. "[#123] Add KHIX credits page", and keep it under 72 characters.
No Hardcoded Secrets ❓ Inconclusive placeholder Need repo evidence before deciding.
✅ Passed checks (6 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Validated Env Access ✅ Passed No raw process.env appears in the KHIX PR files; the only env access is in apps/khix/src/env.ts, which is the allowed validated env config.
No Typescript Escape Hatches ✅ Passed Scanned the touched TS/TSX files and found no any, @ts-ignore, @ts-expect-error, or postfix ! escape hatches.
✨ 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 khix/credits-page

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.

coderabbitai[bot]
coderabbitai Bot previously requested changes Jul 12, 2026

@coderabbitai coderabbitai Bot 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: 2

🤖 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 `@apps/khix/src/app/credits/page.module.css`:
- Line 230: Update the background declaration in the affected credits page
stylesheet to use the lowercase CSS keyword currentcolor, preserving the
existing styling while satisfying Stylelint’s value-keyword-case rule.
- Around line 485-531: Rename the keyframes copyEntrance, lennyEntrance,
lennyFloat, and glowBreathe to kebab-case names in page.module.css, then update
every corresponding animation reference, including the usages near lines 112,
118, 172, and 194. Preserve each animation’s existing timing and 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: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 44bb0a2c-f252-4ffa-b66d-ed8a8417faa0

📥 Commits

Reviewing files that changed from the base of the PR and between ca70f5f and cbab8ae.

📒 Files selected for processing (5)
  • apps/khix/src/app/_components/navbar/Navbar.module.css
  • apps/khix/src/app/_components/navbar/site-navigation.ts
  • apps/khix/src/app/credits/page.module.css
  • apps/khix/src/app/credits/page.tsx
  • apps/khix/src/app/sitemap.ts

display: block;
width: 3.5rem;
height: 1px;
background: currentColor;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Lowercase currentcolor to clear the Stylelint value-keyword-case error. Small change, but it unblocks the lint gate.

🎨 Proposed fix
-  background: currentColor;
+  background: currentcolor;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
background: currentColor;
background: currentcolor;
🧰 Tools
🪛 Stylelint (17.14.0)

[error] 230-230: Expected "currentColor" to be "currentcolor" (value-keyword-case)

(value-keyword-case)

🤖 Prompt for 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.

In `@apps/khix/src/app/credits/page.module.css` at line 230, Update the background
declaration in the affected credits page stylesheet to use the lowercase CSS
keyword currentcolor, preserving the existing styling while satisfying
Stylelint’s value-keyword-case rule.

Source: Linters/SAST tools

Comment on lines +485 to +531
@keyframes copyEntrance {
from {
opacity: 0;
transform: translate3d(0, 1.5rem, 0);
}

to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}

@keyframes lennyEntrance {
from {
opacity: 0;
transform: translate3d(0, 2.5rem, 0) scale(0.96);
}

to {
opacity: 1;
transform: translate3d(0, 0, 0) scale(1);
}
}

@keyframes lennyFloat {
0%,
100% {
transform: translate3d(0, 0, 0) rotate(-0.4deg);
}

50% {
transform: translate3d(0, -0.65rem, 0) rotate(0.5deg);
}
}

@keyframes glowBreathe {
0%,
100% {
opacity: 0.72;
transform: scale(0.96);
}

50% {
opacity: 1;
transform: scale(1.04);
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Keyframe names must be kebab-case to satisfy Stylelint. Stylelint's keyframes-name-pattern flags copyEntrance, lennyEntrance, lennyFloat, and glowBreathe, so the pipeline will fail. Renaming requires updating the animation references too (lines 112, 118, 172, 194).

🎨 Proposed fix (definitions + references)

Definitions:

-@keyframes copyEntrance {
+@keyframes copy-entrance {
-@keyframes lennyEntrance {
+@keyframes lenny-entrance {
-@keyframes lennyFloat {
+@keyframes lenny-float {
-@keyframes glowBreathe {
+@keyframes glow-breathe {

References (outside the selected range):

-  animation: glowBreathe 5s ease-in-out infinite;
+  animation: glow-breathe 5s ease-in-out infinite;
-  animation: copyEntrance 760ms cubic-bezier(0.18, 0.7, 0.2, 1) 100ms both;
+  animation: copy-entrance 760ms cubic-bezier(0.18, 0.7, 0.2, 1) 100ms both;
-  animation: lennyEntrance 900ms cubic-bezier(0.18, 0.7, 0.2, 1) 300ms both;
+  animation: lenny-entrance 900ms cubic-bezier(0.18, 0.7, 0.2, 1) 300ms both;
-  animation: lennyFloat 4.8s ease-in-out infinite;
+  animation: lenny-float 4.8s ease-in-out infinite;
🧰 Tools
🪛 Stylelint (17.14.0)

[error] 485-485: Expected keyframe name "copyEntrance" to be kebab-case (keyframes-name-pattern)

(keyframes-name-pattern)


[error] 497-497: Expected keyframe name "lennyEntrance" to be kebab-case (keyframes-name-pattern)

(keyframes-name-pattern)


[error] 509-509: Expected keyframe name "lennyFloat" to be kebab-case (keyframes-name-pattern)

(keyframes-name-pattern)


[error] 520-520: Expected keyframe name "glowBreathe" to be kebab-case (keyframes-name-pattern)

(keyframes-name-pattern)

🤖 Prompt for 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.

In `@apps/khix/src/app/credits/page.module.css` around lines 485 - 531, Rename the
keyframes copyEntrance, lennyEntrance, lennyFloat, and glowBreathe to kebab-case
names in page.module.css, then update every corresponding animation reference,
including the usages near lines 112, 118, 172, and 194. Preserve each
animation’s existing timing and behavior.

Sources: Coding guidelines, Linters/SAST tools

@alexanderpaolini alexanderpaolini left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

code changes LGTM

@groffbo

groffbo commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Subheader for "Credits" should instead be "Meet the artists and designers who shaped the world of Knight Hacks IX."

On mobile devices, Lenny is halfway off of the screen.
image

@groffbo groffbo enabled auto-merge July 15, 2026 02:25
@groffbo groffbo dismissed coderabbitai[bot]’s stale review July 15, 2026 02:27

placeholder check; disregarding

@groffbo groffbo added this pull request to the merge queue Jul 15, 2026
Merged via the queue into main with commit 0aa390a Jul 15, 2026
11 checks passed
@groffbo groffbo deleted the khix/credits-page branch July 15, 2026 02:27
Sign up for free to 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.

3 participants