Skip to content

add KHIX credits page#493

Open
cataladev wants to merge 1 commit into
mainfrom
khix/credits-page
Open

add KHIX credits page#493
cataladev wants to merge 1 commit 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 showcasing project contributors and disciplines.
    • Added a Credits link to the site navigation.
    • Added the Credits page to the sitemap for discoverability.
  • Style
    • Improved mobile navigation menu animation timing and staggering.
    • Added responsive visuals, 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

📝 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

Suggested labels: 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
🚥 Pre-merge checks | ✅ 7 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title describes the change but 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".
✅ Passed checks (7 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.
No Hardcoded Secrets ✅ Passed Scanned all touched files; no API keys, passwords, tokens, or secret-like literals were found. Only public URLs and contributor data appeared.
Validated Env Access ✅ Passed No raw process.env was added in the PR diff; the touched files contain no direct env access.
No Typescript Escape Hatches ✅ Passed No any, @ts-ignore, @ts-expect-error, or non-null assertions were found in the changed TS/TSX files; the new code uses explicit interfaces and typed arrays.
✨ 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 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

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.

2 participants