Skip to content

fix(portal): toolbar alignment, chart tooltip, and a dark-mode selection regression - #66

Merged
furqan-debug merged 6 commits into
mainfrom
fix/toolbar-grid-and-chart-tooltip
Sep 21, 2026
Merged

furqan-debug merged 6 commits into
mainfrom
fix/toolbar-grid-and-chart-tooltip

Conversation

@mhuzaifa2904

Copy link
Copy Markdown
Collaborator
  • The Timesheets toolbar rows couldn't line up. The date control plus buttons were one flex row; the member filter plus timezone were another. Each sized itself and right-aligned independently, with different gaps (gap-6 above, gap-4 below), so the boundary between the first and second item never matched between rows. They're four children of a two-column grid now, drawing their widths from the same track — the edges meet by construction rather than by matching numbers that drift.
  • The member filter keeps its own width, with ml-auto pinning it to the column's right edge, so it's narrower than the date control above and finishes where that finishes.
  • The selected member's name was white on white. A self-inflicted regression: making selected states invert so they'd show in dark mode turned that row near-white, while its contents kept the text-white written for the old bg-slate-900. Name, role and avatar initial now take the same inverting token as the row. Checked the three other files that got the inverted selection — none has the same problem.
  • The Time Distribution tooltip was unreadable. Hard-coded #ffffff with #000000 text: a light-mode tooltip that stayed white in dark mode. Recharts also colours the value after the slice it came from, so on a pale slice it was light text on a light card. All three styles take theme tokens now.
  • The "206h HOURS" centre label painted over the tooltip. It's an absolutely positioned sibling after the chart with no stacking order, so it drew on top and the two sets of text landed on each other. Tooltip z-50, overlay z-0.
  • The tooltip's value runs through formatDuration, so it reads 8h 01m rather than 481 — raw minutes meant nothing beside a ring labelled in hours.

Muhammad Huzaifa and others added 6 commits September 22, 2026 03:00
My own regression. The selected row used to be bg-slate-900, so its
contents were written as text-white. Making selected states invert — so
they could be seen in dark mode — turned the row near-white there, and the
name, role and avatar initial kept their hard-coded white.

They take the same inverting token as the row now, so they flip with it
instead of against it.

Checked the three other files that got the inverted selection: none has a
hard-coded white inside one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
It was hard-coded #ffffff with #000000 text — a light-mode tooltip that
stayed white in dark mode. Recharts also colours the value after the slice
it came from, so on a pale slice the number was light text on a light
card.

All three styles take theme tokens now: the card is the surface colour,
and the label and value are both forced to text-main rather than
inheriting the slice's. The other chart on this page already did this; the
donut was the one left behind.

The value also runs through formatDuration, so it reads "8h 01m" rather
than 481 — the raw minutes meant nothing next to a ring measured in hours.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The "206h HOURS" overlay sits in the middle of the ring as an absolutely
positioned sibling, after the chart in the DOM and with no stacking order
of its own — so it drew on top of the tooltip, and the two sets of text
landed on each other.

The tooltip gets z-50 and the overlay z-0, so the tooltip wins while it is
open.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The date control and the buttons were one flex row; the member filter and
the timezone were another. Each sized itself and right-aligned
independently, with different gaps — gap-6 above, gap-4 below — so the
boundary between the first and second item never lined up between the
rows.

They are four children of a two-column grid now. Both rows draw their
column widths from the same track, so the edges meet by construction
rather than by matching numbers that would drift the next time something
changed.

Nothing shrinks: the columns size to their content, and the member
filter's min-width still applies.

Below 900px it is a single column, as before.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Both items in the grid's first column carried min-[900px]:w-auto, so each
sized to its own content instead of taking the column. The date control
and the member filter came out different widths and their left edges
missed each other.

Both are w-full now, so they take the shared column — which is as wide as
the wider of the two, so neither gets smaller.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Filling the grid column stretched it to the width of the date control
above. It sizes to its own content again — a 220px minimum — and ml-auto
pushes it to the column's right edge, so it loses the width from the left
and still finishes where the date control finishes.

The date control keeps the full column, so the two right edges meet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
trackowl Ready Ready Preview Sep 21, 2026 11:05pm UTC

@furqan-debug furqan-debug left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

SAHI KARO ISSEY

@mhuzaifa2904

Copy link
Copy Markdown
Collaborator Author

SAHI KASAHI KARDI HAIN SARI JEEZAIN

@furqan-debug
furqan-debug merged commit c1a67d3 into main Sep 21, 2026
4 checks passed
Repository owner locked and limited conversation to collaborators Sep 21, 2026

@furqan-debug furqan-debug left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review has been completed

This branch was successfully deployed

2 active deployments
Preview – trackowl — d1b723d3 Deployed Sep 21, 2026 by vercel[bot]
Preview – trackowl-admin — d1b723d3 Deployed Sep 21, 2026 by vercel[bot]
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