Skip to content

Instantly share code, notes, and snippets.

@PH9
Created August 27, 2025 03:18
Show Gist options
  • Select an option

  • Save PH9/170e7c896a613eb3982734014a061bc9 to your computer and use it in GitHub Desktop.

Select an option

Save PH9/170e7c896a613eb3982734014a061bc9 to your computer and use it in GitHub Desktop.
gen ai workshop
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KBTG</title>
<style>
/* Modern, beautiful style and animation for KBTG */
body {
min-height: 100vh;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #0f2027, #2c5364 80%);
font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
overflow: hidden;
}
h1 {
font-size: 8vw;
letter-spacing: 1vw;
color: #fff;
text-shadow: 0 4px 32px #0008, 0 1px 0 #fff2;
display: flex;
gap: 1vw;
margin: 0;
user-select: none;
}
h1 span {
display: inline-block;
position: relative;
font-weight: 900;
background: linear-gradient(90deg, #ff512f, #dd2476, #1fa2ff, #12d8fa, #a6ffcb);
background-size: 200% 200%;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: gradientMove 3s ease-in-out infinite alternate, pop 1.2s cubic-bezier(.68,-0.55,.27,1.55) infinite;
filter: drop-shadow(0 2px 8px #fff5);
border-radius: 0.2em;
padding: 0 0.1em;
}
#k { animation-delay: 0s, 0s; }
#b { animation-delay: 0.2s, 0.2s; }
#t { animation-delay: 0.4s, 0.4s; }
#g { animation-delay: 0.6s, 0.6s; }
@keyframes gradientMove {
0% { background-position: 0% 50%; }
100% { background-position: 100% 50%; }
}
@keyframes pop {
0%, 100% { transform: scale(1) translateY(0); }
20% { transform: scale(1.15) translateY(-0.2em); }
40% { transform: scale(0.95) translateY(0.1em); }
60% { transform: scale(1.1) translateY(-0.1em); }
80% { transform: scale(0.98) translateY(0.05em); }
}
h1 span::after {
content: '';
position: absolute;
left: 50%;
top: 100%;
transform: translateX(-50%);
width: 60%;
height: 0.18em;
background: linear-gradient(90deg, #fff8, #fff2 60%, #fff8);
border-radius: 1em;
opacity: 0.7;
filter: blur(2px);
z-index: -1;
animation: shadowPulse 1.8s ease-in-out infinite alternate;
}
#k::after { animation-delay: 0s; }
#b::after { animation-delay: 0.2s; }
#t::after { animation-delay: 0.4s; }
#g::after { animation-delay: 0.6s; }
@keyframes shadowPulse {
0%, 100% { opacity: 0.7; width: 60%; }
50% { opacity: 1; width: 80%; }
}
@media (max-width: 600px) {
h1 { font-size: 16vw; gap: 2vw; }
}
</style>
</head>
<body>
<h1>
<span id="k">K</span>
<span id="b">B</span>
<span id="t">T</span>
<span id="g">G</span>
</h1>
<script>
// Subtle interactive effect: on hover, spin and glow
document.querySelectorAll('h1 span').forEach(span => {
span.addEventListener('mouseenter', () => {
span.style.transition = 'transform 0.3s cubic-bezier(.68,-0.55,.27,1.55), filter 0.3s';
span.style.transform = 'scale(1.25) rotate(-8deg)';
span.style.filter = 'drop-shadow(0 0 24px #fff8) drop-shadow(0 0 8px #1fa2ff)';
});
span.addEventListener('mouseleave', () => {
span.style.transform = '';
span.style.filter = '';
});
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment