page
<style><!--
.page-width{
max-width: 90%;
}
.page-content{
max-width: 1000px;
}
.page-width--narrow{
padding-left: 0;
padding-right: 0;
}
div#sbp::after {
content: "";
clear: both;
display: block;
}
#sbp img{
border: none;
}
#sbp .images-container{
flex-wrap: nowrap;
display: flex;
gap: 16px;
overflow-x: scroll;
width: 100%;
margin-bottom: 30px;
position: relative;
}
#sbp #carousel-nav-container{
display: block;
text-align: right;
padding-bottom: 24px;
}
#sbp #carousel-nav-right, #sbp #carousel-nav-left{
display: inline-block;
background: #ddd;
border-radius: 50%;
padding: 10px;
margin-right: 5px;
opacity: 0.5;
line-height: 1.0;
}
#sbp #carousel-nav-right.active, #sbp #carousel-nav-left.active{
cursor: pointer;
opacity: 1.0;
transition: background-color 200ms linear;
}
#sbp #carousel-nav-left.active:hover{
background: #bbb;
}
#sbp .hide-scroll::-webkit-scrollbar {
display: none;
}
#sbp .hide-scroll {
-ms-overflow-style: none;
scrollbar-width: none;
}
#sbp .image-wrapper{
box-sizing: border-box;
width: 180px;
height: 180px;
display: flex;
justify-content: center;
align-items: center;
padding: 30px;
border: 1px solid #757575;
}
#sbp .image-wrapper img{
width: 100%;
}
#sbp .featured-title{
margin-top: 10px;
}
#sbp .shortcuts-container{
overflow-x: scroll;
}
#sbp .shortcuts{
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
min-width: 1000px;
}
#sbp .shortcut-letter{
cursor: pointer;
background: #fafafa;
display: inline-block;
height: 38px;
line-height: 38px;
margin: 0 4px 4px 0;
padding: 0;
text-align: center;
text-transform: uppercase;
width: 38px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#sbp .shortcut-letter[disabled]{
color: #ccc;
}
#sbp .brand-section{
margin: 20px 0;
position: relative;
}
#sbp .letter{
border-right: 1px solid #ccc;
bottom: 0;
left: 0;
padding: 16px 0;
position: absolute;
top: 0;
width: 60px;
}
#sbp .brands{
overflow: hidden;
padding: 15px 0px 15px 100px;
width: 100%;
box-sizing: border-box;
}
#sbp .brand{
display: inline-block;
padding: 1px 10px 7px 0;
vertical-align: top;
width: 32.5%;
box-sizing: border-box;
}
#sbp a{
text-decoration: none;
color: inherit;
}
#sbp #no-results{
text-align: center;
padding: 120px 40px;
}
#sbp .search-wrapper{
position: relative;
margin: 20px 0;
width: 30%;
float: left;
padding-right: 40px;
box-sizing: border-box;
max-width: 320px;
}
#sbp .search-wrapper svg.search-icon{
width: 21px;
position: absolute;
top: 8px;
left: 11px;
}
#sbp #brand-search{
font-size: 16px;
margin: 0px;
padding: 8px 42px 8px 42px;
box-sizing: border-box;
width: 100%;
}
#sbp .brands-wrapper{
width: 70%;
float: right;
}
#sbp #search-wrapper #cancel-button{
display: none;
}
#sbp #search-wrapper[active] #cancel-button{
display: block;
}
#sbp #cancel-button{
width: 30px;
height: 30px;
padding: 10px;
border-radius: 3px;
background: #f4f4f4;
box-sizing: border-box;
cursor: pointer;
position: absolute;
top: 4px;
right: 45px;
font-size: 0;
}
#sbp #cancel-button path{
fill: #757575;
}
#scroll-to-top{
position: fixed;
bottom: 20px;
right: 20px;
background: #fff;
width: 60px;
height: 60px;
border: 1px solid;
border-radius: 50%;
box-sizing: border-box;
padding: 10px;
cursor: pointer;
}
@media(max-width: 800px){
#sbp .brands{
padding: 10px 0px 10px 50px;
}
#sbp .letter{
padding: 11px 0;
width: 30px;
}
#sbp .brand{
width: 50%;
}
#sbp .search-wrapper{
max-width: none;
width: 100%;
padding-right: 0px;
}
#sbp .brands-wrapper{
width: 100%;
}
#sbp #cancel-button{
right: 5px;
}
#sbp .image-wrapper {
width: 150px;
height: 150px;
}
}
@media(max-width: 480px){
#sbp .brand{
width: 100%;
}
}
--></style>
<div id="sbp">
<div class="shortcuts-container hide-scroll">
<div class="shortcuts"></div>
</div>
<div class="search-wrapper" id="search-wrapper"><svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" class="search-icon"><path style="fill: #757575;" d="m29.43 25.39-6.9-6.9A10.86 10.86 0 0 0 24 13a11 11 0 1 0-5.5 9.52l6.91 6.9a2.06 2.06 0 0 0 1.48.59 3.18 3.18 0 0 0 2.17-1 2.6 2.6 0 0 0 .37-3.62zm-11-5.18A8.89 8.89 0 0 1 13 22a9 9 0 1 1 7.23-3.65 9.33 9.33 0 0 1-1.85 1.86zm9.26 7.41a1 1 0 0 1-.82.38l-6.66-6.65-.05-.05 1.2-1.2h.05L28 26.79a1 1 0 0 1-.36.83z"></path></svg> <input placeholder="Search brands" style="font-size: 16px;" id="brand-search" type="text">
<div id="cancel-button" onclick="smb.cancelSearch(this)"><svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" class="cancel-icon"><path d="m2.828 17.828 6.086-6.086L15 17.828 17.828 15l-6.086-6.086 6.086-6.086L15 0 8.914 6.086 2.828 0 0 2.828l6.085 6.086L0 15l2.828 2.828z"></path></svg></div>
</div>
<div class="brands-wrapper">
<div style="display: none;" id="no-results">
<h3>Sorry, we couldn't find your search query.</h3>
<p>You can check your spelling or use the A-Z bar above. Simply click the first letter of the brand you're looking for.</p>
</div>
</div>
</div>
<script type="text/javascript">
const smb = new function(){
var self = this;
this.onCarouselScroll = function(){
const el = document.getElementById('brands-carousel');
const atLeft = el.scrollLeft < 1;
const atRight = Math.abs(el.scrollWidth - el.scrollLeft - el.clientWidth) < 1;
document.getElementById("carousel-nav-right").setAttribute("class", (atRight ? "" : "active"))
document.getElementById("carousel-nav-left").setAttribute("class", (atLeft ? "" : "active"))
}
this.scrollCarousel = function(el, dir){
if(el.classList.contains('active')){
const container = document.getElementById('brands-carousel');
const curr = container.scrollLeft;
const set = container.getElementsByClassName('carousel-link');
const period = set[1].offsetLeft;
const moveTo = (Math.round(curr/period) + (dir == "right" ? 1 : -1)) * period;
container.scrollTo({left: moveTo, behavior: "smooth"})
}
}
this.cancelSearch = function(el){
const searchBar = document.getElementById("brand-search")
searchBar.value = ""
searchBar.dispatchEvent(new Event("input"));
}
this.scrollTo = function(element) {
var viewportOffset = element.getBoundingClientRect();
var top = viewportOffset.top;
window.scroll({
behavior: 'smooth',
left: 0,
top: top
});
}
this.shortcutClick = function(el){
const term = el.getAttribute('to-term')
self.scrollTo(document.getElementById("term-" + term));
}
this.split = function(str, q){
if(!q.length) return ["inline-block", str] ;
const str_norm = str.toLowerCase()
const q_norm = q.toLowerCase()
const split_norm = str_norm.split(q_norm)
if(split_norm.length == 1) return [ "none", str ] ;
let join = str.slice(0, split_norm[0].length)
let pos = join.length
for(let i=0; i<split_norm.length; i++){
if(i >= split_norm.length - 1) break ;
join += '<b>' + str.slice(pos, pos + q.length) + '</b>' + str.slice(pos + q.length, pos + q.length + split_norm[i+1].length)
pos += q.length + split_norm[i+1].length
}
return ["inline-block", join];
}
// function to filter brands, shortcut-letters and sections based on search input
this.searchFilter = function(e){
const query = e.target.value.toLowerCase();
let searchWrapper = document.getElementById("search-wrapper")
if(query){
searchWrapper.setAttribute("active", "true")
}else{
searchWrapper.removeAttribute("active")
}
var totalCount = 0;
const sections = Array.from(document.getElementsByClassName("brand-section"))
sections.forEach(section => {
const brands = Array.from(section.getElementsByClassName("brand"))
var count = 0;
brands.forEach(brand => {
const text = brand.getAttribute("title");
const [ display, displayText ] = self.split(text, query);
brand.style["display"] = display;
brand.innerHTML = displayText;
count += (display == "none" ? 0 : 1);
})
totalCount += count;
section.style["display"] = (count ? "block" : "none");
const shortcutID = "shortcut-" + section.getAttribute("term")
const shortcut = document.getElementById(shortcutID)
if(shortcut){
shortcut.style = (count ? "" : "color: #ccc;") ;
if(count){
shortcut.removeAttribute("disabled")
}else{
shortcut.setAttribute("disabled", "true")
}
}
})
document.getElementById('no-results').style['display'] = (totalCount ? 'none' : 'block');
}
this.init = function(){
document.getElementById("brand-search").addEventListener( "input", self.searchFilter )
let div = document.createElement('div');
div.innerHTML = "<div id='scroll-to-top' onclick=\"window.scroll({behavior: 'smooth', left: 0, top: 0})\" style='display: none;'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M16 15a1 1 0 0 1-.707-.293L12 11.414l-3.293 3.293a1 1 0 1 1-1.414-1.414l4-4a1 1 0 0 1 1.414 0l4 4A1 1 0 0 1 16 15z' style='fill:#757575'/></svg></div>";
document.body.appendChild(div);
window.addEventListener("scroll", (event) => {
let scroll = window.scrollY;
document.getElementById('scroll-to-top').style = (window.scrollY > 250 ? "display: block;" : "display: none;");
});
}
}
document.addEventListener("DOMContentLoaded", smb.init)
</script>
BRAND TRUST US, WE TRUST BRANDS
World-Class Brands Under One Roof
AntiqueAsh takes great pride in collaborating with the most reputable and admired brands in the vaping industry. Every brand in our portfolio embodies the highest standards of excellence, client satisfaction, and cutting-edge innovation. With a commitment to excellence, these brands have built their market reputation through consistent performance and customer loyalty. Discover the difference with our top-tier selection, and vape with confidence knowing you are supported by the best.