.tap-target-wrapper { width: 800px; height: 800px; position: fixed; z-index: 1000; visibility: hidden; transition: visibility 0s .3s; } .tap-target-wrapper.open { visibility: visible; transition: visibility 0s; .tap-target { transform: scale(1); opacity: .95; transition: transform .3s cubic-bezier(.42,0,.58,1), opacity .3s cubic-bezier(.42,0,.58,1); } .tap-target-wave::before { transform: scale(1); } .tap-target-wave::after { visibility: visible; animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite; transition: opacity .3s, transform .3s, visibility 0s 1s; } } .tap-target { position: absolute; font-size: 1rem; border-radius: 50%; background-color: $primary-color; box-shadow: 0 20px 20px 0 rgba(0,0,0,0.14), 0 10px 50px 0 rgba(0,0,0,0.12), 0 30px 10px -20px rgba(0,0,0,0.2); width: 100%; height: 100%; opacity: 0; transform: scale(0); transition: transform .3s cubic-bezier(.42,0,.58,1), opacity .3s cubic-bezier(.42,0,.58,1); } .tap-target-content { position: relative; display: table-cell; } .tap-target-wave { &::before, &::after { content: ''; display: block; position: absolute; width: 100%; height: 100%; border-radius: 50%; background-color: #ffffff; } &::before { transform: scale(0); transition: transform .3s; } &::after { visibility: hidden; transition: opacity .3s, transform .3s, visibility 0s; z-index: -1; } position: absolute; border-radius: 50%; z-index: 10001; } .tap-target-origin { &:not(.btn), &:not(.btn):hover { background: none; } top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 10002; position: absolute !important; } @media only screen and (max-width: 600px) { .tap-target, .tap-target-wrapper { width: 600px; height: 600px; } }