0.1.10 • Published 5 months ago

hlc-layer-ui v0.1.10

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

HLC Layer UI

A collection of Vue 3 components for Nuxt 3 applications, including a Button component and a Hero Slider pattern with Prismic CMS integration.

Installation

# Using bun
bun add hlc-layer-ui

# Using npm
npm install hlc-layer-ui

# Using yarn
yarn add hlc-layer-ui

Setup

Add hlc-layer-ui to the extends array in your nuxt.config.ts:

export default defineNuxtConfig({
  extends: ['hlc-layer-ui']
})

Components

Button Component

<template>
  <Button variant="primary">Click me</Button>
  
  <!-- With loading state -->
  <Button loading>Loading...</Button>
  
  <!-- Different variants -->
  <Button variant="secondary">Secondary</Button>
  <Button variant="danger">Danger</Button>
  
  <!-- Different sizes -->
  <Button size="small">Small</Button>
  <Button size="large">Large</Button>
</template>

Button Props

NameTypeDefaultDescription
variantstring'primary'Button style: 'primary', 'secondary', 'danger'
sizestring'medium'Button size: 'small', 'medium', 'large'
loadingbooleanfalseShows a loading spinner
disabledbooleanfalseDisables the button

Hero Slider Pattern

A modern, responsive hero slider with Prismic CMS integration, perfect for showcasing featured content, promotions, and announcements.

<template>
  <HeroSlider :data="sliderData" />
</template>

<script setup lang="ts">
import type { SliderData } from 'hlc-layer-ui'

const sliderData: SliderData = {
  primary: {
    enable_auto_rotation: true,
    slider_full_width: true,
    hide_content_on_mobile: false
  },
  items: [
    {
      hero_image_desktop: {
        dimensions: { width: 3840, height: 1410 },
        alt: "Slide Example",
        url: "your-image-url.jpg",
        // ... other Prismic image properties
      },
      hero_image_mobile: {
        // ... mobile image properties
      },
      enable_slide: true,
      schedule_to: "2025-02-14T22:59:00+0000",
      hero_helper_text: "FEATURED",
      hero_helper_text_color: "#D8A19A",
      hero_title: "Your Slide Title",
      hero_content: [
        {
          type: "paragraph",
          text: "Your slide content here.",
          spans: [],
          direction: "ltr"
        }
      ],
      hero_primary_cta_text: "Learn More",
      hero_primary_cta_link: {
        link_type: "Document",
        uid: "your-page"
      },
      hero_slider_theme: false,
      hero_content_mobile_background_color: "#F0D2CF"
    }
    // ... more slides
  ],
  id: "your-slider-id",
  slice_type: "hero_slider"
}
</script>

Hero Slider Features

  • Responsive design with mobile/desktop images
  • Auto-rotation support
  • Full-width option
  • Mobile content visibility toggle
  • Primary and secondary CTAs
  • Theme variations (light/dark)
  • Scheduling support
  • Rich text content with formatting

Best Practices

  • Keep the number of slides between 3-5 for optimal user experience
  • Ensure images are optimized and properly sized (desktop: 3840x1410px, mobile: 1242x1197px recommended)
  • Use clear, action-oriented CTA text
  • Keep content concise and focused
  • Test slider behavior across different screen sizes
  • Consider accessibility by providing meaningful alt text for images

Development

To start the development server and view the component demos:

bun run dev

License

MIT

0.1.10

5 months ago

0.1.9

5 months ago

0.1.8

5 months ago

0.1.7

5 months ago

0.1.6

5 months ago

0.1.3

5 months ago

0.1.2

5 months ago

0.1.1

5 months ago

0.1.0

5 months ago