Skip to content

redesign web experience - #48

Merged
InstaZDLL merged 5 commits into
mainfrom
codex/redesign-web-ui
Jun 12, 2026
Merged

redesign web experience#48
InstaZDLL merged 5 commits into
mainfrom
codex/redesign-web-ui

Conversation

@InstaZDLL

@InstaZDLL InstaZDLL commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • Redesign the WaveFlow web visual system with new typography, palette, panels, buttons, inputs, and media-list primitives.
  • Apply the refreshed UI across public pages, auth, settings, library browse, album/artist views, playlists, player controls, and dialogs.
  • Improve empty/error states and responsive scanability without changing API contracts or route behavior.

Validation

  • bun run typecheck
  • bun run lint
  • bun run build
  • Local responsive smoke check on localhost:3000 after restoring .env

Summary by CodeRabbit

  • Style
    • Refonte visuelle globale : nouveau système de design, variables de thème, polices et utilitaires.
    • Révisions d’apparence pour de nombreux composants et pages (header, footer, player, dialogues, formulaires, listes, cartes, panneaux).
    • Nouveaux patterns UI : panels, quiet-panel, status-card, error-card, media-list/media-row, art-tile, card-link, back-link.
    • Harmonisation des boutons, champs, typographie, contrastes et des annonces d’erreur (role="alert").

Signed-off-by: InstaZDLL <github.105mh@8shield.net>
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 919b373e-7465-4ae3-b587-42fc9dea3823

📥 Commits

Reviewing files that changed from the base of the PR and between eeac19b and 87fb5c0.

📒 Files selected for processing (27)
  • web/src/components/DeletePlaylistDialog.tsx
  • web/src/components/Footer.tsx
  • web/src/components/Header.tsx
  • web/src/components/NowPlayingOverlay.tsx
  • web/src/components/OAuthButtons.tsx
  • web/src/components/PlayableTrackList.tsx
  • web/src/components/PlayerBar.tsx
  • web/src/components/PlaylistFormDialog.tsx
  • web/src/components/QueuePanel.tsx
  • web/src/components/ThemePicker.tsx
  • web/src/components/TrackFilterBar.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.albums.$albumId.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.albums.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.artists.$artistId.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.artists.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.tsx
  • web/src/routes/_authed.profiles.$profileId.playlists.$playlistId.tsx
  • web/src/routes/_authed.profiles.$profileId.playlists.tsx
  • web/src/routes/_authed.profiles.$profileId.tsx
  • web/src/routes/_authed.profiles.tsx
  • web/src/routes/_authed.settings.tsx
  • web/src/routes/about.tsx
  • web/src/routes/desktop-login.tsx
  • web/src/routes/index.tsx
  • web/src/routes/p.$token.tsx
  • web/src/routes/sign-in.tsx
  • web/src/routes/sign-up.tsx

📝 Walkthrough

Walkthrough

Refonte du design system (nouveau styles.css), puis migration transversale des composants et routes vers les primitives visuelles (panels, boutons, inputs, status/error cards, media lists) sans modifier la logique métier.

Changes

Refonte complète du système de design

Layer / File(s) Summary
Socle CSS et primitives
web/src/styles.css
Imports de polices (Cabinet Grotesk, Geist), reconfiguration complète des variables de thème/palette (:root, [data-theme='dark']), nouveaux fonds/textures, et ajout massif de primitives (.panel*, .button*, .input/.select/.textarea, .status-card, .error-card, .media-list/.media-row, .art-tile, .back-link).
Chrome partagé
web/src/components/Header.tsx, Footer.tsx, ThemePicker.tsx, ThemeToggle.tsx, TrackFilterBar.tsx, PlayerBar.tsx, QueuePanel.tsx, NowPlayingOverlay.tsx
Header/footer/contrôles de thème et barre de lecture adoptent les nouvelles classes système, ajustent espacement/arrondis et remplacent usages var(...) par la nouvelle syntaxe de variables CSS.
Dialogues et formulaires
web/src/components/DeletePlaylistDialog.tsx, PlaylistFormDialog.tsx, OAuthButtons.tsx
Dialogs et formulaires migrent vers panel panel-pad, uniformisent champs (input text-base, textarea resize-none text-sm), boutons (button-*) et erreurs (error-card).
Playlists et listes médias
web/src/components/PlayableTrackList.tsx, web/src/routes/_authed.profiles.$profileId.playlists*.tsx
Listes remplacées par .media-list/.media-row; états vides et erreurs rendus via .status-card/.error-card; cartes/tuile d’illustration pour playlists.
Navigation profils & bibliothèques
web/src/routes/_authed.profiles.*, _authed.profiles.$profileId.*, _authed.profiles.$profileId.libraries.*
Vues Profiles/Libraries/Albums/Artists uniformisent layout, titres (section-eyebrow / display-title), tuiles d’initiales (art-tile) et liens de retour (back-link).
Pages publiques & marketing
web/src/routes/index.tsx, about.tsx, desktop-login.tsx
Héro, features et pages marketing migrées vers panel panel-pad, réorganisation en grilles/cartes et harmonisation typographique.
Auth pages
web/src/routes/sign-in.tsx, sign-up.tsx
Wrappers page-wrap app-main + panel, champs input text-base, erreurs error-card, boutons button button-primary.
Playlist partagée
web/src/routes/p.$token.tsx
Panel/app-main, listes media-list, états status-card/error-card, liens back-link appliqués à la vue de preview.
Paramètres et racine
web/src/routes/_authed.settings.tsx, web/src/routes/__root.tsx
Settings harmonisé (messages d’état en div/aria-live), HeadContent rendu avant ThemeStyle dans le <head>.

Estimated code review effort

🎯 4 (Complexe) | ⏱️ ~45 minutes

Possibly related PRs

  • InstaZDLL/waveflow-server#41: PR précédent qui a introduit le socle initial de styles/tokens ; ce diff poursuit l'évolution du système de styles.

Suggested labels

scope: design-tokens

Poem

✨ Le style se rassemble, panels, boutons et tuiles en chœur,
Médias s’ordonnent, erreurs s’habillent d’une même couleur,
Initiales brillent en vignettes, listes trouvent leur rang,
La logique intacte sourit, seul l’habit change en chant,
Voilà l’UI qui respire, coordonnée et plus claire.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive Le titre « redesign web experience » est vague et générique ; il ne spécifie pas clairement le scope ou la nature du changement visuel. Enrichir le titre pour être plus spécifique : par exemple « Refactor: redesign web UI with new component system » ou « Redesign web visual system with new typography and button/panel components ».
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed La description fournie couvre bien les objectifs (redesign visuel, application transversale, absence de changement API) mais manque les détails de validation demandés par le template.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/redesign-web-ui

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

@github-actions github-actions Bot added scope: web Embedded web player (React) scope: routes Web routes scope: components Web UI components size: xl > 500 lines labels Jun 12, 2026
@InstaZDLL InstaZDLL self-assigned this Jun 12, 2026
@InstaZDLL InstaZDLL changed the title [codex] redesign web experience redesign web experience Jun 12, 2026
@InstaZDLL
InstaZDLL marked this pull request as ready for review June 12, 2026 13:43

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (6)
web/src/components/PlaylistFormDialog.tsx (2)

1-220: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Résolvez l'erreur de formatage Prettier avant la fusion.

Le pipeline signale une vérification de formatage Prettier échouée pour ce fichier. Veuillez exécuter prettier --write ou l'intégration auto-format de votre éditeur pour corriger cela.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/components/PlaylistFormDialog.tsx` around lines 1 - 220, Run Prettier
on this file (the PlaylistFormDialog component) to fix formatting errors: e.g.
run prettier --write or your editor's auto-format on the file containing
PlaylistFormDialog (constants like NAME_MAX / DESCRIPTION_MAX and the
PlaylistFormDialog function are the symbols to locate the component). After
formatting, re-run the formatter/lint step (or the repo's pre-commit hook / npm
run format) and commit the updated file so the Prettier check in CI passes.

Source: Pipeline failures


1-220: ⚠️ Potential issue | 🟡 Minor

Valider les classes design-system dans web/src/styles.css

  • Les classes utilisées (panel, panel-pad, button, button-ghost, button-primary, input, textarea, error-card, status-card, quiet-panel, section-eyebrow, display-title, page-wrap, app-main, etc.) existent bien dans ./web/src/styles.css.
  • Les “variantes composées” button button-ghost / button button-primary : pas besoin d’un sélecteur du type .button.button-ghost (aucun n’apparaît) ; .button fournit la base (layout/hover/active) et .button-ghost / .button-primary surchargent les couleurs/bordures.
  • Les utilitaires (px-4, mx-auto, max-w-md, gap-2, text-4xl, font-bold, …) ne sont pas définis dans styles.css : l’empilement dépend d’une autre source (ex. génération Tailwind), donc ce fichier ne permet pas de trancher ce point.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/components/PlaylistFormDialog.tsx` around lines 1 - 220, Confirm in
web/src/styles.css that the design-system classes referenced by
PlaylistFormDialog (panel, panel-pad, button, button-ghost, button-primary,
input, textarea, error-card, status-card, quiet-panel, section-eyebrow,
display-title, page-wrap, app-main) are defined; ensure button-ghost and
button-primary exist as modifier classes (not only as combined selectors) since
PlaylistFormDialog uses them as separate class tokens (e.g., "button
button-ghost"), and if only combined selectors like ".button.button-ghost" are
present change or add standalone ".button-ghost" and ".button-primary" rules to
override colors/borders while keeping .button as the base; finally, add a short
comment or README note in the styles file that utility classes (px-4, mx-auto,
max-w-md, gap-2, text-4xl, font-bold, etc.) come from Tailwind (or another
generator) and are intentionally not declared in styles.css.
web/src/routes/sign-up.tsx (1)

1-159: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Résolvez l'erreur de formatage Prettier avant la fusion.

Le pipeline signale une vérification de formatage Prettier échouée pour ce fichier. Veuillez exécuter prettier --write ou l'intégration auto-format de votre éditeur pour corriger cela.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/routes/sign-up.tsx` around lines 1 - 159, Prettier formatting failed
for this file; run your formatter (e.g. prettier --write) or use your editor's
auto-format on the SignUp component file to fix whitespace/format issues so the
CI check passes; focus on formatting the exported SignUp function and
surrounding constants (MIN_PASSWORD, MAX_PASSWORD) and ensure JSX (form, inputs,
buttons) is properly formatted to match the project's Prettier config.

Source: Pipeline failures

web/src/routes/sign-in.tsx (1)

1-180: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Résolvez l'erreur de formatage Prettier avant la fusion.

Le pipeline signale une vérification de formatage Prettier échouée pour ce fichier. Veuillez exécuter prettier --write ou l'intégration auto-format de votre éditeur pour corriger cela.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/routes/sign-in.tsx` around lines 1 - 180, Prettier formatting failed
for this file; run a formatter (e.g. run `prettier --write` on the project or
this file) or use your editor's auto-format to fix style issues in the SignIn
component and related exports (Route, safeContinueTarget), then stage and commit
the modified file and push the branch so the CI formatting check passes. Ensure
you don't introduce functional changes—only formatting—before committing.

Source: Pipeline failures

web/src/routes/_authed.settings.tsx (1)

1-124: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Résolvez l'erreur de formatage Prettier avant la fusion.

Le pipeline signale une vérification de formatage Prettier échouée pour ce fichier. Veuillez exécuter prettier --write ou l'intégration auto-format de votre éditeur pour corriger cela.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/routes/_authed.settings.tsx` around lines 1 - 124, Prettier
formatting failed for this file; run the formatter (eg. `prettier --write .` or
use your editor's auto-format) and re-stage the updated file so the diff for
SettingsPage / AccountCard / formatCreatedAt matches the repo style; then commit
and push the formatted changes to fix the CI check.

Source: Pipeline failures

web/src/components/PlayableTrackList.tsx (1)

1-1: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Corriger les problèmes de formatage Prettier dans les 4 fichiers.

Les 4 fichiers de cette couche (PlayableTrackList.tsx, _authed.profiles.$profileId.playlists.tsx, _authed.profiles.$profileId.playlists.$playlistId.tsx, p.$token.tsx) échouent la vérification Prettier selon les logs du pipeline CI. Lancer bun run format ou l'équivalent pour corriger automatiquement.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/components/PlayableTrackList.tsx` at line 1, Les fichiers
PlayableTrackList.tsx, _authed.profiles.$profileId.playlists.tsx,
_authed.profiles.$profileId.playlists.$playlistId.tsx et p.$token.tsx échouent
la vérification Prettier; exécutez le formateur (par exemple `bun run format` ou
votre équivalent npm/yarn/cli) pour reformater ces fichiers, vérifiez les
modifications générées, ajoutez/committez les fichiers reformattés et poussez la
branche pour que la CI repasse. Assurez-vous que les symboles/exports dans
PlayableTrackList.tsx et les routes `_authed.profiles.*`/`p.$token.tsx` restent
inchangés fonctionnellement après le formatage.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/src/styles.css`:
- Line 346: Les variables CSS --accent-600, --accent-500, --accent-100 et
--accent-700 sont utilisées par .button-accent, .input:focus, .art-tile, la puce
active dans TrackFilterBar et le style inline de la tuile de couverture dans
PlayerBar mais ne sont pas définies; fixez-le en ajoutant ces variables soit
dans :root (avec valeurs pour thèmes clair et sombre) soit en important les
tokens depuis `@waveflow/design-tokens` dans le bloc `@theme` et mappez les noms
(--accent-600/500/100/700) aux valeurs appropriées afin que .button-accent,
.input:focus, .art-tile et les composants TrackFilterBar/PlayerBar affichent les
couleurs attendues.
- Around line 5-7: Le fichier contient uniquement un bloc `@theme` définissant
--font-sans mais il manque un bloc `@theme` inline qui remappe les utilitaires
accent-* et surface-* vers les variables OKLCH fournies par
`@waveflow/design-tokens`; ajoute un bloc `@theme` inline dans web/src/styles.css
qui définit les mappings pour accent-* et surface-* en utilisant les variables
OKLCH exportées par `@waveflow/design-tokens` (nom des variables exactes de
design-tokens), afin que les utilitaires accent-* / surface-* pointent vers ces
variables.

---

Outside diff comments:
In `@web/src/components/PlayableTrackList.tsx`:
- Line 1: Les fichiers PlayableTrackList.tsx,
_authed.profiles.$profileId.playlists.tsx,
_authed.profiles.$profileId.playlists.$playlistId.tsx et p.$token.tsx échouent
la vérification Prettier; exécutez le formateur (par exemple `bun run format` ou
votre équivalent npm/yarn/cli) pour reformater ces fichiers, vérifiez les
modifications générées, ajoutez/committez les fichiers reformattés et poussez la
branche pour que la CI repasse. Assurez-vous que les symboles/exports dans
PlayableTrackList.tsx et les routes `_authed.profiles.*`/`p.$token.tsx` restent
inchangés fonctionnellement après le formatage.

In `@web/src/components/PlaylistFormDialog.tsx`:
- Around line 1-220: Run Prettier on this file (the PlaylistFormDialog
component) to fix formatting errors: e.g. run prettier --write or your editor's
auto-format on the file containing PlaylistFormDialog (constants like NAME_MAX /
DESCRIPTION_MAX and the PlaylistFormDialog function are the symbols to locate
the component). After formatting, re-run the formatter/lint step (or the repo's
pre-commit hook / npm run format) and commit the updated file so the Prettier
check in CI passes.
- Around line 1-220: Confirm in web/src/styles.css that the design-system
classes referenced by PlaylistFormDialog (panel, panel-pad, button,
button-ghost, button-primary, input, textarea, error-card, status-card,
quiet-panel, section-eyebrow, display-title, page-wrap, app-main) are defined;
ensure button-ghost and button-primary exist as modifier classes (not only as
combined selectors) since PlaylistFormDialog uses them as separate class tokens
(e.g., "button button-ghost"), and if only combined selectors like
".button.button-ghost" are present change or add standalone ".button-ghost" and
".button-primary" rules to override colors/borders while keeping .button as the
base; finally, add a short comment or README note in the styles file that
utility classes (px-4, mx-auto, max-w-md, gap-2, text-4xl, font-bold, etc.) come
from Tailwind (or another generator) and are intentionally not declared in
styles.css.

In `@web/src/routes/_authed.settings.tsx`:
- Around line 1-124: Prettier formatting failed for this file; run the formatter
(eg. `prettier --write .` or use your editor's auto-format) and re-stage the
updated file so the diff for SettingsPage / AccountCard / formatCreatedAt
matches the repo style; then commit and push the formatted changes to fix the CI
check.

In `@web/src/routes/sign-in.tsx`:
- Around line 1-180: Prettier formatting failed for this file; run a formatter
(e.g. run `prettier --write` on the project or this file) or use your editor's
auto-format to fix style issues in the SignIn component and related exports
(Route, safeContinueTarget), then stage and commit the modified file and push
the branch so the CI formatting check passes. Ensure you don't introduce
functional changes—only formatting—before committing.

In `@web/src/routes/sign-up.tsx`:
- Around line 1-159: Prettier formatting failed for this file; run your
formatter (e.g. prettier --write) or use your editor's auto-format on the SignUp
component file to fix whitespace/format issues so the CI check passes; focus on
formatting the exported SignUp function and surrounding constants (MIN_PASSWORD,
MAX_PASSWORD) and ensure JSX (form, inputs, buttons) is properly formatted to
match the project's Prettier config.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e006b31f-ea1b-4048-851a-bfe59d4a563b

📥 Commits

Reviewing files that changed from the base of the PR and between a616915 and 8314601.

📒 Files selected for processing (27)
  • web/src/components/DeletePlaylistDialog.tsx
  • web/src/components/Footer.tsx
  • web/src/components/Header.tsx
  • web/src/components/OAuthButtons.tsx
  • web/src/components/PlayableTrackList.tsx
  • web/src/components/PlayerBar.tsx
  • web/src/components/PlaylistFormDialog.tsx
  • web/src/components/ThemePicker.tsx
  • web/src/components/ThemeToggle.tsx
  • web/src/components/TrackFilterBar.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.albums.$albumId.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.albums.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.artists.$artistId.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.artists.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.tsx
  • web/src/routes/_authed.profiles.$profileId.playlists.$playlistId.tsx
  • web/src/routes/_authed.profiles.$profileId.playlists.tsx
  • web/src/routes/_authed.profiles.$profileId.tsx
  • web/src/routes/_authed.profiles.tsx
  • web/src/routes/_authed.settings.tsx
  • web/src/routes/about.tsx
  • web/src/routes/desktop-login.tsx
  • web/src/routes/index.tsx
  • web/src/routes/p.$token.tsx
  • web/src/routes/sign-in.tsx
  • web/src/routes/sign-up.tsx
  • web/src/styles.css

Comment thread web/src/styles.css
Comment thread web/src/styles.css
Signed-off-by: InstaZDLL <github.105mh@8shield.net>
Signed-off-by: InstaZDLL <github.105mh@8shield.net>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/src/styles.css`:
- Around line 27-43: The :root hardcodes --accent-* and --color-surface-* tokens
which duplicates the token source generated by themeCssDeclarations (SSR in
ThemeStyle) and applied via applyTheme in ThemeProvider; remove these hardcoded
declarations from web/src/styles.css so the app relies on the canonical tokens,
or if a local fallback is required keep them only as a clearly labeled
DEFAULT_THEME_ID fallback block and document/sync values with the design-tokens
source; update comments to reference themeCssDeclarations, ThemeStyle,
applyTheme and DEFAULT_THEME_ID so future maintainers know the single source of
truth.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7724b20f-0c45-419a-ba67-b0e472e2201c

📥 Commits

Reviewing files that changed from the base of the PR and between 8314601 and f4127b6.

📒 Files selected for processing (9)
  • web/src/components/PlayableTrackList.tsx
  • web/src/components/PlaylistFormDialog.tsx
  • web/src/routes/__root.tsx
  • web/src/routes/_authed.profiles.$profileId.playlists.$playlistId.tsx
  • web/src/routes/_authed.settings.tsx
  • web/src/routes/p.$token.tsx
  • web/src/routes/sign-in.tsx
  • web/src/routes/sign-up.tsx
  • web/src/styles.css

Comment thread web/src/styles.css
Signed-off-by: InstaZDLL <github.105mh@8shield.net>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
web/src/routes/_authed.profiles.tsx (1)

61-61: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

Simplification mineure : indexation de string directe plutôt que Array.from().

L'expression Array.from(p.name.trim())[0]?.toUpperCase() ?? 'P' fonctionne, mais crée un tableau intermédiaire inutile. Les strings sont déjà itérables en JavaScript, donc p.name.trim()[0]?.toUpperCase() ?? 'P' est plus direct.

♻️ Refactorisation proposée
-                    {Array.from(p.name.trim())[0]?.toUpperCase() ?? 'P'}
+                    {p.name.trim()[0]?.toUpperCase() ?? 'P'}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/routes/_authed.profiles.tsx` at line 61, Remplace l'utilisation
inutile d'Array.from dans le JSX avatar initial par un accès direct au caractère
: change l'expression Array.from(p.name.trim())[0]?.toUpperCase() ?? 'P' pour
utiliser p.name.trim()[0]?.toUpperCase() ?? 'P' afin d'éviter de créer un
tableau intermédiaire (localise la modification autour de l'endroit où
l'expression actuelle est rendue).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/src/routes/_authed.profiles.tsx`:
- Line 33: The Tailwind v4 syntax for arbitrary CSS variables should use the
paren form (e.g. text-(--sea-ink)) instead of the bracket + var(...) form;
update the h1 in the JSX (the element with className "display-title text-4xl
font-bold text-[var(--sea-ink)]") to use text-(--sea-ink) and similarly replace
other usages like text-[var(--sea-ink-soft)], bg-[var(--accent-700)],
bg-[var(--accent-100)] across the codebase (including
web/src/routes/_authed.profiles.tsx, desktop-login.tsx, sign-in.tsx,
sign-up.tsx, about.tsx, index.tsx) to the new form so Tailwind v4 parses them
unambiguously. Ensure you only change the className tokens (preserve other
classes/spacing) and run the Tailwind build to verify no remaining
text-[var(...)] occurrences.

---

Outside diff comments:
In `@web/src/routes/_authed.profiles.tsx`:
- Line 61: Remplace l'utilisation inutile d'Array.from dans le JSX avatar
initial par un accès direct au caractère : change l'expression
Array.from(p.name.trim())[0]?.toUpperCase() ?? 'P' pour utiliser
p.name.trim()[0]?.toUpperCase() ?? 'P' afin d'éviter de créer un tableau
intermédiaire (localise la modification autour de l'endroit où l'expression
actuelle est rendue).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5d1c78eb-cd28-4bd5-83b1-6e56653c533d

📥 Commits

Reviewing files that changed from the base of the PR and between f4127b6 and eeac19b.

📒 Files selected for processing (10)
  • web/src/components/Footer.tsx
  • web/src/components/Header.tsx
  • web/src/components/PlayerBar.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.albums.$albumId.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.artists.$artistId.tsx
  • web/src/routes/_authed.profiles.$profileId.libraries.$libraryId.tsx
  • web/src/routes/_authed.profiles.tsx
  • web/src/routes/about.tsx
  • web/src/routes/index.tsx
  • web/src/styles.css

Comment thread web/src/routes/_authed.profiles.tsx Outdated
Signed-off-by: InstaZDLL <github.105mh@8shield.net>
@InstaZDLL
InstaZDLL merged commit 15b335f into main Jun 12, 2026
10 checks passed
@InstaZDLL
InstaZDLL deleted the codex/redesign-web-ui branch June 12, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: components Web UI components scope: routes Web routes scope: web Embedded web player (React) size: xl > 500 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant