@awes-io/ui

User Interface (UI) components
27,373 9
Install
npm install @awes-io/ui
Latest Version:2.145.6
Vue:2
License:MIT
Last Updated:May 7, 2023
Links: GitHub  ·  npm
Maintainer: awescode

@awes-io/ui

UI component library for AwesCode UI applications built with Vue.js and Nuxt.js.

Overview

This package provides a comprehensive set of reusable UI components organized using atomic design principles. Components are categorized into atoms, molecules, organisms, pages, and layouts, each serving a specific purpose in building user interfaces.

Installation

npm install @awes-io/ui
# or
yarn add @awes-io/ui

Setup

Nuxt.js

Add the module to your nuxt.config.js:

export default {
  modules: [
    '@awes-io/ui'
  ],
  
  // Required: Enable components
  components: true,
  
  // Required: Enable Vuex store
  store: true
}

Configuration

Create an awes.config.js file in your project root to customize component defaults:

export default {
  // Default theme configuration
  logo: {
    src: '/logo.svg',
    alt: 'My App'
  },
  
  // Component-specific configuration
  AwButton: {
    size: 'md',
    color: 'accent',
    theme: 'solid'
  },
  
  // Dark theme overrides
  dark: {
    logo: {
      src: '/logo-dark.svg'
    }
  }
}

Component System

Architecture

Components are organized into 5 categories:

  1. Atoms - Basic building blocks (inputs, buttons, icons)
  2. Molecules - Simple combinations of atoms
  3. Organisms - Complex, feature-specific components
  4. Pages - Complete page layouts
  5. Layouts - Root-level layout components

Import Methods

  • Global: Atoms and most molecules are automatically registered and available everywhere
  • Dynamic: Organisms, pages, and layouts are dynamically imported for better performance

See docs/index.md for complete component listing.

Quick Start

Basic Usage

<template>
  <AwPage title="My Page">
    <AwCard title="Card Title">
      <AwInput v-model="name" label="Name" />
      <AwButton @click="submit">Submit</AwButton>
    </AwCard>
  </AwPage>
</template>

With Layout

<template>
  <AwLayout>
    <AwPage title="Dashboard">
      <!-- page content -->
    </AwPage>
  </AwLayout>
</template>

Features

  • Atomic Design - Organized component hierarchy
  • Global & Dynamic Imports - Optimized loading strategy
  • Vuex Integration - Built-in store module for navigation and state
  • Dark Theme Support - Automatic theme switching
  • Responsive Design - Mobile-first with breakpoint utilities
  • TypeScript Ready - Full TypeScript support
  • Accessible - ARIA attributes and keyboard navigation
  • Customizable - Extensive configuration options

Documentation

Store Module

The library includes a Vuex store module (awesIo) that manages:

  • Navigation menus
  • Route tracking
  • Dark theme state
  • Screen breakpoints
  • User profile data

Access via $store.getters['awesIo/mainMenu'] or use the provided getters.

Plugins

The module automatically registers several Nuxt plugins:

  • Core - $awes config and $notify notifications
  • Screen - $screen responsive breakpoints
  • Router - Extended router methods
  • Dark Theme - Theme management
  • Permissions - CASL integration
  • Day.js - Date handling

Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)

Development

# Install dependencies
yarn install

# Run examples
cd examples
yarn dev

License

See LICENSE file for details.

Related Packages

@awes-io/nuxt-laravel

AwesCode UI module for connection with Laravel backend

7,075 9
dcode

UI based on Material Design

5,674 0
@luna-park/plugin-nuxt-ui

Nuxt UI plugin for Luna Park

4,319 0
@varlet/ui

A Vue3 component library based on Material Design 2 and 3, supporting mobile and...

136,560 5,337

Version History

Version Released License
2.145.6 MIT
2.145.5 MIT
2.145.4 MIT
2.145.3 MIT
2.145.2 MIT