A lightweight and elegant Angular calendar component built with Preact and Tailwind CSS. This project was originally forked from:
https://github.com/dayflow-js/calendar
Angular Calendar provides an easily integratable, highly customizable calendar component designed with "standalone" Angular principles. This means you can import and use the component directly, without relying on complex NgModule hierarchies. Built with performance in mind using Preact for rendering, and styled effortlessly with Tailwind CSS.
- Features
- Installation
- Usage
- Angular Standalone Integration
- Angular Version Support
- Development Setup
- Contribution Guidelines
- License
- 📅 Simple, elegant calendar UI
- ⚡ Standalone component – no NgModule required
- 🎨 Fully customizable via Tailwind CSS classes
- 🚀 Fast and lightweight, powered by Preact under the hood
- 🧩 Easy integration and configuration
🅰️ Compatible with modern Angular (v21+ Standalone API)
Install via npm:
npm install @iqx-limited/angular-calendarPeer dependencies required:
- Angular (see table below for version support)
- Preact
- Tailwind CSS
npm install preact tailwindcssImport the standalone component and use it directly in your component:
import { CalendarComponent } from '@iqx-limited/angular-calendar';
// In your component metadata or routing config
@Component({
standalone: true,
imports: [CalendarComponent],
...
})
export class MyComponent { }<!-- In your component template -->
<angular-calendar
[selectedDate]="selectedDate"
(dateChange)="onDateChange($event)">
</angular-calendar>Override Tailwind classes or provide additional props to style and configure:
<angular-calendar
[selectedDate]="selectedDate"
calendarClass="bg-white rounded-lg shadow-md"
[showWeekNumbers]="true">
</angular-calendar>Angular Calendar is built as a standalone component. To use it:
-
No NgModule needed: Just import the component in your
imports: [...]array of any other standalone component, feature, or route. -
Tree-shakable: Only pulls in what you use.
-
Direct integration: Works seamlessly with Angular's new Standalone API.
Example integration:
import { CalendarComponent } from '@iqx-limited/angular-calendar';
@Component({
standalone: true,
selector: 'app-dashboard',
imports: [CalendarComponent],
template: `<angular-calendar></angular-calendar>`,
})
export class DashboardComponent {}| Package Version | Angular Version | Standalone Support |
|---|---|---|
^1.0.0 |
>=21.0.0 |
Partial (experimental) |
Note: For best results, use the latest version with Angular v21+ for optimal standalone and performance benefits.
-
Clone the repository
git clone https://github.com/mattfrank48/angular-calendar.git cd angular-calendar -
Install dependencies
npm install
-
Start the development server
npm start
-
Run tests
npm test -
Build library
npm run build
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature/my-feature - Make your changes and commit:
git commit -am 'Add new feature' - Push to your fork:
git push origin feature/my-feature - Open a pull request describing your changes
Adhere to the following code principles:
- Write clear, maintainable code
- Use Tailwind utility classes for styling
- Keep components stateless when possible
- Cover new code with tests
See CONTRIBUTING.md for more details.
This project is licensed under the MIT License.
See LICENSE for details.
- No Angular modules required: Use components with minimal setup via the Standalone API.
- Direct imports everywhere: Integrate the calendar in routes, components, or features without going through NgModules.
- Tree-shakable and future proof: Designed for the new Angular ecosystem.
Open an issue or contact the maintainer.