Eco-Friendly Tags

At St. Louis Tag, we go the extra mile to make our products more sustainable. We offer environmentally safe and recyclable hang tags using 100% recycled paper with 30% post-consumer waste, soy-based ink, cotton/jute string and 100% vegetable adhesive.

As mentioned, our eco-friendly hang tags are printed with vegetable-based ink, particularly soy. Soy, a biodegradable and renewable resource, is an environmentally friendly ink base made from soybeans. When compared to traditional oil- and petroleum-based inks, which contain ozone-damaging concentrates and emit volatile organic compounds (VOC), soy is an excellent alternative. Not only are soy-based inks great for the environment and your eco-friendly business plan, but they deliver brighter and more vibrant colors that oil- and petroleum-based inks often cannot produce. Not to mention, they are considerably more cost effective than oil-based inks.

In addition, eco-friendly hang tags present a great opportunity to promote your companys green agenda. Often, purchasing decisions are established based on more than just price and quality. Today, we are seeing that more and more consumers prefer to purchase items from companies that demonstrate they care about the environment. So, use your hang tags to spread the word about your companys eco-friendly business efforts.

St. Louis Tag can print hang tags for your business that are not only economically friendly, but are high quality, visually appealing and affordable. Browse through some of our examples featured above orContact Ustoday for more information or a free quote.

Join our mailing list to receive the latest promotions and news from your favorite custom printed hang tag supplier.

Before submitting this request, please include as much information as possible about your tag project needs in the above Message box.

Before submitting this request, please include as much information as possible about your tag project needs in the above \Message\ box.,type:textimg,row:5,position:1,size:0,height:0,is_required:0,is_readonly:0,default_value:

Before submitting this request, please include as much information as possible about your tag project needs in the above \Message\ box.,validation:,options:[],id:40039,label:Requesting Information About,type:text,row:6,position:0,size:40,height:0,is_required:0,is_readonly:0,default_value:,validation:,options:[]]; $(document).ready(function () if ($(input[class=datePicker]).length) $(input[class=datePicker]).datepicker( mandatory: true, buttonImage: /empoweren/skins/original/images/btnDatePicker.gif, buttonImageOnly: true, showOn: both, buttonText: Choose a date ); $(form-sub-ant-spm-84130, form-sub-ant-spm-2-84130).hide(); var answer = $(form-sub-ant-spm-84130 inputant-spm-a).val(); $(form-sub-ant-spm-84130 inputant-spm-q).val(answer); ); function trim(str) return str.replace(/^\s+\s+$/g,); function isNumber(number) return(number.replace(/[^0-9]/g, )); function isNumber1(number) return(number.replace(/[^0-9,.]/g, )); function isNumber2(number) return(number.replace(/[^0-9.]/g, )); function checkNumber(name) $(input[name=+name+]).val(isNumber1($(input[name=+name+]).val())); function isPhone(phone) return(phone.match(/^[\(]?(\d0,3)[\)]?[\s]?[\-]?(\d3)[\s]?[\-]?(\d4)$/)); function checkInternationalPhone(strPhone) var digits = 0123456789; // non-digit characters which are allowed in phone numbers var phoneNumberDelimiters = ()-. ; // characters which are allowed in international phone numbers // (a leading + is OK) var validWorldPhoneChars = phoneNumberDelimiters + +; // Minimum no of digits in an international phone no. var minDigitsInIPhoneNumber = 10; function isInteger(s) var i; for (i = 0; i9))) return false; // All characters are numbers. return true; function trim(s) var i; var returnString = ; // Search through strings characters one by one. // If character is not a whitespace, append to returnString. for (i = 0; i1) return false if(strPhone.indexOf(-)!=-1)bracket=bracket+1 if(strPhone.indexOf(()!=-1 && strPhone.indexOf(()>

bracket)return false var brchr=strPhone.indexOf(() if(strPhone.indexOf(()!=-1 && (strPhone.charAt(brchr+3)!=) && strPhone.charAt(brchr+4)!=)))return false if(strPhone.indexOf(()==-1 && strPhone.indexOf())!=-1)return false s=stripCharsInBag(strPhone,validWorldPhoneChars); return (isInteger(s) && s.length>

= minDigitsInIPhoneNumber); function isEmail(str) return /^((([a-z]\d[!\$%&\*\+\-\/=\?\^_`\~][\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]\d[!\$%&\*\+\-\/=\?\^_`\~][\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)((\x22)((((\x20\x09)*(\x0d\x0a))?(\x20\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]\x21[\x23-\x5b][\x5d-\x7e][\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])(\\([\x01-\x09\x0b\x0c\x0d-\x7f][\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20\x09)*(\x0d\x0a))?(\x20\x09)+)?(\x22)))@((([a-z]\d[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])(([a-z]\d[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]\d-\._~[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]\d[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z][\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])(([a-z][\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]\d-\._~[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z][\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(str); function removeErrorBox() if (document.getElementById(errors)) var removeDiv = document.getElementById(errors); removeDiv.parentNode.removeChild(removeDiv); function addErrorBox(id, errors) removeErrorBox(); $(+id).before(+errors+); function validate_submit3287() var valid = true; var errors = ; var numPageBreaks = 0; pageErrors = ; removeErrorBox(); jQuery.each(jsonElements3287, function(i, val) // set variable for only the items on the page if multiple pages if (val.type == page_break) numPageBreaks++; if (numPageBreaks == currentPage3287) pageErrors = errors; if (val.is_required != 0 && val.validation == ) switch (val.type) case text: if (trim($(input[name=+val.id+]).val()) == ) if (valid == false) errors +=

; errors += Please complete field: bel+; valid = false; break; case textarea: if (trim($(textarea[name=+val.id+]).val()) == ) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; case radio: if ($(input[name=+val.id+]:checked).val() == undefined) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; case checkbox: if ($(input[name^=+val.id+-]:checked).length

<val.is_required) +=”

; errors += Please complete field: +val.label+; valid = false; break; case select: if (val.is_required == 2 && $(select[name=+val.id+] option:selected).index() == 0) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; case digital_signature: if (trim($(input[name=+val.id+-dsSig]).val()) == trim($(input[name=+val.id+-dsDate]).val()) == ) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; case Eselect: if (val.is_required == 2 && $(select[name=+val.id+-ecomSelect] option:selected).index() == 0) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; case simple_name: if (trim($(input[name=+val.id+-first]).val()) == trim($(input[name=+val.id+-last]).val()) == ) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; case address: if (trim($(input[name=+val.id+-street]).val()) == trim($(input[name=+val.id+-city]).val()) == trim($(input[name=+val.id+-state]).val()) == isNumber($(input[name=+val.id+-zip]).val()).length != 5) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; if (checkInternationalPhone($(input[name=+val.id+-phone]).val()) === false) if (valid == false) errors +=

; errors += Please enter a valid phone number; valid = false; if (isEmail($(input[name=+val.id+-email]).val()) == false) if (valid == false) errors +=

; errors += Please enter a valid e-mail address; valid = false; break; case date_picker: if (trim($(input[name=+val.id+]).val()) == ) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; case email: if (isEmail($(input[name=+val.id+]).val()) == false) if (valid == false) errors +=

; errors += Please enter a valid e-mail address; valid = false; break; case file: if (uploader3287.files.length == 0) if (valid == false) errors +=

; errors += Please complete field: +val.label+; valid = false; break; if (val.validation != && (val.is_required == 1 $(input[name=+val.id+]).val() != )) switch (val.validation) case phone: if (checkInternationalPhone($(input[name=+val.id+]).val()) === false) if (valid == false) errors +=

; errors += Please enter a valid phone number; valid = false; break; case email: if (isEmail($(input[name=+val.id+]).val()) == false) if (valid == false) errors +=

; errors += Please enter a valid e-mail address; valid = false; break; ); /* if (typeof customFormValidate3287 == function) var customError = customFormValidate3287(); if (customError != ) if (valid == false) errors +=

; errors += customError; valid = false; */ if (valid == false) addErrorBox(submit3287, errors); // if going through pages, do not change submit until actually submitting else if (pageNo3287 – currentPage3287>

0) valid = false; else // disable submit button so you cant duplicate submits $(submit3287).prop(disabled, true); $(submit3287).val(Please Wait…); return valid; element // include only element nodes if(divEl.nodeType !== 1) continue; linkEl = divEl.children[0]; //element size = linkEl.getAttribute(data-size).split(x); // create slide object item = src: linkEl.getAttribute(href), w: parseInt(size[0], 10), h: parseInt(size[1], 10) ; if(divEl.children.length == 1) //title content item.title = divEl.children[0].getAttribute(title); if(linkEl.children.length>

0) //thumbnail element, retrieving thumbnail url item.msrc= linkEl.children[0].getAttribute(src); item.el = divEl; // save link to element for getThumbBoundsFn items.push(item); return items; ; // find nearest parent element var closest = function closest(el, fn) return el && ( fn(el) ? el : closest(el.parentNode, fn) ); ; // triggers when user clicks on thumbnail var onThumbnailsClick = function(e) e = e window.event; e.preventDefault ? e.preventDefault() : e.returnValue = false; var eTarget = e.target e.srcElement; // find root element of slide var clickedListItem = closest(eTarget, function(el) return (el.tagName && el.tagName.toUpperCase() === DIV); ); if(!clickedListItem) return; // find index of clicked item by looping through all child nodes // alternatively, you may define index via data- attribute var clickedGallery = clickedListItem.parentNode, childNodes = clickedListItem.parentNode.childNodes, numChildNodes = childNodes.length, nodeIndex = 0, index; for (var i = 0; i= 0) // open PhotoSwipe if valid index found openPhotoSwipe( index, clickedGallery ); return false; ; // parse picture index and gallery index from URL (&pid=1&gid=2) var photoswipeParseHash = function() var hash = window.location.hash.substring(1), params = ; if(hash.lengthgetThumbBoundsFn section of documentation for more info var thumbnail = items[index].el.getElementsByTagName(img)[0], // find thumbnail pageYScroll = window.pageYOffset document.documentElement.scrollTop, rect = thumbnail.getBoundingClientRect(); return x:rect.left, + pageYScroll, w:rect.width; , showHideOpacity:true, hideAnimationDuration:200, showAnimationDuration:150, bgOpacity:.9, closeOnScroll:false ; if(disableAnimation) options.showAnimationDuration = 0; // Pass data to PhotoSwipe and initialize it gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options); gallery.init(); ; // loop through all gallery elements and bind events var galleryElements = document.querySelectorAll( gallerySelector ); for(var i = 0, l = galleryElements.length; i0 && hashData.gid>

0) openPhotoSwipe( hashData.pid – 1 , galleryElements[ hashData.gid – 1 ], true ); ; $(document).ready(function () initPhotoSwipeFromDOM(.lightBoxImgs); );>

>

+ test_0_2 + – + test_0_3 + , + test_0_4 +

+ test_1_2 + – + test_1_3 + , + test_1_4 +

+ test_2_2 + – + test_2_3 + , + test_2_4 +

+ test_3_2 + – + test_3_3 + , + test_3_4 +

; document.getElementById(list1).innerHTML=firsttest0; document.getElementById(list2).innerHTML=firsttest1; document.getElementById(list3).innerHTML=firsttest2; document.getElementById(list4).innerHTML=firsttest3; var $listItems = $(site_slideshow_inner_text).children(li), fadeDuration = 300, interval; $listItems.not(:first).hide(); function showSlide(elm) $listItems.filter(:visible).fadeOut(fadeDuration, function () elm.fadeIn(fadeDuration); ); function autoSlide() interval = setInterval(function () showSlide( getNextElement(next)); , 1000); $(prev, next).on(click, function () stopAutoSlide(); showSlide(getNextElement(this.id)); ); function getNextElement(direction) var $next = $listItems.filter(:visible)[direction](), fallBack = (direction === prev ? last : first); return !$next.length ? $listItems[fallBack]() : $next; function stopAutoSlide() $listItems.stop(true, true, true); clearInterval(interval); //autoSlide(); );