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

The Last Push for Mobile Fixes (Maybe) - #233

Merged
IanRohrbacher merged 12 commits into
developmentfrom
mobile-fix
May 4, 2026
Merged

The Last Push for Mobile Fixes (Maybe)#233
IanRohrbacher merged 12 commits into
developmentfrom
mobile-fix

Conversation

@moonshadow2

@moonshadow2 moonshadow2 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Added a fixed “course composer” modal with dimmed backdrop and scrollable popout
    • Replaced the hamburger lines with a navbar image in the topbar
  • Style

    • Increased topbar height and adjusted global top offset for layout consistency
    • Improved mobile responsiveness and spacing across header, sidebar, tables, and view controls
    • Tighter navigation typography, icon sizing, and better text truncation on small screens

@coderabbitai

coderabbitai Bot commented Apr 29, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Replaces the Topbar hamburger lines with a single navbar image and updates multiple CSS files to increase the topbar height to 80px and add/adjust responsive rules for mobile sidebar behavior, navigation spacing, view headers, user table layout, and a new course-composer modal overlay.

Changes

Cohort / File(s) Summary
Topbar component
rocky-interface/src/lib/components/Topbar.svelte
Replaces three <span> hamburger lines with a single /navbar.svg <img> for the closed menu and removes stray whitespace in the class="hamburger-icon" markup.
Topbar & mobile layout styles
rocky-interface/src/lib/styles/components/components.css, rocky-interface/src/lib/styles/foundation/tokens.css
Increases topbar height token to 80px; adjusts .topbar positioning/padding; updates mobile .sidebar backdrop/inset to 80px; enables sidebar overflow-y auto; tightens nav spacing; adds fixed course-composer overlay and dimmer.
Sidebar module styles
rocky-interface/src/lib/styles/components/modules/sidebar.css
Tweaks .nav-link padding and font-size, and adds a mobile breakpoint to reduce padding and restore base font size.
View structure responsiveness
rocky-interface/src/lib/styles/layout/modules/view-structure.css
Adds max-width: 768px media query: header wraps, heading sizes reduced, actions allowed to shrink, and view buttons get smaller padding/font-size.
Users table responsiveness
rocky-interface/src/lib/styles/routes/modules/users-view.css
Changes .users-col-id width from 20%→30%; for max-width:768px enables horizontal scrolling, fixes table layout/min-width, sets explicit column widths, and applies text truncation (ellipsis) for headers/cells.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Poem

🐇 I nibble lines and swap them for one,
A navbar sprite beneath the sun,
I stretch the topbar, make layouts bend,
Scroll and popouts dance and blend—
Hoppity hop, the UI's done!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is vague and non-descriptive, using uncertain language ('Maybe') that doesn't clearly convey what mobile fixes are being implemented. Replace with a specific title describing the main changes, such as 'Increase topbar height to 80px and improve mobile layout responsiveness' or 'Fix mobile sidebar and layout spacing issues'.
✅ Passed checks (4 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.

✏️ 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 mobile-fix

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 60 minutes.

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.

🧹 Nitpick comments (1)
rocky-interface/src/lib/components/Topbar.svelte (1)

15-17: ⚡ Quick win

Use consistent icon classing across both render branches.

Line 15 and Line 17 render alternative icons but only one has hamburger-icon. Keep both branches consistent to avoid styling drift.

Proposed patch
 			{`#if` isHamburgerDay}
 				<img src="/hamburger.svg" alt="Menu" class="hamburger-icon"/>
 			{:else}
-				<img src="/navbar.svg" alt="Menu"/>
+				<img src="/navbar.svg" alt="Menu" class="hamburger-icon"/>
 			{/if}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@rocky-interface/src/lib/components/Topbar.svelte` around lines 15 - 17, In
Topbar.svelte ensure both conditional branches render the icon with the same
class so styling is consistent: update the else-branch's <img> (the alternative
navbar icon) to include the same class attribute used on the hamburger icon
(hamburger-icon) so both rendered <img> elements share identical classing and
avoid style drift.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@rocky-interface/src/lib/components/Topbar.svelte`:
- Around line 15-17: In Topbar.svelte ensure both conditional branches render
the icon with the same class so styling is consistent: update the else-branch's
<img> (the alternative navbar icon) to include the same class attribute used on
the hamburger icon (hamburger-icon) so both rendered <img> elements share
identical classing and avoid style drift.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cabc7094-897e-4764-8f53-97c0e8494f66

📥 Commits

Reviewing files that changed from the base of the PR and between 6f89e1f and d615548.

⛔ Files ignored due to path filters (1)
  • rocky-interface/static/navbar.svg is excluded by !**/*.svg
📒 Files selected for processing (4)
  • rocky-interface/src/lib/components/Topbar.svelte
  • rocky-interface/src/lib/styles/components/components.css
  • rocky-interface/src/lib/styles/layout/modules/view-structure.css
  • rocky-interface/src/lib/styles/routes/modules/users-view.css

@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.

🧹 Nitpick comments (3)
rocky-interface/src/lib/styles/components/components.css (3)

44-50: ⚡ Quick win

Desktop .ksu-logo positioning is fragile with position: absolute + left: 83%.

At medium desktop widths this can overlap/truncate adjacent branding. Let flex layout do the alignment (margin-left: auto) instead.

Suggested patch
 .ksu-logo {
-    height: 40px;
-    width: auto;
-    position: absolute;
-    left: 83%;
-    transform: translateX(-0%);
+    height: 40px;
+    width: auto;
+    margin-left: auto;
 }
🤖 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 44 -
50, The .ksu-logo rule uses fragile absolute positioning (position: absolute;
left: 83%; transform: translateX(-0%)) which causes overlap at medium desktop
widths; update the .ksu-logo selector to remove position, left and transform and
let the flex container handle alignment by using margin-left: auto so the logo
is pushed to the right without overlapping adjacent branding (adjust the parent
to display: flex if not already).

145-148: ⚡ Quick win

Use --size-topbar-height instead of hardcoded 80px in mobile sidebar offsets.

This avoids drift if topbar height changes again.

Suggested patch
 `@media` (max-width: 768px) {
 	.sidebar {
 		position: fixed;
-		top: 80px;
+		top: var(--size-topbar-height);
 		left: 0;
-		height: calc(100% - 80px);
+		height: calc(100% - var(--size-topbar-height));
 		transform: translateX(-100%);
 		transition: transform 0.25s ease;
 		z-index: 200;
@@
 `@media` (max-width: 768px) {
 	.sidebar-backdrop {
 		display: block;
 		position: fixed;
-		inset: 80px 0 0 0;
+		inset: var(--size-topbar-height) 0 0 0;
 		background: rgba(0, 0, 0, 0.4);
 		z-index: 199;
 	}
 }

Also applies to: 168-168

🤖 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 145 -
148, Replace the hardcoded 80px offsets used for the mobile sidebar (the top:
80px; and height: calc(100% - 80px); occurrences) with the CSS variable
--size-topbar-height (e.g., top: var(--size-topbar-height); height: calc(100% -
var(--size-topbar-height));) so the sidebar moves automatically if the topbar
height changes; update both occurrences mentioned in the diff.

102-115: 🏗️ Heavy lift

nav-link styling is split across two stylesheets with divergent values.

rocky-interface/src/lib/styles/components/components.css and rocky-interface/src/lib/styles/components/modules/sidebar.css both define .nav-link differently, which makes final rendering import-order dependent. Consider consolidating ownership to one file to prevent regressions.

🤖 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 102 -
115, Two different stylesheets both define the .nav-link rule with conflicting
values, causing order-dependent rendering; pick a single source-of-truth
stylesheet to own .nav-link, move the canonical rule there (keep the intended
properties like padding, font-size, font-weight, transition, border-left),
remove the duplicate .nav-link rule from the other stylesheet, and if any
differences are intentional extract the varying parts into a clearly named
modifier class (e.g., .nav-link--alt) or CSS custom properties so overrides are
explicit and stable.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@rocky-interface/src/lib/styles/components/components.css`:
- Around line 44-50: The .ksu-logo rule uses fragile absolute positioning
(position: absolute; left: 83%; transform: translateX(-0%)) which causes overlap
at medium desktop widths; update the .ksu-logo selector to remove position, left
and transform and let the flex container handle alignment by using margin-left:
auto so the logo is pushed to the right without overlapping adjacent branding
(adjust the parent to display: flex if not already).
- Around line 145-148: Replace the hardcoded 80px offsets used for the mobile
sidebar (the top: 80px; and height: calc(100% - 80px); occurrences) with the CSS
variable --size-topbar-height (e.g., top: var(--size-topbar-height); height:
calc(100% - var(--size-topbar-height));) so the sidebar moves automatically if
the topbar height changes; update both occurrences mentioned in the diff.
- Around line 102-115: Two different stylesheets both define the .nav-link rule
with conflicting values, causing order-dependent rendering; pick a single
source-of-truth stylesheet to own .nav-link, move the canonical rule there (keep
the intended properties like padding, font-size, font-weight, transition,
border-left), remove the duplicate .nav-link rule from the other stylesheet, and
if any differences are intentional extract the varying parts into a clearly
named modifier class (e.g., .nav-link--alt) or CSS custom properties so
overrides are explicit and stable.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 79b011c1-e9f0-4dd9-b8fe-a1358360a325

📥 Commits

Reviewing files that changed from the base of the PR and between d615548 and ab65123.

📒 Files selected for processing (4)
  • rocky-interface/src/lib/styles/components/components.css
  • rocky-interface/src/lib/styles/components/modules/sidebar.css
  • rocky-interface/src/lib/styles/foundation/tokens.css
  • rocky-interface/src/lib/styles/routes/modules/users-view.css
✅ Files skipped from review due to trivial changes (1)
  • rocky-interface/src/lib/styles/foundation/tokens.css
🚧 Files skipped from review as they are similar to previous changes (1)
  • rocky-interface/src/lib/styles/routes/modules/users-view.css

@IanRohrbacher
IanRohrbacher merged commit a425f00 into development May 4, 2026
9 checks passed
@IanRohrbacher
IanRohrbacher deleted the mobile-fix branch May 4, 2026 14:54
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