badbirdiegolf.com Open in urlscan Pro
23.227.38.32  Public Scan

Submitted URL: http://badbirdiegolf.com/
Effective URL: https://badbirdiegolf.com/
Submission: On April 23 via api from US — Scanned from CA

Form analysis 6 forms found in the DOM

POST /localization

<form method="post" action="/localization" id="annbar-localization" accept-charset="UTF-8" class="form localization no-js-hidden" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization"><input type="hidden"
    name="utf8" value="✓"><input type="hidden" name="_method" value="put"><input type="hidden" name="return_to" value="/">
  <div class="localization__grid">
    <div class="localization__selector">
      <input type="hidden" name="country_code" value="CA">
      <country-selector><label class="label visually-hidden no-js-hidden" for="annbar-localization-country-button">Country/Region</label>
        <div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" aria-expanded="false" aria-haspopup="listbox" id="annbar-localization-country-button">
            <span class="text-start">Canada (CAD&nbsp;$)</span>
            <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true">
              <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path>
            </svg>
          </button>
          <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" aria-hidden="true" hidden="" aria-activedescendant="annbar-localization-country-opt-0">
            <li class="custom-select__option flex items-center js-option" id="annbar-localization-country-opt-0" role="option" data-value="CA" aria-selected="true">
              <span class="pointer-events-none">Canada (CAD&nbsp;$)</span>
            </li>
          </ul>
        </div>
      </country-selector>
    </div>
  </div>
  <script>
    customElements.whenDefined('custom-select').then(() => {
      if (!customElements.get('country-selector')) {
        class CountrySelector extends customElements.get('custom-select') {
          constructor() {
            super();
            this.loaded = false;
          }
          async showListbox() {
            if (this.loaded) {
              super.showListbox();
              return;
            }
            this.button.classList.add('is-loading');
            this.button.setAttribute('aria-disabled', 'true');
            try {
              const response = await fetch('?section_id=country-selector');
              if (!response.ok) throw new Error(response.status);
              const tmpl = document.createElement('template');
              tmpl.innerHTML = await response.text();
              const el = tmpl.content.querySelector('.custom-select__listbox');
              this.listbox.innerHTML = el.innerHTML;
              this.options = this.querySelectorAll('.custom-select__option');
              this.loaded = true;
            } catch {
              this.listbox.innerHTML = '<li>Error fetching countries, please try again.</li>';
            } finally {
              super.showListbox();
              this.button.classList.remove('is-loading');
              this.button.setAttribute('aria-disabled', 'false');
            }
          }
          setButtonWidth() {
            return;
          }
        }
        customElements.define('country-selector', CountrySelector);
      }
    });
  </script>
  <script>
    document.getElementById('annbar-localization').addEventListener('change', (evt) => {
      const input = evt.target.previousElementSibling;
      if (input && input.tagName === 'INPUT') {
        input.value = evt.detail.selectedValue;
        evt.currentTarget.submit();
      }
    });
  </script>
</form>

GET /search

<form class="main-search__form" action="/search" method="get" autocomplete="off">
  <div class="main-search__input-container">
    <input class="main-search__input" type="text" name="q" autocomplete="off" placeholder="Search our store" aria-label="Search">
    <button class="main-search__button" type="submit" aria-label="Search"><svg class="icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation">
        <g transform="translate(3 3)" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd">
          <circle cx="7.824" cy="7.824" r="7.824"></circle>
          <path stroke-linecap="square" d="m13.971 13.971 4.47 4.47"></path>
        </g>
      </svg></button>
  </div>
  <script src="//badbirdiegolf.com/cdn/shop/t/258/assets/search-suggestions.js?v=136224079820713396391710170999" defer=""></script>
  <search-suggestions></search-suggestions>
</form>

POST /localization

<form method="post" action="/localization" id="annbar-localizationMobileNav" accept-charset="UTF-8" class="form localization no-js-hidden" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization"><input type="hidden"
    name="utf8" value="✓"><input type="hidden" name="_method" value="put"><input type="hidden" name="return_to" value="/">
  <div class="localization__grid">
    <div class="localization__selector">
      <input type="hidden" name="country_code" value="CA">
      <country-selector><label class="label visually-hidden no-js-hidden" for="annbar-localization-country-buttonMobileNav">Country/Region</label>
        <div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" aria-expanded="false" aria-haspopup="listbox" id="annbar-localization-country-buttonMobileNav">
            <span class="text-start">Canada (CAD&nbsp;$)</span>
            <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true">
              <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path>
            </svg>
          </button>
          <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" aria-hidden="true" hidden="" aria-activedescendant="annbar-localization-country-opt-0">
            <li class="custom-select__option flex items-center js-option" id="annbar-localization-country-opt-0MobileNav" role="option" data-value="CA" aria-selected="true">
              <span class="pointer-events-none">Canada (CAD&nbsp;$)</span>
            </li>
          </ul>
        </div>
      </country-selector>
    </div>
  </div>
  <script>
    customElements.whenDefined('custom-select').then(() => {
      if (!customElements.get('country-selector')) {
        class CountrySelector extends customElements.get('custom-select') {
          constructor() {
            super();
            this.loaded = false;
          }
          async showListbox() {
            if (this.loaded) {
              super.showListbox();
              return;
            }
            this.button.classList.add('is-loading');
            this.button.setAttribute('aria-disabled', 'true');
            try {
              const response = await fetch('?section_id=country-selector');
              if (!response.ok) throw new Error(response.status);
              const tmpl = document.createElement('template');
              tmpl.innerHTML = await response.text();
              const el = tmpl.content.querySelector('.custom-select__listbox');
              this.listbox.innerHTML = el.innerHTML;
              this.options = this.querySelectorAll('.custom-select__option');
              this.loaded = true;
            } catch {
              this.listbox.innerHTML = '<li>Error fetching countries, please try again.</li>';
            } finally {
              super.showListbox();
              this.button.classList.remove('is-loading');
              this.button.setAttribute('aria-disabled', 'false');
            }
          }
          setButtonWidth() {
            return;
          }
        }
        customElements.define('country-selector', CountrySelector);
      }
    });
  </script>
  <script>
    document.getElementById('annbar-localization').addEventListener('change', (evt) => {
      const input = evt.target.previousElementSibling;
      if (input && input.tagName === 'INPUT') {
        input.value = evt.detail.selectedValue;
        evt.currentTarget.submit();
      }
    });
  </script>
</form>

<form class="needsclick klaviyo-form klaviyo-form-version-cid_1 kl-private-reset-css-Xuajs1" data-testid="klaviyo-form-Sk6Ggj" novalidate="" tabindex="-1"
  style="display: flex; flex-direction: row; box-sizing: border-box; width: 100%; overflow: visible; border-radius: 0px; border-style: none; border-width: 0px; border-color: rgb(0, 0, 0); background-color: rgba(255, 255, 255, 0); background-repeat: no-repeat; background-position-y: 50%; padding: 0px; flex: 1 1 0%;">
  <div class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: column; width: 100%; margin: 0px; padding: 0px; min-height: 40px; justify-content: center;">
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 0px 0px 5px; position: relative; flex: 1 0 0px;">
        <div class="needsclick  kl-private-reset-css-Xuajs1" style="width: 100%; justify-content: flex-start; display: flex;">
          <div class="needsclick go2376614969 kl-private-reset-css-Xuajs1" style="align-self: flex-end; flex-flow: column wrap;">
            <div role="radiogroup" aria-labelledby="kl_Gender%20Preference__2_label" class="needsclick  kl-private-reset-css-Xuajs1" style="display: inline-flex; justify-content: flex-start; flex-wrap: wrap;"><input
                class="needsclick go2180652697 kl-private-reset-css-Xuajs1" tabindex="0" type="radio" id="Gender%20Preference__2__7" name="Gender%20Preference__2" aria-invalid="false" aria-label="MEN'S"><label for="Gender%20Preference__2__7"
                class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; align-items: center; flex: 0 0 auto; padding-bottom: 8px; word-break: break-word; max-width: 100%; cursor: pointer;"><svg class="go275276637" width="20px"
                  height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="stroke: rgb(187, 187, 187); margin-right: 8px; min-width: 20px; width: auto; height: auto;">
                  <g>
                    <g>
                      <circle stroke-width="1" cx="10" cy="10" r="9.5" fill="#FFFFFF"></circle>
                    </g>
                  </g>
                </svg><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="cursor: pointer; display: none; position: absolute; margin: 0px;">
                  <defs></defs>
                  <g id="radio_inner_Gender%20Preference__2__7" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                    <g id="shape-radio_inner_Gender%20Preference__2__7" transform="translate(4.000000, 4.000000)" fill="#303B43">
                      <circle fill="#000000" id="oval-radio_inner_Gender%20Preference__2__7" cx="6" cy="6" r="5.55555556"></circle>
                    </g>
                  </g>
                </svg>
                <div class="needsclick  kl-private-reset-css-Xuajs1"
                  style="cursor: pointer; color: rgb(109, 113, 117); font-family: Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0px; margin-right: 24px; display: flex; position: relative; top: 1px;">MEN'S</div>
              </label><input class="needsclick go2180652697 kl-private-reset-css-Xuajs1" tabindex="0" type="radio" id="Gender%20Preference__2__8" name="Gender%20Preference__2" aria-invalid="false" aria-label="WOMEN'S"><label
                for="Gender%20Preference__2__8" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; align-items: center; flex: 0 0 auto; padding-bottom: 8px; word-break: break-word; max-width: 100%; cursor: pointer;"><svg
                  class="go275276637" width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
                  style="stroke: rgb(187, 187, 187); margin-right: 8px; min-width: 20px; width: auto; height: auto;">
                  <g>
                    <g>
                      <circle stroke-width="1" cx="10" cy="10" r="9.5" fill="#FFFFFF"></circle>
                    </g>
                  </g>
                </svg><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="cursor: pointer; display: none; position: absolute; margin: 0px;">
                  <defs></defs>
                  <g id="radio_inner_Gender%20Preference__2__8" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                    <g id="shape-radio_inner_Gender%20Preference__2__8" transform="translate(4.000000, 4.000000)" fill="#303B43">
                      <circle fill="#000000" id="oval-radio_inner_Gender%20Preference__2__8" cx="6" cy="6" r="5.55555556"></circle>
                    </g>
                  </g>
                </svg>
                <div class="needsclick  kl-private-reset-css-Xuajs1"
                  style="cursor: pointer; color: rgb(109, 113, 117); font-family: Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0px; margin-right: 24px; display: flex; position: relative; top: 1px;">WOMEN'S</div>
              </label><input class="needsclick go2180652697 kl-private-reset-css-Xuajs1" tabindex="0" type="radio" id="Gender%20Preference__2__9" name="Gender%20Preference__2" aria-invalid="false" aria-label="BOTH"><label
                for="Gender%20Preference__2__9" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; align-items: center; flex: 0 0 auto; padding-bottom: 8px; word-break: break-word; max-width: 100%; cursor: pointer;"><svg
                  class="go275276637" width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
                  style="stroke: rgb(187, 187, 187); margin-right: 8px; min-width: 20px; width: auto; height: auto;">
                  <g>
                    <g>
                      <circle stroke-width="1" cx="10" cy="10" r="9.5" fill="#FFFFFF"></circle>
                    </g>
                  </g>
                </svg><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="cursor: pointer; display: none; position: absolute; margin: 0px;">
                  <defs></defs>
                  <g id="radio_inner_Gender%20Preference__2__9" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                    <g id="shape-radio_inner_Gender%20Preference__2__9" transform="translate(4.000000, 4.000000)" fill="#303B43">
                      <circle fill="#000000" id="oval-radio_inner_Gender%20Preference__2__9" cx="6" cy="6" r="5.55555556"></circle>
                    </g>
                  </g>
                </svg>
                <div class="needsclick  kl-private-reset-css-Xuajs1"
                  style="cursor: pointer; color: rgb(109, 113, 117); font-family: Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0px; margin-right: 24px; display: flex; position: relative; top: 1px;">BOTH</div>
              </label></div>
            <div class="needsclick  kl-private-reset-css-Xuajs1" style="width: 100%; position: relative;"></div>
          </div>
        </div>
      </div>
    </div>
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 0px 10px 0px 0px; position: relative; flex: 1 0 0px;">
        <div class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-grow: 1; flex-direction: column; align-self: flex-end;"><input id="email_78314115" class="needsclick go625923615 kl-private-reset-css-Xuajs1" type="email"
            autocomplete="email" name="email" tabindex="0" placeholder="Enter your email" aria-label="Enter your email" aria-invalid="false" options="[object Object]"
            style="box-sizing: border-box; border-radius: 0px; padding: 0px 0px 0px 16px; height: 40px; text-align: left; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0px; background-color: rgb(255, 255, 255); border: 1px solid rgb(187, 187, 187);">
          <div class="needsclick  kl-private-reset-css-Xuajs1" style="width: 100%; position: relative;"></div>
        </div>
      </div>
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 0px; position: relative; flex: 0 1 auto; margin: 0px auto;"><button
          class="needsclick go3894874857 kl-private-reset-css-Xuajs1" type="button" tabindex="0"
          style="background: rgb(0, 0, 0); border-radius: 0px; border-style: none; border-color: rgb(0, 0, 0); border-width: 2px; color: rgb(255, 255, 255); font-family: Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 700; letter-spacing: 0px; line-height: 1; white-space: normal; padding: 0px 10px; text-align: center; word-break: break-word; align-self: flex-end; cursor: pointer; height: 40px;">SIGN
          UP</button></div>
    </div>
  </div><input type="submit" tabindex="-1" value="Submit" style="display: none;">
</form>

POST /localization

<form method="post" action="/localization" id="footer-localization" accept-charset="UTF-8" class="form localization no-js-hidden" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization"><input type="hidden"
    name="utf8" value="✓"><input type="hidden" name="_method" value="put"><input type="hidden" name="return_to" value="/">
  <div class="localization__grid"></div>
  <script>
    document.getElementById('footer-localization').addEventListener('change', (evt) => {
      const input = evt.target.previousElementSibling;
      if (input && input.tagName === 'INPUT') {
        input.value = evt.detail.selectedValue;
        evt.currentTarget.submit();
      }
    });
  </script>
</form>

<form class="needsclick klaviyo-form klaviyo-form-version-cid_10 kl-private-reset-css-Xuajs1" data-testid="klaviyo-form-Wm9pbD" novalidate="" tabindex="-1"
  style="display: flex; flex-direction: row; box-sizing: border-box; width: 780px; min-width: 200px; max-width: 1000px; border-radius: 0px; border-style: none; border-width: 0px; border-color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); background-repeat: no-repeat; background-position-y: 50%; padding: 50px 20px; flex: 1 1 0%;">
  <div class="needsclick  kl-private-reset-css-Xuajs1"
    style="display: flex; flex-direction: column; width: 390px; margin: -50px 0px -50px -20px; padding: 0px; border-top: 0px solid transparent; border-right: 0px; border-bottom: 0px solid transparent; border-left: 0px solid transparent; border-bottom-left-radius: 0px; border-top-left-radius: 0px; overflow: hidden; min-width: 390px;">
    <div class="needsclick  kl-private-reset-css-Xuajs1"
      style="background-image: url(&quot;https://d3k81ch9hvuctc.cloudfront.net/company/JZaUva/images/edc7a921-180d-48d1-be85-bb54fd20ca8a.jpeg&quot;); background-repeat: no-repeat; background-size: cover; background-position: 50% 50%; width: 100%; height: 100%; display: block;">
    </div>
  </div>
  <div class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: column; width: 100%; margin: 0px; padding: 0px 0px 0px 20px; justify-content: center;">
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 20px 0px 23px; position: relative; flex: 0 1 auto; margin: 0px auto;">
        <div class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; align-items: center; width: 100%; height: auto;">
          <div class="needsclick  kl-private-reset-css-Xuajs1" style="position: relative; display: flex; align-items: center; width: 100%; height: auto;"><img
              src="https://d3k81ch9hvuctc.cloudfront.net/company/JZaUva/images/ed86a53b-0e28-415b-8a62-cdbcd7f5bcc0.png" tabindex="-1" alt="Bad Birdie" class="needsclick  kl-private-reset-css-Xuajs1"
              style="max-width: 100%; width: 252px; height: auto; cursor: initial;"></div>
        </div>
      </div>
    </div>
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 10px 6px; position: relative; flex: 1 0 0px;">
        <div class="kl-private-reset-css-Xuajs1 go3176171171" id="rich-text-96773220" style="width: 100%;">
          <p style="font-size: 14px; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-weight: 400; text-align: center;"><span class="ql-font-oswald"
              style="color: #ffffff; font-size: 23px; font-family: Helvetica, Arial, sans-serif; font-weight: bold;"><span style="font-size: 38px;">10% OFF</span><br><span style="font-size: 21px;">YOUR FIRST ORDER</span></span></p>
        </div>
      </div>
    </div>
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 5px 25px 19px; position: relative; flex: 1 0 0px;">
        <div class="kl-private-reset-css-Xuajs1 go3176171171" id="rich-text-96773221" style="width: 100%;">
          <p style="font-size: 14px; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-weight: 400; text-align: center; line-height: 130%;"><span
              style="font-size: 16px; font-family: Helvetica, Arial, sans-serif; font-weight: 400; color: #ffffff;">Join our newsletter to unlock your 10% discount and gain exclusive access to upcoming drops, restocks, collabs, and so much
              more.</span></p>
        </div>
      </div>
    </div>
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 10px 6px 7px 11px; position: relative; flex: 1 0 0px;">
        <div class="needsclick  kl-private-reset-css-Xuajs1" style="width: 100%; justify-content: flex-start; display: flex;">
          <div class="needsclick go2376614969 kl-private-reset-css-Xuajs1" style="align-self: flex-end; flex-flow: column wrap;"><label id="kl_Gender%20Preference__16_label" class="needsclick  kl-private-reset-css-Xuajs1"
              style="color: rgb(255, 255, 255); font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 0px; padding-bottom: 6px; margin-right: 8px; margin-bottom: 8px;">Product Preferences</label>
            <div role="radiogroup" aria-labelledby="kl_Gender%20Preference__16_label" class="needsclick  kl-private-reset-css-Xuajs1" style="display: inline-flex; justify-content: flex-start; flex-wrap: wrap;"><input
                class="needsclick go2180652697 kl-private-reset-css-Xuajs1" tabindex="0" type="radio" id="Gender%20Preference__16__25" name="Gender%20Preference__16" aria-invalid="false" aria-label="MEN'S"><label for="Gender%20Preference__16__25"
                class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; align-items: center; flex: 0 0 auto; padding-bottom: 8px; word-break: break-word; max-width: 100%; cursor: pointer;"><svg class="go3360010050" width="20px"
                  height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="stroke: rgb(0, 0, 0); margin-right: 8px; min-width: 20px; width: auto; height: auto;">
                  <g>
                    <g>
                      <circle stroke-width="1" cx="10" cy="10" r="9.5" fill="rgba(255,255,255,1)"></circle>
                    </g>
                  </g>
                </svg><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="cursor: pointer; display: none; position: absolute; margin: 0px;">
                  <defs></defs>
                  <g id="radio_inner_Gender%20Preference__16__25" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                    <g id="shape-radio_inner_Gender%20Preference__16__25" transform="translate(4.000000, 4.000000)" fill="#303B43">
                      <circle fill="#000000" id="oval-radio_inner_Gender%20Preference__16__25" cx="6" cy="6" r="5.55555556"></circle>
                    </g>
                  </g>
                </svg>
                <div class="needsclick  kl-private-reset-css-Xuajs1"
                  style="cursor: pointer; color: rgb(255, 255, 255); font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0px; margin-right: 24px; display: flex; position: relative; top: 1px;">MEN'S</div>
              </label><input class="needsclick go2180652697 kl-private-reset-css-Xuajs1" tabindex="0" type="radio" id="Gender%20Preference__16__26" name="Gender%20Preference__16" aria-invalid="false" aria-label="WOMEN'S"><label
                for="Gender%20Preference__16__26" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; align-items: center; flex: 0 0 auto; padding-bottom: 8px; word-break: break-word; max-width: 100%; cursor: pointer;"><svg
                  class="go3360010050" width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="stroke: rgb(0, 0, 0); margin-right: 8px; min-width: 20px; width: auto; height: auto;">
                  <g>
                    <g>
                      <circle stroke-width="1" cx="10" cy="10" r="9.5" fill="rgba(255,255,255,1)"></circle>
                    </g>
                  </g>
                </svg><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="cursor: pointer; display: none; position: absolute; margin: 0px;">
                  <defs></defs>
                  <g id="radio_inner_Gender%20Preference__16__26" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                    <g id="shape-radio_inner_Gender%20Preference__16__26" transform="translate(4.000000, 4.000000)" fill="#303B43">
                      <circle fill="#000000" id="oval-radio_inner_Gender%20Preference__16__26" cx="6" cy="6" r="5.55555556"></circle>
                    </g>
                  </g>
                </svg>
                <div class="needsclick  kl-private-reset-css-Xuajs1"
                  style="cursor: pointer; color: rgb(255, 255, 255); font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0px; margin-right: 24px; display: flex; position: relative; top: 1px;">WOMEN'S</div>
              </label><input class="needsclick go2180652697 kl-private-reset-css-Xuajs1" tabindex="0" type="radio" id="Gender%20Preference__16__27" name="Gender%20Preference__16" aria-invalid="false" aria-label="BOTH"><label
                for="Gender%20Preference__16__27" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; align-items: center; flex: 0 0 auto; padding-bottom: 8px; word-break: break-word; max-width: 100%; cursor: pointer;"><svg
                  class="go3360010050" width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="stroke: rgb(0, 0, 0); margin-right: 8px; min-width: 20px; width: auto; height: auto;">
                  <g>
                    <g>
                      <circle stroke-width="1" cx="10" cy="10" r="9.5" fill="rgba(255,255,255,1)"></circle>
                    </g>
                  </g>
                </svg><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="cursor: pointer; display: none; position: absolute; margin: 0px;">
                  <defs></defs>
                  <g id="radio_inner_Gender%20Preference__16__27" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                    <g id="shape-radio_inner_Gender%20Preference__16__27" transform="translate(4.000000, 4.000000)" fill="#303B43">
                      <circle fill="#000000" id="oval-radio_inner_Gender%20Preference__16__27" cx="6" cy="6" r="5.55555556"></circle>
                    </g>
                  </g>
                </svg>
                <div class="needsclick  kl-private-reset-css-Xuajs1"
                  style="cursor: pointer; color: rgb(255, 255, 255); font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0px; margin-right: 24px; display: flex; position: relative; top: 1px;">BOTH</div>
              </label></div>
            <div class="needsclick  kl-private-reset-css-Xuajs1" style="width: 100%; position: relative;"></div>
          </div>
        </div>
      </div>
    </div>
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 0px 6px; position: relative; flex: 1 0 0px;">
        <div class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-grow: 1; flex-direction: column; align-self: flex-end;"><input id="email_96773223" class="needsclick go1625513821 kl-private-reset-css-Xuajs1" type="email"
            autocomplete="email" name="email" tabindex="0" placeholder="EMAIL" aria-label="EMAIL" aria-invalid="false" options="[object Object]"
            style="box-sizing: border-box; border-radius: 0px; padding: 0px 0px 0px 16px; height: 40px; text-align: left; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0px; background-color: rgb(255, 255, 255); border: 1px solid rgb(0, 0, 0);">
          <div class="needsclick  kl-private-reset-css-Xuajs1" style="width: 100%; position: relative;"></div>
        </div>
      </div>
    </div>
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 10px 7px; position: relative; flex: 1 0 0px;"><button
          class="needsclick go952291206 kl-private-reset-css-Xuajs1" type="button" tabindex="0"
          style="background: rgb(250, 133, 189); border-radius: 0px; border-style: none; border-color: rgb(0, 0, 0); border-width: 0px; color: rgb(0, 0, 0); font-family: Arial, &quot;Helvetica Neue&quot;, Helvetica, sans-serif; font-size: 18px; font-weight: 700; letter-spacing: 0px; line-height: 1; white-space: normal; padding-top: 0px; padding-bottom: 0px; text-align: center; word-break: break-word; align-self: flex-end; cursor: pointer; height: 50px; width: 100%;">UNLOCK
          10% OFF</button></div>
    </div>
    <div data-testid="form-row" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; flex-direction: row; align-items: stretch; position: relative;">
      <div component="[object Object]" data-testid="form-component" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; justify-content: flex-start; padding: 10px 6px 0px; position: relative; flex: 1 0 0px;"><button
          class="needsclick go952291206 kl-private-reset-css-Xuajs1" type="button" tabindex="0"
          style="background: rgba(48, 59, 67, 0); border-radius: 2px; border-style: none; border-color: rgb(0, 0, 0); border-width: 0px; color: rgb(255, 255, 255); font-family: Helvetica, Arial, sans-serif; font-size: 13px; font-weight: 400; letter-spacing: 0px; line-height: 1; white-space: normal; padding-top: 0px; padding-bottom: 0px; text-align: center; word-break: break-word; align-self: flex-end; cursor: pointer; height: 50px; width: 100%;">NO
          THANKS</button></div>
    </div>
  </div><input type="submit" tabindex="-1" value="Submit" style="display: none;">
</form>

Text Content

Free shipping to Canada on all orders above CA$140.00



Skip to content
 * Instagram
 * TikTok

FREE US SHIPPING ON ORDERS $100+


BAD REWARDS
Country/Region
Canada (CAD $)
 * Canada (CAD $)

Search
 * Men's
 * Women's
 * Youth
 * Hats
 * New




Account Search Cart

 * Men's
    * FEATURED
       * Newest Drops
       * Spring Collection
       * Amateurs Collection
       * Clubhouse Collection
       * Best Sellers
   
    * TOPS
       * Polos
       * Quarterzips
       * T-Shirts
       * Sweatshirts
       * Vests
       * All Tops
   
    * BOTTOMS
       * Pants
       * Shorts
       * Sweatpants
       * All Bottoms
   
    * ACCESSORIES
       * Hats
       * Socks
       * Headcovers
       * Gloves
       * All Accessories

 * Women's
    * FEATURED
       * Newest Drops
       * Amateurs Collection
       * Best Sellers
       * Spring Collection
       * Matching Sets
   
    * TOPS
       * Polos
       * Quarterzips
       * Sweatshirts
       * Rompers
       * All Tops
   
    * DRESSES
       * Performance
       * Long Sleeve
       * Sleeveless
       * All Dresses
   
    * BOTTOMS
       * Pants
       * Sweatpants
       * Skorts
       * Shorts
       * All Bottoms
   
    * Accessories
       * Hats
       * Socks
       * Headcovers
       * Gloves
       * All Accessories

 * Youth
 * Hats
 * New

 * Men's
    * FEATURED
       * Newest Drops
       * Spring Collection
       * Amateurs Collection
       * Clubhouse Collection
       * Best Sellers
   
    * TOPS
       * Polos
       * Quarterzips
       * T-Shirts
       * Sweatshirts
       * Vests
       * All Tops
   
    * BOTTOMS
       * Pants
       * Shorts
       * Sweatpants
       * All Bottoms
   
    * ACCESSORIES
       * Hats
       * Socks
       * Headcovers
       * Gloves
       * All Accessories

 * Women's
    * FEATURED
       * Newest Drops
       * Amateurs Collection
       * Best Sellers
       * Spring Collection
       * Matching Sets
   
    * TOPS
       * Polos
       * Quarterzips
       * Sweatshirts
       * Rompers
       * All Tops
   
    * DRESSES
       * Performance
       * Long Sleeve
       * Sleeveless
       * All Dresses
   
    * BOTTOMS
       * Pants
       * Sweatpants
       * Skorts
       * Shorts
       * All Bottoms
   
    * Accessories
       * Hats
       * Socks
       * Headcovers
       * Gloves
       * All Accessories

 * Youth
 * Hats
 * New

BAD REWARDS
Country/Region
Canada (CAD $)
 * Canada (CAD $)

 * Instagram
 * TikTok


New drop


NO LIFEGUARD
ON DUTY

shop now

New drop


SPRING-READY STYLES

shop now

WELCOME TO TEAM BAD BIRDIE:


MICAH MORRIS

Shop Micah's Look


LEFT BEST SELLERS RIGHT

View all

Left Right Quick buy
Lily Lilac
Men's Polo
$130

Left Right Quick buy
Blueprint
Men's Polo
$130
BEST SELLER
Left Right Quick buy
Poetic Justice
Men's Polo
$130
BEST SELLER
Left Right Quick buy
Salt Shaker
Men's Polo
$130
BEST SELLER
Left Right Quick buy
Deserted
Men's Pique Polo
$130
BEST SELLER
Left Right Quick buy
Ridge Polo - Black
Men's Ridge Polo
$130

BEST SELLER
Left Right Quick buy
Double Down Skort
Women's Bottoms
$130

BEST SELLER
Left Right Quick buy
Sky Blue
Men's Pique Polo
$130
BEST SELLER
Left Right Quick buy
Azalea Polo
Men's Polo
$140
BEST SELLER
Left Right Quick buy
Block Party
Men's Polo
$130
‹›

View all



NEW MEN'S STYLES


NEW WOMEN'S STYLES


NEW HEADWEAR


LEFT SHOP HATS RIGHT

View all

Left Right Quick buy
Amateurs Twill Snapback
Hats
$70
BEST SELLER
Left Right Quick buy
Birdie Snapback - White
Hats
$63

BEST SELLER
Left Right Quick buy
Birdie Snapback - Black
Hats
$63

BEST SELLER
Left Right Quick buy
Sun Bucket Hat - White
Hats
$63

BEST SELLER
Left Right Quick buy
Midnight Camo Hat
Hats
$63

BEST SELLER
Left Right Quick buy
Birdie Snapback - Total Eclipse
Hats
$63

BEST SELLER
Left Right Quick buy
"Bad" Rope Golf Hat - Black
Hats
$60
+
BEST SELLER
Left Right Quick buy
"Bad" Rope Golf Hat - White
Hats
$60
+
BEST SELLER
Left Right Quick buy
Amateurs Twill Rope Hat
Hats
$70

BEST SELLER
Left Right Quick buy
Active Bad Hat
Hats
$63

BEST SELLER
Left Right Quick buy
Deserted Rope Hat
Hats
$63
BEST SELLER
Left Right Quick buy
"Bad" Rope Golf Hat - Dark Navy
Hats
$63
+
‹›

View all

OUR MISSION

We create disruptive golf apparel to move the sport forward into a more
innovative and inclusive space. The next generation of golf is here.


Exclusive access & more


NEVER MISS A DROP WITH THE BAD BIRDIE APP

Early access, app exclusive products, and special discounts. Only available at
the Bad Birdie app. We’ll see you there.

Download the app

5,300+ Reviews and counting
5,300+ Reviews and counting

> I have wore this out two times to the course and received compliments each
> time!! Classy and stylish!

— William P.

5,300+ Reviews and counting

> Perfect beach, golf, boating, brunch shirt and colors match great with blue,
> white, tan, black.

— Chad W.

5,300+ Reviews and counting

> Such a beautiful lavender mock neck—super comfortable! I wore it while golfing
> with some friends and received a lot of compliments. The color is just like
> the picture and the fabric is so soft.

— Yuri P.

5,300+ Reviews and counting

> The shirt fits great. Very comfortable to play golf in and stylish enough for
> the 19th hole.

— Denny M.

Previous Next


THE BIRDIE FAM

Stoked for spring golf ⛳️ and badbirdiegolf 2024 spring collection! • • • #golf
#badbirdiegolf #badbirdieambassador #spring2024 • 📸: alfredocampov
18 MARCH 2024
Green's In Reg
78.00
Flag Patch Rope Hat - Black
38.00
My heart🥹 📸 ashlee.driver badbirdiegolf
13 MARCH 2024
Deserted
78.00
Deserted Rope Hat
38.00
The Shallows Youth
55.00
PGA did not disappoint 🫶🏼 cognizantclassic badbirdiegolf #badbirdieambassador
04 MARCH 2024
Red Alert
58.50
"Bad" Rope Golf Hat - White
36.00
Double Down Skort
78.00
It’s almost time!!! New episode of Beers with Peers comes out later today! Stay
tuned to watch us have an amazing time with atlmde while drinking and playing
ou...
23 FEBRUARY 2024
Four Peaks Pique Polo
84.00
Four Peaks Patch Rope Hat
38.00
Blend Setter
78.00
Jauz | Veld 2023
14 FEBRUARY 2024
Black Bad Tee
38.00
Ain’t no party like a badbirdiegolf party!! 🐦 Thank you so much for partnering
with me for this event! If you missed out, give them a follow, turn on
notificat...
08 FEBRUARY 2024
Four Peaks Pique Polo
84.00
"Bad" Rope Golf Hat - Black
36.00
Daydreaming in badbirdiegolf ☁️⛳️🫶🏽 #badbirdieambassador
02 FEBRUARY 2024
Ivy League Dress
97.50
First of many ⛳️ Use Code “ANDRES15” at checkout for 15% off badbirdiegolf
#badbirdieambassador #tournament #badbirdie #golf
31 JANUARY 2024
Powell
78.00
Birdie Snapback - Black
38.00
Tossed Logo Driver - White
42.00
Tossed Logo Mallet - Black
38.00

Plus symbol


IN-STORE EXCLUSIVES

Find a Bad Birdie store near you

Store Locator

Free US shipping over $100
QUESTIONS?
45-Day Hassle-Free Returns
Shop
 * Men's
 * Women's
 * Hats
 * Youth
 * Best Sellers
 * Gift Cards
 * Rewards

More Info
 * Size Guides
 * Mobile App
 * Partnerships
 * Become an Ambassador
 * Breakfast Balls

About Bad Birdie
 * About Us
 * Our Stores
 * Rewards Program
 * High School Program
 * Giving Back
 * Careers

Newsletter

Never miss a drop and get 10% off your first order.

MEN'S
WOMEN'S
BOTH

SIGN UP
 * Contact Us
 * Privacy Policy
 * Terms of Service
 * Shipping
 * Returns & Exchanges
 * FAQs

© 2024 Bad Birdie.
Your cart
Close
Spend $100.00 more for free shipping!
Your order is eligible for free shipping!




Checkout
Close
Your cart is empty
Start shopping

front
67385884865 en

CAD



Enable accessibility
Accessibility
Close icon Close accessibility
Reset All Checked mark Statement

Language English French Spanish German Italian Portuguese Chinese Japanese
Arabic Hebrew Persian Adjust font size Checked mark Font Size

Screen Reader Checked mark Screen Reader Contrast Checked mark Contrast Inverted
Low Contrast High Contrast

Highlight Links Checked mark Highlight Links Change Cursor Checked mark Cursor
Text align Text left Text right Checked mark Text Align Text Left Text Center
Text Right

Saturation icon Checked mark Saturation Low Saturation High Saturation Grayscale

Line Height Checked mark Line Height

Letter Spacing Checked mark Letter Spacing

Stop Animations Checked mark Stop Animation Mute sounds Checked mark Mute Sounds
Hide Image Checked mark Hide Images
Adjust text colors
Checked mark

Reset
Adjust heading colors
Checked mark

Reset
Adjust background colors
Checked mark

Reset
Powered by CodeInspire ↗





Refer Friends

Close dialog 10

10% OFF
YOUR FIRST ORDER

Join our newsletter to unlock your 10% discount and gain exclusive access to
upcoming drops, restocks, collabs, and so much more.

Product Preferences
MEN'S
WOMEN'S
BOTH


UNLOCK 10% OFF
NO THANKS