Skip to content

signalityjs/signality

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Signality logo

signality.dev

Contributing Guidelines · Submit an Issue

Signality on npm


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

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

Signality v0.1.0 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.

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.

About

Reactive utilities for Angular

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors