Shepherd.js will insert raw, unstyled content into your page if a step's attachTo.element isn't present. Beyond the disappointing user experience, this also makes tours brittle because they have to be so tightly coupled with whatever particular dynamic elements are visible to a user.
Shepherd.js will insert raw, unstyled content into your page if a step's
attachTo.element
isn't present. Beyond the disappointing user experience, this also makes tours brittle because they have to be so tightly coupled with whatever particular dynamic elements are visible to a user.There is an undocumented
showOn
option in Shepherd (usage example) that will let us check first whether the element is present. If not, we can skip to the next step.I propose we make this behavior Abraham's default.