Shop components
Components that are related to the e-commerce section of the website.
Product card: Basic example
Shirt with insertion lace trims
<!-- Product card: Basic example -->
<div class="card card-product">
<div class="card-product-img">
<a class="card-img-top" href="#">
<img src="path-to-image" alt="Product image">
</a>
<div class="card-product-widgets-top">
<span class="badge product-badge badge-danger">-50%</span>
<div class="star-rating ml-auto">
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star"></i>
</div>
</div>
<div class="card-product-widgets-bottom">
<a class="btn-wishlist ml-auto" href="#" data-toggle="tooltip" data-placement="left" title="Add to wishlist"></a>
</div>
</div>
<div class="card-body pb-2">
<h3 class="card-product-title text-truncate mb-2">
<a class="nav-link" href="#">Shirt with insertion lace trims</a>
</h3>
<div class="d-flex align-items-center">
<span class="h5 d-inline-block mb-0 text-danger">$20.40</span>
<del class="d-inline-block ml-2 pl-1 text-muted">$40.80</del>
</div>
</div>
<div class="card-footer">
<div class="d-flex align-items-center mb-2 pb-1">
<div class="mt-n2">
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="xl" checked>
<label class="cs-custom-option-label" for="xl">XL</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="l">
<label class="cs-custom-option-label" for="l">L</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="m">
<label class="cs-custom-option-label" for="m">M</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="s">
<label class="cs-custom-option-label" for="s">S</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="xs">
<label class="cs-custom-option-label" for="xs">XS</label>
</div>
</div>
<div class="ml-auto">
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="color" id="blue" value="Blue" checked>
<label class="cs-custom-option-label" for="blue">
<span class="cs-color-swatch" style="background-color: #6a9bf4;"></span>
</label>
</div>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="color" id="orange" value="Orange">
<label class="cs-custom-option-label" for="orange">
<span class="cs-color-swatch" style="background-color: #ff9d50;"></span>
</label>
</div>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="color" id="green" value="Green">
<label class="cs-custom-option-label" for="green">
<span class="cs-color-swatch" style="background-color: #16c995;"></span>
</label>
</div>
</div>
</div>
<button type="button" class="btn btn-primary btn-block">
<i class="cxi-cart align-middle mt-n1 mr-2"></i>
Add to cart
</button>
</div>
</div>
Product card: Carousel example
Make sure to link to Tiny Slider css and js files in your document: vendor/tiny-slider/dist/tiny-slider.css and vendor/tiny-slider/dist/min/tiny-slider.js. Use this page as a reference.
Sport cap with stitches
<!-- Product card: Carousel example -->
<div class="card card-product">
<div class="card-product-img">
<!-- Carousel -->
<div class="cs-carousel cs-controls-onhover">
<a class="cs-carousel-inner card-img-top" href="#" data-carousel-options='{
"nav": false,
"controlsText": [
"<i class='cxi-angle-left'></i>",
"<i class='cxi-angle-right'></i>"
]
}'>
<!-- Carousel items -->
<div><img src="path-to-image" class="card-img-top" alt="Product image"></div>
<div><img src="path-to-image" class="card-img-top" alt="Product image"></div>
<div><img src="path-to-image" class="card-img-top" alt="Product image"></div>
</a>
</div>
<div class="card-product-widgets-top">
<div class="star-rating ml-auto">
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled"></i>
<i class="sr-star cxi-star"></i>
</div>
</div>
<div class="card-product-widgets-bottom">
<a class="btn-wishlist active ml-auto" href="#" data-toggle="tooltip" data-placement="left" title="Remove from wishlist"></a>
</div>
</div>
<div class="card-body pb-2">
<h3 class="card-product-title text-truncate mb-2">
<a class="nav-link" href="#">Sport cap with stitches</a>
</h3>
<div class="d-flex align-items-center">
<span class="h5 d-inline-block mb-0">$40.80</span>
</div>
</div>
<div class="card-footer">
<div class="d-flex align-items-center mb-2 pb-1">
<div class="mt-n2">
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="xl" checked>
<label class="cs-custom-option-label" for="xl">XL</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="l">
<label class="cs-custom-option-label" for="l">L</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="m">
<label class="cs-custom-option-label" for="m">M</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="s">
<label class="cs-custom-option-label" for="s">S</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="size" id="xs">
<label class="cs-custom-option-label" for="xs">XS</label>
</div>
</div>
<div class="ml-auto">
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="color" id="blue" value="Blue" checked>
<label class="cs-custom-option-label" for="blue">
<span class="cs-color-swatch" style="background-color: #6a9bf4;"></span>
</label>
</div>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="color" id="orange" value="Orange">
<label class="cs-custom-option-label" for="orange">
<span class="cs-color-swatch" style="background-color: #ff9d50;"></span>
</label>
</div>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline">
<input class="custom-control-input" type="radio" name="color" id="green" value="Green">
<label class="cs-custom-option-label" for="green">
<span class="cs-color-swatch" style="background-color: #16c995;"></span>
</label>
</div>
</div>
</div>
<button type="button" class="btn btn-primary btn-block">
<i class="cxi-cart align-middle mt-n1 mr-2"></i>
Add to cart
</button>
</div>
</div>
Product cards: Carousel
Make sure to link to Tiny Slider css and js files in your document: vendor/tiny-slider/dist/tiny-slider.css and vendor/tiny-slider/dist/min/tiny-slider.js. Use this page as a reference.
Shirt with insertion lace trims
Sport cap with stitches
Men fashion gray shoes
Basic hooded sweatshirt in pink
<!-- Product cards: Carousel -->
<div class="cs-carousel cs-controls-outside">
<div class="cs-carousel-inner" data-carousel-options='{
"nav": false,
"responsive": {
"0": {
"items":1,
"gutter": 16
},
"500": {
"items":2,
"gutter": 18
},
"768": {
"items":3,
"gutter": 18
},
"1200": {
"items": 3,
"gutter": 24
}
}
}'>
<!-- Carousel item -->
<div>
<div class="card card-product">
<div class="card-product-img">
<a class="card-img-top" href="#">
<img src="path-to-image" alt="Product image">
</a>
<div class="card-product-widgets-top">
<span class="badge product-badge badge-danger">-50%</span>
<div class="star-rating">
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star"></i>
</div>
</div>
<div class="card-product-widgets-bottom">
<a class="btn-wishlist ml-auto" href="#" data-toggle="tooltip" data-placement="left" title="Add to wishlist"></a>
</div>
</div>
<div class="card-body">
<h3 class="card-product-title text-truncate mb-2">
<a class="nav-link" href="#">Shirt with insertion lace trims</a>
</h3>
<div class="d-flex align-items-center">
<span class="h5 d-inline-block mb-0 text-danger">$20.40</span>
<del class="d-inline-block ml-2 pl-1 text-muted">$40.80</del>
</div>
</div>
</div>
</div>
<!-- Carousel item -->
<div>
<div class="card card-product">
<div class="card-product-img">
<a class="card-img-top" href="#">
<img src="path-to-image" alt="Product image">
</a>
<div class="card-product-widgets-top">
<div class="ml-auto star-rating">
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star"></i>
<i class="sr-star cxi-star"></i>
</div>
</div>
<div class="card-product-widgets-bottom">
<a class="btn-wishlist ml-auto" href="#" data-toggle="tooltip" data-placement="left" title="Add to wishlist"></a>
</div>
</div>
<div class="card-body">
<h3 class="card-product-title text-truncate mb-2">
<a class="nav-link" href="#">Sport cap with stitches</a>
</h3>
<div class="d-flex align-items-center">
<span class="h5 d-inline-block mb-0">$40.80</span>
</div>
</div>
</div>
</div>
<!-- Carousel item... -->
<div>
<div class="card card-product">
...
</div>
</div>
<!-- Add as many items as you need -->
</div>
</div>
Category card: Style 1
<!-- Category card: Style 1 -->
<a class="d-block cs-image-scale cs-heading-highlight text-center" href="#">
<div class="cs-image-inner mb-3 rounded">
<img src="path-to-image" alt="Category image">
</div>
<h3 class="h5 mb-3">Women’s</h3>
</a>
Category card: Style 2
<!-- Category card: Style 2 -->
<a class="d-block cs-image-scale cs-heading-highlight text-center" href="#">
<div class="cs-image-inner mb-4 rounded-circle">
<img src="path-to-image" alt="Category image">
</div>
<h3 class="h5 mb-3">Jackets</h3>
</a>
Product gallery
Make sure to link to Tiny Slider and Light Gallery css and js files in your document:
- vendor/tiny-slider/dist/tiny-slider.css
- vendor/tiny-slider/dist/min/tiny-slider.js
- vendor/lightgallery.js/dist/css/lightgallery.min.css
- vendor/lightgallery.js/dist/js/lightgallery.min.js
If you need extra features like zooming, fullscreen view or video you need to include additional plugins:
- vendor/lg-fullscreen.js/dist/lg-fullscreen.min.js
- vendor/lg-zoom.js/dist/lg-zoom.min.js
- vendor/lg-video.js/dist/lg-video.min.js
Use this page as a reference.
<!-- Product gallery -->
<div class="cs-carousel cs-gallery cs-product-gallery">
<div class="cs-carousel-inner" data-carousel-options='{
"gutter": 15,
"navContainer": "#cs-thumbnails",
"navAsThumbnails": true
}'>
<!-- Product gallery item -->
<a class="cs-gallery-item" href="path-to-large-image" data-sub-html='<h6 class="text-light">Gallery image caption #1</h6>'>
<img class="rounded" src="path-to-small-image" alt="Carousel image">
<span class="cs-gallery-caption">Gallery image caption #1</span>
</a>
<!-- Product gallery item -->
<a class="cs-gallery-item" href="path-to-large-image" data-sub-html='<h6 class="text-light">Gallery image caption #2</h6>'>
<img class="rounded" src="path-to-small-image" alt="Carousel image">
<span class="cs-gallery-caption">Gallery image caption #2</span>
</a>
<!-- Product gallery item -->
<a class="cs-gallery-item video-item" href="link-to-youtube/vimeo" data-sub-html='<h6 class="text-light">Gallery image caption #3</h6>'>
<img class="rounded" src="path-to-small-image" alt="Carousel image">
<span class="cs-gallery-caption">Gallery image caption #3</span>
</a>
</div>
<!-- Product gallery thumbnails -->
<div class="cs-thumbnails" id="cs-thumbnails">
<button type="button" data-nav="0">
<img src="path-to-thumbnail" alt="Thumbnail">
</button>
<button type="button" data-nav="1">
<img src="path-to-thumbnail" alt="Thumbnail">
</button>
<button type="button" data-nav="2" class="video-indicator">
<img src="path-to-thumbnail" alt="Thumbnail">
</button>
</div>
</div>
Promo banner
Limited time offer
<!-- Promo banner -->
<div class="py-5 px-md-5 px-4 bg-size-cover bg-position-center-y" style="background-image: url(path-to-background-image);">
<div class="mt-md-3 mb-5 pb-5 p-md-2" style="max-width: 14rem;">
<h3 class="mb-2 pb-1 font-size-sm text-uppercase">Summer Collections</h3>
<h2 class="pb-3">Sale Up to 70%</h2>
<a class="btn btn-outline-primary mb-5" href="#">Explore new prices</a>
</div>
<div class="mb-md-3 pt-5 p-md-2">
<h3 class="mb-2 pb-1 font-size-sm text-uppercase">Limited time offer</h3>
<div class="cs-countdown h3 mb-0" data-countdown="10/01/2022 07:00:00 PM">
<div class="cs-countdown-days mb-0">
<span class="cs-countdown-value">0</span>
<span class="cs-countdown-label mt-1 font-size-sm text-body">Days</span>
</div>
<div class="cs-countdown-hours mb-0">
<span class="cs-countdown-value">0</span>
<span class="cs-countdown-label mt-1 font-size-sm text-body">Hours</span>
</div>
<div class="cs-countdown-minutes mb-0">
<span class="cs-countdown-value">0</span>
<span class="cs-countdown-label mt-1 font-size-sm text-body">Mins</span>
</div>
<div class="cs-countdown-seconds mb-0">
<span class="cs-countdown-value">0</span>
<span class="cs-countdown-label mt-1 font-size-sm text-body">Secs</span>
</div>
</div>
</div>
</div>
Active filters
<!-- Active filters -->
<a class="active-filter" href="#">Active filter</a>
Product review
Devon Lane
July 15, 2020Annette Black
1 day ago@Devon LaneEgestas fermentum natoque sollicitudin mauris. Facilisis praesent urna sed rhoncus quis pharetra pellentesque erat sagittis.
<!-- Product review -->
<div class="mb-4 pb-4 border-bottom">
<div class="row">
<div class="col-md-3 col-sm-4 mb-sm-0 mb-3">
<h3 class="mb-2 font-size-lg">Annette Black</h3>
<span class="d-block mb-3 font-size-sm text-muted">1 day ago</span>
<div class="mt-n1 star-rating">
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star-filled active"></i>
<i class="sr-star cxi-star"></i>
</div>
</div>
<div class="col">
<p class="mb-3">
<a class="mr-1 font-weight-bold text-decoration-none" href="#">@Devon Lane</a>
Egestas fermentum natoque sollicitudin mauris. Facilisis praesent urna sed rhoncus quis pharetra pellentesque erat sagittis.
</p>
<div class="d-flex justify-content-between">
<a class="nav-link p-0 font-size-sm" href="#">
<i class="cxi-chat mr-2 font-size-base align-middle mt-n1"></i>
Reply
</a>
<div class="d-flex">
<a class="nav-link mr-3 p-0 font-size-sm" href="#">
<i class="cxi-like mr-2 font-size-base align-middle mt-n1 text-success"></i>
2
</a>
<a class="nav-link p-0 font-size-sm" href="#">
<i class="cxi-dislike mr-2 font-size-base align-middle mt-n1 text-danger"></i>
1
</a>
</div>
</div>
</div>
</div>
</div>












