Contributing Guidelines
·
Submit an Issue
A collection of atomic utilities for building reactive compositions in Angular.
Signality v0.1 is here! 🎉
Help us test it in your projects — minor versions may include API refinements as we fine-tune the library based on real-world feedback.
Overview
Key Features:
- Signal-first design — built on top of Angular Signals, abstracting away from RxJS
- Automatic cleanup — utilities manage resource lifecycles automatically
- SSR-compatible — browser APIs are guarded with safe defaults on the server
- Reactive inputs — seamlessly handles static and reactive values
- Tree-Shakable — only the code you use ends up in your bundle
Framework Compatibility
Signality requires the following minimum versions:
| Tool | Minimum Version |
|---|---|
| Angular | v20.0.0 |
Installation
📦 Core Package
@signality/core is the main package containing browser utilities, element utilities, and general-purpose reactive helpers:
pnpm add @signality/core
Or with npm/yarn:
npm install @signality/core # or yarn add @signality/core
🔌 Additional Packages
Signality also provides specialized integration packages:
CDK Integration
Signal-based utilities for Angular CDK:
pnpm add @signality/cdk-interop
Note: @signality/cdk-interop requires both @signality/core and @angular/cdk as peer dependencies.
Usage
Read the full documentation here: https://signality.dev
Quick Example
import { Component, effect } from '@angular/core'; import { storage, speechSynthesis, favicon } from '@signality/core'; @Component({ template: ` <input [(ngModel)]="value" /> <button (click)="synthesis.speak(value())">Speak</button> `, }) export class Demo { readonly value = storage('key', ''); // Web Storage API readonly synthesis = speechSynthesis(); // Web Speech API readonly fav = favicon(); // Dynamic Favicon constructor() { effect(() => { if (this.synthesis.isSpeaking()) { this.fav.setEmoji('🔊'); } else { this.fav.reset(); } }); } }
Packages
| Package | Description |
|---|---|
@signality/core | Core utilities: browser APIs, element utilities, reactive helpers, router and forms integration |
@signality/cdk-interop | CDK integration: focus monitoring, interactivity checking, and input modality detection |
Releases
For changelog, refer to the automatically generated changelog.
Development
This section is for contributors and developers who want to work on Signality.
Development Environment
The following tools are required for local development:
| Tool | Minimum Version | Notes |
|---|---|---|
| Node.js | v20.19.0 | Aligns with active LTS versions used in CI |
| npm | Not supported | ❌ Please use pnpm instead (see below) |
| pnpm | v9.12.0 | ✅ Preferred package manager |
Contributing
Please follow our contributing guidelines.
License
Licensed under the MIT License, Copyright © 2025-present.