MelissaFinanceiro: chart + projecao 50/50, lancamentos full-width
Wrappa "Receita x Despesa" e "Projecao de Caixa" em .mf-cards-row flex 50/50 lado a lado em desktop (alturas iguais via align-items: stretch + body flex: 1 com scroll interno). "Ultimos lancamentos" fica full-width abaixo. Mobile empilha (column), chart wrap volta pra altura fixa 240px, body sem scroll interno (.mf-body ja scrolla). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -295,8 +295,9 @@ onMounted(async () => {
|
|||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mf-cards-row">
|
||||||
<!-- ═══ 2. Gráfico Receita × Despesa ════════════ -->
|
<!-- ═══ 2. Gráfico Receita × Despesa ════════════ -->
|
||||||
<div class="mf-card">
|
<div class="mf-card mf-card--chart">
|
||||||
<div class="mf-card__head">
|
<div class="mf-card__head">
|
||||||
<div class="mf-card__icon mf-card__icon--primary">
|
<div class="mf-card__icon mf-card__icon--primary">
|
||||||
<i class="pi pi-chart-bar" />
|
<i class="pi pi-chart-bar" />
|
||||||
@@ -320,7 +321,7 @@ onMounted(async () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- ═══ 3. Projeção de Caixa ════════════════════ -->
|
<!-- ═══ 3. Projeção de Caixa ════════════════════ -->
|
||||||
<div class="mf-card">
|
<div class="mf-card mf-card--cashflow">
|
||||||
<div class="mf-card__head">
|
<div class="mf-card__head">
|
||||||
<div class="mf-card__icon mf-card__icon--primary">
|
<div class="mf-card__icon mf-card__icon--primary">
|
||||||
<i class="pi pi-calendar" />
|
<i class="pi pi-calendar" />
|
||||||
@@ -378,8 +379,10 @@ onMounted(async () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div><!-- /.mf-cards-row -->
|
||||||
|
|
||||||
<!-- ═══ 4. Últimos lançamentos ══════════════════ -->
|
<!-- ═══ 4. Últimos lançamentos ══════════════════ -->
|
||||||
<div class="mf-card">
|
<div class="mf-card mf-card--recent">
|
||||||
<div class="mf-card__head">
|
<div class="mf-card__head">
|
||||||
<div class="mf-card__icon mf-card__icon--primary">
|
<div class="mf-card__icon mf-card__icon--primary">
|
||||||
<i class="pi pi-list" />
|
<i class="pi pi-list" />
|
||||||
@@ -671,6 +674,34 @@ onMounted(async () => {
|
|||||||
border-color: var(--m-border);
|
border-color: var(--m-border);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ─── Row 50/50: Chart + Projeção lado a lado em desktop ─── */
|
||||||
|
.mf-cards-row {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
gap: 12px;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
.mf-cards-row > .mf-card {
|
||||||
|
flex: 1 1 50%;
|
||||||
|
min-width: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.mf-cards-row > .mf-card .mf-card__body {
|
||||||
|
flex: 1;
|
||||||
|
min-height: 0;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.mf-cards-row > .mf-card--chart .mf-card__body {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.mf-cards-row > .mf-card--chart .mf-chart-wrap {
|
||||||
|
flex: 1;
|
||||||
|
height: auto;
|
||||||
|
min-height: 240px;
|
||||||
|
}
|
||||||
|
|
||||||
/* ─── Card-base (Gráfico, Projeção, Lançamentos) ─── */
|
/* ─── Card-base (Gráfico, Projeção, Lançamentos) ─── */
|
||||||
.mf-card {
|
.mf-card {
|
||||||
background: var(--m-bg-soft);
|
background: var(--m-bg-soft);
|
||||||
@@ -854,5 +885,16 @@ onMounted(async () => {
|
|||||||
order: -1;
|
order: -1;
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
/* Row 50/50 empilha em mobile, com altura natural por card */
|
||||||
|
.mf-cards-row {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.mf-cards-row > .mf-card .mf-card__body {
|
||||||
|
overflow-y: visible;
|
||||||
|
}
|
||||||
|
.mf-cards-row > .mf-card--chart .mf-chart-wrap {
|
||||||
|
height: 240px;
|
||||||
|
min-height: 240px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user