@placardi/card
TypeScript icon, indicating that this package has built-in type declarations

0.1.4 • Public • Published

@placardi/card

A cards can be used to present content about a single subject and expose its actions.

Installation

npm i @placardi/card

Dependencies

  • react
  • styled-components
  • @placardi/theme

Usage

Basic usage

In order to use the card component, wrap the application in global theme provider from @placardi/theme. Then, use the card as any regular component.

import React, { FC } from 'react';
import ThemeProvider from '@placardi/theme';
import Card, {
  CardHeader,
  CardHeaderTitle
} from '@placardi/card';

const App: FC = () => (
  <ThemeProvider>
    <Card>
      <CardHeader>
        <CardHeaderTitle>Title</CardHeaderTitle>
        <CardHeaderSubtitle>Subtitle</CardHeaderSubtitle>
      </CardHeader>
    </Card>
  </ThemeProvider>
)

export default App;

Card with header and content

Card accepts CardContent component, that accepts arbitrary children, making card very customisable.

import React, { FC } from 'react';
import ThemeProvider from '@placardi/theme';
import Card, {
  CardHeader,
  CardHeaderTitle,
  CardContent
} from '@placardi/card';

const App: FC = () => (
  <ThemeProvider>
    <Card>
      <CardHeader>
        <CardHeaderTitle>Title</CardHeaderTitle>
        <CardHeaderSubtitle>Subtitle</CardHeaderSubtitle>
      </CardHeader>
      <CardContent>Content</CardContent>
    </Card>
  </ThemeProvider>
)

export default App;

Card with header, body and link action

Card accepts CardLinkAction component, that accepts arbitrary children. It acts as a link and therefore needs a to prof that will render as link URL. CardLinkAction is polymorphic and can thus be render as any other component when provided with as prop.

import React, { FC } from 'react';
import ThemeProvider from '@placardi/theme';
import Card, {
  CardHeader,
  CardHeaderTitle,
  CardContent,
  CardLinkAction
} from '@placardi/card';

const App: FC = () => (
  <ThemeProvider>
     <Card>
      <CardHeader>
        <CardHeaderTitle>Title</CardHeaderTitle>
        <CardHeaderSubtitle>Subtitle</CardHeaderSubtitle>
      </CardHeader>
      <CardContent>Content</CardContent>
      <CardLinkAction to='https://placardi.com'>
        Visit us
      </CardLinkAction>
    </Card>
  </ThemeProvider>
)

export default App;

Card with header, body and actions

Card accepts CardActions component, that accepts arbitrary children. Children inside CardActions can be aligned to the left, right or center when provided with align prop.

import React, { FC } from 'react';
import ThemeProvider, { Colour } from '@placardi/theme';
import Button, { Variant } from '@placardi/button';
import Card, {
  CardHeader,
  CardHeaderTitle,
  CardContent,
  CardActions,
  Alignment
} from '@placardi/card';

const App: FC = () => (
  <ThemeProvider>
    <Card>
      <CardHeader>
        <CardHeaderTitle>Title</CardHeaderTitle>
        <CardHeaderSubtitle>Subtitle</CardHeaderSubtitle>
      </CardHeader>
      <CardContent>Content</CardContent>
      <CardActions align={Alignment.LEFT}>
        <Button colour={Colour.RED}>
          Cancel
        </Button>
        <Button variant={Variant.CONTAINED} colour={Colour.BLUE}>
          Confirm
        </Button>
      </CardActions>
    </Card>
  </ThemeProvider>
)

export default App;

Readme

Keywords

none

Package Sidebar

Install

npm i @placardi/card

Weekly Downloads

2

Version

0.1.4

License

MIT

Unpacked Size

30.9 kB

Total Files

22

Last publish

Collaborators

  • zakha