Swiping Made Easy: Introducing react-card-swiper for React Developers

Nativ Sibony
3 min readDec 28, 2023

--

If there’s one interaction pattern that’s become synonymous with modern app experiences, it’s swiping cards. And if you’ve been looking for a robust and flexible solution to implement this feature seamlessly into your React applications, look no further than react-card-swiper.

react-card-swiper is a versatile and customizable Tinder-like card swiper for the web, exclusively designed for React developers. It offers a smooth and engaging user experience, allowing users to swipe through a stack of cards effortlessly. With complete TypeScript support and full type safety, integrating this library into your projects ensures a hassle-free development experience.

Let’s dive into the features, capabilities, and a guide on how to leverage the power of react-card-swiper for your next project.

Features at a Glance

1. Easy Installation

Getting started with react-card-swiper is a breeze. Simply install the package using npm:

npm i --save react-card-swiper

2. Simple Props for Customization

The library provides various props to tailor the swiper to your specific needs. Here’s a quick rundown of the essential props available:

  • data: Array of card data objects.
  • onDismiss: Event triggered when a card is dismissed.
  • onEnter: Event triggered when a new card is entered.
  • onFinish: Event triggered when all cards have been dismissed.
  • dislikeButton: Custom dislike button.
  • likeButton: Custom like button.
  • withActionButtons: Flag to include action buttons.
  • withRibbons: Flag to include ribbons.
  • likeRibbonText and dislikeRibbonText: Custom text for like and dislike ribbons.
  • ribbonColors: Custom background and text colors for ribbons.
  • emptyState: Custom component to display when all cards have been dismissed.

3. TypeScript Support

For those who value type safety and robustness, rest assured, react-card-swiper is fully compatible with TypeScript, making development more reliable and efficient.

Using react-card-swiper in Your React App

Let’s explore a basic example of how to integrate react-card-swiper into your React application:

// Import necessary modules and assets
import { CardData, CardEvent, CardEnterEvent, CardSwiper } from 'react-card-swiper';
import bubbleShooter from '@/assets/images/bubble-shooter.png';
// ... (other imports)

// Define your card data
const mockData: CardData[] = [
{ id: '88552078', meta: { apk: 'some-apk-a.apk' }, src: bubbleShooter, content: <Content /> },
// Add other card data objects
];

// Implement your component using SwipeCard
export default function SwipeSelectionPage() {
// Define event handlers
const handleDismiss: CardEvent = (el, meta, id, action, operation) => {
console.log({ el, meta, id, action, operation }); // Handle event data
};

const handleFinish = (status: string) => {
console.log(status); // 'finished'
};

const handleEnter: CardEnterEvent = (el, meta, id) => {
console.log(el, meta, id);
};

// Render SwipeCard component with desired props
return (
<CardSwiper
data={mockData}
onEnter={handleEnter}
onFinish={handleFinish}
onDismiss={handleDismiss}
dislikeButton={<div>Left</div>}
likeButton={<div>Right</div>}
withActionButtons
withRibbons
likeRibbonText="INSTALL"
dislikeRibbonText="PASS"
ribbonColors={{ bgLike: 'green', bgDislike: 'red', textColor: 'white' }}
emptyState={<YourCustomEmptyStateComponent />} // Replace with your custom empty state
/>
);
}

With this example, you can seamlessly integrate the react-card-swiper library into your React application and leverage its powerful features to create an engaging card-swiping experience for your users.

Conclusion

react-card-swiper simplifies the implementation of card swiping functionality in React applications. Its customizable features, TypeScript support, and ease of integration make it an excellent choice for developers seeking a robust and engaging card swiper solution.

To explore further and incorporate react-card-swiper into your projects, refer to the official documentation and start creating delightful swiping experiences for your users today!

--

--