mercredi 14 septembre 2022

CSS/JS? How to reflect a border-radius?

border-radius does not reflect

I try to code a little rock-paper-scissors based game and used the CSS/JS-code from this youtube tutorial to create neon buttons with a snake animation around the edges of the button.

https://youtu.be/3RRgVHd2TXQ

I then softened the edges of the buttons using "border-radius: 15px" - but the reflection has still sharp corners. How can I solve this?

Also the snake-animation to shine around the edges of the button does not work :( - would be great to know why!?

Try the game: https://bamory.com/?hotlink=FARTWAR (click link to start a game-session and invite another player with the session-code appearing on top of the screen)

CODE:

html{
  text-align: center;
  }

}

body.chapter2 {
    color: yellow;
}

input {
    margin: 10px;
    height: 50px;
    width: 90%;
}

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800;900&display=swap');
*
{
    margin: 0;
    padding: 0;
    font-family: 'Poppins', sans-serif;
    box-sizing: border-box;
}
body
{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #050801;
  flex-direction: column;
}
.button
{
  border-radius: 15px;
    position: relative;
    display: inline-block;
    padding: 10px 15px;
    margin: 10px 10px;
    color: #03e9f4;
    font-size: 24px;
    text-decoration: none;
    text-transform: uppercase;
    overflow: hidden;
    transition: 0.5s;
    letter-spacing: 4px;
    -webkit-box-reflect: below 1px linear-gradient(transparent, #0005);
  width: 25%;
}
.button:nth-child(1)
{
    filter: hue-rotate(290deg);
}
.button:nth-child(3)
{
    filter: hue-rotate(110deg);
}
.button:hover
{
    background: #03e9f4;
    color: #050801;
    box-shadow: 0 0 5px #03e9f4,
                0 0 25px #03e9f4,
                0 0 50px #03e9f4,
                0 0 200px #03e9f4;
}
.button span
{
    position: absolute;
    display: block;
}
.button span:nth-child(1)
{
    top: 0;
    left: 0;
    width: 25%;
    height: 2px;
    background: linear-gradient(90deg, transparent, #03e9f4);
    animation: animate1 1s linear infinite;
}
@keyframes animate1
{
    0%
    {
        left: -100%;
    }
    50%, 100%
    {
        left: 100%;
    }
}
.button span:nth-child(2)
{
    top: -100px;
    right: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(180deg, transparent, #03e9f4);
    animation: animate2 1s linear infinite;
    animation-delay: 0.25s;
}
@keyframes animate2
{
    0%
    {
        top: -100%;
    }
    50%, 100%
    {
        top: 100%;
    }
}
.button span:nth-child(3)
{
    bottom: 0;
    right: -100%;
    width: 100%;
    height: 2px;
    background: linear-gradient(270deg, transparent, #03e9f4);
    animation: animate3 1s linear infinite;
    animation-delay: 0.5s;
}
@keyframes animate3
{
    0%
    {
        right: -100%;
    }
    50%, 100%
    {
        right: 100%;
    }
}
.button span:nth-child(4)
{
    bottom: -100%;
    left: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(360deg, transparent, #03e9f4);
    animation: animate4 1s linear infinite;
    animation-delay: 0.75s;
}
@keyframes animate4
{
    0%
    {
        bottom: -100%;
    }
    50%, 100%
    {
        bottom: 100%;
    }
}

Thanks for your help! (it´s my first time using JS / stackoverflow - please forgive me if I inserted too much code or did other mistakes!)





Aucun commentaire:

Enregistrer un commentaire