A beautiful, responsive table component built with Tailwind CSS, DaisyUI, and HTMX for modern Node.js applications.
- ✨ Modern Design: Beautiful UI with DaisyUI components and Tailwind CSS
- 🚀 HTMX Integration: Dynamic updates without writing JavaScript
- 🎨 Multiple Themes: Switch between Light, Dark, Cupcake, and Cyberpunk themes
- 📱 Responsive: Works seamlessly on all device sizes
- ⚡ Fast: Minimal JavaScript, leveraging HTMX for server-side rendering
- 🔍 Filtering & Sorting: Filter by status, priority, and sort dynamically
- ➕ CRUD Operations: Create, Read, Update, and Delete tasks
- 🎯 Hover Effects: Smooth animations and transitions
- ♿ Accessible: Built with accessibility in mind
- Backend: Node.js + Express
- Frontend: HTMX 1.9.10
- Styling: Tailwind CSS 3.4 + DaisyUI 4.4
- Icons: Heroicons (SVG)
-
Clone the repository:
git clone <repository-url> cd task-manager
-
Install dependencies:
npm install
-
Build Tailwind CSS:
npx tailwindcss -i ./src/styles/input.css -o ./public/css/output.css
-
Start the server:
npm start
-
Visit the application: Open http://localhost:3000 in your browser
For development with auto-reload:
npm run build:cssnpm run devFilter tasks by:
- Status: All, Pending, In Progress, Completed
- Priority: All, High, Medium, Low
- Sort: Title, Due Date, Priority
All dynamic features use HTMX attributes:
hx-get: Fetch filtered/sorted datahx-post: Create new taskshx-delete: Remove taskshx-put: Update taskshx-target: Specify where to inject responsehx-include: Include other form elements
- ✅ Checkbox selection (single and bulk)
- 🏷️ Status badges with color coding
- 🎯 Priority indicators
- 👁️ Hover-to-reveal action buttons
- 🎨 Zebra striping for readability
- 📊 Responsive layout
Toggle between multiple DaisyUI themes:
- Light (default)
- Dark
- Cupcake
- Cyberpunk
Themes persist in localStorage.
Fetch all tasks with optional filters:
- Query params:
status,priority,sort - Returns: HTML table rows
Create a new task:
- Body:
{ title, priority, assignee, dueDate } - Returns: Updated HTML table rows
Update a task:
- Body: Task fields to update
- Returns: Updated task row HTML
Delete a task:
- Returns: Updated HTML table rows
Edit tailwind.config.js to customize:
- Content paths
- Theme extensions
- DaisyUI themes
- Plugins
Add custom styles in src/styles/input.css:
@layer components {
.your-custom-class {
@apply your-tailwind-classes;
}
}In tailwind.config.js:
daisyui: {
themes: ["light", "dark", "cupcake", "cyberpunk", "forest", "luxury"],
}task-manager/
├── public/
│ ├── index.html # Main HTML file with table component
│ └── css/
│ └── output.css # Compiled Tailwind CSS
├── src/
│ └── styles/
│ └── input.css # Tailwind source styles
├── server.js # Express server with API endpoints
├── package.json # Dependencies
├── tailwind.config.js # Tailwind configuration
└── README.md # Documentation
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- CSS: Tailwind removes unused styles in production
- HTMX: Minimal JavaScript footprint (~14kb gzipped)
- Server-side rendering: Reduces client-side processing
- Lazy loading: Load data on demand with HTMX
- Pagination for large datasets
- Inline editing
- Drag-and-drop row reordering
- Export to CSV/Excel
- Advanced search
- Keyboard shortcuts
- Dark mode auto-detection
- WebSocket for real-time updates
ISC
Contributions are welcome! Please feel free to submit a Pull Request.
For issues and questions, please open an issue on GitHub.
Built with ❤️ using Tailwind CSS, DaisyUI, and HTMX