Student Detail — responsive density study

On a 390×844 phone with Student details already collapsed, the shipped page still shows only one and a half piece rows. Two causes, and the second is the bigger one: ~360 pt of chrome before the list starts, and a piece row that is ~214 pt tall because each marker chip takes its own line and the two actions are a full-width grid. The fix below is one component set with container-query tiers — not a separate mobile design. The same markup renders as a 3-line card at phone width, a 2-line row in the iPad main column, and a single-line table row in the desktop main column beside the 28 rem rail, exactly as piece_table_row already does with @container.

Today

Current — collapsed state, 390×844

row height ~214 pt · 1.5 rows visible

Faithful recreation of the screenshot. Chrome: 41 pt page-title bar + 59 pt name row + 42 pt collapsed disclosure + 68 pt section header with a two-line subtitle + 42 pt full-width Add piece. Then the row itself: title 19 pt, goal line, stage strip, three chips at one per line, and a 44 pt two-button grid.

1.5 piece rows visible · 43% of the screen is chrome

10:15●●●●
Student Detail
Students AC

Ava Chen

active
Student details

Repertoire & Assignments

One row per piece. Continue a piece for next week's goal, or add a new piece.

Add piece
Shave and a Haircut

Play it through · 1 week

Decoding Assigned
focussteady pulse
focussyncopation
spotPlay it through · 3x
EditReview
Spanish Caballero

opening phrase · m. 1–m. 8 · 1 week

80Decoding Submitted
focusright hand
focusphrasing
spotopening phrase · mm. 1–8 · 5x
EditReview
stg.etudespark.com

iPhone · 390×844 · Student details collapsed

Tier 1 · <30rem

Phone — 390×844

row height ~64 pt · 6 rows visible

One 44 pt sticky header (back · 28 pt avatar · name · status · overflow) replaces both headers. Overview collapses to a one-line meta strip with Details ›. The section title carries the Add action instead of a full-width button. The row keeps a fixed 3-line rhythm — title, one clipped meta line, one clipped marker rail — with actions on the right edge. Nothing is removed: takes stay behind the count badge, lessons/practice/activity keep their cards further down the same single scroll.

6 piece rows visible · chrome 118 pt

10:15●●●●
AC Ava Chen active
Piano enrolled Aug 2026 next Tue 12:00 PM 1 guardian audio upload on Details

Repertoire

6 pieces Add
SH Shave and a Haircut play it through · 1 wk · Piano Adventures 2A Assigned spotthrough · 3x focussteady pulse focussyncopation Decoding EditReview
SC Spanish Caballero opening phrase · mm. 1–8 · 1 wk · Piano Adventures 2A Submitted 1 take spotmm. 1–8 · 5x focusright hand focusphrasing 80 Decoding EditReview
0:38 / 1:47Jul 30
MG Minuet in G Major J. S. Bach · the tricky turn · mm. 9–12 · 3 wks Reviewed 2 takes spotturn · 3x focuslegato 84 Building Continue
HA Hanon No. 1 Exercise · even tone · mm. 1–8 · 6 wks Assigned spotlift · 5x focuseven tone 72 Polishing EditReview
AR Arabesque, Op. 100 No. 2 Burgmüller · left-hand pulse · 2 wks Assigned spotmm. 17–24 · 4x focusleft hand 96 Decoding EditReview
GY Gymnopédie No. 1 Satie · pedaling · 1 wk Assigned spotmm. 5–8 · 3x focuspedaling Decoding EditReview

Lessons

Schedule
Tue Aug 4 · 12:00 PM· Student homeEdit
Tue Aug 11 · 12:00 PM· Student homeEdit
Tue Aug 18 · 12:00 PM· Student homeEdit

Your timezone (UTC+8) · set at UTC 4:00 PM · View schedule

Practice participation only
78%Time 2/3Pieces 41%Focus 5 sessions this week
Last: yesterday · 22 min
Activity log
· audit
stg.etudespark.com

Tier 1 · 3-line card row, ~64 pt

Tier 2 · ≥30rem

iPad portrait — 834×1112

same markup · title and goal share a line

The container is now wide enough that the goal line joins the title and the marker rail gets its own full width; the cover grows to 40 pt and the stage strip gains its text label. Header, meta strip and section bars are identical to the phone — the only change is the tier, so there is no second layout to keep in sync.

stg.etudespark.com/app/students/…
AC Ava Chen active Schedule Add piece
Piano enrolled Aug 2026 next Tue, Aug 4 · 12:00 PM Grace Chen (primary) audio upload on Details

Repertoire

6 pieces
SH Shave and a Haircut play it through · 1 wk · Piano Adventures 2A Assigned spotplay it through · 3x focussteady pulse focussyncopation Decoding EditReview
SC Spanish Caballero opening phrase · mm. 1–8 · 1 wk · Piano Adventures 2A Submitted 1 take spotopening phrase · mm. 1–8 · 5x focusright hand focusphrasing 80 Decoding EditReview
MG Minuet in G Major J. S. Bach · the tricky turn · mm. 9–12 · 3 wks Reviewed 2 takes spotthe tricky turn · 3x focuslegato 84 Building ContinueReopen
HA Hanon No. 1 Exercise · even tone · mm. 1–8 · 6 wks spotthe lift · 5x focuseven tone 72 Polishing EditReview
AR Arabesque, Op. 100 No. 2 Burgmüller · left-hand pulse · 2 wks spotmm. 17–24 · 4x focusleft hand 96 Decoding EditReview

Lessons

Schedule
Tue Aug 4 · 12:00 PM· Other · Student home – 12 Maple StEdit
Tue Aug 11 · 12:00 PM· Other · Student home – 12 Maple StEdit

Your timezone (UTC+8) · set at UTC 4:00 PM · View schedule

Practice participation only
78%Time 2/3Pieces 41%Focus 5 sessions this week · last yesterday, 22 min

iPad portrait · 834 pt · Tier 2 · 2-line row

Tier 3 · ≥56rem

Laptop — 1512×860 (and iPad landscape at Tier 2)

same markup · single-line table row + 26rem rail

Once the main column clears 56 rem the row becomes a real table line: cover, title, marker rail, tempo/stage column, fixed action column. Worth knowing: at 1280 beside the 26 rem rail the main column is only ~50 rem, so that width stays on Tier 2 — the single-line row simply cannot hold title + goal + markers + tempo + two actions there, and forcing it just clips the markers. Same conclusion for iPad landscape. The rail keeps the practice dashboard and activity log and is still where the composer swaps in.

stg.etudespark.com/app/students/…
AC Ava Chen active Data processing Enrollment Audio upload · on Schedule lesson Add piece
Piano enrolled Aug 2026 next Tue, Aug 4 · 12:00 PM (your timezone, UTC+8) Grace Chen (primary) · mother 6 pieces · 7 completed Details

Repertoire

6 pieces Completed shelf · 7
SH Shave and a Haircut play it through · 1 wk · Piano Adventures 2A Assigned spotplay it through · 3x focussteady pulse focussyncopation Decoding EditReview
SC Spanish Caballero opening phrase · mm. 1–8 · 1 wk Submitted 1 take spotopening phrase · mm. 1–8 · 5x focusright hand focusphrasing 80Decoding EditReview
MG Minuet in G Major Bach · the tricky turn · mm. 9–12 · 3 wks Reviewed 2 takes spotthe tricky turn · 3x focuslegato 84Building ContinueReopen
HA Hanon No. 1 Exercise · even tone · mm. 1–8 · 6 wks spotthe lift · 5x focuseven tone 72Polishing EditReview
AR Arabesque, Op. 100 No. 2 Burgmüller · left-hand pulse · 2 wks spotmm. 17–24 · 4x focusleft hand 96Decoding EditReview
GY Gymnopédie No. 1 Satie · pedaling · 1 wk spotmm. 5–8 · 3x focuspedaling Decoding EditReview

Lessons

Schedule
Tue Aug 4 · 12:00 PM· Other · Student home – 12 Maple StEdit
Tue Aug 11 · 12:00 PM· Other · Student home – 12 Maple StEdit
Tue Aug 18 · 12:00 PM· Other · Student home – 12 Maple StEdit

Your timezone (UTC+8) · set at UTC 4:00 PM · View schedule

Current shelf

Piano Adventures 2A · next: Rockin' Rhythm Band

Assign next item
Practice Dashboard participation only
78%Time 2/3Pieces 41%Focus

5 sessions this week · last yesterday, 22 min · goal 20/8/3

Show practice detail

Activity Log
· audit

The assignment composer swaps into this rail (#composer-rail) — unchanged from today.

Laptop 1512 · Tier 3 · single-line row + 26 rem rail

Why this stays one design across widths

  1. The row is one component with three tiers. Same DOM order — cover, head (title + goal), marker rail, right column (tempo/stage), actions. Tier 1 stacks them, Tier 2 pairs title+goal, Tier 3 puts everything on one line. All three are @container queries on the list, so a row behaves correctly in the phone viewport and in the desktop main column next to the rail — which is exactly why the existing @3xl: tier in piece_table_row is the right place to work.
  2. Chips stop wrapping one-per-line — they share a single clipped, fade-masked rail at every width. This alone takes the phone row from ~214 pt to ~64 pt; on desktop it's what frees the space for a fixed action column.
  3. Actions are the same two buttons everywhere, just sized by tier: compact pair on the row's right edge (phone/iPad), fixed 10 rem column (desktop). The full-width grid-cols-2 block is the thing that goes away.
  4. One header at every width. The layout's title bar merges into the page header row; on wide screens that same row is where the consent chips and the Add piece / Schedule actions live, so the header earns its height instead of being decoration.
  5. Overview → meta strip, progressively revealed. Phone shows instrument · enrolled · next lesson; iPad adds the guardian; desktop adds consent state and piece counts. Same strip, more facts as room allows, with the full disclosure behind Details ›.
  6. Rejected: a mobile tab bar. Splitting Lessons / Practice / Profile into peer tabs fits 8 rows on a phone, but it contradicts the two-column desktop body and would mean a second navigation model to maintain. Not worth it — collapsing the same single scroll gets 6 rows.
WidthRow heightChrome before listPiece rows in viewport
390 today~214 pt~360 pt1.5
390 Tier 1~64 pt~118 pt6
834 Tier 2~62 pt~110 pt9
1280 (Tier 2 · rail open)~62 pt~110 pt10
1512 Tier 3~46 pt~110 pt14