Skip to content

fix: stop header overlap on narrow screens and prioritise chapter title - #1567

Merged
BenjaminMichaelis merged 1 commit into
mainfrom
fix/responsive-header-layout
Oct 26, 2026
Merged

BenjaminMichaelis merged 1 commit into
mainfrom
fix/responsive-header-layout

Conversation

@BenjaminMichaelis

Copy link
Copy Markdown
Member

Problem

On narrow screens (e.g. 723px wide) the header's brand text, chapter status and login greeting overlapped, and the progress percentage was clipped.

Changes

  • Overlap: the brand group no longer shrinks, so it can't spill over the status area.
  • Chapter title first: the title truncates with an ellipsis and is hidden only when its box is too narrow to read (container query), instead of a fixed breakpoint.
  • Progress: the NN% text is replaced by a thin progress bar on a faint full-width track along the header's bottom edge, with a hover tooltip (5% complete) and role="progressbar". The track keeps it from reading as a page-load bar.
  • Feedback: icon-only below lg, full pill with the label from lg up, and the label stays on one line.
  • Greeting: long usernames truncate with an ellipsis and stay aligned with Logout.

Testing

Checked manually against the real app (SQL Server in a container) with a ~40-character username at 375, 723, 800, 900, 1000, 1100 and 1500px, logged in and out. No automated tests cover this layout.

Known, not changed here: at ~375-723px the floating AI chat button overlaps the right end of "Logout".

Note

wwwroot/dist is gitignored, so the front end needs npm run build after pulling (HeaderStatus.vue changed).

- Keep the brand group from shrinking so it no longer overlaps the status area.
- Truncate the chapter title with an ellipsis, and hide it only when its box is too narrow to read.
- Replace the "NN%" text with a thin progress bar on a faint track along the header bottom edge, with a hover tooltip and progressbar semantics.
- Show the Feedback button as an icon until lg, and keep its label on one line.
- Truncate long usernames in the header greeting and align it with Logout.

Copilot AI 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.

🟡 Changes recommended

Navigation becomes unavailable at 992–1399px, and the progress track does not span the full header as intended.

1 open issue
What changed in this PR

This pull request improves the responsive header layout to prevent overlap on narrow screens while preserving chapter context, account controls, feedback access, and progress visibility.

Changes:

  • Prevents branding and long usernames from causing header overlap.
  • Adds responsive chapter-title truncation and hiding behavior.
  • Replaces the progress percentage with an accessible progress bar and tooltip.
  • Adjusts navigation and feedback control breakpoints.
File Description
EssentialCSharp.Web/​wwwroot/​css/​styles.css Adds responsive sizing, truncation, container-query behavior, username limits, and progress-track styling.
EssentialCSharp.Web/​Views/​Shared/​_Layout.cshtml Updates responsive navigation and feedback controls.
EssentialCSharp.Web/​src/​components/​HeaderStatus.vue Implements the accessible progress bar and completion tooltip.

Review effort: Lite

Comment on lines +323 to +327
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 3px;
@BenjaminMichaelis
BenjaminMichaelis merged commit d22373b into main Oct 26, 2026
22 checks passed
@BenjaminMichaelis
BenjaminMichaelis deleted the fix/responsive-header-layout branch October 26, 2026 20:34
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