@ng-zen/cli
Version:
A CLI tool for generating customizable, modern Angular UI components using schematics.
159 lines (106 loc) β’ 6.41 kB
Markdown
# @ng-zen/cli
[](https://github.com/kstepien3/ng-zen/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@ng-zen/cli)
[](https://github.com/kstepien3/ng-zen/blob/master/LICENSE)
[](https://github.com/kstepien3/ng-zen)
[](https://kstepien3.github.io/ng-zen/)
Generate modern, customizable Angular UI components and elements directly into your project π
Built with the best practices and developer experience in mind π‘
## Table of Contents
1. [Features](#features)
2. [Ideal for](#ideal-for)
3. [Quick Start](#quick-start)
4. [Installation](#installation)
5. [Usage](#usage)
6. [Why @ng-zen/cli?](#why-ng-zencli)
7. [Examples](#examples)
8. [Documentation](#documentation)
9. [Project Status](#project-status)
10. [Contributing](#contributing)
11. [License](#license)
12. [Author](#author)
13. [See also](#see-also)
14. [FAQ](#faq)
## Features
- π§© **Component Schematics:** Generates ready-to-use UI component code (`.ts`, `.html`, `.scss`).
- π¨ **Fully Customizable:** Easily theme and modify components via CSS variables and editable SCSS.
- π± **Responsive Design:** Components designed to adapt across various screen sizes.
- π **Comprehensive Documentation:** Includes Storybook examples, JSDoc annotations, and `README.md` per component.
- β
**Test Coverage:** Generated components include unit tests (`.spec.ts`).
- π **Modern Angular:** Leverages standalone components, `OnPush` change detection, signals, and current best practices.
- π **Extensible:** Planned support for generating directives, pipes, services, and more.
## Ideal for
- π’ **Enterprise UI Kits:** A great starting point for building consistent, internal component libraries.
- π **Custom Projects:** Accelerates development when custom UI elements are needed, avoiding vendor lock-in.
- π©βπ» **Developers:** Speeds up UI creation and ensures adherence to modern Angular patterns.
## Quick Start
The easiest way to add `@ng-zen/cli` and its schematics to your project:
```bash
ng add @ng-zen/cli
```
This command installs the package and performs initial setup.
## Installation
Alternatively, you can install it manually:
```bash
# For the latest stable version
pnpm add -D @ng-zen/cli
# For the latest pre-release version (includes newest features/fixes)
pnpm add -D @ng-zen/cli@next
```
## Usage
### Generating Components
Use the Angular CLI schematic:
```bash
ng generate @ng-zen/cli:component
```
This interactive prompt guides you through selecting and configuring the desired component(s) π.
To see available options without running interactively:
```bash
ng generate @ng-zen/cli:component --help
```
### Future Generators
Support for generating other Angular building blocks is planned:
- π Directives
- π§ Pipes
- π Services
- ... and more!
## Why @ng-zen/cli?
Unlike pre-compiled UI libraries, `@ng-zen/cli`:
- **Generates Source Code:** You get actual, editable component code in your project, not opaque `<library-button>` tags.
- **Full Control:** Modify the generated code and styles freely to perfectly match your application's needs.
- **Modern Foundation:** Built on current Angular features (standalone, signals, etc.).
- **Transparency:** Understand exactly how components work and evolve them with your project.
- **Developer Experience:** Focuses on ease of use, customization, and maintainability.
## Examples
Each generated component set includes:
- Angular component code (`.ts`, `.html`, `.scss`)
- Unit tests (`.spec.ts`)
- Storybook stories (`.stories.ts`) for visual development and documentation.
- An `index.ts` for easy exporting.
- A component-specific `README.md` (generated from a template).
## Documentation
- **Storybook:** The primary source for visual examples and interactive demos: [View Storybook Demo](https://kstepien3.github.io/ng-zen/)
- **JSDoc:** Code includes documentation comments.
- **READMEs:** Project-level (`README.md`, `DEVELOPMENT.md`, `CONTRIBUTING.md`) and component-level READMEs.
- **Changelog:** Automatically generated history of changes: [CHANGELOG.md](https://github.com/kstepien3/ng-zen/blob/master/CHANGELOG.md)
## Project Status
π§ **Actively Developed** π§
- The core schematics and existing components are functional but continuously improved.
- New generators (directives, pipes, etc.) are planned.
- The `master` branch represents the latest **stable** release.
- The `next` branch contains **pre-release** versions with the newest features and fixes β use `@ng-zen/cli@next` to try them out.
Since the tool generates code directly into your project, you own and control that code. Updates to `@ng-zen/cli` itself primarily bring new generator features or improvements to the generation process, not breaking changes to already generated components.
## Contributing
Contributions are highly welcome! If you'd like to help improve `@ng-zen/cli`, please read our **[Contribution Guidelines (CONTRIBUTING.md)](https://github.com/kstepien3/ng-zen/blob/master/CONTRIBUTING.md)** for details on the workflow, commit message requirements, and setup. π€
## License
This project is licensed under the [BSD 2-Clause License](https://github.com/kstepien3/ng-zen/blob/master/LICENSE) π.
## Author
Maintained by Konrad StΔpieΕ.
- GitHub: [@kstepien3](https://github.com/kstepien3)
- LinkedIn: [Konrad StΔpieΕ](https://www.linkedin.com/in/konradstepien/) π₯
- Email: [kord.stp@gmail.com](mailto:kord.stp@gmail.com?subject=%5BNG-ZEN%5D%20Query) π¨
## See also
- [ngx-schematic-builder](https://github.com/kstepien3/ngx-schematic-builder) - A custom Angular builder for compiling and bundling Angular schematics.
## FAQ
### How do I customize a generated component?
Generated components reside entirely within your project's source code. You can directly edit the `.ts`, `.html`, and `.scss` files. Components are structured to use CSS variables and SCSS for easier theming and modification.