JSFiddle - React, Tailwind, and code Playground

by joshmoto

HTML

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.min.js"></script>
<script src="https://fonts.googleapis.com/css?family=Inconsolata"></script>
<header>
    <nav class="navbar navbar-expand-md navbar-dark bg-dark">

        <a class="navbar-brand mr-auto" href="#">Slick in Bootstrap 4</a>

        <a class="nav-link d-none d-sm-inline" href="http://kenwheeler.github.io/slick/" target="_blank">Slick Github</a>

        <span id="breakpoint-helper" class="nav-link text-muted">Breakpoint </span>

    </nav>
</header>

<main class="pt-3 pb-3">
    <div class="container">
        <div id="slick">

            <div class="slide">
                <div class="card">
                    <div class="card-body">
                        <h5 class="card-title">Article title 1</h5>
                        <p class="card-text">Ut sed ligula vel felis vulputate lobortis id eget mauris. Nullam sollicitudin arcu ac diam ornare, eget iaculis nisl accumsan.</p>
                        <a href="#" class="btn btn-primary">Go somewhere</a>
                    </div>
                </div>
            </div>

            <div class="slide">
                <div class="card">
                    <div class="card-body">
                        <h5 class="card-title">Article title 2</h5>
                        <p class="card-text">Ut sed ligula vel felis vulputate lobortis id eget mauris. Nullam sollicitudin arcu ac diam ornare, eget iaculis nisl accumsan.</p>
                        <a...

SCSS

#slick {

  .slick-list {
    margin: {
      left: -15px;
      right: -15px;
    }
  }
  
  .slick-slide {
    padding-right: 15px;
    padding-left: 15px;
    
    &:focus {
      outline: none;
    }
  }
}

// bootstrap break points for helper below
$breakpoints: (
  // Small screen / phone
  'sm': 576px,
  // Medium screen / tablet
  'md': 768px,
  // Large screen / desktop
  'lg': 992px,
  // Extra large screen / wide desktop
  'xl': 1200px
);

// helper in navbar to show breakpoint size
#breakpoint-helper {
  &:after {
    color: #fff;
    text-transform: uppercase;
    content: 'XS';
    @each $size, $px in $breakpoints {
      @media (min-width: $px ) {
        content: $size;
      }
    }
  }
}

JavaScript

let device = get_device();

let d = 1;

if(device === 'ipad-pro') {

  d = 2;

}

let breakpoint = {
  sm: 576
};

$('#slick').slick({
  mobileFirst: true,
  slidesToShow: 1,
  slidesToScroll: 1,
  responsive: [
    {
      breakpoint: breakpoint.sm,
      settings: {
        slidesToShow: 2 / d,
        slidesToScroll: 2
      }
    }
  ]
});