Skip to content

Usage

Default

Pass an array of navigation items to the navItems prop. Each item should be a CLNavItem object with at minimum an id and label property.

vue
<script setup lang="ts">
import { CLNavSection } from '@codeandfunction/callaloo'

const navItems = [
  {
    href: '#',
    id: 'home',
    label: 'Home'
  },
  { id: 'about', label: 'About' },
  { id: 'contact', label: 'Contact' }
]
</script>

<template>
  <CLNavSection :nav-items="navItems" />
</template>

Colors

Use the color prop to customize the component's color. This color will be applied to all navigation links.

vue

Orientation

Use the type prop to set the orientation of the navigation section. The default orientation is horizontal.

vue
<script setup lang="ts">
import { CLNavSection, CLOrientation } from '@codeandfunction/callaloo'

const navItems = [
  {
    href: '#',
    id: 'home',
    label: 'Home'
  },
  { id: 'about', label: 'About' },
  { id: 'contact', label: 'Contact' }
]
</script>

<template>
  <CLNavSection :nav-items="navItems" :type="CLOrientation.Horizontal" />
  <CLNavSection :nav-items="navItems" :type="CLOrientation.Vertical" />
</template>

Navigation items can be configured as external links by setting the external property to true and providing a target.

vue
<script setup lang="ts">
import { CLNavSection, CLLinkTarget } from '@codeandfunction/callaloo'

const navItems = [
  { id: 'home', label: 'Home', href: '#' },
  {
    id: 'github',
    label: 'Github',
    href: 'https://github.com',
    target: CLLinkTarget.Blank,
    external: true
  }
]
</script>

<template>
  <CLNavSection :nav-items="navItems" />
</template>

With Click Handlers

Navigation items can include click handlers for handling navigation events.

vue
<script setup lang="ts">
import { CLNavSection } from '@codeandfunction/callaloo'

const handleNavClick = (page: string) => {
  console.log(`${page} clicked`)
}

const navItems = [
  { id: 'home', label: 'Home', onClick: () => handleNavClick('Home') },
  { id: 'about', label: 'About', onClick: () => handleNavClick('About') },
  { id: 'contact', label: 'Contact', onClick: () => handleNavClick('Contact') }
]
</script>

<template>
  <CLNavSection :nav-items="navItems" />
</template>

Props

Released under the MIT License.