Two modules, as a list that says what they are - #55
Merged
Merged
Conversation
Knowledge Library and College Essays come off the dashboard, behind flags that are off unless the environment says otherwise — so a missing variable hides a feature rather than shipping one nobody meant to ship. Neither module is touched; the dashboard simply offers no way in, and does not mount what it cannot open. The rest is vertical space, because the week strip was below the fold on load and it is the thing a student came to read. Four cards in two rows become two in one row, which is most of it. The colour band on a card drops from 90px to 46px: it is identification, not decoration, and at 90px each card spent more height on an emoji than on what it said. The fee-waiver notice keeps its full case inside the Applications module, where there is room for it and a reason to be reading it, and says one line on the dashboard. Fees run $50-$90 a school and waivers cover them: that is the part worth interrupting for. Counted from the CSS, what sits above the week strip goes from about 646px to about 325px with the notice showing. That is arithmetic on the rules, not a measurement of a rendered page, so it is the direction that is certain rather than the number.
Two modules in a grid of colour-banded cards left most of each card empty — a slab of orange, a slab of purple, an emoji floating in the middle — and told a student nothing about what either module was for. The only words were a two-word tagline, "Scholarship Hunt", which is decoration rather than an answer to "what is this and why would I open it". They are rows now, laid out the way the Knowledge Library lays out its own list: an emoji tile, the name, a sentence saying what the module does, and a way in. Colour still identifies a module, at the size of a mark rather than a band across the top of a card. The sentences are the point. Financial Aid finds scholarships you qualify for, tracks what you have applied to, and works out what a college will really cost. Application Tracking builds your list, keeps deadlines and requirements together, and shows where each application stands. Both were written for the two that ship; the hidden two have theirs for whenever they come back. The phone rule under this was setting grid columns on what is no longer a grid, so it did nothing. It now does what a phone actually needs: a smaller tile, less padding, and no "Open →" competing with the sentence when the whole row is already the control.
A module row said what the module was for and nothing about the student's own work in it. An empty tracker and one with six schools in it looked identical from outside. Each row now carries a line of its own state: "6 colleges · 2 submitted", "4 scholarships tracked". Both counts are already loaded for the deadline panel, so neither costs a query. An empty one says "No colleges on your list yet" rather than "0 colleges" — a student who has not started needs telling to start, not handing a zero. Submitted only appears once something has been, since "0 submitted" against every school reads as a scoreboard. The next deadline moves into that same line as plain text. It was a filled pill in the module's own colour sitting beside the title, which made the loudest thing on the row a date the panel two inches to its right already lists in full. It still opens the calendar. The logic came out into lib/moduleStatus as a pure function so it could be tested — the dashboard itself needs auth, toasts and two contexts to render, which is a lot of harness for three sentences of pluralisation.
Financial Aid and Application Tracking already began on Overview and Application Status. They just never went back there: both stay mounted while closed, holding the college list and their checklists, so the tab survived alongside the data. Someone who last glanced at Discover came back to Discover days later, with no memory of having gone there. Both now return to their opening tab when they reopen, and Application Tracking clears the school it had open inside Status too. Done by adjusting state on the open transition rather than in an effect, so the first paint is already the right tab — an effect would render the old one and correct it a frame later. Nothing opens either module aimed at a particular tab, so there is nothing for this to override: the one deep link into Application Tracking is the fee-waiver notice, whose guidance sits above the tabs and shows whichever one is up.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Deploying timeline-prototype with
|
| Latest commit: |
b3dced2
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://3237ba2c.timeline-prototype.pages.dev |
| Branch Preview URL: | https://ui-slim-home.timeline-prototype.pages.dev |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The home page showed four module cards above the fold and pushed the week ahead — the thing a student opens the app to see — below it.
Knowledge Library and College Essays come off the dashboard
Behind
VITE_FEATURE_KNOWLEDGE_LIBRARYandVITE_FEATURE_ESSAYS, both off unless the environment says"true", so a missing variable hides a feature rather than shipping one nobody meant to ship. Documented in.env.example, typed invite-env.d.ts.Neither module is touched. The dashboard offers no way in and doesn't mount what it can't open. Turning either back on is one line.
The cards became a list
Two modules in a grid of colour-banded cards left most of each card empty — a slab of orange, a slab of purple, an emoji floating in the middle — and said nothing about what either module was for. The only words were a two-word tagline, "Scholarship Hunt", which is decoration rather than an answer to "what is this and why would I open it".
They're rows now, laid out the way the Knowledge Library lays out its own list: emoji tile, name, a sentence saying what the module does, a way in. Colour still identifies a module, at the size of a mark rather than a band.
Blurbs are written for the two hidden modules too, ready for whenever they come back.
Each row says where you stand
An empty tracker and one with six schools in it looked identical from outside. Rows now carry their own state —
6 colleges · 2 submitted,4 scholarships tracked. Both counts are already loaded for the deadline panel, so neither costs a query.An empty one says "No colleges on your list yet" rather than "0 colleges": a student who hasn't started needs telling to start, not handing a zero. Submitted appears only once something has been, since "0 submitted" against every school reads as a scoreboard.
The next deadline moved into that same line as plain text. It was a filled pill in the module's own colour beside the title — the loudest thing on the row, for a date the Overview panel two inches to its right already lists in full. It still opens the calendar.
That logic came out into
lib/moduleStatus.tsas a pure function so it could be tested; rendering the Dashboard needs auth, toasts and two contexts, which is a lot of harness for three sentences of pluralisation.Getting the week onto the first screen
Counted from the CSS, what sits above the week strip goes from ~646px to ~325px with the fee-waiver notice showing. Four cards in two rows became two in one list is most of it; the rest is the colour band dropping 90px → a 42px tile, and the notice keeping its full case inside the Applications module while saying one line on the dashboard.
That number is arithmetic on the rules rather than a measurement of a rendered page — the direction is certain, the figure depends on viewport and whether the notice shows at all.
Modules reopen where they start
Financial Aid already began on Overview and Application Tracking on Application Status. They never went back: both stay mounted while closed, holding the college list and their checklists, so the tab survived alongside the data. Someone who last glanced at Discover came back to Discover days later with no memory of having gone there.
Both now return to their opening tab, and Application Tracking clears the school it had open inside Status. Adjusted on the open transition rather than in an effect, so the first paint is already the right tab — an effect would show the stale one and correct it a frame later.
Nothing opens either module aimed at a particular tab, so there's nothing to override: the one external link in is the fee-waiver CTA, whose guidance sits above the tabs and shows whichever is up.
Also fixed
The phone rule under the module grid was setting
grid-template-columnson what's no longer a grid, so it did nothing. It now does what a phone needs — smaller tile, less padding, and no "Open →" competing with the sentence when the whole row is already the control.Testing
516 passing, lint and typecheck clean, build succeeds. New coverage for the status lines: empty states, singular/plural, and that submitted only appears once something has been.
Not verified in a browser by me — the dashboard is behind auth, so the layout numbers above are computed from the CSS rather than measured on a rendered page. The preview covers it.