rxrs-ng
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

RxRs - ng - Reactive Responsive for Angular

A library enabling the easy use of reactive responsive design in any Angular project!

The idea behind responsive reactive design is that we should stop writing media queries in our css and move that management to our JS. The benifits for doing this include gains in readability, maintainability, testability, and performance.

Here's a video showing the how and why

installation

npm install rxrs rxrs-ng
 
# or 
 
yarn add rxrs rxrs-ng

Usage

ScreenSizeService

To use the ScreenSizeService all you need to do is import it and referance it in your Constructor.

// Your service class
import { ScreenSizeService } from 'rxrs-ng';
 
export class SomeComponent {
  constructor(private screenSizeService: ScreenSizeService) {}

After that you can subscribe to the sizes$ observable for an object that holds booleans for all the size options.

  • xSmall: 0px-599px
  • small: 600px-959px
  • medium: 960px-1279px
  • large: 1280px-1919px
  • xLarge: > 1920px

The object looks like this:

{
  "xSmall": false,
  "small": true,
  "medium": false,
  "large": false,
  "xLarge": false
}

There is also a size$ observable that holds the name of the current size ('xSmall', 'small', 'medium', 'large', or 'xLarge').

The service also fronts the base rxrs library's observe function so you can watch any custom media queries. This is an example usage of the observe function. This looks the same from both RxRs and the ScreenSizeService.

const small = screenSizeService.observe('(max-width: 480px)'); // returns an Observable<boolean>
 
small.subscribe((mediaQueryMatched) => {
  // This will return true anytime the query is matched and
  // false anytime it is not mached
  console.log(mediaQueryMatched);
})

Package Sidebar

Install

npm i rxrs-ng

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

84.9 kB

Total Files

22

Last publish

Collaborators

  • mgm87