z-card v1.5.2
z-card
A block container component to organize your web app. It is useful as a widget that can display brief information and perform related actions.
Table of contents
Install
The package is available to download through npm:
npm install z-card --save
Import as HTML/CSS component
The simple case
The package will be located inside the node_modules
folder, you can import it into the HTML document as follows:
<link rel="stylesheet" href="node_modules/z-card/dist/style.css">
When bundling an web app
For bundlers that support CSS, like Webpack, you can use it like this:
require('z-card/dist/style.css');
Import as a Stateless Functional Component (SFC)
The package does not include the renderer, you can use any renderer that supports SFCs. You could use React, Preact, Inferno, etc.
Notice: This package contains CSS styling, you may need a bundler that's capable of requiring CSS files like Webpack with css-loader.
Once you have chosen the renderer you can include the package in your project as follows:
// Assuming the React renderer is being used
const React = require('react');
const render = require('react-dom').render;
// Passing the render function when importing
const ZCard = require('z-card')(React.createElement);
// Render it on page, using JSX here :)
render(<ZCard header={'Title'} content={'Card content'} footer={'Footer'} />, document.body);
How to use
CSS component
Just add the HTML structure and CSS classes to reproduce the UI component.
Class hierarchy
Recommended HTML tags | Parent | Class | Description | Type |
---|---|---|---|---|
div , section , main , article | root | .z-card | Root container | Block |
div , section | .z-card | .z-card__header | The header of the card, what's going to render before the content | Element |
div , section | .z-card | .z-card__content | The content of the card, where the main information should be | Element |
div , section | .z-card | .z-card__footer | The footer of the card, a good place to state the available actions | Element |
Any containing .z-card | root | .z-card--bordered | Adds a border to the card | Modifier |
Any containing .z-card | root | .z-card--animated | Animate elevation changes | Modifier |
Any containing .z-card | root | .z-card--flat | Removes the card shadow | Modifier |
Any containing .z-card | root | .z-card--elevated-* | * can be 1 to 5. Higher the number, bigger the shadow | Modifier |
Full working example:
<div class="z-card">
<div class="z-card__header">Title</div>
<div class="z-card__content">Content</div>
<div class="z-card__footer">Footer</div>
</div>
Stateless Functional Component
Render the HTML by using the SFC and passing props.
Supported Props
Prop name | Expected Type | Description |
---|---|---|
header | An HTMLElement or a TextNode | The header of the card, what's going to render before the content |
content | An HTMLElement or a TextNode | The content of the card, where the main information should be |
footer | An HTMLElement or a TextNode | The footer of the card, a good place to state the available actions |
bordered | boolean | Set to true to add a border to the card |
animated | boolean | Set to true to turn on animations for elevation changes |
flat | boolean | Set to true to make the card flat, removing the shadows |
elevation | number , 1 to 5 | Set the elevation of the card, the spread of the shadow |
Full example (JSX):
<ZCard header={'Title'} content={'Content'} footer={'Footer'} />