An open API service indexing awesome lists of open source software.

https://github.com/holtwick/oui

Just another set of UI components for Vue.js with a proper French-sounding name.
https://github.com/holtwick/oui

oui typescript ui-components vite vue vue3

Last synced: about 1 year ago
JSON representation

Just another set of UI components for Vue.js with a proper French-sounding name.

Awesome Lists containing this project

README

          

# ðŸŽĻ Oui Kit

ðŸŽŊ *UI toolkit with a French touch* ðŸ‡Ŧ🇷

**Modern â€Ē Lightweight â€Ē TypeScript-first â€Ē Accessible**

[![npm version](https://img.shields.io/npm/v/oui-kit.svg)](https://www.npmjs.com/package/oui-kit)
[![license](https://img.shields.io/npm/l/oui-kit.svg)](https://github.com/holtwick/oui/blob/main/LICENSE)
[![downloads](https://img.shields.io/npm/dm/oui-kit.svg)](https://www.npmjs.com/package/oui-kit)

[🚀 Get Started](#installation) â€Ē [📚 Documentation](https://oui.holtwick.de) â€Ē [ðŸŽŪ Live Demo](https://oui.holtwick.de)

## âœĻ Why Oui Kit?

- ðŸŽŊ **Vue 3 Native** - Built from the ground up for Vue 3 Composition API
- ðŸŽĻ **Stylus Powered** - Flexible theming system with Stylus CSS
- ðŸ“Ķ **Tree Shakeable** - Import only what you need
- 🔧 **TypeScript First** - Full TypeScript support out of the box
- â™ŋ **Accessible** - WCAG compliant components
- ðŸŠķ **Lightweight** - Minimal bundle size impact
- 🎛ïļ **Customizable** - Easy to theme and extend

---

ðŸŽŪ **Try it live:**

ðŸ“ą **Scan QR code for mobile demo:**

QR Code to demo website

## 🚀 Quick Start

Get up and running in under 2 minutes!

```bash
npm install oui-kit
# or
pnpm add oui-kit
# or
yarn add oui-kit
```

## ðŸŽŊ Usage

### Basic Setup

```typescript
// main.ts
import { createApp } from 'vue'
import App from './App.vue'

// Import oui-kit styles
import 'oui-kit/css'

const app = createApp(App)
app.mount('#app')
```

### Your First Component

```vue

import { OuiButton, OuiModal, useNotification } from 'oui-kit'
import { ref } from 'vue'

const showModal = ref(false)
const { notify } = useNotification()

function handleSuccess() {
notify('🎉 Success! Your component is working!', 'success')
}

function handleInfo() {
notify('â„đïļ This is an info message', 'info')
}


Welcome to Oui Kit!



🎉 Show Success


â„đïļ Show Info


ðŸ“ą Open Modal


This modal demonstrates the power of Oui Kit components.


Enjoy building beautiful Vue.js applications! 🚀



@import 'oui-kit/stylus'

.demo-container
padding: $spacing-lg
max-width: 600px
margin: 0 auto

.button-group
display: flex
gap: $spacing-md
flex-wrap: wrap
margin-top: $spacing-md

```

## ðŸ§Đ Available Components

### ðŸŽĻ UI Components

| Component | Description | Features |
|-----------|-------------|----------|
| **OuiButton** | Versatile button component | Multiple variants, sizes, loading states |
| **OuiModal** | Beautiful modal dialogs | Backdrop blur, animations, accessibility |
| **OuiNotification** | Toast notification system | Auto-dismiss, positions, custom styling |
| **OuiFloat** | Floating positioning | Tooltips, dropdowns, popovers |

### 🔧 Composables & Utilities

| Composable | Description | Use Case |
|------------|-------------|----------|
| **useNotification** | Reactive notification system | Show success/error messages |
| **useModal** | Modal state management | Programmatic modal control |
| **useFloat** | Floating element positioning | Tooltips, dropdowns, menus |

### Tree Shaking

```typescript
// Import only what you need
import * as OuiKit from 'oui-kit'
// Or import everything (not recommended for production)
import { OuiButton, OuiModal, useNotification } from 'oui-kit'
import { OuiButton } from 'oui-kit/button'
import { OuiModal } from 'oui-kit/modal'

import { useNotification } from 'oui-kit/notification'
```

## 🛠ïļ Development

### Prerequisites

- Node.js 18+
- pnpm (recommended) or npm

### Contributing

We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details on:

- Code style and formatting
- Testing requirements
- Git workflow and commit conventions
- Development setup

## Browser Support

oui-kit supports all modern browsers:

- Chrome 88+
- Firefox 85+
- Safari 14+
- Edge 88+

## License

MIT License - see [LICENSE](./LICENSE) file for details.

## Acknowledgments

Derives from this previous work:

- [twindy](https://github.com/holtwick/twindy)
- [twindy-headless](https://github.com/holtwick/twindy-headless)

## Support

- 📖 [Documentation](https://oui.holtwick.de)
- 🐛 [Issues](https://github.com/holtwick/oui/issues)
- 💎 [Discussions](https://github.com/holtwick/oui/discussions)
- âĪïļ [Sponsor](https://github.com/sponsors/holtwick)