README.md

April 27, 2026 ยท View on GitHub

Signality logo

signality.dev

Contributing Guidelines ยท Submit an Issue

Signality on npm


A collection of atomic utilities for building reactive compositions in Angular.

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, 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:

ToolMinimum Version
Angularv20.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

PackageDescription
@signality/coreCore utilities: browser APIs, element utilities, reactive helpers, router and forms integration
@signality/cdk-interopCDK 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:

ToolMinimum VersionNotes
Node.jsv20.19.0Aligns with active LTS versions used in CI
npmNot supportedโŒ Please use pnpm instead (see below)
pnpmv9.12.0โœ… Preferred package manager

Contributing

Please follow our contributing guidelines.

License

Licensed under the MIT License, Copyright ยฉ 2025-present.