Problem
Stories tab has been redesigned 3 times and still looks bad on mobile. The root issue: using inline `flex-wrap` with tiny text that wraps unpredictably. Each stat lands on a different line depending on screen width.
Solution: structured label-value rows
Stop using inline wrapping text. Use predictable two-column label-value rows where every piece of data has a fixed position.
Exact mobile wireframe (375px) — follow this precisely
Writer summary (top)
```
┌──────────────────────────────────┐
│ WRITER STATS │
│ │
│ Stories 1 Plots 4 │
│ Holders 2 Views 26 │
│ Donated 150.00 PLOT ($2.64) │
│ Claimable 4.23 PLOT ($0.07) │
└──────────────────────────────────┘
```
- 2-column grid: `grid-cols-2` for Stories/Plots and Holders/Views
- Full-width rows for Donated and Claimable (label left, value right)
- Claimable row only shows for own profile
Per-storyline card
```
┌──────────────────────────────────┐
│ Straton │
│ Science Fiction · active │
├──────────────────────────────────┤
│ Price 0.0031 PLOT <$0.01 │
│ TVL 528.61 PLOT $9.30 │
│ Plots 4 Holders 2 │
│ Views 26 Created Mar │
│ Donations 150 PLOT $2.64 │
├──────────────────────────────────┤
│ ⏰ Next plot due in 2d 0h 57m │
├──────────────────────────────────┤
│ Royalties 4.2289 PLOT $0.07 │
│ [Claim] │
├──────────────────────────────────┤
│ DONATION HISTORY │
│ 0x4d68..b6c8 Mar 31 150 PLOT ↗│
└──────────────────────────────────┘
```
Implementation rules
- Use `grid grid-cols-[auto_1fr]` for label-value pairs — label left-aligned muted, value right-aligned foreground
- Use `grid grid-cols-2` for paired stats (Plots/Holders, Views/Created)
- Bordered card with internal dividers (`divide-y`) for sections
- Title section: storyline name as `text-sm font-medium`, genre + status on second line
- Numbers: right-aligned, USD in muted parentheses on same line
- Royalties: truncate to 4 decimals max (`4.2289` not `4.2288977252`)
- No inline flex-wrap for stats — every item has a predictable grid position
- Royalties + Claim section and Donation History: own profile only
Desktop (md+)
Same card structure but can use wider grid — e.g., Price/TVL side by side, Plots/Holders/Views/Created in one row.
Use `/frontend-design` skill
Files to modify
- `src/app/profile/[address]/page.tsx` — Stories tab
Branch
`task/722-stories-v4`
Self-Verification (T3)
Problem
Stories tab has been redesigned 3 times and still looks bad on mobile. The root issue: using inline `flex-wrap` with tiny text that wraps unpredictably. Each stat lands on a different line depending on screen width.
Solution: structured label-value rows
Stop using inline wrapping text. Use predictable two-column label-value rows where every piece of data has a fixed position.
Exact mobile wireframe (375px) — follow this precisely
Writer summary (top)
```
┌──────────────────────────────────┐
│ WRITER STATS │
│ │
│ Stories 1 Plots 4 │
│ Holders 2 Views 26 │
│ Donated 150.00 PLOT ($2.64) │
│ Claimable 4.23 PLOT ($0.07) │
└──────────────────────────────────┘
```
Per-storyline card
```
┌──────────────────────────────────┐
│ Straton │
│ Science Fiction · active │
├──────────────────────────────────┤
│ Price 0.0031 PLOT <$0.01 │
│ TVL 528.61 PLOT $9.30 │
│ Plots 4 Holders 2 │
│ Views 26 Created Mar │
│ Donations 150 PLOT $2.64 │
├──────────────────────────────────┤
│ ⏰ Next plot due in 2d 0h 57m │
├──────────────────────────────────┤
│ Royalties 4.2289 PLOT $0.07 │
│ [Claim] │
├──────────────────────────────────┤
│ DONATION HISTORY │
│ 0x4d68..b6c8 Mar 31 150 PLOT ↗│
└──────────────────────────────────┘
```
Implementation rules
Desktop (md+)
Same card structure but can use wider grid — e.g., Price/TVL side by side, Plots/Holders/Views/Created in one row.
Use `/frontend-design` skill
Files to modify
Branch
`task/722-stories-v4`
Self-Verification (T3)