Page admin : supprime le débordement à toutes les largeurs
Build & Deploy / build (push) Successful in 24s
Build & Deploy / build (push) Successful in 24s
Mesuré au navigateur avant/après (scrollWidth vs clientWidth, 320/375/414/768/
900/1024/1280px) : la page débordait partout, de 17px en mode carte et de 32px
au-dessus de 1024. Deux causes, aucune liée aux points de rupture.
1. L'application tourne en content-box. src/styles/global.css porte bien un
`* { box-sizing: border-box }` mais n'est importé nulle part — main.tsx ne
charge que index.css, qui pose border-box sur le seul #root. Tout width:100%
assorti d'un padding débordait donc de son conteneur. Réinitialisation
cantonnée à .page : global.css est un vestige d'une ancienne maquette (son
propre .sidebar, .layout, un autre fond de body), l'importer déplacerait tout
le site.
2. En mode carte, .table td était en display:flex : le texte de la cellule
devenait un élément flex anonyme, avec min-width:auto, et un titre de
document long refusait de se réduire — il sortait de la carte et entraînait
la page entière, onglets compris. Passé en bloc, intitulé au-dessus de la
valeur, avec coupure des mots.
Aussi : min-width:0 sur .tabs, sans quoi son overflow-x:auto ne s'enclenchait
jamais ; et rétablissement de la rangée d'actions, dont le display:flex était
écrasé en spécificité par `.table td { display: block }`.
Après correction : aucun débordement sur les quatre onglets, de 320 à 1280px.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+35
-10
@@ -2,6 +2,18 @@
|
|||||||
accent violet #7c3aed (celui de la Sidebar), échelle de gris Tailwind,
|
accent violet #7c3aed (celui de la Sidebar), échelle de gris Tailwind,
|
||||||
cartes blanches bordées, rayons 0.5/0.75rem, unités rem. */
|
cartes blanches bordées, rayons 0.5/0.75rem, unités rem. */
|
||||||
|
|
||||||
|
/* main.tsx ne charge pas styles/global.css — vestige d'une ancienne maquette,
|
||||||
|
jamais importé — donc son `* { box-sizing: border-box }` ne s'applique pas et
|
||||||
|
l'application tourne en content-box : tout width:100% assorti d'un padding
|
||||||
|
déborde de son conteneur. Réinitialisation cantonnée à cette page pour ne rien
|
||||||
|
déplacer sur le reste du site. */
|
||||||
|
.page,
|
||||||
|
.page *,
|
||||||
|
.page *::before,
|
||||||
|
.page *::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
padding: 2rem;
|
padding: 2rem;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -33,6 +45,7 @@
|
|||||||
.tabs {
|
.tabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
|
min-width: 0;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
scrollbar-width: none;
|
scrollbar-width: none;
|
||||||
@@ -507,6 +520,7 @@
|
|||||||
background: transparent;
|
background: transparent;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
|
max-width: 100%;
|
||||||
overflow-x: visible;
|
overflow-x: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -539,24 +553,34 @@
|
|||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Surtout pas display:flex ici : le texte de la cellule deviendrait un élément
|
||||||
|
flex anonyme, avec min-width:auto — un titre long refuserait de se réduire et
|
||||||
|
sortirait de la carte, en entraînant toute la page. En bloc, l'intitulé passe
|
||||||
|
au-dessus de la valeur et la coupure de mots suffit. */
|
||||||
.table td {
|
.table td {
|
||||||
display: flex;
|
display: block;
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
text-align: right;
|
text-align: left;
|
||||||
overflow-wrap: anywhere;
|
overflow-wrap: anywhere;
|
||||||
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table td::before {
|
.table td[data-label]::before {
|
||||||
content: attr(data-label);
|
content: attr(data-label);
|
||||||
|
display: block;
|
||||||
|
font-size: 0.6875rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
color: rgb(107, 114, 128);
|
color: rgb(107, 114, 128);
|
||||||
font-size: 0.8125rem;
|
margin-bottom: 0.125rem;
|
||||||
text-align: left;
|
}
|
||||||
flex-shrink: 0;
|
|
||||||
|
/* `.table td { display: block }` l'emporte en spécificité sur `.rowActions` :
|
||||||
|
on le rétablit ici pour garder les actions sur une rangée. */
|
||||||
|
.table td.rowActions {
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rowActions {
|
.rowActions {
|
||||||
@@ -567,7 +591,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.rowActions button {
|
.rowActions button {
|
||||||
flex: 1;
|
flex: 1 1 8rem;
|
||||||
|
min-width: 0;
|
||||||
padding: 0.5rem 0.75rem;
|
padding: 0.5rem 0.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user