melissa/paciente-docs: drawer mobile herda tema (win11-root no portal)
Drawer teleportado pro body perdia as vars --m-* (definidas em .win11-root no MelissaLayout), caia nos fallbacks hardcoded (#1a1d2e) e ficava mais escuro que o resto do tema. Fix: - Wrapper .mpd-drawer-portal recebe class win11-root pra trazer as vars --m-* pro escopo teleportado. - Vars locais --mpd-bg/--mpd-border/--mpd-text com cascata: --m-* (win11-root) -> --p-* (PrimeVue global) -> hardcoded. Respeita dark/light automaticamente. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -181,8 +181,10 @@ onBeforeUnmount(() => {
|
|||||||
<template>
|
<template>
|
||||||
<!-- Mobile drawer (tipos) — teleportado pro body pra escapar de
|
<!-- Mobile drawer (tipos) — teleportado pro body pra escapar de
|
||||||
stacking contexts pais (transform/filter no MelissaPaciente
|
stacking contexts pais (transform/filter no MelissaPaciente
|
||||||
travavam o fixed) -->
|
travavam o fixed). win11-root no wrapper pra herdar os
|
||||||
|
tokens --m-* definidos nesse escopo. -->
|
||||||
<Teleport to="body">
|
<Teleport to="body">
|
||||||
|
<div class="win11-root mpd-drawer-portal">
|
||||||
<Transition name="mpd-drawer-fade">
|
<Transition name="mpd-drawer-fade">
|
||||||
<div
|
<div
|
||||||
v-show="isMobile && drawerOpen"
|
v-show="isMobile && drawerOpen"
|
||||||
@@ -199,6 +201,7 @@ onBeforeUnmount(() => {
|
|||||||
@click="fecharDrawer"
|
@click="fecharDrawer"
|
||||||
/>
|
/>
|
||||||
</Transition>
|
</Transition>
|
||||||
|
</div>
|
||||||
</Teleport>
|
</Teleport>
|
||||||
|
|
||||||
<section class="mpd-page">
|
<section class="mpd-page">
|
||||||
@@ -670,8 +673,17 @@ onBeforeUnmount(() => {
|
|||||||
|
|
||||||
<!-- Styles do drawer mobile NÃO-scoped — o <Teleport to="body"> tira o
|
<!-- Styles do drawer mobile NÃO-scoped — o <Teleport to="body"> tira o
|
||||||
elemento da árvore do componente, então perde os atributos data-v
|
elemento da árvore do componente, então perde os atributos data-v
|
||||||
do scoped. Classes globais .mpd-mobile-drawer* garantem que aplique. -->
|
do scoped. O wrapper .mpd-drawer-portal carrega .win11-root pra
|
||||||
|
herdar os tokens --m-* (definidos em MelissaLayout). -->
|
||||||
<style>
|
<style>
|
||||||
|
/* Wrapper inerte — não cria stacking, só serve como host das vars */
|
||||||
|
.mpd-drawer-portal {
|
||||||
|
/* Garante que mesmo sem .win11-root (improvável) caia em fallbacks
|
||||||
|
de PrimeVue tokens, que existem globalmente e respeitam dark/light. */
|
||||||
|
--mpd-bg: var(--m-bg-medium, var(--p-content-background, #ffffff));
|
||||||
|
--mpd-border: var(--m-border, var(--p-content-border-color, rgba(0,0,0,0.1)));
|
||||||
|
--mpd-text: var(--m-text, var(--p-text-color, #1a1a1a));
|
||||||
|
}
|
||||||
.mpd-mobile-drawer {
|
.mpd-mobile-drawer {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -680,13 +692,13 @@ onBeforeUnmount(() => {
|
|||||||
height: 100dvh;
|
height: 100dvh;
|
||||||
width: min(320px, 86vw);
|
width: min(320px, 86vw);
|
||||||
z-index: 80;
|
z-index: 80;
|
||||||
background: var(--m-bg-medium, #1a1d2e);
|
background: var(--mpd-bg);
|
||||||
backdrop-filter: blur(28px) saturate(160%);
|
backdrop-filter: blur(28px) saturate(160%);
|
||||||
-webkit-backdrop-filter: blur(28px) saturate(160%);
|
-webkit-backdrop-filter: blur(28px) saturate(160%);
|
||||||
border-right: 1px solid var(--m-border, rgba(255,255,255,0.1));
|
border-right: 1px solid var(--mpd-border);
|
||||||
transform: translateX(-100%);
|
transform: translateX(-100%);
|
||||||
transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
|
transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
color: var(--m-text, #fff);
|
color: var(--mpd-text);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
|
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
|
||||||
@@ -709,7 +721,7 @@ onBeforeUnmount(() => {
|
|||||||
.mpd-mobile-drawer__scroll .mpd-side {
|
.mpd-mobile-drawer__scroll .mpd-side {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border: 1px solid var(--m-border, rgba(255,255,255,0.1));
|
border: 1px solid var(--mpd-border);
|
||||||
}
|
}
|
||||||
.mpd-mobile-drawer__backdrop {
|
.mpd-mobile-drawer__backdrop {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
|||||||
Reference in New Issue
Block a user