Skip to content

[design-qa][P1] Retired dark palette and off-palette colour: the violet cover gradient, 360-hue avatars, lime text on white, ink as a surface #177

Description

@cestercian

Part of the Sep-2026 designer's-eye QA of the 138 "Artistant iOS Light" screens (theme T14, category token; epic #161). Full report with evidence and per-screen coverage: docs/DESIGN_QA_2026-09.md; the per-section appendices under docs/design-qa/ carry the code excerpts.

Why it matters. ArtistGradient.kt still holds six raw-hex palettes of the retired dark design (violet #7C5CFF → #0F1014) used as every cover's fallback and as the wizard's and press kit's swatches; Avatar mints 360 saturated hues; seven press-kit tap targets are accent text on white (≈1.3:1); three components fill with ink where dark is the token.

Fix direction. Replace the palettes with placeholder/surface2 tints (or a two-stop lime-to-ink gradient), give Avatar one palette, accentInk for any accent used as text, dark for dark surfaces.

Findings (8: P1 ×2, P2 ×4, P3 ×2)

  • F-DS-01 (P1) — Retired dark-palette gradient is the cover floor on every DS surface
    • Screens: 02, 03, 32 (and 14 suggestion thumbs)
    • Where: feature/discover/DiscoverScreen.kt:408-423; feature/search/SearchScreen.kt:862-877; feature/profile/ArtistListScreen.kt:388-409; palette designsystem/theme/ArtistGradient.kt:25-30; dead placeholder paint under it at SearchScreen.kt
    • Fix: One shared cover composable (or MediaSlot) that lets the placeholder fill show until the photo lands and keeps the gradient, if at all, as the media scrim under text only; delete the three private ArtistCover/ArtistThumb copies.
  • F-WZ-07 (P2) — Gradient swatches drift from the press kit's row and paint the retired palette
    • Screens: 41
    • Where: WizardMediaSteps.kt:344-380; peer feature/epk/EpkPanes.kt:443-462
    • Fix: extract the press kit's swatch row into designsystem/component/ and call it from both; when F-DS-01 relights ArtistGradient, both surfaces follow.
  • F-PK-02 (P1) — Lime-on-white text: seven tap targets in the panes are unreadable
    • Screens: 23 (panes)
    • Where: feature/epk/EpkComponents.kt:85,146,183; feature/epk/EpkPanes.kt:403,875; correct peers EpkPanes.kt:920,1079
    • Fix: colors.accentInk for every accent-as-text site; colors.ink for the cursor and colors.ink at hairline weight for the active underline.
  • F-DSYS-08 (P2) — Avatar mints 360 saturated hues on a one-accent palette
    • Screens: —
    • Where: designsystem/component/Avatar.kt:101-113
    • Fix: replace the hue hash with the palette — surface2 fill and ink2 initials (or a placeholder fill), which is what the light design draws for an absent image everywhere else (Tile.kt:103, MediaSlot).
  • F-DSYS-03 (P2) — ink is used as a surface fill in three components; dark is the palette's token for that
    • Screens: —
    • Where: designsystem/component/Toast.kt:135 (+ text at :163); designsystem/component/Banner.kt:218 (+ text at :205); designsystem/component/MonthCalendar.kt:470 (+ text at :474)
    • Fix: repoint all three fills to colors.dark; if the calendar's selected day should carry the accent instead, that is a separate call for the design owner.
  • F-MS-08 (P2) — The Safety centre's dark card is painted ink, not dark
    • Screens: 131
    • Where: feature/messages/SafetyCentreScreen.kt:79
    • Fix: colors.dark, and pick one of dark/darkest for the brand disc on both screens.
  • F-BN-15 (P3) — Three different alpha values mean "stepped back"
    • Screens: 10, 83, 97, 122
    • Where: feature/bookings/BookingsScreen.kt:490 (ENDED_ALPHA = 0.55f, applied :433, :630); feature/booking/BookingDetailScreen.kt:300 (DIMMED = 0.6f, applied :549, :723); :821 (Modifier.alpha(0.85f), literal)
    • Fix: one token (e.g. AppColors.dimmed or a single DIMMED in the design system) used by all three.
  • F-DSYS-22 (P3) — Two tokens used outside their role: a space as a radius, a dot as a bar height
    • Screens: —
    • Where: designsystem/component/MonthCalendar.kt:579; designsystem/component/Meter.kt:85
    • Fix: radii.xs for the swatch; add component.meter (6) for the track (see F-DSYS-13).

Acceptance

  • Every finding above is closed on the cited lines (or refuted in a comment with the reason).
  • ./gradlew :app:assembleDebug, :app:testDebugUnitTest and :app:lintDevDebug green.
  • The screens listed above walked on the artistant AVD with the debug harness (RELEASE.md §10) and the fix confirmed visually — this audit was code-grounded, not device-walked.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions