공지 바

Announcement bar

헤더 바로 위, 사이트 최상단에 얹혀 프로모션이나 공지를 짧게 알리는 닫을 수 있는 얇은 띠.

다른 이름: Promo barTop bannerMarquee bar
···
html
<div class="page">
  <div class="bar" id="bar"><span id="msg">Launch week — 20% off with code LAUNCH20</span><span class="close">&times;</span></div>
  <div class="header"><b class="logo"></b><div class="nav"><i></i><i></i><i></i></div></div>
</div>
css
.page{width:min(94%,780px);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.bar{background:var(--fg);color:var(--bg);display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vmin,16px);
  padding:clamp(5px,1.4vmin,10px) clamp(8px,2vmin,16px);font-size:clamp(7px,1.4vmin,11px);font-weight:600;position:relative}
.close{position:absolute;right:clamp(6px,1.6vmin,12px);opacity:.7;font-size:1.2em;line-height:1}
.header{display:flex;align-items:center;justify-content:space-between;padding:clamp(6px,1.6vmin,12px) clamp(8px,2vmin,16px)}
.logo{width:16%;height:clamp(7px,1.5vmin,11px);border-radius:3px;background:var(--accent)}
.nav{display:flex;gap:clamp(6px,1.4vmin,10px)}
.nav i{width:clamp(14px,3vmin,22px);height:clamp(4px,1vmin,7px);border-radius:2px;background:var(--line)}
js
const MSGS = ['Launch week — 20% off with code LAUNCH20', 'New: team workspaces are here', 'Now available on mobile'];
const msg = document.getElementById('msg');
let i = 0;
setInterval(function () {
  msg.style.opacity = 0;
  setTimeout(function () {
    i = (i + 1) % MSGS.length;
    msg.textContent = MSGS[i];
    msg.style.opacity = 1;
  }, 300);
}, 2600);
msg.style.transition = 'opacity .3s';

헤더보다 위, 사이트에서 가장 먼저 보이는 자리를 차지합니다. 자리가 좁은 만큼 메시지는 한 줄, "할인 코드 SAVE20으로 20% 할인" 같은 시급성 있는 정보나 "v2.0 출시" 같은 짧은 공지에 씁니다.

닫기(X) 버튼은 거의 필수입니다 — 없으면 방문자가 매번 같은 문구를 봐야 해서 짜증을 유발합니다. 알릴 내용이 여러 개면 몇 초 간격으로 문구를 교차 페이드(crossfade)시키는 경우도 흔합니다. 링크가 있다면 바 전체를 클릭 가능하게 만드는 게 좋습니다.

한 번 닫으면 같은 세션(또는 며칠간) 동안은 다시 보이지 않게 상태를 저장해야 합니다. 매번 다시 뜨면 신뢰를 잃습니다. 또한 공지 바가 실제 헤더 높이를 밀어내리므로, 다른 곳에서 `position:fixed`로 상단을 고정해둔 요소가 있다면 겹치지 않는지 확인이 필요합니다.

언제 쓰나

시한이 있는 프로모션이나 정말 중요한 공지가 있을 때만. 상시 노출할 정보(로고, 내비게이션)는 헤더에 두고, 이 자리는 비워두는 게 기본값입니다.