feat: About 다이얼로그 추가, UI 최적화 및 서버 캐싱 강화
- About 다이얼로그 추가 (개발자 정보 및 개인정보처리방침) - Markdown 렌더러 구현 (Bold, Italic, Code, Blockquote 지원) - 전투 화면 하단 'About' 및 방문자 카운팅 UI 재배치 및 디자인 통일 - 프로덕션 환경에서 정적 파일 강력 캐싱 설정 (7일 유지) - 파비콘 404 오류 해결을 위한 이모지 데이터 URI 추가 - 모바일 전투 화면 레이아웃 최적화 및 승리 연출 개선 - 일일 운영 지표(Daily Metrics) 수집 API 및 로직 추가
This commit is contained in:
+106
-3
@@ -4,6 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Arena Picker</title>
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>⚔️</text></svg>">
|
||||
<style>
|
||||
html.app-booting,
|
||||
html.app-booting body {
|
||||
@@ -63,9 +64,21 @@
|
||||
<span data-status-text>옵션 대기 중</span>
|
||||
</div>
|
||||
</div>
|
||||
<p id="visitor-count" class="visitor-count" aria-live="polite">
|
||||
방문자 확인 중
|
||||
</p>
|
||||
<div class="arena-meta">
|
||||
<p id="visitor-count" class="visitor-count" aria-live="polite">
|
||||
방문자 확인 중
|
||||
</p>
|
||||
<button
|
||||
id="about-button"
|
||||
class="about-button"
|
||||
type="button"
|
||||
aria-haspopup="dialog"
|
||||
aria-controls="about-dialog"
|
||||
aria-expanded="false"
|
||||
>
|
||||
About
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="intro-stage" aria-label="Arena 시작 화면">
|
||||
@@ -207,6 +220,96 @@ Player 10</textarea
|
||||
</div>
|
||||
</form>
|
||||
</aside>
|
||||
|
||||
<div id="about-dialog" class="about-backdrop" hidden>
|
||||
<section
|
||||
class="about-dialog"
|
||||
data-about-dialog
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
aria-labelledby="about-dialog-title"
|
||||
tabindex="-1"
|
||||
>
|
||||
<header class="about-header">
|
||||
<div>
|
||||
<p class="eyebrow">About</p>
|
||||
<h2 id="about-dialog-title">개발자정보</h2>
|
||||
</div>
|
||||
<button
|
||||
class="about-close"
|
||||
data-about-close
|
||||
type="button"
|
||||
aria-label="About 닫기"
|
||||
>
|
||||
X
|
||||
</button>
|
||||
</header>
|
||||
|
||||
<div class="about-tabs" role="tablist" aria-label="About 메뉴">
|
||||
<button
|
||||
id="about-tab-developer"
|
||||
class="about-tab"
|
||||
data-about-tab="developer"
|
||||
type="button"
|
||||
role="tab"
|
||||
aria-selected="true"
|
||||
aria-controls="about-panel-developer"
|
||||
>
|
||||
개발자정보
|
||||
</button>
|
||||
<button
|
||||
id="about-tab-privacy"
|
||||
class="about-tab"
|
||||
data-about-tab="privacy"
|
||||
type="button"
|
||||
role="tab"
|
||||
aria-selected="false"
|
||||
aria-controls="about-panel-privacy"
|
||||
tabindex="-1"
|
||||
>
|
||||
개인정보처리방침
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<section
|
||||
id="about-panel-developer"
|
||||
class="about-panel"
|
||||
data-about-panel="developer"
|
||||
role="tabpanel"
|
||||
aria-labelledby="about-tab-developer"
|
||||
>
|
||||
<dl class="about-fields">
|
||||
<div class="about-field-row">
|
||||
<dt>alias</dt>
|
||||
<dd data-about-field="alias">horoli</dd>
|
||||
</div>
|
||||
<div class="about-field-row">
|
||||
<dt>email</dt>
|
||||
<dd data-about-field="email">sunha321@gmail.com</dd>
|
||||
</div>
|
||||
<div class="about-field-row">
|
||||
<dt>github</dt>
|
||||
<dd data-about-field="github">
|
||||
<a href="https://github.com/Horoli" target="_blank" rel="noreferrer">
|
||||
https://github.com/Horoli
|
||||
</a>
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section
|
||||
id="about-panel-privacy"
|
||||
class="about-panel"
|
||||
data-about-panel="privacy"
|
||||
role="tabpanel"
|
||||
aria-labelledby="about-tab-privacy"
|
||||
hidden
|
||||
>
|
||||
<div id="privacy-policy-content" class="about-markdown"></div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user