Skip to content

MeSidebarSectionViewer

Layout com menu lateral e área de conteúdo. As seções são definidas declarativamente com MeSidebarSection passado no slot default.

Playground

Importação

vue
<script setup>
import { MeSidebarSectionViewer, MeSidebarSection } from '@me/ui-vue3'
</script>

Uso Básico

Conteúdo de configurações.

Conteúdo do perfil.

Conteúdo de notificações.

vue
<MeSidebarSectionViewer>
  <MeSidebarSection icon="settings" title="Configurações">
    <p>Conteúdo de configurações.</p>
  </MeSidebarSection>
  <MeSidebarSection icon="person" title="Perfil">
    <p>Conteúdo do perfil.</p>
  </MeSidebarSection>
  <MeSidebarSection icon="notifications" title="Notificações">
    <p>Conteúdo de notificações.</p>
  </MeSidebarSection>
</MeSidebarSectionViewer>

Com Título

Minha Conta

Atualize seus dados pessoais aqui.

Gerencie sua senha e autenticação.

vue
<MeSidebarSectionViewer title="Minha Conta">
  <MeSidebarSection icon="manage_accounts" title="Dados pessoais">
    <p>Atualize seus dados pessoais aqui.</p>
  </MeSidebarSection>
  <MeSidebarSection icon="lock" title="Segurança">
    <p>Gerencie sua senha e autenticação.</p>
  </MeSidebarSection>
</MeSidebarSectionViewer>

Sem Borda

Ajuste as suas preferências.

Personalize a aparência do sistema.

vue
<MeSidebarSectionViewer :bordered="false">
  <MeSidebarSection icon="tune" title="Preferências">
    <p>Ajuste as suas preferências.</p>
  </MeSidebarSection>
  <MeSidebarSection icon="palette" title="Aparência">
    <p>Personalize a aparência do sistema.</p>
  </MeSidebarSection>
</MeSidebarSectionViewer>

Seção com Altura Controlada

Use minHeight e maxHeight no MeSidebarSection para controlar a altura da área de conteúdo.

Item 1

Item 2

Item 3

Item 4

Item 5

Item 6

Item 7

Item 8

Item 9

Item 10

Conteúdo curto.

vue
<MeSidebarSectionViewer>
  <MeSidebarSection icon="list" title="Lista longa" minHeight="300px">
    <p v-for="i in 10" :key="i">Item {{ i }}</p>
  </MeSidebarSection>
  <MeSidebarSection icon="notes" title="Resumo">
    <p>Conteúdo curto.</p>
  </MeSidebarSection>
</MeSidebarSectionViewer>

Evento section-change

Seção ativa: 0

Página inicial.

Sobre o sistema.

Central de ajuda.

vue
<script setup>
import { ref } from 'vue'
const activeSection = ref(0)
</script>

<template>
  <MeSidebarSectionViewer
    :activeIndex="activeSection"
    @section-change="activeSection = $event"
  >
    <MeSidebarSection icon="home" title="Início">
      <p>Página inicial.</p>
    </MeSidebarSection>
    <MeSidebarSection icon="info" title="Sobre">
      <p>Sobre o sistema.</p>
    </MeSidebarSection>
    <MeSidebarSection icon="help" title="Ajuda">
      <p>Central de ajuda.</p>
    </MeSidebarSection>
  </MeSidebarSectionViewer>
</template>

API

MeSidebarSectionViewer — Props

PropTipoPadrãoDescrição
titlestring-Título exibido no cabeçalho
borderedbooleantrueExibe borda ao redor do componente
activeIndexnumber0Índice da seção ativa inicial

MeSidebarSectionViewer — Eventos

EventoPayloadDescrição
section-changenumberEmitido ao selecionar uma seção. Payload = índice da seção

MeSidebarSectionViewer — Slots

NomeDescrição
defaultUm ou mais MeSidebarSection. Ficam ocultos no DOM e registram-se via provide/inject

MeSidebarSection — Props

PropTipoPadrãoDescrição
iconstring'info'Nome do ícone Material Icons
titlestring-Título da seção, exibido no menu e no cabeçalho do conteúdo
minHeightstring-Altura mínima CSS da área de conteúdo (ex: '300px')
maxHeightstring-Altura máxima CSS da área de conteúdo (ex: '500px')

MeSidebarSection — Slots

NomeDescrição
defaultConteúdo exibido na área direita quando a seção está ativa