Skip to content
This repository was archived by the owner on May 7, 2026. It is now read-only.

Credits page, and topbar change - #236

Merged
IanRohrbacher merged 4 commits into
developmentfrom
Credit-page,-Topbar-change
May 4, 2026
Merged

Credits page, and topbar change#236
IanRohrbacher merged 4 commits into
developmentfrom
Credit-page,-Topbar-change

Conversation

@ISmaglinski

@ISmaglinski ISmaglinski commented May 4, 2026

Copy link
Copy Markdown
Contributor

Made the credits page still needs update with peoples contribution or titles however we want it, and made the topbar a bit bigger to 90px

Summary by CodeRabbit

Release Notes

  • New Features

    • Added a new Credits page showcasing project team and asset credits with an interactive rolling credits feature (toggle with "g" key or button).
    • Added Credits link to the login page footer.
  • Style

    • Enhanced topbar branding with larger logo sizes and refined spacing.
    • Updated topbar border thickness for improved visual prominence.
    • Improved login footer layout for better responsiveness and content alignment.

Made the credits page still needs update with peoples contribution or titles however we want it, and made the topbar a bit bigger to 90px
@coderabbitai

coderabbitai Bot commented May 4, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@IanRohrbacher has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 54 minutes and 18 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 266da3d4-78ff-4972-94c9-386d7647bab1

📥 Commits

Reviewing files that changed from the base of the PR and between 6453b67 and b32bf2b.

📒 Files selected for processing (1)
  • rocky-interface/src/lib/styles/components/components.css
📝 Walkthrough

Walkthrough

PR adds a new credits page with rolling animation capability, resizes topbar branding elements and increases spacing, restructures login footer layout with flexbox, and adds a credits link to the login page footer.

Changes

Topbar Visual Refinement

Layer / File(s) Summary
Spacing & Border Updates
rocky-interface/src/lib/styles/components/components.css, rocky-interface/src/lib/styles/components/modules/topbar.css
.topbar horizontal padding increased to var(--space-3xl), gap raised to var(--space-lg), and bottom border thickened to 4px.
Logo & Typography Sizing
rocky-interface/src/lib/styles/components/components.css, rocky-interface/src/lib/styles/components/modules/topbar.css
.brand-logo height increased to 56px, .brand-name set to font-size: 28px, .brand-sub font-size raised to var(--font-size-sm), and .ksu-logo height increased to 56px with adjusted positioning (left: 85%, transform: translateY(-4px)).
Mobile Responsive Adjustments
rocky-interface/src/lib/styles/components/components.css, rocky-interface/src/lib/styles/components/modules/topbar.css
Media query overrides reduce logo heights and font sizes for small screens; .topbar padding set to var(--space-lg) and .hamburger explicitly enabled for mobile.
Syntax Correction
rocky-interface/src/lib/styles/components/components.css
.color-apply-message closing brace placement corrected.

Credits Feature Addition

Layer / File(s) Summary
Credits View Styling
rocky-interface/src/lib/styles/routes/modules/credits-view.css
Complete new stylesheet defining credits page layout: centered grid container with full-height viewport, layered backgrounds with blurred overlays, gradient glow elements, credit card components with hover transitions and accent bars, rolling animation keyframes, and responsive mobile adjustments.
Credits Page Component
rocky-interface/src/routes/credits/+page.svelte
New SvelteKit page with hardcoded team and asset credit data; implements rolling animation controlled by keyboard ("g" key) or footer button; computes credit initials, applies gold variant styling, and includes conditional Kent State external link.
Login Integration
rocky-interface/src/lib/styles/routes/modules/login-view.css, rocky-interface/src/routes/login/+page.svelte
.login-footer converted from right-aligned text to flexbox layout (display: flex, justify-content: space-between, gap: 16px) with responsive mobile stack; adds /credits link to login footer.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Poem

🐰 A topbar grows taller, logos dance in place, ✨
Credits roll down the screen at graceful pace,
Login now links to stories of the team,
Spring scrolls like film in a beautiful dream,
The interface gleams with renewed flair! 🌟

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the two main changes: adding a credits page and modifying the topbar.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch Credit-page,-Topbar-change

Warning

Review ran into problems

🔥 Problems

Timed out fetching pipeline failures after 30000ms


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
Review rate limit: 0/1 reviews remaining, refill in 54 minutes and 18 seconds.

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

@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: 1

🧹 Nitpick comments (2)
rocky-interface/src/routes/credits/+page.svelte (2)

5-9: ⚡ Quick win

Add an optional url field to the Credit type instead of hard-coding a name check.

The template currently determines whether to render a link by comparing credit.name to the string 'Kent State University' (line 114). This is fragile: a name change silently drops the link, and adding a URL to any future asset credit requires modifying the template rather than just the data.

♻️ Proposed refactor
 type Credit = {
     name: string;
     title: string;
     variant?: 'navy' | 'gold';
+    url?: string;
 };
 const assetCredits: Credit[] = [
     {
         name: 'Kent State University',
         title: 'Main login image and Kent State logo',
         variant: 'gold',
+        url: 'https://www.kent.edu/'
     },
     { name: 'Archie Horne', title: 'Profile pictures and Rocky logo', variant: 'navy' }
 ];
-    {`#if` credit.name === 'Kent State University'}
-        <a href="https://www.kent.edu/">kent.edu</a>
-    {/if}
+    {`#if` credit.url}
+        <a href={credit.url}>{credit.url.replace(/^https?:\/\//, '').replace(/\/$/, '')}</a>
+    {/if}

Also applies to: 24-31, 114-116

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@rocky-interface/src/routes/credits/`+page.svelte around lines 5 - 9, The
Credit type currently lacks a url field and the template uses a brittle string
check on credit.name to decide whether to render an anchor; add an optional
url?: string to the Credit type (type Credit) and update the template rendering
logic (where it checks credit.name === 'Kent State University') to instead
render an <a> when credit.url is present (using credit.url as href) and fallback
to plain text when absent; update any data fixtures/arrays that should be links
to include the url property.

85-85: 💤 Low value

aria-live="polite" on .credits-stage is effectively inert.

The live region fires when DOM mutations occur inside the element. However, toggling isRolling only adds/removes the credits-rolling class on the ancestor .credits-shell — no content inside .credits-stage changes. Screen readers will never receive an announcement for the roll state change from this attribute.

If the intent is to announce the rolling state to AT users, a dedicated visually-hidden status element updated alongside isRolling would work:

- <div class="credits-stage" aria-live="polite">
+ <div class="credits-stage">
+ <span class="sr-only" aria-live="polite" aria-atomic="true">
+   {isRolling ? 'Credits are rolling.' : ''}
+ </span>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@rocky-interface/src/routes/credits/`+page.svelte at line 85, The
.credits-stage element uses aria-live="polite" but nothing inside it changes
when isRolling toggles (only the ancestor .credits-shell class changes), so
screen readers won't be notified; add a dedicated, visually-hidden status node
(e.g., a span with role="status" or aria-live="polite") inside the component and
update its text whenever the isRolling state changes (update the same reactive
block or handler that toggles isRolling), ensuring the element is visually
hidden but present in the DOM so AT can announce "rolling" / "paused" (reference
isRolling, .credits-stage and .credits-shell to locate where to insert and
update the status node).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@rocky-interface/src/lib/styles/routes/modules/credits-view.css`:
- Around line 392-398: The reduced-motion rule currently sets
animation-duration: 1ms on .credit-card and .credits-rolling .credits-list
which, combined with the credits-roll animation's forwards fill-mode, snaps
elements to the final (off-screen) state; change the rule to disable animations
entirely for these selectors by using animation: none (and keep transition:
none) so decorative credit-roll animations are removed for
prefers-reduced-motion users instead of forcing a near-zero duration that jumps
to translateY(-106%); update the selectors .credit-card and .credits-rolling
.credits-list in the prefers-reduced-motion block accordingly.

---

Nitpick comments:
In `@rocky-interface/src/routes/credits/`+page.svelte:
- Around line 5-9: The Credit type currently lacks a url field and the template
uses a brittle string check on credit.name to decide whether to render an
anchor; add an optional url?: string to the Credit type (type Credit) and update
the template rendering logic (where it checks credit.name === 'Kent State
University') to instead render an <a> when credit.url is present (using
credit.url as href) and fallback to plain text when absent; update any data
fixtures/arrays that should be links to include the url property.
- Line 85: The .credits-stage element uses aria-live="polite" but nothing inside
it changes when isRolling toggles (only the ancestor .credits-shell class
changes), so screen readers won't be notified; add a dedicated, visually-hidden
status node (e.g., a span with role="status" or aria-live="polite") inside the
component and update its text whenever the isRolling state changes (update the
same reactive block or handler that toggles isRolling), ensuring the element is
visually hidden but present in the DOM so AT can announce "rolling" / "paused"
(reference isRolling, .credits-stage and .credits-shell to locate where to
insert and update the status node).
🪄 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: 9b01a547-4bdb-4c38-bc17-6977ccf0ca96

📥 Commits

Reviewing files that changed from the base of the PR and between c78dcd5 and cb3b4c5.

📒 Files selected for processing (7)
  • rocky-interface/src/lib/styles/components/components.css
  • rocky-interface/src/lib/styles/components/modules/topbar.css
  • rocky-interface/src/lib/styles/foundation/tokens.css
  • rocky-interface/src/lib/styles/routes/modules/credits-view.css
  • rocky-interface/src/lib/styles/routes/modules/login-view.css
  • rocky-interface/src/routes/credits/+page.svelte
  • rocky-interface/src/routes/login/+page.svelte

Comment on lines +392 to +398
@media (prefers-reduced-motion: reduce) {
.credit-card,
.credits-rolling .credits-list {
transition: none;
animation-duration: 1ms;
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

animation-duration: 1ms with forwards fill-mode silently pushes all credits off-screen for reduced-motion users.

Because credits-roll uses animation-fill-mode: forwards (via the 34s linear forwards shorthand on line 379), setting animation-duration: 1ms causes the element to immediately jump to the end state — translateY(-106%) — putting all content above the viewport. A user who has reduced motion enabled and clicks "Roll Credits" will see every credit card disappear with no visible motion, and the page looks blank until they click "Reset Credits".

When setting an animation's duration to 0 (or near-zero) with animation-fill-mode: forwards, the element snaps to the final keyframe state, so the default state of that element must be considered manually. Since this code has no animationend listener, using animation: none is safe and is the correct fix. Most decorative effects such as slides and parallax can simply be removed for people who prefer reduced motion.

🛡️ Proposed fix
 `@media` (prefers-reduced-motion: reduce) {
-    .credit-card,
-    .credits-rolling .credits-list {
-        transition: none;
-        animation-duration: 1ms;
-    }
+    .credit-card {
+        transition: none;
+    }
+
+    .credits-rolling .credits-list {
+        animation: none;
+    }
 }
📝 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
@media (prefers-reduced-motion: reduce) {
.credit-card,
.credits-rolling .credits-list {
transition: none;
animation-duration: 1ms;
}
}
`@media` (prefers-reduced-motion: reduce) {
.credit-card {
transition: none;
}
.credits-rolling .credits-list {
animation: none;
}
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@rocky-interface/src/lib/styles/routes/modules/credits-view.css` around lines
392 - 398, The reduced-motion rule currently sets animation-duration: 1ms on
.credit-card and .credits-rolling .credits-list which, combined with the
credits-roll animation's forwards fill-mode, snaps elements to the final
(off-screen) state; change the rule to disable animations entirely for these
selectors by using animation: none (and keep transition: none) so decorative
credit-roll animations are removed for prefers-reduced-motion users instead of
forcing a near-zero duration that jumps to translateY(-106%); update the
selectors .credit-card and .credits-rolling .credits-list in the
prefers-reduced-motion block accordingly.

@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: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
rocky-interface/src/lib/styles/components/components.css (1)

52-60: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Duplicate mobile media queries produce dead height: 28px on .ksu-logo

Two @media (max-width: 768px) blocks both target .ksu-logo. The block at lines 52–60 sets height: 28px (along with position: static, transform: none, etc.), but the block at lines 101–103 — appearing later in the cascade — sets height: 42px, silently overriding it. The height: 28px rule is effectively dead code.

Consolidate into a single mobile block for .ksu-logo:

🔧 Proposed fix — merge the two mobile rules
-/* Lines 52-60 */
 `@media` (max-width: 768px) {
     .ksu-logo {
-        height: 28px;
-        position: static;
-        transform: none;
-        margin-left: auto;
-        margin-right: var(--space-sm);
+        height: 42px;
+        position: static;
+        transform: none;
+        margin-left: auto;
+        margin-right: var(--space-sm);
     }
 }

-/* Lines 101-103 (in the second media block) — remove the duplicate */
-	.ksu-logo {
-		height: 42px;
-	}

Also applies to: 101-103

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@rocky-interface/src/lib/styles/components/components.css` around lines 52 -
60, There are two duplicate `@media` (max-width: 768px) rules targeting .ksu-logo
which leaves height: 28px dead because a later block sets height: 42px;
consolidate them by merging the properties for .ksu-logo into a single `@media`
(max-width: 768px) block (remove the duplicate block), ensure the final height
value is the intended one and include position, transform, and margin rules
together so the cascade/order no longer silently overrides height for .ksu-logo.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@rocky-interface/src/lib/styles/components/components.css`:
- Around line 44-50: The .ksu-logo rule uses position:absolute and left:85%
which removes it from the flex flow and causes overlap; change the rule for
.ksu-logo (in components.css) to participate in the topbar flex layout instead:
remove position:absolute and left, and rely on flex alignment (e.g., use
margin-left:auto on .ksu-logo or the existing topbar pattern) so the logo is
pushed to the right without breaking the layout; keep height (56px) and
width:auto and add align-self:center or appropriate vertical alignment if needed
to match .brand-text.

---

Outside diff comments:
In `@rocky-interface/src/lib/styles/components/components.css`:
- Around line 52-60: There are two duplicate `@media` (max-width: 768px) rules
targeting .ksu-logo which leaves height: 28px dead because a later block sets
height: 42px; consolidate them by merging the properties for .ksu-logo into a
single `@media` (max-width: 768px) block (remove the duplicate block), ensure the
final height value is the intended one and include position, transform, and
margin rules together so the cascade/order no longer silently overrides height
for .ksu-logo.
🪄 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: 93640d48-efd7-4c31-ae41-827a91ca640c

📥 Commits

Reviewing files that changed from the base of the PR and between cb3b4c5 and 6453b67.

📒 Files selected for processing (1)
  • rocky-interface/src/lib/styles/components/components.css

Comment thread rocky-interface/src/lib/styles/components/components.css
@IanRohrbacher
IanRohrbacher merged commit 0403da8 into development May 4, 2026
8 of 9 checks passed
@IanRohrbacher
IanRohrbacher deleted the Credit-page,-Topbar-change branch May 4, 2026 14:53
@coderabbitai coderabbitai Bot mentioned this pull request May 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants