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

@pmwcs/card

v1.1.0

Published

PMWCS card component

Downloads

10

Readme

Cards

Cards contain content and actions about a single subject.

  • Module @pmwcs/card
  • Import styles:
    • Using CSS Loader
      • import '@pmwcs/card/styles';
    • Or include stylesheets
      • '@material/card/dist/mdc.card.css'
      • '@material/button/dist/mdc.button.css'
      • '@material/icon-button/dist/mdc.icon-button.css'
  • MDC Docs: https://material.io/develop/web/components/cards/

Fully Featured Example

<Card style={{ width: '21rem' }}>
  <CardPrimaryAction>
    <CardMedia
      sixteenByNine
      style={{
        backgroundImage: 'url(images/backgrounds/mb-bg-fb-16.png)'
      }}
    />
    <div style={{ padding: '0 1rem 1rem 1rem' }}>
      <Typography use="headline6" tag="h2">
        Our Changing Planet
      </Typography>
      <Typography
        use="subtitle2"
        tag="h3"
        theme="textSecondaryOnBackground"
        style={{ marginTop: '-1rem' }}
      >
        by Kurt Wagner
      </Typography>
      <Typography
        use="body1"
        tag="div"
        theme="textSecondaryOnBackground"
      >
        Visit ten places on our planet that are undergoing the biggest
        changes today.
      </Typography>
    </div>
  </CardPrimaryAction>
  <CardActions>
    <CardActionButtons>
      <CardActionButton>Read</CardActionButton>
      <CardActionButton>Bookmark</CardActionButton>
    </CardActionButtons>
    <CardActionIcons>
      <CardActionIcon onIcon="favorite" icon="favorite_border" />
      <CardActionIcon icon="share" />
      <CardActionIcon icon="more_vert" />
    </CardActionIcons>
  </CardActions>
</Card>

Article Preview Example

<Card outlined style={{ width: '21rem' }}>
  <Typography
    use="subtitle1"
    tag="div"
    style={{ padding: '0.5rem 1rem' }}
    theme="textSecondaryOnBackground"
  >
    Headlines
  </Typography>

  <ListDivider />

  <CardPrimaryAction>
    <div style={{ padding: '1rem' }}>
      <Typography use="headline5" tag="div">
        Copper on the rise
      </Typography>
      <Typography use="body1" tag="p" theme="textSecondaryOnBackground">
        Copper price soars amid global market optimism and increased
        demand.
      </Typography>
    </div>
  </CardPrimaryAction>

  <ListDivider />

  <CardPrimaryAction>
    <div style={{ padding: '1rem' }}>
      <Typography use="headline5" tag="div">
        U.S. tech startups rebound
      </Typography>
      <Typography use="body1" tag="p" theme="textSecondaryOnBackground">
        Favorable business conditions have allowed startups to secure
        more fundraising deals compared to last year.
      </Typography>
    </div>
  </CardPrimaryAction>

  <ListDivider />

  <CardPrimaryAction>
    <div style={{ padding: '1rem' }}>
      <Typography use="headline5" tag="div">
        Asia's clean energy ambitions
      </Typography>
      <Typography use="body1" tag="p" theme="textSecondaryOnBackground">
        China plans to invest billions of dollars for the development of
        over 300 clean energy projects in Southeast Asia.
      </Typography>
    </div>
  </CardPrimaryAction>

  <ListDivider />

  <CardActions fullBleed>
    <CardActionButton
      label="All Business Headlines"
      trailingIcon="arrow_forward"
    />
  </CardActions>
</Card>

Mini Card Example

<Card style={{ width: '12.5rem' }}>
  <CardPrimaryAction>
    <CardMedia
      square
      style={{
        backgroundImage: 'url(images/backgrounds/mb-bg-fb-06.png)'
      }}
    >
      <CardMediaContent>
        <Typography
          use="subtitle2"
          tag="div"
          theme="textPrimaryOnDark"
          style={{
            padding: '0.5rem 1rem',
            backgroundImage:
              'linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.5) 100%)',
            bottom: '0',
            left: '0',
            right: '0',
            position: 'absolute'
          }}
        >
          Vacation Photos
        </Typography>
      </CardMediaContent>
    </CardMedia>
  </CardPrimaryAction>
  <CardActions>
    <CardActionIcons>
      <CardActionIcon onIcon="favorite" icon="favorite_border" />
      <CardActionIcon icon="bookmark_border" />
      <CardActionIcon icon="share" />
    </CardActionIcons>
  </CardActions>
</Card>

Card

A Card Component

Props

| Name | Type | Description | |------|------|-------------| | outlined | undefined \| false \| true | Removes the shadow and displays a hairline outline instead |

CardPrimaryAction

The main clickable area for the primary content of the card

CardMedia

Media area that displays a custom background-image with background-size: cover

Props

| Name | Type | Description | |------|------|-------------| | sixteenByNine | undefined \| false \| true | Automatically scales the media area’s height according to its width, maintaining a 16:9 aspect ratio | | square | undefined \| false \| true | Automatically scales the media area’s height to equal its width |

CardMediaContent

An absolutely-positioned box the same size as the media area, for displaying a title or icon on top of the background-image

CardActions

Row containing action buttons and/or icons

Props

| Name | Type | Description | |------|------|-------------| | fullBleed | undefined \| false \| true | Removes the action area’s padding and causes its only child (an mdc-card__action element) to consume 100% of the action area’s width |

CardActionButtons

A group of action buttons, displayed on the left side of the card (in LTR), adjacent to CardActionIcons

CardActionIcons

A group of supplemental action icons, displayed on the right side of the card (in LTR), adjacent to CardActionButtons

CardActionIcon

A card action Icon

Props

| Name | Type | Description | |------|------|-------------| | checked | undefined \| false \| true | Controls the on / off state of the a toggleable button. | | disabled | undefined \| false \| true | Makes the button disabled | | foundationRef | React.Ref<MDCIconButtonToggleFoundation> | Advanced: A reference to the MDCFoundation. Only for Toggleable buttons. | | icon | PMWCS.IconPropT | Icon for the button | | label | undefined \| string | Apply an aria label. | | onChange | undefined \| (evt: IconButtonOnChangeEventT) => void | An onChange callback that receives a custom event. evt.detail = { isOn: boolean } | | onIcon | PMWCS.IconPropT | If specified, renders a toggle with this icon as the on state. | | ripple | RipplePropT | Adds a ripple effect to the component |

CardActionButton

A card action Button

Props

| Name | Type | Description | |------|------|-------------| | children | React.ReactNode | Content specified as children. | | danger | undefined \| false \| true | Used to indicate a dangerous action. | | dense | undefined \| false \| true | Make the Button dense. | | disabled | undefined \| false \| true | Make the button disabled | | icon | PMWCS.IconPropT | An Icon for the Button | | label | React.ReactNode \| any | Content specified as a label prop. | | outlined | undefined \| false \| true | Make the button outlined. | | raised | undefined \| false \| true | Make the Button raised. | | ripple | RipplePropT | Adds a ripple effect to the component | | trailingIcon | PMWCS.IconPropT | A trailing icon for the Button | | unelevated | undefined \| false \| true | Make the button unelevated. |