Vehicle list cards show brand logo, nickname/name, VIN, license, and odometer -- but no year/make/model line on the desktop card itself (only nickname). The card for "YOTA" doesn't tell you it's a 2025 Toyota Camry unless you click in. Additionally, several cards show "VIN:" with nothing after it (empty), which takes up space and looks broken.
Recommendation
Show Year Make Model as a subtitle on each card (e.g. "2025 Toyota Camry")
Hide the VIN row entirely when no VIN is provided, or show a subtle "No VIN" placeholder
Acceptance Criteria
Vehicle cards display Year Make Model as a subtitle line
Empty VIN rows are hidden or show a consistent placeholder
Card layout remains clean and scannable
Tested on mobile (320px, 768px) and desktop (1920px)
Relates to #162
## Severity: High
## Problem
Vehicle list cards show brand logo, nickname/name, VIN, license, and odometer -- but no year/make/model line on the desktop card itself (only nickname). The card for "YOTA" doesn't tell you it's a 2025 Toyota Camry unless you click in. Additionally, several cards show "VIN:" with nothing after it (empty), which takes up space and looks broken.
## Recommendation
- Show Year Make Model as a subtitle on each card (e.g. "2025 Toyota Camry")
- Hide the VIN row entirely when no VIN is provided, or show a subtle "No VIN" placeholder
## Acceptance Criteria
- Vehicle cards display Year Make Model as a subtitle line
- Empty VIN rows are hidden or show a consistent placeholder
- Card layout remains clean and scannable
- Tested on mobile (320px, 768px) and desktop (1920px)
Phase: 3 (Vehicle display consistency) | Priority: High | Depends on: #165 (Milestone 1 -- shared utilities) | Blocks: None
Context
Vehicle cards only show the display name (nickname or fallback). Users need to see Year Make Model as a subtitle for quick identification. VIN is shown even when empty on desktop cards.
Implementation
1. In frontend/src/features/vehicles/components/VehicleCard.tsx (desktop):
Import getVehicleSubtitle from @/core/utils/vehicleDisplay
Add Year Make Model subtitle line below the display name using getVehicleSubtitle(vehicle)
chore: add Year Make Model subtitle to vehicle cards and hide empty VIN (refs #167)
Test Criteria
Desktop cards show "2025 Toyota Camry" subtitle below the display name
Mobile cards show the same subtitle
Empty VIN is hidden on desktop cards (no blank "VIN:" row)
Vehicles with only a nickname still show Year Make Model as subtitle
Vehicles with insufficient data (less than 2 of year/make/model) show no subtitle
Verify on mobile (320px, 768px) and desktop (1920px) viewports
Branch
Work on branch issue-162-ux-design-audit-cleanup (shared with all #162 sub-issues)
## Implementation Plan (from #162 -- Milestone 7)
**Phase**: 3 (Vehicle display consistency) | **Priority**: High | **Depends on**: #165 (Milestone 1 -- shared utilities) | **Blocks**: None
### Context
Vehicle cards only show the display name (nickname or fallback). Users need to see Year Make Model as a subtitle for quick identification. VIN is shown even when empty on desktop cards.
### Implementation
**1. In `frontend/src/features/vehicles/components/VehicleCard.tsx` (desktop):**
- Import `getVehicleSubtitle` from `@/core/utils/vehicleDisplay`
- Add Year Make Model subtitle line below the display name using `getVehicleSubtitle(vehicle)`
- Wrap VIN display (line ~54) in conditional: `{vehicle.vin && <Typography>VIN: {vehicle.vin}</Typography>}`
- VIN currently shows unconditionally -- this hides it when empty
**2. In `frontend/src/features/vehicles/mobile/VehicleMobileCard.tsx` (mobile):**
- Import `getVehicleSubtitle` from `@/core/utils/vehicleDisplay`
- Add Year Make Model subtitle below the display name using `getVehicleSubtitle(vehicle)` (show only if subtitle is non-empty)
- Mobile card does NOT currently show VIN, so no VIN changes needed here
### Files
- `frontend/src/features/vehicles/components/VehicleCard.tsx`
- `frontend/src/features/vehicles/mobile/VehicleMobileCard.tsx`
### Commit Convention
```
chore: add Year Make Model subtitle to vehicle cards and hide empty VIN (refs #167)
```
### Test Criteria
- Desktop cards show "2025 Toyota Camry" subtitle below the display name
- Mobile cards show the same subtitle
- Empty VIN is hidden on desktop cards (no blank "VIN:" row)
- Vehicles with only a nickname still show Year Make Model as subtitle
- Vehicles with insufficient data (less than 2 of year/make/model) show no subtitle
- Verify on mobile (320px, 768px) and desktop (1920px) viewports
### Branch
Work on branch `issue-162-ux-design-audit-cleanup` (shared with all #162 sub-issues)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Relates to #162
Severity: High
Problem
Vehicle list cards show brand logo, nickname/name, VIN, license, and odometer -- but no year/make/model line on the desktop card itself (only nickname). The card for "YOTA" doesn't tell you it's a 2025 Toyota Camry unless you click in. Additionally, several cards show "VIN:" with nothing after it (empty), which takes up space and looks broken.
Recommendation
Acceptance Criteria
Implementation Plan (from #162 -- Milestone 7)
Phase: 3 (Vehicle display consistency) | Priority: High | Depends on: #165 (Milestone 1 -- shared utilities) | Blocks: None
Context
Vehicle cards only show the display name (nickname or fallback). Users need to see Year Make Model as a subtitle for quick identification. VIN is shown even when empty on desktop cards.
Implementation
1. In
frontend/src/features/vehicles/components/VehicleCard.tsx(desktop):getVehicleSubtitlefrom@/core/utils/vehicleDisplaygetVehicleSubtitle(vehicle){vehicle.vin && <Typography>VIN: {vehicle.vin}</Typography>}2. In
frontend/src/features/vehicles/mobile/VehicleMobileCard.tsx(mobile):getVehicleSubtitlefrom@/core/utils/vehicleDisplaygetVehicleSubtitle(vehicle)(show only if subtitle is non-empty)Files
frontend/src/features/vehicles/components/VehicleCard.tsxfrontend/src/features/vehicles/mobile/VehicleMobileCard.tsxCommit Convention
Test Criteria
Branch
Work on branch
issue-162-ux-design-audit-cleanup(shared with all #162 sub-issues)Milestone: Implementation Complete
Phase: Execution | Agent: Developer | Status: PASS
Changes
Desktop
VehicleCard.tsx:getVehicleSubtitleimport and usage{vehicle.vin && ...})Mobile
VehicleMobileCard.tsx:vehicle.model || 'Unknown Model'withgetVehicleSubtitle(vehicle)Verification
56be3edon branchissue-162-ux-design-audit-cleanupVerdict: PASS | Next: Visual verification on mobile and desktop viewports