<div class="site-container">
<div class="site-banner">
A demo showing neon box-shadow in action
</div>
<header class="site-header">
<div class="site-header-inner site-section-inner">
<div class="site-branding">
<h1 class="site-name">SiteName</h1>
</div>
<nav class="site-nav site-nav--main">
<ul>
<li><a href="">About</a></li>
<li><a href="" class="active">Store</a></li>
<li><a href="">Contact</a></li>
</ul>
<button class="btn neon-shadow-inset">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" class="icon">
<path d="M120-240v-80h720v80H120Zm0-200v-80h720v80H120Zm0-200v-80h720v80H120Z" />
</svg>
<span>Menu</span>
</button>
</nav>
</div>
<div class="site-hero">
<div class="site-hero-inner site-section-inner">
<h2>Bring Nature Home with Artful Elegance</h2>
<p>Discover our unique, handcrafted flowerpots designed to add charm and character to every corner of your space.</p>
<button class="btn btn--lg neon-shadow">
<span>Know more</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" class="icon">
<path d="M647-440H160v-80h487L423-744l57-56 320 320-320 320-57-56 224-224Z" />
</svg>
</button>
</div>
</div>
</header>
<main class="site-main">
<div class="site-main-inner site-section-inner">
<div class="card-grid site-subsection">
<div class="card">
Simple card
</div>
<div class="card">
Simple card
</div>
<div class="neon-shadow card card--new">
Highlighted card
</div>
<div class="card">
Simple card
</div>
<div class="card">
Simple card
</div>
<div class="card">
Simple card
</div>
<div class="neon-shadow card card--new">
Highlighted card
</div>
<div class="card">
Simple card
</div>
<div class="card">
Simple card
</div>
</div>
<div class="site-subsection">
<button class="btn neon-shadow">Load more...</button>
</div>
</div>
</main>
<footer class="site-footer">
<div class="site-footer-inner site-section-inner">
This can be the site footer...
</div>
</footer>
</div>
@import url("https://fonts.googleapis.com/css2?family=Nunito&display=swap");
:root {
--glow-hue: 340;
/* Dark Variants */
--color-pri-900: hsl(var(--glow-hue) 10% 5%);
--color-pri-800: hsl(var(--glow-hue) 10% 10%);
--color-pri-700: hsl(var(--glow-hue) 10% 20%);
--color-pri-600: hsl(var(--glow-hue) 10% 25%);
--color-pri-500: hsl(var(--glow-hue) 10% 30%);
/* Light Variants */
--color-sec-900: hsl(var(--glow-hue) 30% 95%);
--color-sec-800: hsl(var(--glow-hue) 25% 85%);
--color-sec-700: hsl(var(--glow-hue) 20% 75%);
--color-sec-600: hsl(var(--glow-hue) 15% 65%);
/* Accent Variants */
--color-acc-900: hsl(var(--glow-hue) 70% 50%);
--color-acc-800: hsl(var(--glow-hue) 70% 60%);
--color-acc-700: hsl(var(--glow-hue) 70% 40%);
/* Neutral Variants */
--color-neu-900: hsl(var(--glow-hue) 10% 50%);
--color-neu-800: hsl(var(--glow-hue) 10% 60%);
/* Shadow & Neon Effects */
--color-shadow-neon: 0 0 2px hsl(var(--glow-hue) 70% 50% / 20%),
0 0 4px hsl(var(--glow-hue) 70% 50% / 25%),
0 0 8px hsl(var(--glow-hue) 70% 50% / 30%);
--color-shadow-neon-hover: 0 0 8px hsl(var(--glow-hue) 70% 70% / 20%),
0 0 15px hsl(var(--glow-hue) 70% 70% / 25%),
0 0 30px hsl(var(--glow-hue) 70% 70% / 30%);
--color-shadow-neon-inset:
0 0 0 1px hsl(var(--glow-hue) 70% 50% / 30%),
0 0 2px hsl(var(--glow-hue) 70% 50% / 25%),
0 0 4px hsl(var(--glow-hue) 70% 50% / 20%),
0 0 8px hsl(var(--glow-hue) 70% 50% / 30%),
inset 0 0 2px hsl(var(--glow-hue) 70% 50% / 25%),
inset 0 0 4px hsl(var(--glow-hue) 70% 50% / 20%),
inset 0 0 8px hsl(var(--glow-hue) 70% 50% / 30%);
--color-shadow-neon-inset-hover:
0 0 0 1px hsl(var(--glow-hue) 100% 100% / 30%),
0 0 4px hsl(var(--glow-hue) 100% 70% / 25%),
0 0 8px hsl(var(--glow-hue) 100% 70% / 20%),
0 0 12px hsl(var(--glow-hue) 100% 70% / 30%),
inset 0 0 4px hsl(var(--glow-hue) 100% 70% / 25%),
inset 0 0 8px hsl(var(--glow-hue) 100% 70% / 20%),
inset 0 0 12px hsl(var(--glow-hue) 100% 70% / 30%);
}
/* Utility Reset */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Utility Classes */
.site-section-inner,
.site-main-inner {
margin-inline: auto;
max-width: 960px;
padding-inline: 2rem;
}
.site-main-inner {
padding-bottom: 4rem;
}
.site-subsection + .site-subsection {
margin-top: 2rem;
}
/* Base Elements */
body {
background: var(--color-pri-800);
color: var(--color-sec-800);
font-family: "Nunito", sans-serif;
margin: 0;
}
a {
color: var(--color-acc-900);
text-decoration: none;
}
/* Grid Layout */
.card-grid {
display: grid;
gap: 2rem;
grid-template-columns: repeat(3, 1fr);
}
.card {
align-items: center;
background-color: var(--color-pri-900);
border-radius: 0.5em;
color: hsl(var(--glow-hue) 10% 50% / 20%);
display: flex;
height: 200px;
justify-content: center;
width: 100%;
}
/* Navigation */
.site-nav ul {
display: flex;
gap: 1em;
margin: 0;
padding: 0;
}
.site-nav li {
display: block;
padding: 0;
}
.site-nav--main {
align-items: center;
display: flex;
gap: 1.5em;
}
.site-nav--main a {
color: currentcolor;
}
.site-nav--main a:hover,
.site-nav--main a.active {
text-decoration: underline;
text-decoration-thickness: 2px;
text-underline-offset: 3px;
}
.site-nav--main a.active {
color: hsl(var(--glow-hue) 100% 60%);
}
/* Header & Banner */
.site-banner {
background-color: var(--color-acc-900);
color: var(--color-sec-900);
padding: .5em 1em;
text-align: center;
}
.site-header-inner {
align-items: center;
display: flex;
justify-content: space-between;
padding-block: 1em;
}
.site-name {
color: var(--color-sec-700);
font-size: 1.2em;
margin: 0;
}
/* Hero Section */
.site-hero-inner {
color: var(--color-sec-700);
padding-block: 3em;
}
.site-hero-inner p {
font-size: 1.2em;
max-width: 30em;
}
.site-hero-inner p + .btn {
margin-top: 1em;
}
.site-hero-inner h2 {
color: var(--color-sec-900);
}
/* Card Variations */
.card--new {
position: relative;
}
.card--new::after {
background-color: hsl(var(--glow-hue) 100% 20%);
color: hsl(var(--glow-hue) 100% 90%);
content: "New";
font-size: 0.75rem;
line-height: 1;
padding: 0.25rem 0.4rem;
position: absolute;
right: -1em;
text-transform: uppercase;
top: 1em;
}
/* Buttons */
.btn {
align-items: center;
background-color: var(--color-pri-900);
border: 0;
border-radius: .5rem;
color: inherit;
cursor: pointer;
display: inline-flex;
font: inherit;
gap: .5rem;
justify-content: center;
line-height: 1;
padding: .75em 1em;
}
.btn--lg {
font-size: 1.5rem;
font-weight: bold;
padding-inline: 1.5rem;
}
/* Effects & Hover States */
.neon-shadow {
box-shadow: var(--color-shadow-neon);
transition: all 0.3s ease;
}
.neon-shadow:hover {
box-shadow: var(--color-shadow-neon-hover);
}
.neon-shadow-inset {
box-shadow: var(--color-shadow-neon-inset);
transition: all 0.3s ease;
}
.neon-shadow-inset:hover {
box-shadow: var(--color-shadow-neon-inset-hover);
}
/* Footer */
.site-footer {
background-color: var(--color-pri-900);
}
.site-footer-inner {
padding-block: 2rem;
}
/* Icons */
.icon {
fill: currentColor;
width: 1.5rem;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.