{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
A small upgrade that adds a bold pop of color to your ride. This set of 2 red tire valve stem caps helps protect your tire valves from dirt, dust, and moisture while giving your wheels a clean, distinct look.
Made for everyday use, these bicycle tire valve caps are simple to install and built for repeated handling. The lightweight, break-resistant ABS plastic construction offers dependable everyday durability, while the bright red finish adds a noticeable accent.
Set of 2 replacement valve stem caps
Fits standard tire valves
Easy to install and remove
Durable ABS construction for daily use
Helps protect valve stems from dirt and moisture
Great for cyclists and anyone looking for a simple, functional valve cap replacement with a bold red finish.
⚠️ WARNING (California Proposition 65):
This product may contain chemicals known to the State of California to cause cancer, birth defects, or other reproductive harm.
For more information, please visit www.P65Warnings.ca.gov.
Product FAQs
What type of valves do these bicycle tire valve caps fit?
▼
These bicycle tire valve caps are designed to fit both Presta and Schrader valves, making them perfect for any bike you own.
Are these valve caps durable?
▼
Yes, these valve caps are crafted with durable plastic to ensure your tires stay securely in place.
How many valve caps are included in a set?
▼
Each set includes two valve caps.
Do these valve caps add any style to my bike?
▼
Yes, these valve caps have a stylish design that adds a bit of flair to your ride.
Are these valve caps easy to install?
▼
Yes, these valve caps are easy to install and will help you stay on the road no matter the terrain.
Red Cup Living has nailed it with these valve caps! Easy to put on, and they keep my tires safe. I love the eco-friendly aspect too.
C
Craig Young
Quality Protection
Top-notch tire valve caps that not only look sleek but also provide tire protection. Easy to put on, and I love that they're free from harmful chemicals.
K
Kimberly Watson
Caps that Care!
I love my redcupliving valve caps. They not only keep my tires safe but also the environment with their BPA and Phthalates free materials. Super happy with this purchase.
a
antonio cook
Total Tire Protection
These valve caps do more than just look great �?? they shield my tires from dust and debris, extending their lifespan. Practical and stylish!
C
Customer
Five Stars
Simple to put on, and I love that they're conscious of the environment by being BPA and phthalates-free. My tires feel pampered and protected, all thanks to these little wonders!
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}
{#- Deliberately NOT the shared .variants-popup class: assets/global.js
binds a delegated click on ".variants-popup [type=radio]" that
auto-clicks any ".button-ATC" in the same form — harmless
everywhere else today (nothing else pairs an internal submit
button with that class), but would instantly add-to-cart the
moment a pill is tapped here, before the shopper can review
their choice. Its own class below keeps the reused
variant-matching/price/button-state jQuery (which targets
[data-quickshop] and [data-btn-addtocart] directly) intact. -#}