An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          


Signality logo



signality.dev



Contributing Guidelines
ยท
Submit an Issue






Signality on npm


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.