A modern web application built with Nuxt 3, Vue 3, Vuetify, and Pinia.
- 🚀 Built with Nuxt 3 and Vue 3
- 🎨 Styled with Vuetify 3
- 📦 State management with Pinia
- 📚 Component documentation with Storybook
- 🎯 Responsive and accessible design
- 🔄 Server-side rendering (SSR)
- 🎨 Configurable theming system
- 🔒 Authentication system
- 📱 Mobile-first approach
twinspeak_ui/
├── components/
│ ├── atoms/ # Basic UI components
│ ├── molecules/ # Complex components
│ ├── organisms/ # Page sections
│ └── templates/ # Layout components
├── composables/ # Vue composables
├── stores/ # Pinia stores
├── styles/ # Global styles and theme config
├── assets/ # Static assets
└── pages/ # Application pages
- Node.js (v18 or later)
- pnpm (v8 or later)
-
Clone the repository:
git clone git@github.com:azorica/twinspeak_ui.git cd twinspeak_ui -
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Start Storybook:
pnpm storybook
Components are organized following atomic design principles:
- Atoms: Basic building blocks (buttons, inputs, etc.)
- Molecules: Groups of atoms (forms, cards, etc.)
- Organisms: Complex UI sections (headers, footers, etc.)
- Templates: Page layouts
The application uses Vuetify for styling with a custom theme configuration. Theme settings can be modified in styles/themeConfig.ts.
Pinia is used for state management. Stores are located in the stores directory.
Run the test suite:
pnpm testpnpm buildThe application can be deployed to various platforms:
- Vercel
- Netlify
- AWS Amplify
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.