0.1.6 • Published 11 months ago

@mknz/vue-mfe-feature-b v0.1.6

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Vue MFE Feature B - TodoList Component

Tests

A modern TodoList component for Vue.js micro-frontends. Built with Vue 3 and TypeScript, featuring local storage persistence and a clean UI.

🔗 Part of the Vue MFE ecosystem. Check out @mknz/vue-mfe-wrapper for the core framework.

Features

  • ✨ Modern, clean UI design
  • 💾 Local storage persistence
  • 🌓 Light/Dark theme support
  • ✅ Checkbox completion
  • 🗑️ Easy item removal
  • ⚡️ Performance optimized

Installation

# Using npm
npm install @mknz/vue-mfe-feature-b

# Using bun
bun add @mknz/vue-mfe-feature-b

Quick Start

<script setup>
import { TodoList } from '@mknz/vue-mfe-feature-b'
</script>

<template>
  <TodoList />
</template>

Props

PropTypeDefaultDescription
storageKeystring'todos'Local storage key for persistence
maxItemsnumber100Maximum number of todo items
theme'light' \| 'dark''light'Color theme

Events

  • @item-added: Emitted when a new todo is added
  • @item-removed: Emitted when a todo is removed
  • @item-toggled: Emitted when a todo's completion status changes

Example with Event Handling

<script setup>
import { TodoList } from '@mknz/vue-mfe-feature-b'

const handleItemAdded = (item) => {
  console.log('New todo added:', item)
}

const handleItemToggled = (item) => {
  console.log('Todo toggled:', item)
}
</script>

<template>
  <TodoList
    storage-key="my-todos"
    :max-items="50"
    theme="light"
    @item-added="handleItemAdded"
    @item-toggled="handleItemToggled"
  />
</template>

Local Storage

The TodoList component automatically saves todos to local storage using the specified storageKey. The data structure is:

interface Todo {
  text: string
  completed: boolean
}

Styling

The component comes with a modern, clean design out of the box. It supports both light and dark themes and is fully responsive.

CSS Variables

You can customize the appearance by overriding these CSS variables:

:root {
  --todo-primary-color: #1a237e;
  --todo-bg-color: #ffffff;
  --todo-text-color: #333333;
  --todo-border-radius: 10px;
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

0.1.6

11 months ago

0.1.5

11 months ago

0.1.3

11 months ago

0.1.2

11 months ago

0.1.0

11 months ago