Skip to content

feat(css-map): add more 1.2.86 classes and a few others#3782

Merged
rxri merged 6 commits intospicetify:mainfrom
Ingan121:main
Apr 6, 2026
Merged

feat(css-map): add more 1.2.86 classes and a few others#3782
rxri merged 6 commits intospicetify:mainfrom
Ingan121:main

Conversation

@Ingan121
Copy link
Copy Markdown
Contributor

@Ingan121 Ingan121 commented Apr 6, 2026

  • This PR adds the following for 1.2.86:
    • GenericModal__overlay and main-userWidget-box, which is required for Spicetify.PopupModal and Spicetify.Menu.Item to work properly
    • A lot of dialog-related classes obtained by comparing xpui-root-dialogs.css and xpui-routes-playlist.css from Spotify 1.2.70, 1.2.84/85, and 1.2.86. Some adjacent classes that have been missing since 1.2.72 are also added.
    • Classes for the new TrackCreditsModalV2, which can be toggled in the experimental features in 1.2.70. The toggle has no effect on 1.2.84/1.2.86, and the new credits modal is always enabled.
    • Some other classes that WMPotify is using
    • Also fixes a wrong map (lZCogpVJ9VYr762A) and a map with a typo ("nGNsefRulpsAkpRc": "main-yourLibraryX-libaryFilter")

Summary by CodeRabbit

  • Chores
    • Updated CSS class-to-hash mappings for many UI components (modals, widgets, pickers, loading states, now-playing views, playlists, credits modals, profile and home shortcut elements) to support additional UI elements and states.
    • Fixed an incorrect mapping key for a library filter.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 6, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2d9a1382-001d-4f2f-b7d4-5d5cc5762e92

📥 Commits

Reviewing files that changed from the base of the PR and between 02873f5 and b85d959.

📒 Files selected for processing (1)
  • css-map.json

📝 Walkthrough

Walkthrough

Updated css-map.json with 120+ new hash→CSS class mappings across multiple UI components (modals, widgets, now-playing, playlist editor, profile, and library elements); corrected a libraryFilter key and restored a now-playing cover-art mapping. No runtime code or exported entities changed.

Changes

Cohort / File(s) Summary
CSS Module Mappings
css-map.json
Added 120+ new hash→CSS class mappings spanning GenericModal, action bar, context menu, dropdown, duplicate-track modal, embed widget generator (many subparts), image picker, loading indicators/pages, now-playing view/widget cover-art, playlist edit details modal, track credits modals (v1/v2), user widget, yourLibraryX entries, profile mappings, and root/view-homeShortcutsGrid. Removed one incorrect key and re-added corrected main-yourLibraryX-libraryFilter.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • rxri
  • kyrie25

Poem

🐰 I hopped through hashes, mapping class by class,

Modals and widgets found their place en masse.
Cover art returns, library filters aligned,
A soft CSS trail for users to find.
🥕✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: adding CSS class mappings for Spotify 1.2.86 with some additional classes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
css-map.json (1)

1-2571: Add a CI sanity check for duplicate keys and key typo regressions.

Given the file size and frequent bulk updates, a small guard would prevent silent key overwrites and accidental reintroduction of libaryFilter-style typos.

#!/bin/bash
set -euo pipefail

python - <<'PY'
import json
from collections import Counter

path = "css-map.json"
text = open(path, "r", encoding="utf-8").read()

# Detect duplicate keys via object_pairs_hook
dupes = []
def hook(pairs):
    c = Counter(k for k, _ in pairs)
    for k, n in c.items():
        if n > 1:
            dupes.append((k, n))
    return dict(pairs)

data = json.loads(text, object_pairs_hook=hook)

if dupes:
    print("FAIL: Duplicate keys found:")
    for k, n in dupes:
        print(f"  {k}: {n} occurrences")
    raise SystemExit(1)

# Assert key typo fix remains correct
expected_key = "nGNsefRulpsAkpRc"
expected_value = "main-yourLibraryX-libraryFilter"
if data.get(expected_key) != expected_value:
    print(f"FAIL: {expected_key} != {expected_value}")
    raise SystemExit(1)

if any(v == "main-yourLibraryX-libaryFilter" for v in data.values()):
    print("FAIL: Found deprecated typo value main-yourLibraryX-libaryFilter")
    raise SystemExit(1)

print("PASS: css-map.json sanity checks succeeded.")
PY
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@css-map.json` around lines 1 - 2571, Add a CI sanity check that validates
css-map.json for duplicate JSON keys, enforces the corrected mapping for key
"nGNsefRulpsAkpRc" -> "main-yourLibraryX-libraryFilter", and rejects any value
"main-yourLibraryX-libaryFilter"; implement this as a small script (e.g., a bash
wrapper that runs an embedded Python check like the provided snippet) and wire
it into the project's CI pipeline so the job fails on duplicates or the
typo/value regression.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@css-map.json`:
- Around line 1-2571: Add a CI sanity check that validates css-map.json for
duplicate JSON keys, enforces the corrected mapping for key "nGNsefRulpsAkpRc"
-> "main-yourLibraryX-libraryFilter", and rejects any value
"main-yourLibraryX-libaryFilter"; implement this as a small script (e.g., a bash
wrapper that runs an embedded Python check like the provided snippet) and wire
it into the project's CI pipeline so the job fails on duplicates or the
typo/value regression.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: cc02ce40-9b21-4178-a786-4d8ea315a8a1

📥 Commits

Reviewing files that changed from the base of the PR and between 1c77973 and 02873f5.

📒 Files selected for processing (1)
  • css-map.json

@rxri
Copy link
Copy Markdown
Member

rxri commented Apr 6, 2026

@Ingan121 can u run biome on it

@Ingan121
Copy link
Copy Markdown
Contributor Author

Ingan121 commented Apr 6, 2026

Done

@rxri rxri merged commit a1cf6d8 into spicetify:main Apr 6, 2026
7 checks passed
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