Popup / 25 ターミナル|Terminal
デザイン見本
Terminal Popup
コマンドプロンプトやコーディング画面風のハッカーテイストポップアップです。
システム警告やログのようなハッカーテイストを持つデザイン。等幅フォントと点滅するカーソルが、コーディングやターミナル画面特有の無機質でかっこいい雰囲気を醸し出します。
実装コード
HTML
<div id="popup-container-25">
<button id="popup-btn-25">Terminal</button>
</div>
<div id="popup-25" class="popup-25">
<div class="popup-content-25">
<p>Terminal Popup</p>
<p>コマンドプロンプトやコーディング画面風のハッカーテイストポップアップです。</p>
</div>
</div>
CSS
#popup-btn-25 {
cursor: pointer;
border: 2px solid #0f0;
padding: 12px 24px;
border-radius: 4px;
font-weight: 600;
display: block;
margin: 0 auto;
width: 180px;
color: #0f0;
background-color: #000;
font-family: 'Courier New', Courier, monospace;
transition: all 0.2s;
}
#popup-btn-25:hover {
background-color: #0f0;
color: #000;
}
.popup-25 {
position: fixed;
bottom: -100%;
left: 50%;
transform: translateX(-50%);
z-index: 1001;
opacity: 0;
visibility: hidden;
transition: all 0.2s steps(4);
max-width: 90%;
}
.popup-25.active {
opacity: 1;
visibility: visible;
bottom: 30px;
transform: translateX(-50%);
animation: popupShowHide25 3.4s forwards;
}
@keyframes popupShowHide25 {
0% { opacity: 0; }
10% { opacity: 1; bottom: 30px; }
90% { opacity: 1; bottom: 30px; }
100% { opacity: 0; bottom: -100px; }
}
.popup-content-25 {
background: #111;
padding: 30px;
border: 1px solid #333;
border-top: 25px solid #222;
border-radius: 8px;
text-align: left;
min-width: 320px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.8);
position: relative;
font-family: 'Courier New', Courier, monospace;
}
.popup-content-25::before {
content: '● ● ●';
position: absolute;
top: 5px;
left: 15px;
color: #555;
font-size: 12px;
letter-spacing: 2px;
}
.popup-content-25 p {
position: relative;
}
.popup-content-25 p:first-child {
font-size: 20px;
font-weight: 700;
margin-bottom: 10px;
color: #fff;
}
.popup-content-25 p:first-child::before {
content: '> ';
color: #0f0;
}
.popup-content-25 p:last-of-type {
font-size: 15px;
color: #0f0;
margin-bottom: 0;
line-height: 1.6;
}
.popup-content-25 p:last-of-type::after {
content: '_';
animation: blinkCursor 1s infinite;
}
@keyframes blinkCursor {
0%, 49% { opacity: 1; }
50%, 100% { opacity: 0; }
}
JS
var btn = document.getElementById('popup-btn-25');
var popup = document.getElementById('popup-25');
if (btn && popup) {
btn.addEventListener('click', function () {
popup.classList.add('active');
});
popup.addEventListener('animationend', function (e) {
if (e.animationName.startsWith('popupShowHide')) {
popup.classList.remove('active');
}
});
}