My current setup includes HTML in Pug and Vue code, functioning smoothly with dynamic arrow width adjustment.
.abc--step-bar: .abc--step-bar-color(:style="`width: ${progressBar.width}`")
.row
.col(v-for="(item, i) in progressItems")
.abc--step-item(:class="{ 'is__done': progressBar.index > i, 'is__current': progressBar.index === i }")
span.abc--step-dot
The accompanying SCSS for styling is as follows:
.abc--step-bar {
position: absolute;
top: 0;
left: 16.7%;
right: 16.7%;
height: 3px;
background: #e8e8e8;
}
.abc--step-bar-color {
background: #28A745;
position: absolute;
top: 0; bottom: 0; left: 0;
&:after {
color: #28A745;
content: url("../../assets/images/arrow.png");;
display: inline-block !important;
width: 0;
height: 0;
position: absolute;
right: 6px;
top: -6px;
}
}
.abc--step-dot {
display: inline-block;
width: 15px;
border-radius: 50%;
height: 15px;
background: #e8e8e8;
border: 5px solid #e8e8e8;
position: relative;
top: -7px;
.is__done &,
.is__current & {
border: 5px solid #28A745;
//background: #28A745;
}
}
An external image is utilized for the arrowhead:
https://i.sstatic.net/8HEwO.png
I am seeking a method in Vuejs to hide the arrowhead based on specific logic, like when progressBar.index equals 1 and the arrow is an after pseudo-element.
https://i.sstatic.net/CHKp7.png
To demonstrate this concept, I have replicated it in a CodePen: