1명이 블로그에 접속중
라이브 채팅
COUNTER
000689
TOTAL VIEWS
0341
TODAY
2026-10-23 · HTML · DEMO

HTML 임베드 실험실 — CSS 3D 박스 뷰어 & fetch 미니앱

1. CSS 3D 직육면체 뷰어

자바스크립트 0줄 — 순수 CSS 3D 변형만으로 도는 박스입니다. 마우스를 올리면 정지합니다.

FRONT
BACK
RIGHT
LEFT
TOP
BOTTOM

핵심은 부모에 perspective, 큐브에 transform-style: preserve-3d, 여섯 면에 각각 rotate + translateZ(반변길이) — 이 세 가지가 전부입니다.

2. fetch 기반 미니앱 — 블로그 검색 위젯

이 글 안에 살아있는 앱을 심었습니다. 아래에 키워드를 넣고 검색하면 이 블로그의 /api/search를 fetch로 호출해 결과를 보여줍니다.

동작 원리: 본문 마크다운에 <script src="/public/embeds/mini-search.js"> 한 줄 — 자체 호스팅 스크립트만 허용하는 sanitizer를 통과하고, 위젯이 자기 컨테이너(#mini-search-app)를 찾아 스스로를 렌더링합니다.

fetch('/api/search?q=' + encodeURIComponent(kw) + '&fields=title,body')
  .then(r => r.json())
  .then(j => render(j.slugs));

이 패턴이면 유튜브 임베드, 차트, 계산기 등 뭔든 심을 수 있습니다.

3. Mermaid 다이어그램

텍스트로 그리는 그래프 — 이 블로그 시스템의 데이터 흐름:

flowchart LR
  V[방문자] -->|요청| N[Hono SSR server.ts]
  N -->|markdown 렌더| P[(content/posts)]
  N --> S[SQLite comments.db]
  S --> C[댓글 · 채팅 · 방명록]
  N --> U[(Umami PG)]
  N -->|fetch| G[Giphy API]
  N -->|번역| O[OpenRouter]

4. 할인가 계산기 (폼 + 실시간 계산)

5. KST 실시간 시계

지금 이 순간의 한국 시간 —

6. 외부 iframe (유튜브)

위젯 6종: CSS 3D · fetch 검색 · Mermaid · 계산기 · 실시간 시계 · iframe. 스크립트는 전부 public/embeds/에 자체 호스팅 — CDN 차단(CSP 'self')과 무관하게 동작합니다.

comments (0)