project preview
Folder Structure:
- Firstly we will create folder for our project CSSGlowingButtion or etc.
- Then we will create files index.html and style.css for our project
- At last we will link css file with index.html
Introduction:
In this project, we will create a CSS glowing button animation using HTML and CSS. The button features a glowing border and text that flickers, creating a dynamic and engaging visual effect. This project uses CSS animations and keyframes to create the glow and flicker effects, making the button stand out with a neon-like appearance. The button also has hover effects that enhance the animation, making it interactive and visually appealing.
HTML Code:
...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Glowing Button Animation</title>
<!-- Link to external stylesheet -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- Button with glowing effect -->
<button class="glowing_btn">
<!-- Span for text with glowing effect -->
<span class="glowing_txt">C<span class="faulty_letter">L</span>ICK</span>
</button>
</body>
</html>
..
Explanation:
The HTML code for the CSS Glowing Button Animation sets up a basic web page structure featuring a single button with a glowing effect. Inside the <head> section, a link to the external CSS file (style.css) is provided for styling. The <body> section contains the main content, which includes a button element with the class glowing_btn. Within this button, a nested <span> with the class glowing_txt wraps the text “CLICK,” with an inner <span> for the letter “L” to apply a distinct flickering effect. This structure ensures that the button’s glowing and flickering animations are applied correctly, creating an engaging visual effect.
CSS Code:
...
/* Importing Google font 'Raleway' */
@import url("https://fonts.googleapis.com/css?family=Raleway");
/* Root variables for glow color */
:root {
--glow-color: hsl(306, 99%, 66%);
}
/* General reset for padding, margin, and box-sizing */
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
/* Centering the content vertically and horizontally */
html,
body {
display: grid;
height: 100%;
place-items: center;
background: #000;
/* Background color */
}
/* Styles for the glowing button */
.glowing_btn {
position: relative;
color: var(--glow-color);
cursor: pointer;
padding: 0.35em 1em;
border: 0.15em solid var(--glow-color);
background: none;
border-radius: 0.45em;
perspective: 2em;
font-family: "Raleway", sans-serif;
font-size: 2em;
font-weight: 900;
letter-spacing: 1em;
box-shadow: inset 0px 0px 0.5em 0px var(--glow-color),
0px 0px 0.5em 0px var(--glow-color);
animation: border-flicker 2s linear infinite;
/* Flickering border animation */
}
/* Adding glow effect behind the button */
.glowing_btn::before {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
opacity: 0.7;
filter: blur(1em);
transform: translateY(120%) rotateX(95deg) scale(1, 0.35);
background: var(--glow-color);
pointer-events: none;
}
/* Adding background glow effect */
.glowing_btn::after {
content: '';
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
opacity: 0;
z-index: -1;
background-color: var(--glow-color);
box-shadow: 0 0 2em 0.2em var(--glow-color);
transition: opacity 100ms linear;
}
/* Styles for the glowing text */
.glowing_txt {
float: left;
margin-right: -0.8em;
text-shadow: 0 0 0.45em hsl(0 0% 100% / 0.3),
0 0 0.45em var(--glow-color);
animation: text-flicker 3s linear infinite;
/* Flickering text animation */
}
/* Styles for the faulty letter */
.faulty_letter {
opacity: 0.5;
animation: faulty-flicker 3s linear infinite;
/* Flickering animation for faulty letter */
}
/* Hover effects */
.glowing_btn:hover {
color: rgba(0, 0, 0, 0.8);
text-shadow: none;
animation: none;
}
.glowing_btn:hover .glowing_txt {
animation: none;
}
.glowing_btn:hover .faulty_letter {
animation: none;
text-shadow: none;
opacity: 1;
}
.glowing_btn:hover::before {
filter: blur(1.5em);
opacity: 1;
}
.glowing_btn:hover::after {
opacity: 1;
}
/* Keyframes for faulty letter flicker animation */
@keyframes faulty-flicker {
0% {
opacity: 0.1;
}
2% {
opacity: 0.1;
}
4% {
opacity: 0.5;
}
19% {
opacity: 0.5;
}
21% {
opacity: 0.1;
}
23% {
opacity: 1;
}
80% {
opacity: 0.5;
}
83% {
opacity: 0.4;
}
87% {
opacity: 1;
}
}
/* Keyframes for text flicker animation */
@keyframes text-flicker {
0% {
opacity: 0.1;
}
2% {
opacity: 1;
}
8% {
opacity: 0.1;
}
9% {
opacity: 1;
}
12% {
opacity: 0.1;
}
20% {
opacity: 1;
}
25% {
opacity: 0.3;
}
30% {
opacity: 1;
}
70% {
opacity: 0.7;
}
72% {
opacity: 0.2;
}
77% {
opacity: 0.9;
}
100% {
opacity: 0.9;
}
}
/* Keyframes for border flicker animation */
@keyframes border-flicker {
0% {
opacity: 0.1;
}
2% {
opacity: 1;
}
4% {
opacity: 0.1;
}
8% {
opacity: 1;
}
70% {
opacity: 0.7;
}
100% {
opacity: 1;
}
}
..
Explanation:
The CSS code is designed to create an engaging glowing effect for a button. First, the “Raleway” font is imported to ensure the button text has a distinct, modern appearance. A CSS variable, `–glow-color`, is defined to control the color used in the glowing effect.
The general reset section sets all elements to have no default padding or margin and applies `box-sizing: border-box` to ensure consistent element sizing.
For the button styling, properties such as `color`, `padding`, `border`, `background`, and `border-radius` are used to define its appearance. The button also features a `box-shadow` to create an inner and outer glow. An animation named `border-flicker` is applied to make the border pulse with a flickering effect.
To enhance the glow, pseudo-elements `::before` and `::after` are used. The `::before` pseudo-element creates a blurred, semi-transparent glow effect behind the button, while `::after` adds an additional glow effect around the button, which becomes more prominent on hover.
The text inside the button is styled using `text-shadow` to create a glowing text effect. The `glowing_txt` class animates the text to flicker using the `text-flicker` keyframes, which control the text’s opacity at various stages.
The `faulty_letter` class applies a specific flickering effect to the letter “L” within the text, using the `faulty-flicker` keyframes to simulate a malfunctioning glow.
On hover, the button’s color changes, and the glow animations are disabled to provide a contrasting visual effect. The keyframe animations define how the flickering effects for the border, text, and faulty letter are executed, creating a dynamic and interactive glowing button.
Source Code:
Download “CSS-Glowing-Button.zip” CSS-Glowing-Button.zip – Downloaded 182 times – 1.57 KBConclusions:
In this project, we have created an eye-catching CSS Glowing Button Animation that features a vibrant, dynamic effect. We defined a custom glow color and applied it to the button using various CSS properties and pseudo-elements. The button’s glow is enhanced with animations for both the border and text, creating a pulsating and flickering effect. A special animation for a specific letter adds an additional layer of visual interest. Finally, hover effects provide an interactive experience by altering the button’s appearance and disabling the glow animations.
