npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mat-theme-util

v0.2.2

Published

Angular Material 8+ Helper Utility for managing Theme colors dynamically, and creating color palettes from single colors.

Downloads

18

Readme

Material Theme Util

This library is a interface for Angular Material UI Library and custom colors. The intended purpose it serves is to provide a dynamic solution for changing Angular Material theme colors on the fly and offer the ability to set the colors with any hex code.

This library should seamlessly integrate with most Angular Material applications - requiring very little (if any) modification on the Material Side.

Release Notes

v0.2

v0.2.2

  • Support for padding-unset
  • Removed logging

v0.2.1

  • More Effective regex for Hex codes
  • Dead code removal v0.2.0
  • New UI for ColorPicker/PalettePicker
  • Support for both a stringified and parsed JSON Theme object for the <mat-palette-picker> formControl value.

Pre-reqs

  • Angular CLI
  • Angular Material
  • A good understanding of both.

Integration

1. Install Material Theme Util package

2. Import the following packages in your AppModule

...
import { ThemeUtilModule, ThemeUtilService } from 'mat-theme-util';

@NgModule({
  imports: [
    ...
    ThemeUtilModule
  ],
  providers: [
    ThemeUtilService
  ]
  ...
})
export class AppModule { }

3. Choose the designated HTML Element that you want to contain the theme

...
<body #THEME_CONTAINER>
  ...
</body>

4. Import the following stylesheets

./styles.scss

@import "~@angular/material/theming";
@include mat-core();
@import "~mat-theme-util/theme-util";

No material theme should be imported, defined or set.

Usage

- Theme Initialization

app.component.ts

...
  primary = "#5F121F";
  accent = "#2F7F89";
  warn = "#ff0000";

  constructor(private themeUtil: ThemeUtilService) {
    this.themeUtil.initTheme(
      this.primary,
      this.accent,
      this.warn
    );
  }
...

- Setting Palette Colors

app.component.ts

...
  updatePrimary(hexCode: string) {
    this.themeUtil.setPrimaryPalette(hexCode);
    // this.themeUtil.setAccentPalette(hexCode);
    // this.themeUtil.setWarnPalette(hexCode);
  }
...

This code can be used in any component the ThemeUtilService is autowired

Additional Features

Color Extensions

| class | Function | | --------------- | -------------------------------------------------------------------------------- | | primary-bg | Sets background to the Primary Color, and the text as a contrast color | | accent-bg | Sets background to the Accent Color, and the text as a contrast color | | warn-bg | Sets background to the Warn Color, and the text as a contrast color | | primary-color | Sets text color to the Primary Color, and the background as a contrast color | | accent-color | Sets text color to the Accent Color, and the background as a contrast color | | warn-color | Sets text color to the Warn Color, and the background as a contrast color |

These classes will stay up to date with the dynamic theming.

CSS Grids Framework

Responsive Layout

  • hide

    Preset layout class, setting the 'display' of the element to 'none'. Supports extensions

  • show

    Preset layout class, resetting the 'display' of the element. Supports extensions

  • col{XX}

    Preset layout class, with the 'XX' denoting the columns allocated for. (this can be nested)

    | XX | Columns | Function | Extensions* | | ------------ | ------- | ------------- | ------------ | | 1 | 1 | 1fr (> 100px) | X | | 2 | 2 | 1fr (> 100px) | X | | 3 | 3 | 1fr (> 100px) | X | | 4 | 4 | 1fr (> 50px) | X | | 5 | 5 | 1fr (> 50px) | X | | 6 | 6 | 1fr (> 40px) | X | | -auto-fill | * | 1fr (> 25px) | | | -auto-fit | any | 1fr (> 25px) | | | aa | 2 | auto, auto | x | | a1 | 2 | auto, 1fr | x | | 1a | 2 | 1fr, auto | x | | 1-2 | 2 | 1fr, 2fr | x | | 2-1 | 2 | 2fr, 1fr | x | | 1-3 | 2 | 1fr, 3fr | x | | 3-1 | 2 | 3fr, 1fr | x | | 2-3 | 2 | 2fr, 3fr | x | | 3-2 | 2 | 3fr, 2fr | x |

* Extensions can be used for setting specific styles for different viewports

Extensions

| Viewport | Min | Max | Example | | -------- | ------ | ------ | --------- | | -xs | - | 600px | col1-xs | | -sm | 600px | 768px | col1-sm | | -md | 768px | 992px | col1-md | | -lg | 992px | 1200px | col1-lg | | -xl | 1200px | - | col1-xl |


Other Extensions

*The following can only be used with col- classes

| Name | Function | Example | | ------- | --------------------- | -------------- | | -wide | increases col/row gap | col1-xs-wide |

Margin

  • margin{1-6}

    Preset margin class, with the number denoting the 'rem'

  • vmargin{1-6}

    Preset vertical margin class, with the number denoting the 'rem'

  • hmargin{1-6}

    Preset horizontal margin class, with the number denoting the 'rem'

  • margin-unset

    Preset margin class, setting the margin to 'unset'

Padding

  • padding{1-6}

    Preset padding class, with the number denoting the 'rem'

  • vpadding{1-6}

    Preset vertical padding class, with the number denoting the 'rem'

  • hpadding{1-6}

    Preset horizontal padding class, with the number denoting the 'rem'

  • padding-unset

    Preset padding class, setting the padding to 'unset'



Package Versioning

  • Angular CLI: 8.1.3
  • Node: 12.6.

Inspired by: