ondc-campaign-sdk
Version:
[](https://www.npmjs.com/package/ondc-campaign-sdk) [](LICENSE) [ • 16.7 kB
HTML
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: 'Inter', sans-serif;
margin: 0;
padding: 0;
background: #f8fafc;
}
#sdkCampaignsCarousel .carousel-inner {
border-radius: 16px;
overflow: hidden;
}
#sdkCampaignsCarousel .carousel-control-prev,
#sdkCampaignsCarousel .carousel-control-next {
width: 50px ;
height: 50px ;
background: rgba(255,255,255,0.9) ;
border-radius: 50% ;
top: 50% ;
transform: translateY(-50%) ;
opacity: 0.8 ;
transition: all 0.3s ease ;
z-index: 1000 ;
border: 2px solid rgba(255,255,255,0.2) ;
display: flex ;
align-items: center ;
justify-content: center ;
}
#sdkCampaignsCarousel .carousel-control-prev {
left: 10px ;
}
#sdkCampaignsCarousel .carousel-control-next {
right: 10px ;
}
#sdkCampaignsCarousel .carousel-control-prev:hover,
#sdkCampaignsCarousel .carousel-control-next:hover {
opacity: 1 ;
background: rgba(255,255,255,1) ;
box-shadow: 0 8px 25px rgba(0,0,0,0.15) ;
transform: translateY(-50%) scale(1.1) ;
}
#sdkCampaignsCarousel .carousel-control-prev-icon,
#sdkCampaignsCarousel .carousel-control-next-icon {
width: 20px ;
height: 20px ;
background-image: none ;
display: flex ;
align-items: center ;
justify-content: center ;
}
#sdkCampaignsCarousel .carousel-control-prev-icon::before {
content: '<' ;
font-size: 20px ;
color: #374151 ;
font-weight: bold ;
}
#sdkCampaignsCarousel .carousel-control-next-icon::before {
content: '>' ;
font-size: 20px ;
color: #374151 ;
font-weight: bold ;
}
#sdkCampaignsCarousel .carousel-indicators {
bottom: -40px;
z-index: 10;
}
#sdkCampaignsCarousel .carousel-indicators button {
z-index: 10;
}
#sdkCampaignsCarousel .carousel-item {
transition: transform 0.6s ease-in-out;
border-radius: 16px;
overflow: hidden;
}
/* Template-specific styles matching test-carousel.html */
#sdkCampaignsCarousel .banner-showcase {
position: relative;
overflow: hidden;
}
#sdkCampaignsCarousel .banner-container {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
}
#sdkCampaignsCarousel .banner-container img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-centered {
align-items: center ;
justify-content: center ;
text-align: center ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-left-aligned {
align-items: center ;
justify-content: flex-start ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-overlay {
align-items: center ;
justify-content: center ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-card-style {
align-items: center ;
justify-content: center ;
text-align: center ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-left-text .banner-text-content {
text-align: left ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-left-text .banner-headline {
text-align: left ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-left-text .banner-description-text {
text-align: left ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-left-text .banner-cta-button {
margin: 0 ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-overlay-text .banner-text-content {
text-align: center ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-overlay-text .banner-headline {
text-align: center ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-overlay-text .banner-description-text {
text-align: center ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-overlay-text .banner-cta-button {
margin: 0 auto ;
}
#sdkCampaignsCarousel .banner-cta-button:hover svg {
transform: translateX(3px) ;
}
@media (max-width: 768px) {
#sdkCampaignsCarousel .carousel-control-prev,
#sdkCampaignsCarousel .carousel-control-next {
width: 40px;
height: 40px;
}
#sdkCampaignsCarousel .carousel-control-prev-icon,
#sdkCampaignsCarousel .carousel-control-next-icon {
width: 16px;
height: 16px;
}
#sdkCampaignsCarousel .banner-content-wrapper {
padding: 1.5rem ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-left-aligned .banner-text-content,
#sdkCampaignsCarousel .banner-content-wrapper.template-overlay .banner-text-content,
#sdkCampaignsCarousel .banner-content-wrapper.template-card-style .banner-text-content {
max-width: 100% ;
width: 100% ;
padding: 1.5rem ;
}
#sdkCampaignsCarousel .banner-content-wrapper.template-overlay .banner-text-content,
#sdkCampaignsCarousel .banner-content-wrapper.template-card-style .banner-text-content {
padding: 1.5rem ;
}
}
</style>
<div id="sdkCampaignsCarousel" class="carousel slide" data-bs-ride="carousel" data-bs-interval="5000">
<div class="carousel-indicators" onclick="event.stopPropagation();">
<button type="button" data-bs-target="#sdkCampaignsCarousel" data-bs-slide-to="0"
class="active" aria-current="true"
aria-label="Slide 1" style="
width: 10px;
height: 10px;
border-radius: 50%;
margin: 0 4px;
background-color: #3b82f6;
border: none;
transition: all 0.3s ease;
" onclick="event.stopPropagation();"></button>
<button type="button" data-bs-target="#sdkCampaignsCarousel" data-bs-slide-to="1"
class="" aria-current="false"
aria-label="Slide 2" style="
width: 10px;
height: 10px;
border-radius: 50%;
margin: 0 4px;
background-color: rgba(255,255,255,0.5);
border: none;
transition: all 0.3s ease;
" onclick="event.stopPropagation();"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active" onclick="
(function(event) {
event.preventDefault();
var campaignUrl = 'https://seller.samhita.org/campaign/684974687df302329d8753ea';
window.open(campaignUrl, '_blank');
return false;
})(event);
" style="cursor: pointer;">
<div class="banner-showcase">
<div class="banner-container" style="
background-color: transparent;
position: relative;
height: 400px;
overflow: hidden;
border-radius: 16px;
">
<img src="https://childfoundation.org/wp-content/uploads/2024/06/20230822-B2S-email-to-sponsors.jpg"
alt="Campaign banner"
style="
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
top: 0;
left: 0;
z-index: 0;
"
onerror="this.style.display='none';" />
<div class="banner-overlay-gradient" style="
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.8);
z-index: 1;
"></div>
<div class="banner-content-wrapper template-left-aligned template-left-text" style="
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
width: 100%;
height: 100%;
padding: 2.5rem;
pointer-events: none;
z-index: 2;
align-items: center;
justify-content: flex-start;
text-align: left;
">
<div class="banner-text-content" style="
pointer-events: auto;
z-index: 10;
max-width: 50%;
width: 50%;
text-align: left;
">
<h2 class="banner-headline" style="
font-size: 2rem;
color: #ffa200;
font-weight: bold;
margin: 0 0 1rem 0;
line-height: 1.2;
word-wrap: break-word;
white-space: normal;
text-align: left;
text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
">Back to School Drive</h2>
<p class="banner-description-text" style="
font-size: 1rem;
color: #ffae00;
margin: 0 0 1.5rem 0;
line-height: 1.5;
word-wrap: break-word;
white-space: normal;
text-align: left;
text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
">Join us in providing essential school supplies to underprivileged children. Help them start the academic year with confidence and hope</p>
</div>
</div>
</div>
</div>
</div>
<div class="carousel-item " onclick="
(function(event) {
event.preventDefault();
var campaignUrl = 'https://seller.samhita.org/campaign/681b16e4d8fb313db1bbeff8';
window.open(campaignUrl, '_blank');
return false;
})(event);
" style="cursor: pointer;">
<div class="banner-showcase">
<div class="banner-container" style="
background-color: transparent;
position: relative;
height: 400px;
overflow: hidden;
border-radius: 16px;
">
<img src="https://img.freepik.com/premium-photo/online-shopping-mobile-phone_172660-107.jpg?uid=R122331431&ga=GA1.1.1606667448.1732733109&semt=ais_hybrid&w=740"
alt="Campaign banner"
style="
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
top: 0;
left: 0;
z-index: 0;
"
onerror="this.style.display='none';" />
<div class="banner-overlay-gradient" style="
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.8);
z-index: 1;
"></div>
<div class="banner-content-wrapper template-card-style" style="
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
width: 100%;
height: 100%;
padding: 2.5rem;
pointer-events: none;
z-index: 2;
align-items: center;
justify-content: center;
text-align: center;
">
<div class="banner-text-content" style="
pointer-events: auto;
z-index: 10;
max-width: 480px;
width: auto;
text-align: center;
background: rgba(255, 255, 255, 0.95);
padding: 2.5rem;
border-radius: 20px;
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
">
<h2 class="banner-headline" style="
font-size: 2.5rem;
color: #044cdc;
font-weight: normal;
margin: 0 0 1rem 0;
line-height: 1.2;
word-wrap: break-word;
white-space: normal;
text-align: center;
">Winter Wonderland Sale(Up to 50% off)</h2>
<p class="banner-description-text" style="
font-size: 1.125rem;
color: #115bee;
margin: 0 0 1.5rem 0;
line-height: 1.5;
word-wrap: break-word;
white-space: normal;
text-align: center;
">A campaign is a coordinated set of activities designed to </p>
<button type="button" class="banner-cta-button" style="
background-color: #090e15;
color: #d34a4a;
border: none;
border-radius: 30px;
padding: 0.75rem 1.5rem;
font-size: 1rem;
font-weight: semibold;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
display: inline-flex;
align-items: center;
gap: 0.5rem;
white-space: nowrap;
margin: 0 auto;
"
onmouseover="
this.style.transform='translateY(-2px)';
this.style.boxShadow='0 8px 24px rgba(0,0,0,0.4)';
"
onmouseout="
this.style.transform='translateY(0)';
this.style.boxShadow='0 4px 16px rgba(0,0,0,0.3)';
">
Start
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="transition: transform 0.2s ease;">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#sdkCampaignsCarousel" data-bs-slide="prev" onclick="event.stopPropagation();">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#sdkCampaignsCarousel" data-bs-slide="next" onclick="event.stopPropagation();">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>