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

@ng-zi/extensions-card

v0.0.1

Published

Angular Material Extensions for Card

Downloads

2

Readme

MtxCard Component Overview

The mtx-card component is a versatile and customizable card component built on top of Angular Material 18. It extends the functionality of the standard Angular Material card, allowing for additional customization and features. The component is designed to be flexible and easy to use, providing a wide range of options for displaying content in a card format.

Features

  • Custom Templates: Supports custom templates for the header, content, and footer sections.
  • Image and Media Support: Allows adding an image or media section to the card.
  • Configurable Elevation: Multiple elevation levels to control the card's shadow.
  • Selectable and Expandable States: Cards can be selectable and expandable.
  • Ribbons and Badges: Supports adding ribbons or badges to the card.
  • Custom Classes: Apply custom CSS classes to the card.
  • Loading State: Display a loading spinner overlay on the card.
  • Single Config Input: All configurations are handled through a single config input.

Basic Card

A basic card with only content can be created using the mtx-card component:

<mtx-card [config]="{ contentTemplate: content }">
  <ng-template #content>
    <p>This is a basic card with only content.</p>
  </ng-template>
</mtx-card>

Card with Header, Content, and Footer

The mtx-card component allows you to define custom templates for the header, content, and footer:

<mtx-card [config]="{ headerTemplate: header, contentTemplate: content, footerTemplate: footer }">
  <ng-template #header>
    <mat-card-header>
      <mat-card-title>Card Title</mat-card-title>
      <mat-card-subtitle>Card Subtitle</mat-card-subtitle>
    </mat-card-header>
  </ng-template>
  <ng-template #content>
    <p>This is the card content.</p>
  </ng-template>
  <ng-template #footer>
    <button mat-button>Action</button>
  </ng-template>
</mtx-card>

Card with Image

You can add an image to the card using the imageSrc property in the config:

<mtx-card [config]="{ imageSrc: 'path/to/image.jpg', contentTemplate: content }">
  <ng-template #content>
    <p>This is the card content with an image.</p>
  </ng-template>
</mtx-card>

Selectable and Expandable Card

The card can be made selectable and expandable with the selectable and expandable properties:

<mtx-card [config]="{ selectable: true, expandable: true, contentTemplate: content }">
  <ng-template #content>
    <p>This card is selectable and expandable. Click the expand button to toggle the content.</p>
  </ng-template>
</mtx-card>

Card with Ribbon

Add a ribbon to the card using the ribbonText property:

<mtx-card [config]="{ ribbonText: 'New', contentTemplate: content }">
  <ng-template #content>
    <p>This card has a ribbon.</p>
  </ng-template>
</mtx-card>

Config Options

The mtx-card component takes a single config input with the following options:

  • headerTemplate: Template for the card header.
  • contentTemplate: Template for the card content.
  • footerTemplate: Template for the card footer.
  • imageSrc: Source URL for the card image.
  • elevation: Elevation level of the card (default is 1).
  • selectable: Whether the card is selectable (default is false).
  • expandable: Whether the card is expandable (default is false).
  • expanded: Whether the card is expanded (default is false).
  • ribbonText: Text for the ribbon.
  • customClasses: Custom CSS classes to apply to the card (default is '').
  • loading: Whether the card is in a loading state (default is false).

Examples

Basic Card

<mtx-card [config]="{ contentTemplate: content }">
  <ng-template #content>
    <p>This is a basic card with only content.</p>
  </ng-template>
</mtx-card>

Card with Header, Content, and Footer

<mtx-card [config]="{ headerTemplate: header, contentTemplate: content, footerTemplate: footer }">
  <ng-template #header>
    <mat-card-header>
      <mat-card-title>Card Title</mat-card-title>
      <mat-card-subtitle>Card Subtitle</mat-card-subtitle>
    </mat-card-header>
  </ng-template>
  <ng-template #content>
    <p>This is the card content.</p>
  </ng-template>
  <ng-template #footer>
    <button mat-button>Action</button>
  </ng-template>
</mtx-card>

Card with Image

<mtx-card [config]="{ imageSrc: 'path/to/image.jpg', contentTemplate: content }">
  <ng-template #content>
    <p>This is the card content with an image.</p>
  </ng-template>
</mtx-card>

Selectable and Expandable Card

<mtx-card [config]="{ selectable: true, expandable: true, contentTemplate: content }">
  <ng-template #content>
    <p>This card is selectable and expandable. Click the expand button to toggle the content.</p>
  </ng-template>
</mtx-card>

Card with Ribbon

<mtx-card [config]="{ ribbonText: 'New', contentTemplate: content }">
  <ng-template #content>
    <p>This card has a ribbon.</p>
  </ng-template>
</mtx-card>

Installation

npm install @angular/material

Import the Module

import { CardModule } from './path/to/Card.module';

@NgModule({
  imports: [
    // other imports...
    CardModule
  ]
})
export class AppModule { }

Summary

The mtx-card component provides an enhanced and flexible card component for Angular applications, making it easy to create rich, interactive card-based UIs with customizable templates and features.