body {
    background-color: black;
    margin: 0 auto;
    position: relative;
    height: 100%;
}

.square {
    width: 150px;
    height: 150px;
    background-color: rgb(62, 62, 62);
    border-radius: 10px;
    position: absolute;
    left: 50%;
    top: 50vh;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
}

.loader {
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 10px;
    background-color: #fff;
    transition: width 1s linear;
}

p {
    position: absolute;
    color: greenyellow;
    opacity: 0;
    transition: opacity 0.3s;
    transition-delay: 1s;
}

.square:hover .loader {
    width: 500px;
}

.square:hover p {
    opacity: 1;
}