Filter Products

Size

Color

Price

$0 - $100

Make it stand out.

Our Services

<script>
document.addEventListener('DOMContentLoaded', function() {
  const filters = {
    category: 'all',
    size: [],
    color: [],
    price: 100
  };

  const filterItems = document.querySelectorAll('.custom-sidebar-filters .filter-item');
  const slider = document.getElementById('priceRange');
  const priceValue = document.getElementById('priceValue');

  const products = document.querySelectorAll('.sqs-block.products-block .sqs-block-content .sqs-product');

  // Update price label
  slider.addEventListener('input', function() {
    filters.price = parseInt(this.value);
    priceValue.textContent = `$0 - $${this.value}`;
    applyFilters();
  });

  // Handle click filters
  filterItems.forEach(btn => {
    btn.addEventListener('click', function(e){
      e.preventDefault();

      // Determine filter type
      const type = this.classList.contains('category') ? 'category' :
                   this.classList.contains('size') ? 'size' :
                   this.classList.contains('color-swatch') ? 'color' : null;

      if(!type) return;

      // Toggle active
      if(this.classList.contains('active')){
        if(type !== 'category') this.classList.remove('active');
      } else {
        if(type === 'category'){
          // Only one category active at a time
          filterItems.forEach(f => f.classList.remove('active'));
          this.classList.add('active');
        } else {
          this.classList.add('active');
        }
      }

      // Update filters object
      filters[type] = (type === 'category') ? this.dataset.filter :
                       Array.from(document.querySelectorAll(`.custom-sidebar-filters .${type}.active`)).map(b=>b.dataset.filter);

      applyFilters();
    });
  });

  function applyFilters() {
    products.forEach(p => {
      const cat = p.dataset.category;
      const size = p.dataset.size ? p.dataset.size.split(',') : [];
      const color = p.dataset.color ? p.dataset.color.split(',') : [];
      const price = parseInt(p.dataset.price);

      let visible = true;

      // Category filter
      if(filters.category !== 'all' && cat !== filters.category) visible = false;

      // Size filter
      if(filters.size.length > 0 && !filters.size.some(f => size.includes(f))) visible = false;

      // Color filter
      if(filters.color.length > 0 && !filters.color.some(f => color.includes(f))) visible = false;

      // Price filter
      if(price > filters.price) visible = false;

      p.style.display = visible ? '' : 'none';
    });
  }
});
</script>

Necklace Cards

Gold
$750.00
Deluxe
$500.00
Basic
$250.00

About our offering

  • It all begins with an idea. Maybe you want to launch a business. Maybe you want to turn a hobby into something more.

  • It all begins with an idea. Maybe you want to launch a business. Maybe you want to turn a hobby into something more.

  • It all begins with an idea. Maybe you want to launch a business. Maybe you want to turn a hobby into something more.