Files
shopit-front/src/app/shared/components/stepper/stepper.component.scss

112 lines
2.3 KiB
SCSS

.stepper-container {
display: flex;
flex-direction: column;
width: 100%;
}
/* ─── Header (indicator bar) ─── */
.stepper-header {
display: flex;
align-items: flex-start;
justify-content: center;
gap: 0;
margin-bottom: 2rem;
position: relative;
&__item {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
position: relative;
}
&__line {
position: absolute;
top: 19px; // center of the 40px circle
right: 50%;
left: -50%;
height: 2px;
background-color: var(--bs-gray-300);
transition: background-color 0.35s ease;
z-index: 0;
&.is-completed {
background-color: var(--bs-primary);
}
}
&__circle {
position: relative;
z-index: 1;
width: 40px;
height: 40px;
border-radius: 50%;
border: 2px solid var(--bs-gray-300);
background-color: var(--bs-gray-100);
color: var(--bs-gray-500);
font-weight: 700;
font-size: 0.875rem;
display: flex;
align-items: center;
justify-content: center;
cursor: default;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
outline: none;
&:not(:disabled) {
cursor: pointer;
&:hover {
border-color: var(--bs-primary);
color: var(--bs-primary);
}
}
}
&__label {
margin-top: 8px;
font-size: 0.8125rem;
font-weight: 500;
color: var(--bs-gray-500);
text-align: center;
transition: color 0.3s ease;
max-width: 120px;
line-height: 1.3;
}
// Active step
&__item.is-active {
.stepper-header__circle {
background-color: var(--bs-primary);
border-color: var(--bs-primary);
color: white;
box-shadow: 0 4px 12px rgba(var(--bs-primary-rgb), 0.35);
}
.stepper-header__label {
color: var(--bs-primary);
font-weight: 600;
}
}
// Completed step
&__item.is-completed {
.stepper-header__circle {
background-color: var(--bs-primary);
border-color: var(--bs-primary);
color: white;
}
.stepper-header__label {
color: var(--bs-body-color);
}
}
}
/* ─── Body (content area) ─── */
.stepper-body {
// Hide all step wrappers visually — step.component.html
// controls visibility with *ngIf on the inner content
}