/** * Materialize Stepper - A little plugin that implements a stepper to Materializecss framework. * @version v3.1.0 * @author Igor Marcossi (Kinark) . * @link https://github.com/Kinark/Materialize-stepper * * Licensed under the MIT License (https://github.com/Kinark/Materialize-stepper/blob/master/LICENSE). */ .card-content ul.stepper { margin: 1em -24px; padding: 0 24px; } @media only screen and (min-width: 993px) { .card-content ul.stepper.horizontal { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; } .card-content ul.stepper.horizontal:first-child { margin-top: -24px; } .card-content ul.stepper.horizontal .step.step-content { padding-left: 40px; padding-right: 40px; } .card-content ul.stepper.horizontal .step.step-content .step-actions { padding-left: 40px; padding-right: 40px; } } ul.stepper { counter-reset: section; overflow-y: auto; overflow-x: hidden; } ul.stepper .wait-feedback { left: 0; right: 0; top: 0; z-index: 2; position: absolute; width: 100%; height: 100%; text-align: center; display: flex; justify-content: center; align-items: center; } ul.stepper .step { position: relative; transition: height 400ms cubic-bezier(0.4, 0, 0.2, 1), padding-bottom 400ms cubic-bezier(0.4, 0, 0.2, 1); } ul.stepper .step .step-title { margin: 0 -24px; cursor: pointer; padding: 15.5px 44px 24px 64px; display: block; } ul.stepper .step .step-title:hover { background-color: rgba(0, 0, 0, 0.06); } ul.stepper .step .step-title::after { content: attr(data-step-label); display: block; position: absolute; font-size: 12.8px; font-size: 0.8rem; color: #424242; font-weight: 400; } ul.stepper .step .step-content { position: relative; display: none; height: 0; transition: height 400ms cubic-bezier(0.4, 0, 0.2, 1); width: inherit; overflow: visible; margin-left: 41px; margin-right: 24px; } ul.stepper .step .step-content .step-actions { padding-top: 16px; padding-bottom: 4px; display: flex; justify-content: flex-start; } ul.stepper .step .step-content .step-actions .btn:not(:last-child), ul.stepper .step .step-content .step-actions .btn-flat:not(:last-child), ul.stepper .step .step-content .step-actions .btn-large:not(:last-child) { margin-right: 5px; } ul.stepper .step .step-content .row { margin-bottom: 7px; } ul.stepper .step::before { position: absolute; counter-increment: section; content: counter(section); height: 26px; width: 26px; color: white; background-color: #B2B2B2; border-radius: 50%; text-align: center; line-height: 26px; font-weight: 400; transition: background-color 400ms cubic-bezier(0.4, 0, 0.2, 1); font-size: 14px; left: 1px; top: 13px; } ul.stepper .step.active .step-title { font-weight: 500; } ul.stepper .step.active .step-content { height: auto; display: block; } ul.stepper .step.active::before, ul.stepper .step.done::before { background-color: #2196f3; } ul.stepper .step.done::before { content: '\e5ca'; font-size: 16px; font-family: 'Material Icons'; } ul.stepper .step.wrong::before { content: '\e001'; font-size: 24px; font-family: 'Material Icons'; background-color: red; } ul.stepper .step.feedbacking .step-content > *:not(.wait-feedback) { opacity: 0.1; } ul.stepper .step:not(:last-of-type)::after { content: ''; position: absolute; top: 52px; left: 13.5px; width: 1px; height: 40%; height: calc(100% - 52px); background-color: rgba(0, 0, 0, 0.1); transition: height 400ms cubic-bezier(0.4, 0, 0.2, 1); } ul.stepper .step:not(:last-of-type).active { padding-bottom: 36px; } ul.stepper > li:not(:last-of-type) { padding-bottom: 10px; } @media only screen and (min-width: 993px) { ul.stepper.horizontal { position: relative; display: flex; justify-content: space-between; min-height: 458px; overflow: hidden; } ul.stepper.horizontal::before { content: ''; background-color: transparent; width: 100%; min-height: 84px; box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); position: absolute; left: 0; } ul.stepper.horizontal .step { position: static; padding: 0 !important; width: 100%; display: flex; align-items: center; height: 84px; } ul.stepper.horizontal .step::before { content: none; } ul.stepper.horizontal .step:last-of-type { width: auto !important; } ul.stepper.horizontal .step:not(:last-of-type)::after, ul.stepper.horizontal .step.active:not(:last-of-type)::after { content: ''; position: static; display: inline-block; width: 100%; height: 1px; } ul.stepper.horizontal .step .step-title { line-height: 84px; height: 84px; margin: 0; padding: 0 25px 0 65px; display: inline-block; max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; } ul.stepper.horizontal .step .step-title::before { position: absolute; counter-increment: section; content: counter(section); height: 26px; width: 26px; color: white; background-color: #B2B2B2; border-radius: 50%; text-align: center; line-height: 26px; font-weight: 400; transition: background-color 400ms cubic-bezier(0.4, 0, 0.2, 1); font-size: 14px; left: 1px; top: 28.5px; left: 19px; } ul.stepper.horizontal .step .step-title::after { top: 15px; } ul.stepper.horizontal .step.active ~ .step .step-content { left: 100%; } ul.stepper.horizontal .step.active .step-content { left: 0 !important; } ul.stepper.horizontal .step.active .step-title::before, ul.stepper.horizontal .step.done .step-title::before { background-color: #2196f3; } ul.stepper.horizontal .step.done .step-title::before { content: '\e5ca'; font-size: 16px; font-family: 'Material Icons'; } ul.stepper.horizontal .step.wrong .step-title::before { content: '\e001'; font-size: 24px; font-family: 'Material Icons'; background-color: red; } ul.stepper.horizontal .step .step-content { position: absolute; height: calc(100% - 84px); top: 84px; display: block; left: -100%; width: 100%; overflow-y: auto; overflow-x: hidden; margin: 0; padding: 20px 20px 76px 20px; transition: left 400ms cubic-bezier(0.4, 0, 0.2, 1); } ul.stepper.horizontal .step .step-content .step-actions { position: absolute; bottom: 0; left: 0; width: 100%; padding: 20px; background-color: transparent; flex-direction: row-reverse; } ul.stepper.horizontal .step .step-content .step-actions .btn:not(:last-child), ul.stepper.horizontal .step .step-content .step-actions .btn-flat:not(:last-child), ul.stepper.horizontal .step .step-content .step-actions .btn-large:not(:last-child) { margin-left: 5px; margin-right: 0; } }