add KHIX credits page#493
Conversation
Co-authored-by: Codex <codex@openai.com>
📝 WalkthroughWalkthroughAdds a new ChangesCredits page feature
Estimated code review effort: 4 (Complex) | ~45 minutes Suggested labels: Suggested reviewers: 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
🚥 Pre-merge checks | ✅ 7 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (7 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (5)
apps/khix/src/app/_components/navbar/Navbar.module.cssapps/khix/src/app/_components/navbar/site-navigation.tsapps/khix/src/app/credits/page.module.cssapps/khix/src/app/credits/page.tsxapps/khix/src/app/sitemap.ts
| display: block; | ||
| width: 3.5rem; | ||
| height: 1px; | ||
| background: currentColor; |
There was a problem hiding this comment.
📐 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.
| 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
| @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); | ||
| } | ||
| } |
There was a problem hiding this comment.
📐 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
left a comment
There was a problem hiding this comment.
code changes LGTM
Why
credits for ix
What
credits for ix
Closes: #ISSUE_NUMBER
Test Plan
Checklist
pnpm db:generateand committed the generated files inpackages/db/drizzle/Summary by CodeRabbit