# react-cardstack **Repository Path**: mirrors_fkhadra/react-cardstack ## Basic Information - **Project Name**: react-cardstack - **Description**: React component to achieve a UI similar to the iOS passbook app. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README React Card Stack ========================= Built for React, this component allows you to achieve a UI similar to the iOS passbook app. ## Installation react-cardstack requires **React 15.3.0 or later.** ``` npm install --save react-cardstack ``` ## Demo & Example Live demo: [cameronbourke.github.io/react-cardstack](http://cameronbourke.github.io/react-cardstack) To build the example locally, clone this repo then run: ``` npm install npm start Then open localhost:8080 in a browser. ``` ## Usage React Card Stack exports an object with two components. These are `CardStack` and `Card`. The `CardStack` component is responsible for holding the state of it's child `Card` components. However, this is abstracted away which makes using the component a whole deal simpler. **Note: there must be at least two instances of Card as children of CardStack, otherwise the component will throw an error**. An example use of React Card Stack looks like: ```js import { CardStack, Card } from 'react-cardstack';

Number 1

Number 2

``` The `Card` component wraps around the content you want to render for each card. You can render both elements or components inside `Card`. ### Figuring out the Header Height When all `Card` components are collapsed, the top of each card will be visible. This is basically the header of the `Card` component. To calculate what size the header will be simply divide the height passed to `CardStack` by the number of child `Card` components. In the example above, the header height for each card will be `500 / 2`, which equals `250`. ## Options ### CardStack Property | Type | Default | Description ------------- | ------------- | ------ | -------- width | number | 350px | the width of the component height | number | 500px | the height of the component background | string | f8f8f8 | can be a hex, rgba, gradiant value or a url() hoverOffset | number | 30px | how far the card will shift up when being hovered initialCard | number | -1 | if provided, the card at i'th index will be initially visible ### Card Property | Type | Default | Description ------------- | ------------- | ------- | ------- background | string | undefined | can be a hex, rgba, gradiant value or a url() cardClicked | func | undefined | read below for description on how to use `cardClicked` is a prop which can be passed to `Card`. It takes a function, acting as a callback, and will get invoked when a user clicks on the card in which you passed it to. For example, look below: ```js // example of the function being bound handleCardClick(isCardSelected) { console.log(isCardSelected); } ``` When `this.handleCardClick` is invoked, it will receive the parameter `cardSelected` which will be a boolean describing whether there is currently a card selected or not. ## Todo - Add Unit Tests ## License MIT Licensed Copyright (c) Cameron Bourke 2018