A page content card which can contain an image, heading, text, and (primary and secondary) buttons.
The purpose of this component is to offer a reusable card with a common layout.
This may also potentially prevent the need for a consuming component to directly reference f-card
, f-button
, and define the layout itself.
The icon can be any image but it is recommended to use an icon from f-vue-icons
, e.g., one of the bag icons.
Install the module using npm or Yarn:
yarn add @justeat/f-card-with-content
npm install @justeat/f-card-with-content
The package also has dependencies that need to be installed by consuming components/applications:
Dependency | Command to install | Styles to include |
---|---|---|
f-button | yarn add @justeat/f-button |
import '@justeat/f-button/dist/f-button.css'; |
f-card | yarn add @justeat/f-card |
import '@justeat/f-card/dist/f-card.css'; |
You can import it in your Vue SFC like this (please note that styles have to be imported separately):
import CardWithContent from '@justeat/f-card-with-content';
import '@justeat/f-card-with-content/dist/f-card-with-content.css';
export default {
components: {
CardWithContent
}
}
If you are using Webpack, you can import the component dynamically to separate the card-with-content
bundle from the main bundle.client.js
:
import '@justeat/f-card-with-content/dist/f-card-with-content.css';
export default {
components: {
// …
CardWithContent: () => import(/* webpackChunkName: "card-with-content" */ '@justeat/f-card-with-content')
}
}
There may be props that allow you to customise its functionality.
The props that can be defined are as follows (if any):
Prop | Type | Default | Description |
---|---|---|---|
cardHeading |
String |
'' |
If given, will render an h1 tag within the card. |
cardDescription |
String |
'' |
If given, will render a p tag below the heading. |
primaryButton |
Object |
null |
If given, and contains the property text , will render a primary button below the description. Also supports href /to for using the button as an anchor or router-link. |
secondaryButton |
Object |
null |
If given, and contains the property text , will render a secondary button below the primary. Also supports href /to for using the button as an anchor or router-link. |
The events that can be subscribed to are as follows (if any):
Event | Description |
---|---|
primary-button-click |
Emitted when the primary button is clicked. |
secondary-button-click |
Emitted when the secondary button is clicked. |
The available slots are:
Slot name | Description |
---|---|
icon |
For displaying an icon at the top of the card. |
Start by cloning the repository and installing the required dependencies:
$ git clone git@github.com:justeat/fozzie-components.git
$ cd fozzie-components
$ yarn
Change directory to the f-card-with-content
package:
$ cd packages/components/molecules/f-card-with-content
To test all components, run from root directory.
To test only f-card-with-content
, run from the ./fozzie-components/packages/components/molecules/f-card-with-content
directory.
yarn test
# Note: Ensure Storybook is running when running the following commands
cd ./fozzie-components
yarn storybook:build
yarn storybook:serve-static
yarn test-component:chrome
### Accessibility tests
```bash
yarn test-a11y:chrome