A beautiful, accessible, and framework-agnostic UI component library
Documentation Β· Components Β· Examples Β· Playground
# Core (Web Components)
npm install @adyaui/core
# React
npm install @adyaui/react
# Vue
npm install @adyaui/vue
# Angular
npm install @adyaui/angular
# Svelte
npm install @adyaui/svelte
<!-- Core library -->
<script type="module" src="https://cdn.jsdelivr.net/npm/@adyaui/core"></script>
<!-- Theme (optional) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@adyaui/core/dist/theme.css">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AdyaUI Demo</title>
<script type="module" src="https://cdn.jsdelivr.net/npm/@adyaui/core"></script>
</head>
<body>
<aui-button variant="primary">Click Me!</aui-button>
<aui-text-field label="Name" placeholder="Enter your name"></aui-text-field>
<script>
const button = document.querySelector('aui-button');
button.addEventListener('click', () => {
alert('Button clicked!');
});
</script>
</body>
</html>
import { AuiButton, AuiTextField } from '@adyaui/react';
import '@adyaui/core/dist/theme.css';
function App() {
const handleClick = () => {
console.log('Button clicked!');
};
return (
<div>
<AuiButton variant="primary" onClick={handleClick}>
Click Me!
</AuiButton>
<AuiTextField label="Name" placeholder="Enter your name" />
</div>
);
}
<template>
<div>
<aui-button variant="primary" @click="handleClick">
Click Me!
</aui-button>
<aui-text-field label="Name" placeholder="Enter your name" />
</div>
</template>
<script setup>
import { AuiButton, AuiTextField } from '@adyaui/vue';
import '@adyaui/core/dist/theme.css';
const handleClick = () => {
console.log('Button clicked!');
};
</script>
import { Component } from '@angular/core';
import '@adyaui/core';
import '@adyaui/core/dist/theme.css';
@Component({
selector: 'app-root',
template: `
<aui-button variant="primary" (click)="handleClick()">
Click Me!
</aui-button>
<aui-text-field label="Name" placeholder="Enter your name"></aui-text-field>
`
})
export class AppComponent {
handleClick() {
console.log('Button clicked!');
}
}
AdyaUI uses CSS custom properties for theming, making it easy to customize:
:root {
--aui-primary: #2196f3;
--aui-secondary: #9c27b0;
--aui-success: #4caf50;
--aui-error: #f44336;
--aui-font-family: 'Inter', sans-serif;
--aui-border-radius: 8px;
}
// Toggle dark mode
document.documentElement.setAttribute('data-theme', 'dark');
adyaui/
βββ packages/
β βββ core/ # Web Components core
β βββ react/ # React wrapper
β βββ vue/ # Vue wrapper
β βββ angular/ # Angular wrapper
β βββ svelte/ # Svelte wrapper
β βββ theme/ # Design tokens
β βββ utils/ # Utilities
βββ docs/ # Documentation
βββ examples/ # Example apps
We welcome contributions! Please see our Contributing Guide for details.
# Clone the repository
git clone https://github.com/yourusername/adyaui.git
cd adyaui
# Install dependencies
pnpm install
# Start development
pnpm dev
# Run tests
pnpm test
# Build all packages
pnpm build
Full documentation is available at adyaui.dev
See our detailed roadmap for upcoming features and improvements.
MIT Β© AdyaUI Team