HTML
<div class="stage-12">
<div class="card-term">
<div class="term-bar">
<div class="term-dot" style="background: #ff5f57"></div>
<div class="term-dot" style="background: #febc2e"></div>
<div class="term-dot" style="background: #28c840"></div>
</div>
<div class="term-body">
<div class="term-line"><span class="cmd">$ </span>npm install codefronts</div>
<div class="term-line"><span class="out">✓ Packages installed</span></div>
<div class="term-line"><span class="cmd">$ </span>npm run build</div>
<div class="term-line"><span class="out">✓ Built in 0.4s</span></div>
<div class="term-line"><span class="cmd">$ </span><span class="term-cursor"></span></div>
</div>
</div>
</div> CSS
.card-term {
width: 210px;
border-radius: 8px;
overflow: hidden;
border: 1px solid rgba(30, 217, 138, 0.3);
font-family: var(--ccg-mono);
}
.term-bar {
background: #111;
padding: 6px 10px;
display: flex;
align-items: center;
gap: 5px;
border-bottom: 1px solid rgba(30, 217, 138, 0.2);
}
.term-dot {
width: 8px;
height: 8px;
border-radius: 50%;
}
.term-body {
background: #050a05;
padding: 14px;
}
.term-line {
font-size: 10.5px;
line-height: 2;
color: var(--ccg-green);
}
.term-line .cmd {
color: rgba(30, 217, 138, 0.5);
}
.term-line .out {
color: rgba(255, 255, 255, 0.6);
}
.term-cursor {
display: inline-block;
width: 7px;
height: 13px;
background: var(--ccg-green);
animation: ccg-blink 0.8s step-end infinite;
vertical-align: middle;
}
/* parent stage backdrop (so the demo renders standalone) */
[class^="stage-"] {
width: 100%;
min-height: 200px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
padding: 2.5rem 1.5rem;
box-sizing: border-box;
}
.stage-12 {
background: #050a05;
}
/* gallery vars + keyframes (so the demo renders standalone) */
:root {
--ccg-bg: #0a0a0f;
--ccg-surface: #111118;
--ccg-surface2: #17171f;
--ccg-surface3: #1e1e28;
--ccg-border: rgba(255, 255, 255, 0.15);
--ccg-border2: rgba(255, 255, 255, 0.13);
--ccg-accent: #7c6cff;
--ccg-pink: #ff6c8a;
--ccg-green: #1ed98a;
--ccg-amber: #f5a84a;
--ccg-cyan: #3de8f5;
--ccg-text: #f0eeff;
--ccg-muted: #6b6987;
--ccg-label: #9896b8;
--ccg-mono: "DM Mono", "Fira Code", monospace;
--ccg-sans: "Syne", sans-serif;
}
@keyframes ccg-blink {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.card-term,
.card-term * {
animation: none !important;
}
}