Melissa drawers: footer colado no bottom (pattern AppMenu)

Refator do mobile drawer em todas as Melissa Pages com sidebar:
scroll move pra dentro de .xx-side__scroll (flex: 1 + min-height: 0)
e o __footer vira flex-shrink: 0 last child de flex column. Espelha
o pattern do AppMenu/layout-sidebar Rail. Substitui o sticky/margin:auto
que falhava quando o conteudo era pequeno (deixava espaco vazio sob
o "Limpar filtros").

Pages: Compromissos, Conversas, Documentos, FinanceiroLancamentos,
Grupos, Medicos, Notificacoes, Pacientes, Recorrencias, Relatorios, Tags.

Pacientes (caso especial): mp-quick fixo no topo (max-height: 50%)
+ mp-side flex: 1 com scroll/footer interno.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Leonardo
2026-05-06 11:30:52 -03:00
parent 48bf2726a5
commit 02af119dc6
11 changed files with 328 additions and 312 deletions
+25 -26
View File
@@ -774,58 +774,57 @@ onBeforeUnmount(() => {
transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
color: var(--m-text);
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
display: flex;
flex-direction: column;
}
.md-mobile-drawer.is-open { transform: translateX(0); }
.md-mobile-drawer__scroll {
height: 100%;
overflow-y: auto;
overflow-x: hidden;
padding: 12px 12px 24px;
display: flex;
flex-direction: column;
gap: 12px;
scrollbar-width: thin;
scrollbar-color: var(--m-border-strong) transparent;
}
.md-mobile-drawer__scroll::-webkit-scrollbar { width: 5px; }
.md-mobile-drawer__scroll::-webkit-scrollbar-thumb {
background: var(--m-border-strong);
border-radius: 3px;
}
.md-mobile-drawer__scroll .md-side {
width: 100%;
flex: 1;
min-height: 0;
overflow: visible;
padding: 0;
overflow: hidden;
display: flex;
flex-direction: column;
}
.md-mobile-drawer__scroll .md-side {
flex: 1;
min-height: 0;
width: 100%;
overflow: hidden;
background: transparent;
border-right: none;
display: flex;
flex-direction: column;
}
.md-mobile-drawer__scroll .md-side__scroll {
flex: none;
flex: 1;
min-height: 0;
overflow: visible;
overflow-y: auto;
overflow-x: hidden;
padding: 12px;
display: flex;
flex-direction: column;
gap: 12px;
scrollbar-width: thin;
scrollbar-color: var(--m-border-strong) transparent;
}
.md-mobile-drawer__scroll .md-side__scroll::-webkit-scrollbar { width: 5px; }
.md-mobile-drawer__scroll .md-side__scroll::-webkit-scrollbar-thumb {
background: var(--m-border-strong);
border-radius: 3px;
}
.md-mobile-drawer__scroll .md-w--side {
margin: 0;
flex-shrink: 0;
}
.md-mobile-drawer__scroll .md-w--side:last-of-type { margin-bottom: 0; }
.md-mobile-drawer__scroll .md-side__footer {
position: sticky;
bottom: 0;
margin: auto -12px -24px;
flex-shrink: 0;
margin: 0;
padding: 12px;
background: var(--m-bg-medium);
border-top: 1px solid var(--m-border);
backdrop-filter: blur(24px) saturate(160%);
-webkit-backdrop-filter: blur(24px) saturate(160%);
z-index: 5;
}
.md-mobile-drawer__backdrop {