Skip to content

Sheet ​

Painel deslizante que entra por qualquer borda da tela. Ideal para navegação lateral, formulários contextuais e detalhes de itens.

Exemplos ​

Lateral direita (padrão) ​

vue
<script setup lang="ts">
import { Sheet, Button } from '@halfbyte/maka'
import { ref } from 'vue'

const aberto = ref(false)
</script>

<template>
  <Button @click="aberto = true">Abrir sheet</Button>

  <Sheet v-model="aberto" title="Detalhes do pedido" description="Informações completas sobre o pedido #1042.">
    <p>Conteúdo do sheet.</p>

    <template #footer>
      <Button variant="outline" @click="aberto = false">Fechar</Button>
      <Button @click="aberto = false">Salvar</Button>
    </template>
  </Sheet>
</template>

Posicionamento ​

vue
<Sheet placement="left" …>…</Sheet>
<Sheet placement="right" …>…</Sheet>
<Sheet placement="top" …>…</Sheet>
<Sheet placement="bottom" …>…</Sheet>

Props ​

PropTipoPadrão
modelValuebooleanfalse
titlestring—
descriptionstring—
placement"right" | "left" | "top" | "bottom""right"
size"sm" | "md" | "lg" | "xl" | "full""md"
closablebooleantrue

Larguras por tamanho (placement lateral) ​

SizeLargura
sm280px
md380px
lg480px
xl580px
full100%

Slots ​

SlotDescrição
defaultCorpo do sheet
headerSubstitui o header padrão (título + descrição)
footerRodapé com ações (botões)

Events ​

EventoPayloadDescrição
update:modelValuebooleanEmitido ao abrir/fechar sheet