Island

A grouped Alixan UI content surface with an optional title and description.

Installation

npx alixan-ui-nuxt add island

Usage

Overview

Your latest account information

img
Aruzhan Sarsenova
+7 701 123 45 67
img
Daniyar Aliyev
+7 702 234 56 78
img
Aidana Nurlankyzy
+7 705 345 67 89
<script setup lang="ts">
const contacts = [
  { title: 'list.contacts.aruzhan', description: 'list.contacts.aruzhanPhone', image: '/examples/contact-avatar.webp' },
  { title: 'list.contacts.daniyar', description: 'list.contacts.daniyarPhone', image: '/examples/contact-daniyar.webp' },
  { title: 'list.contacts.aidana', description: 'list.contacts.aidanaPhone', image: '/examples/contact-aidana.webp' },
];
</script>

<Island
  title="island.demoTitle"
  description="island.demoDesc"
  header-position="inside"
>
  <List divider="inset">
    <ListTile
      v-for="contact in contacts"
      :key="contact.title"
      :title="contact.title"
      :description="contact.description"
    >
      <template #leading>
        <img :src="contact.image" alt="" loading="lazy" class="size-11 rounded-full object-cover" />
      </template>
    </ListTile>
  </List>
</Island>

Outside Header

Overview

Your latest account information

img
Aruzhan Sarsenova
+7 701 123 45 67
img
Daniyar Aliyev
+7 702 234 56 78
img
Aidana Nurlankyzy
+7 705 345 67 89
<script setup lang="ts">
const contacts = [
  { title: 'list.contacts.aruzhan', description: 'list.contacts.aruzhanPhone', image: '/examples/contact-avatar.webp' },
  { title: 'list.contacts.daniyar', description: 'list.contacts.daniyarPhone', image: '/examples/contact-daniyar.webp' },
  { title: 'list.contacts.aidana', description: 'list.contacts.aidanaPhone', image: '/examples/contact-aidana.webp' },
];
</script>

<Island
  title="island.demoTitle"
  description="island.demoDesc"
  header-position="outside"
>
  <List divider="inset">
    <ListTile
      v-for="contact in contacts"
      :key="contact.title"
      :title="contact.title"
      :description="contact.description"
    >
      <template #leading>
        <img :src="contact.image" alt="" loading="lazy" class="size-11 rounded-full object-cover" />
      </template>
    </ListTile>
  </List>
</Island>

API Reference

PropTypeDefaultDescription
titlestring-Optional heading displayed above the content.
descriptionstring-Optional description displayed below the heading.
headerPosition'inside' | 'outside''outside'Places the title and description inside the island or above its border.
contentClassstring-Additional classes for the bordered island content container.
defaultslot-Content rendered inside the island body.