feat(landing): 소개 영상 버튼과 재생 모달 추가
- 사용 가이드 옆 '▶ 소개 영상 1분' 버튼, 네이티브 dialog에서 재생 - 자체 호스팅 mp4(56초·1920×1080·H.264, 무음), 열 때만 로드(preload none), 무음 자동재생 - Esc·배경·닫기로 종료 시 일시정지·처음으로·포커스 복귀, 모션 감소 시 자동재생 안 함 - 자막 원본(.srt)은 보관만, 화면 미연결 - verify-intro-video.cjs: Chrome 17개 검사 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fc520ec03d
commit
ef596650cc
6 files changed
+285
-1
No files matched your search
@@ -2,6 +2,7 @@ import '../pierzainer_ground/ground-link';
|
||||
import { loadSampleIntoApp } from './sample-loader';
|
||||
import { createSampleExplorer, sampleExplorerMarkup, type Sample } from './sample-explorer';
|
||||
import { createLandingGuide } from './landing-guide';
|
||||
import { createIntroVideo, introVideoTriggerMarkup } from './landing-video';
|
||||
import { createHeroMotion, heroMotionMarkup } from './landing-motion';
|
||||
import { heroCapture } from './assets/okseong-hero-capture';
|
||||
import './landing-white.css';
|
||||
@@ -44,7 +45,7 @@ const landingPanelMarkup = `
|
||||
<p class="landing-subtitle">
|
||||
설계정보 입력부터 3D 모델링, 구조검토, 철근배근, 도면작성 및 수량산출까지 하나의 플랫폼에서
|
||||
</p>
|
||||
<button class="landing-guide-trigger" type="button" aria-haspopup="dialog"><span aria-hidden="true">?</span>사용 가이드 <span class="landing-guide-trigger-arrow" aria-hidden="true">↗</span></button>
|
||||
<button class="landing-guide-trigger" type="button" aria-haspopup="dialog"><span aria-hidden="true">?</span>사용 가이드 <span class="landing-guide-trigger-arrow" aria-hidden="true">↗</span></button>${introVideoTriggerMarkup}
|
||||
</div>
|
||||
</div>
|
||||
<div class="landing-hero-visual" aria-hidden="true">
|
||||
@@ -123,6 +124,7 @@ const landingPanelMarkup = `
|
||||
landingOverlay.innerHTML = landingPanelMarkup;
|
||||
document.body.prepend(landingOverlay);
|
||||
const landingGuide = createLandingGuide(landingOverlay);
|
||||
const introVideo = createIntroVideo(landingOverlay, promoImageUrl);
|
||||
createHeroMotion(landingOverlay);
|
||||
|
||||
const selectPanel = (panelId: string): void => {
|
||||
@@ -143,6 +145,7 @@ const closePanels = (): void => {
|
||||
const showApp = (): void => {
|
||||
landingOverlay.querySelector<HTMLDialogElement>('.sample-library-popup')?.close();
|
||||
landingGuide.close(false);
|
||||
introVideo.close(false);
|
||||
if (appRoot) {
|
||||
appRoot.hidden = false;
|
||||
appRoot.setAttribute('aria-hidden', 'false');
|
||||
|
||||
Reference in new issue
Block a user