https://github.com/signalityjs/signality
Reactive utilities for Angular
https://github.com/signalityjs/signality
angular cdk javascript signals typescript utilities webapi
Last synced: 3 days ago
JSON representation
Reactive utilities for Angular
- Host: GitHub
- URL: https://github.com/signalityjs/signality
- Owner: signalityjs
- License: mit
- Created: 2026-01-02T13:59:11.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-05-02T20:20:00.000Z (24 days ago)
- Last Synced: 2026-05-02T21:17:03.308Z (24 days ago)
- Topics: angular, cdk, javascript, signals, typescript, utilities, webapi
- Language: TypeScript
- Homepage: https://signality.dev
- Size: 5.56 MB
- Stars: 161
- Watchers: 3
- Forks: 6
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-angular - signality - A collection of atomic utilities for building reactive compositions in Angular. (Third Party Components / Mixed Utilities)
- fucking-awesome-angular - signality - A collection of atomic utilities for building reactive compositions in Angular. (Third Party Components / Mixed Utilities)
- awesome-starred - signalityjs/signality - Reactive utilities for Angular (TypeScript)
README
Contributing Guidelines
ยท
Submit an Issue
A collection of atomic utilities for building reactive compositions in [Angular](https://angular.dev).
> **Signality v0.3 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](https://angular.dev/guide/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:
```bash
pnpm add @signality/core
```
Or with npm/yarn:
```bash
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:
```bash
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
```ts
import { Component, effect } from '@angular/core';
import { storage, speechSynthesis, favicon } from '@signality/core';
@Component({
template: `
Speak
`,
})
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`](https://www.npmjs.com/package/@signality/core) | Core utilities: browser APIs, element utilities, reactive helpers, router and forms integration |
| [`@signality/cdk-interop`](https://www.npmjs.com/package/@signality/cdk-interop) | CDK integration: focus monitoring, interactivity checking, and input modality detection |
## Releases
For changelog, refer to the [automatically generated changelog](/CHANGELOG.md).
---
## 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](/CONTRIBUTING.md).
## License
Licensed under the [MIT](/LICENSE) License, Copyright ยฉ 2025-present.