@use '../styles/variables' as *; .stepper { display: flex; padding: 24px; &.horizontal { flex-direction: row; align-items: flex-start; } &.vertical { flex-direction: column; } &.alternativeLabel { .step { flex-direction: column; align-items: center; text-align: center; } .stepLabels { margin-left: 0; margin-top: 8px; } } } .step { display: flex; align-items: center; flex-shrink: 0; &.clickable { cursor: pointer; &:hover .stepIcon { background-color: var(--primary-light, #42a5f5); } } &.error { .stepLabel { color: var(--error-main, #d32f2f); } } } .stepContent { display: flex; align-items: center; } .stepIcon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background-color: var(--text-disabled, rgba(0, 0, 0, 0.38)); color: #fff; font-size: 0.875rem; font-weight: 500; flex-shrink: 0; transition: background-color 0.2s ease; &.active { background-color: var(--primary-main, #1976d2); } &.completed { background-color: var(--primary-main, #1976d2); } &.error { background-color: var(--error-main, #d32f2f); } } .stepLabels { margin-left: 12px; display: flex; flex-direction: column; } .stepLabel { font-size: 0.875rem; font-weight: 500; color: var(--text-primary, rgba(0, 0, 0, 0.87)); line-height: 1.4; .step.completed & { color: var(--text-primary, rgba(0, 0, 0, 0.87)); } .step:not(.active):not(.completed) & { color: var(--text-secondary, rgba(0, 0, 0, 0.6)); } } .optional { display: block; font-size: 0.75rem; font-weight: 400; color: var(--text-secondary, rgba(0, 0, 0, 0.6)); margin-top: 2px; } .stepDescription { font-size: 0.75rem; color: var(--text-secondary, rgba(0, 0, 0, 0.6)); margin-top: 4px; } .connector { display: flex; align-items: center; flex: 1; &.horizontal { min-width: 24px; padding: 0 8px; .connectorLine { height: 1px; width: 100%; } } &.vertical { min-height: 24px; padding: 8px 0; margin-left: 18px; .connectorLine { width: 1px; height: 100%; min-height: 24px; } } } .connectorLine { background-color: var(--divider, rgba(0, 0, 0, 0.12)); transition: background-color 0.2s ease; .connector.completed & { background-color: var(--primary-main, #1976d2); } } // Dark mode :global(.dark) { .stepIcon { background-color: var(--text-disabled-dark, rgba(255, 255, 255, 0.38)); &.active, &.completed { background-color: var(--primary-light, #90caf9); } &.error { background-color: var(--error-light, #f44336); } } .stepLabel { color: var(--text-primary-dark, #fff); .step:not(.active):not(.completed) & { color: var(--text-secondary-dark, rgba(255, 255, 255, 0.7)); } } .optional, .stepDescription { color: var(--text-secondary-dark, rgba(255, 255, 255, 0.7)); } .connectorLine { background-color: var(--divider-dark, rgba(255, 255, 255, 0.12)); .connector.completed & { background-color: var(--primary-light, #90caf9); } } }