A collection of atomic utilities for building reactive compositions in Angular.
- 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
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();
}
});
}
}| Tool | Minimum Version |
|---|---|
| Angular | v20.0.0 |
pnpm add @signality/coreOr with npm/yarn:
npm install @signality/core
# or
yarn add @signality/coreFull documentation available at signality.dev