Skip to content

Modal

Accessible modal dialog with focus trap.

Features

  • Focus trap — Tab cycles within modal
  • Escape to close — Keyboard dismissal
  • Backdrop click — Click outside to close
  • 4 sizes — sm, md, lg, full
  • Slots — Header, content, footer

Usage

vue
<script setup>
import { ref } from 'vue'
import { FkModal, FkButton } from '@fortune-kit/components'

const isOpen = ref(false)
</script>

<template>
  <FkButton @click="isOpen = true">Open Modal</FkButton>

  <FkModal
    v-model:open="isOpen"
    title="Modal Title"
    description="Optional description text."
    size="md"
  >
    <p>Modal content goes here.</p>

    <template #footer>
      <FkButton variant="ghost" @click="isOpen = false">Cancel</FkButton>
      <FkButton @click="isOpen = false">Confirm</FkButton>
    </template>
  </FkModal>
</template>

Props

PropTypeDefaultDescription
openbooleanRequiredModal visibility
titlestringModal title
descriptionstringDescription text
closeOnBackdropbooleantrueClose on backdrop click
closeOnEscapebooleantrueClose on Escape key
size'sm' | 'md' | 'lg' | 'full''md'Modal size

Slots

SlotDescription
defaultMain content
headerCustom header content
footerFooter with actions

Built for iGaming with Vue 3