.DropArea { .field { border: 2px dashed rgb(38 56 217 / 30%); border-radius: 16px; color: #2638d9; display: flex; align-items: center; justify-content: center; font-weight: 500; padding: 24px; transition: background-color 0.3s ease-in-out; cursor: pointer; overflow: hidden; position: relative; .text { position: relative; z-index: 1; } &.active, &:hover { background-color: rgba(#2638d9, 0.3); &::after { content: ''; top: 0; transform: translateX(100%); width: 100%; height: 100%; position: absolute; z-index: 0; animation: slide 1.8s infinite; background: linear-gradient( to right, rgba(#fff, 0) 0%, rgba(#fff, 0.8) 50%, rgb(128 186 232 / 0%) 99%, rgb(125 185 232 / 0%) 100% ); } } } .description { @include font-size(1.2rem); margin-top: 1.6rem; text-align: center; color: var(--secondary-color); } .error { @include font-size(1.4rem); color: var(--danger-color); margin-top: 1.6rem; text-align: center; padding: 1rem; } &.square { .field { @include font-size(1.4rem); flex-direction: column; padding: 0; width: 228px; height: 228px; text-align: center; } .description { margin-top: 8px; opacity: 0.3; color: var(--default-color); } } } @keyframes slide { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }