Skip to content

Redesign UI with segmented buttons, cards, and teal color scheme#6

Open
JesseWilliamson wants to merge 4 commits intomainfrom
claude/rewrite-ui-J9BbK
Open

Redesign UI with segmented buttons, cards, and teal color scheme#6
JesseWilliamson wants to merge 4 commits intomainfrom
claude/rewrite-ui-J9BbK

Conversation

@JesseWilliamson
Copy link
Owner

Summary

Comprehensive UI redesign updating the GPS Spoofer app with modern Material 3 components, improved visual hierarchy, and a new teal/earthy color palette. Replaces deprecated FilterChips with SegmentedButtons, upgrades container styling to use Cards, and enhances empty states with icons and descriptive messaging.

Key Changes

Component Updates:

  • Replaced FilterChip with SegmentedButton + SingleChoiceSegmentedButtonRow for tab navigation in Locations/Routes sections
  • Converted background + padding patterns to Card components with proper elevation and colors throughout
  • Updated button styling: ButtonFilledTonalButton for secondary actions, added OutlinedButton for tertiary actions
  • Replaced dropdown menus (MoreVert icon) with direct action buttons (Edit/Delete) in route and location cards

Visual Enhancements:

  • Redesigned empty states with centered icons (Icons.Outlined.Route, Icons.Outlined.LocationOn), headings, and descriptive text
  • Improved route player overlay with better visual hierarchy: speed display, progress slider with labels, and clearer pause/resume controls
  • Enhanced route/location cards with improved spacing, button layouts, and action accessibility
  • Added FontWeight.Bold to key metrics (speed display in player overlay)

Color Scheme:

  • Updated theme from purple to teal/earthy palette:
    • Primary: Teal (light: #00796B, dark: #A0D5C8)
    • Secondary: TealGrey
    • Tertiary: Sand
    • Explicit surface/surfaceVariant colors for better contrast
  • Applied consistent color usage for secondary text (onSurfaceVariant)

Dialog Improvements:

  • Added icons to dialogs (location/route icons)
  • Enhanced text fields with placeholders and keyboard type hints
  • Improved button styling (Cancel → OutlinedButton)
  • Auto-focus name field on dialog open

Code Quality:

  • Removed unused imports (Box, background, clip where replaced by Cards)
  • Cleaned up deprecated Material 2 components
  • Added @OptIn(ExperimentalMaterial3Api::class) annotations for SegmentedButton usage
  • Improved spacing consistency with Spacer components between icons and text in buttons

Notable Implementation Details

  • Route cards now display Follow/Edit/Delete buttons in a horizontal row with proper sizing
  • Player overlay reorganized into sections: header (speed + stop), speed control, progress tracking, and pause/resume
  • Location cards reduced in height (120dp image vs 160dp) with improved text overflow handling
  • Consistent use of CardDefaults.cardColors() for container customization across all card-based components

https://claude.ai/code/session_012aYZz2GaFXM3GeXAa44ccq

claude and others added 4 commits February 28, 2026 21:25
- Replace filter chip tabs with Material 3 segmented buttons for clearer navigation
- Redesign location cards with visible edit/delete buttons, coordinate display, and Card elevation
- Redesign route cards with inline Follow/Edit/Delete buttons instead of hidden overflow menus
- Rewrite floating player overlay as elevated Card with labeled speed slider, progress section, and full-width pause/resume button
- Rewrite route editing overlay as floating Card with icon, clear instructions, and Discard/Save buttons
- Add descriptive empty states with icons for both locations and routes tabs
- Update dialogs with icons, placeholder text, auto-focus, decimal keyboards for coordinates, red delete button, and outlined cancel buttons
- Switch color palette from purple/pink to teal/earth tones appropriate for a maps app
- Add material-icons-extended dependency for richer icon set
- Update screenshot test previews to match new UI components

https://claude.ai/code/session_012aYZz2GaFXM3GeXAa44ccq
The manifest merger requires a value for the MAPS_API_KEY placeholder.
Provide an empty string so the screenshot generation build can pass.

https://claude.ai/code/session_012aYZz2GaFXM3GeXAa44ccq
The secrets gradle plugin generates invalid Java (`String X = ;`) when
the key is empty. Use a dummy placeholder so the build compiles. Static
map thumbnails won't load in CI screenshots but that's expected.

https://claude.ai/code/session_012aYZz2GaFXM3GeXAa44ccq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants