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