A modern Angular dashboard application featuring customizable widgets, drag-and-drop layout, and Material Design styling. This project demonstrates advanced Angular patterns, state management, and integration with Tailwind CSS for rapid UI development.
- Add, remove, and rearrange dashboard widgets
- Drag-and-drop widget management
- Widget customization (size, color, etc.)
- Light/Dark theme toggle
- Persistent widget layout (localStorage)
- Built with Angular 19, Angular Material, and Tailwind CSS
- Node.js (v18 or later recommended)
- npm (v9 or later)
- Clone the repository:
git clone <your-repo-url> cd widgets-demo-2
- Install dependencies:
npm install
Install the required libraries if you are integrating these features into another Angular project:
npm install @angular/material @angular/cdk @angular/animations
npm install tailwindcss postcss autoprefixer
npm install animate-css-grid
Follow the official documentation to set up Tailwind CSS and Angular Material in your project if not already configured.
Start the development server:
npm start
Visit http://localhost:4200 in your browser.
src/app/components/
- Widget components and dialogssrc/app/pages/dashboard/
- Dashboard and widget panelsrc/app/services/
- State management and theme servicesrc/styles.css
- Global styles (includes Tailwind and custom theme)
- Angular 19
- Angular Material
- Tailwind CSS
- Animate CSS Grid
To reuse all dashboard widget features in another Angular project, copy the following files and folders:
src/app/components/
(all widget-related components)src/app/pages/dashboard/
(dashboard and widget panel)src/app/services/dashboard.service.ts
andsrc/app/services/theme.service.ts
src/app/models/dashboard.model.ts
src/styles.css
andsrc/theme.css
- Update your
angular.json
and Tailwind/PostCSS configs as needed
You can add new widgets by extending the Widget
model and updating the DashboardService
.
This project is licensed under the MIT License.