Sketch Glowing Button using HTML/CSS/JS (Source Code)

Today’s this article will be based on making a Sketch Glowing Button using HTML/CSS/JS we can call it.

Namaste ????

Today’s this article will be based on making a Sketch Glowing Button using HTML/CSS/JS we can call it.

Tooltips Smooth Animation with HTML CSS Demo

https://youtu.be/wt1NZICtKuQ

Tooltips Smooth Animation with HTML CSS Source Code

Below code should be put between the <body> Your Code Here </body> tags.

.html file code

<!-- Created By Codinghindi.in --->
<button class="sketch-button">Coding Hindi</button>

Put this code inside <style> Your Code Here <style>tags or into style.css file

.css file code

/* --- Created By Codinghindi.in --*/

.sketch-button {
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  outline: none;
  border: none;
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  background-image: linear-gradient(90deg, #fcecfe, #fbf6e7, #e6fcf5);
  border-radius: 11px;
  padding: 12px 20px;
  position: relative;
  line-height: 24px;
  color: #14387e;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02), 0 4px 16px rgba(0, 0, 0, 0.02), 0 4px 24px rgba(0, 0, 0, 0.02);
}
.sketch-button.start svg {
  -webkit-animation: stroke 1s linear;
          animation: stroke 1s linear;
}
.sketch-button .lines {
  position: absolute;
  inset: 0;
  mix-blend-mode: hard-light;
  pointer-events: none;
  z-index: 1;
}
.sketch-button .lines > div {
  position: absolute;
  inset: 0;
}
.sketch-button .lines > div:last-child {
  transform: rotate(180deg);
}
.sketch-button .lines > div svg {
  display: block;
  position: absolute;
  inset: 0;
  overflow: visible;
  fill: none;
  stroke-width: 2;
  stroke: #c9e9ff;
  width: 100%;
  height: 100%;
  stroke-dasharray: 2 10;
  stroke-dashoffset: 14;
  opacity: 0;
}
.sketch-button .lines > div svg:nth-child(1) {
  stroke: #f8fcff;
}
.sketch-button .lines > div svg:nth-child(2) {
  stroke-width: 6px;
  filter: blur(20px);
}
.sketch-button .lines > div svg:nth-child(3) {
  stroke-width: 5px;
  filter: blur(6px);
}
.sketch-button .lines > div svg:nth-child(4) {
  stroke-width: 10px;
  filter: blur(56px);
}

@-webkit-keyframes stroke {
  30%, 55% {
    opacity: 1;
  }
  100% {
    stroke-dashoffset: 4;
    opacity: 0;
  }
}

@keyframes stroke {
  30%, 55% {
    opacity: 1;
  }
  100% {
    stroke-dashoffset: 4;
    opacity: 0;
  }
}
html {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
}

* {
  box-sizing: inherit;
}
*:before, *:after {
  box-sizing: inherit;
}

body {
  min-height: 100vh;
  display: flex;
  font-family: "Inter", Arial;
  justify-content: center;
  align-items: center;
  background: radial-gradient(circle at 50% 0%, #3378ff 15%, #4178ff 75%);
}
body:before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("https://assets.codepen.io/165585/noise.png");
  background-size: cover;
  -webkit-mask-image: radial-gradient(circle at 50% 100%, transparent 50%, black);
  mask-image: radial-gradient(circle at 50% 100%, rgba(0, 0, 0, 0.3) 10%, black);
  opacity: 0.25;
}
body .twitter {
  position: fixed;
  display: block;
  right: 12px;
  bottom: 12px;
}
body .twitter svg {
  width: 32px;
  height: 32px;
  fill: #fff;
}

Put this code inside <body> <script>Your Code Here  <script><body>tags .

.js File

const createSVG = (width, height, radius) => {
  const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");

  const rectangle = document.createElementNS(
    "http://www.w3.org/2000/svg",
    "rect"
  );

  svg.setAttributeNS(
    "http://www.w3.org/2000/svg",
    "viewBox",
    `0 0 ${width} ${height}`
  );

  rectangle.setAttribute("x", "0");
  rectangle.setAttribute("y", "0");
  rectangle.setAttribute("width", "100%");
  rectangle.setAttribute("height", "100%");
  rectangle.setAttribute("rx", `${radius}`);
  rectangle.setAttribute("ry", `${radius}`);
  rectangle.setAttribute("pathLength", "10");

  svg.appendChild(rectangle);

  return svg;
};

document.querySelectorAll(".sketch-button").forEach((button) => {
  const style = getComputedStyle(button);

  const lines = document.createElement("div");

  lines.classList.add("lines");

  const groupTop = document.createElement("div");
  const groupBottom = document.createElement("div");

  const svg = createSVG(
    button.offsetWidth,
    button.offsetHeight,
    parseInt(style.borderRadius, 10)
  );

  groupTop.appendChild(svg);
  groupTop.appendChild(svg.cloneNode(true));
  groupTop.appendChild(svg.cloneNode(true));
  groupTop.appendChild(svg.cloneNode(true));

  groupBottom.appendChild(svg.cloneNode(true));
  groupBottom.appendChild(svg.cloneNode(true));
  groupBottom.appendChild(svg.cloneNode(true));
  groupBottom.appendChild(svg.cloneNode(true));

  lines.appendChild(groupTop);
  lines.appendChild(groupBottom);

  button.appendChild(lines);

  button.addEventListener("pointerenter", () => {
    button.classList.add("start");
  });

  svg.addEventListener("animationend", () => {
    button.classList.remove("start");
  });
});

Tooltips Smooth Animation with HTML CSS Source Code Download

Thank You!

Share your love
Neeraj Lamba
Neeraj Lamba
Articles: 62

Leave a Reply

Your email address will not be published. Required fields are marked *

I'm not a robot *Time limit exceeded. Please complete the captcha once again.