본문으로 건너뛰기
버전: 4.6.1

코드 에디터

코드 에디터는 대기실 디자인에 대한 완전한 제어가 필요한 사용자를 위한 고급 편집 기능을 제공합니다. 이 문서는 코드 에디터에서 코드 수정이 미리보기에 어떤 영향을 미치는지, 그리고 변경 사항이 실시간으로 어떻게 반영되는지 설명합니다.

Code Editor

빠른 참조

코드 요소간편 설정 설정사용자 정의 가능참고 사항
.nf-vwr-background배경 이미지✅ 예배경 색상/이미지, 패딩
.nf-vwr-image3이미지 3 (주요 UI 배경)✅ 예배경 색상/이미지, 패딩, 테두리 반경
.nf-vwr-image1이미지 1✅ 예배경 이미지, 크기, 위치
.nf-vwr-image2이미지 2✅ 예배경 이미지, 크기, 위치
.nf-vwr-title제목✅ 예텍스트, 색상, 글꼴 크기, 가시성
#nf-vwr-live-message라이브 메시지 미리보기✅ 예글꼴 크기, 색상, 가시성
#nf-vwr-metrics-ahead-count-value내 앞의 대기 (숫자값)⚠️ 제한적색상만 (값은 동적)
.nf-vwr-metrics-progress진행 표시줄⚠️ 제한적색상만 (값은 동적)
#nf-vwr-metrics-progress-value대기 진행률⚠️ 제한적가시성만 (값은 동적)
#nf-vwr-metrics-process-status진입 처리 상태⚠️ 제한적가시성만 (시스템 제어)
#nf-vwr-metrics-process-message진입 현황 안내 메시지⚠️ 제한적텍스트 플레이스홀더, 가시성 (콘텐츠는 동적)
#nf-vwr-metrics-wait-time-value예상 대기 시간 (값)⚠️ 제한적색상만 (값은 동적)
#nf-vwr-metrics-enter-time-value접속 가능 시간 (값)⚠️ 제한적색상만 (값은 동적)
#nf-vwr-metrics-behind-count-value내 뒤의 대기 (값)⚠️ 제한적색상만 (값은 동적)
#nf-vwr-marquee구간 제어 프로그래스바⚠️ 제한적가시성, 색상 (시스템 제어)
.nf-vwr-description내용✅ 예텍스트, 색상, 글꼴 크기, 가시성
#nf-vwr-cancel대기실 종료 버튼✅ 예텍스트, 색상, 불투명도, URL 속성
요소 ID (예: nf-vwr-*)-수정 금지시스템 기능에 필요
클래스 이름 (예: nf-vwr-*)-⚠️ 주의일부 클래스는 시스템에서 사용됨

개요

코드 에디터를 사용하면 코드 형식(HTML/CSS)으로 디자인 속성을 직접 수정하여 사용자 정의에 최대한의 유연성을 제공할 수 있습니다. 모든 코드 변경 사항은 미리보기 영역에 즉시 반영되어 수정 결과를 실시간으로 확인할 수 있습니다.

코드 에디터 접근

에디터 모드로 전환

코드 에디터에 접근하려면:

  1. 간편 설정에서 간편 설정에서 에디터 모드로 전환
  2. 코드 편집을 위한 코드 에디터가 사용 가능해짐
  3. 간편 설정 설정에서 생성된 코드가 자동으로 로드됨
에디터 모드 제한

에디터 모드(코드 에디터)에 들어가면 간편 설정이 비활성화됩니다. 에디터 모드에서 간편 설정 모드로 돌아갈 수 있지만, 간편 설정 모드로 다시 전환하면 에디터 모드에서 입력한 모든 사용자 정의 코드가 자동으로 재설정되고 손실됩니다.

코드 구조 개요

코드 에디터는 간편 설정에서 구성된 설정에 해당하는 HTML/CSS 코드를 로드합니다. 코드는 :root에 정의된 CSS 사용자 정의 속성(CSS 변수)을 사용하여 다양한 디자인 속성을 제어합니다. 코드 구조를 이해하면 목표로 하는 수정을 할 수 있습니다.

CSS 변수 시스템

코드는 :root 선택자에 CSS 사용자 정의 속성(변수)을 사용하여 디자인 속성을 제어합니다. 이러한 변수를 수정하여 대기실 모양을 사용자 정의할 수 있습니다:

  • 레이아웃 변수: 그리드 위치 지정, 정렬 (--nf-grid-template-areas, --nf-justify-content, --nf-align-items)
  • 타이포그래피 변수: 글꼴 패밀리, 크기, 색상 (--nf-title-font-family, --nf-title-font-size, --nf-title-color)
  • 이미지 변수: 표시, 배경 색상, URL (--nf-image1-display, --nf-image1-bg-color, --nf-image1-url)
  • 기능 옵션 변수: 다양한 기능에 대한 표시 토글 (--nf-progress-value-display, --nf-wait-time-display, --nf-enter-time-display)
  • 색상 변수: 포인트 색상, 메트릭 색상 (--nf-main-point-color, --nf-ahead-count-value-color)

HTML 구조 매핑

HTML 구조는 다음과 같이 간편 설정 설정에 매핑됩니다:

배경 레이어

<div class="nf-vwr-background">
  • 간편 설정 설정: 배경 이미지
  • 사용자 정의 가능: 배경 색상 (background-color), 배경 이미지 (background-image), 패딩
  • 위치: 전체 화면 배경 (주요 UI 요소 외부)

주요 UI 컨테이너

<div class="nf-vwr-image3">
  • 간편 설정 설정: 이미지 3 (주요 UI 요소 배경)
  • 사용자 정의 가능: 배경 색상/이미지, 패딩, 테두리 반경, 너비, 최대 너비
  • 위치: 주요 대기실 UI 컨테이너

이미지

<div class="nf-vwr-image1"></div>
<div class="nf-vwr-image2"></div>
  • 간편 설정 설정: 이미지 1, 이미지 2
  • 사용자 정의 가능: 배경 이미지 URL, 크기, 위치, 가시성 (display: none 사용)
  • 위치: 주요 UI 컨테이너 내부

제목

<div class="nf-vwr-title">Please enter the title</div>
  • 간편 설정 설정: 제목
  • 사용자 정의 가능: 텍스트 콘텐츠, 색상, 글꼴 크기, 글꼴 두께, 가시성
  • 위치: 주요 UI 컨테이너 내부

라이브 메시지

<div id="nf-vwr-live-message" class="nf-vwr-live-message"></div>
  • 간편 설정 설정: 라이브 메시지 미리보기
  • 사용자 정의 가능: 글꼴 크기, 색상, 가시성 (display: none 또는 display: flex 사용)
  • ⚠️ 중요: 콘텐츠는 동적으로 채워집니다 - ID를 수정하지 마세요
  • 위치: 주요 UI 컨테이너 내부

메트릭 (대기 번호, 진행 표시줄)

<div id="nf-vwr-metrics-essential" class="nf-vwr-metrics-essential">
<p class="nf-vwr-metrics-key">내 앞의 대기</p>
<p id="nf-vwr-metrics-ahead-count-value" class="nf-vwr-metrics-ahead-count-value"></p>
</div>
<div id="nf-vwr-metrics-progress-container-wrapper" class="nf-vwr-metrics-progress-container-wrapper">
<div class="nf-vwr-metrics-progress-container">
<progress id="nf-vwr-metrics-progress" class="nf-vwr-metrics-progress" max="100" value="0"></progress>
<span id="nf-vwr-metrics-progress-value" class="nf-vwr-metrics-progress-value" data-nf-enable="false"></span>
</div>
<div id="nf-vwr-metrics-process-status" class="nf-vwr-metrics-process-status fast" data-nf-enable="false"></div>
</div>
  • 간편 설정 설정: 내 앞의 대기, 진행 표시줄, 대기 진행률, 진입 처리 상태
  • 사용자 정의 가능:
    • 레이블 텍스트 (.nf-vwr-metrics-key)
    • 값 색상 (#nf-vwr-metrics-ahead-count-value - 색상만)
    • 진행 표시줄 색상 (CSS 변수 --nf-main-point-color 또는 .nf-vwr-metrics-progress::-webkit-progress-value)
    • 대기 진행률 표시 (CSS 변수 --nf-progress-value-display)
    • 진입 처리 상태 표시 (CSS 변수 --nf-progress-status-display)
  • ⚠️ 중요:
    • 요소 ID (id="nf-vwr-metrics-*")를 수정하지 마세요
    • 진행 표시줄의 value 또는 max 속성을 수정하지 마세요 (동적으로 업데이트됨)
    • data-nf-enable 속성을 수정하지 마세요 (시스템에서 제어됨)
    • 값 텍스트는 동적으로 업데이트됩니다

선택적 메트릭 (예상 대기 시간, 접속 가능 시간, 내 뒤의 대기)

<div id="nf-vwr-metrics-optional" class="nf-vwr-metrics-optional">
<div id="nf-vwr-metrics-wait-time" class="nf-vwr-metrics-optional-box wait-time">
<span class="nf-vwr-metrics-optional-title">예상 대기 시간</span>
<span id="nf-vwr-metrics-wait-time-value" class="nf-vwr-metrics-value wait-time-value"></span>
</div>
<div id="nf-vwr-metrics-enter-time" class="nf-vwr-metrics-optional-box enter-time" data-nf-enable="true">
<span class="nf-vwr-metrics-optional-title">접속 가능 시간</span>
<span id="nf-vwr-metrics-enter-time-value" class="nf-vwr-metrics-value enter-time-value"></span>
</div>
<div id="nf-vwr-metrics-behind-count" class="nf-vwr-metrics-optional-box behind-count">
<span class="nf-vwr-metrics-optional-title">내 뒤의 대기</span>
<span id="nf-vwr-metrics-behind-count-value" class="nf-vwr-metrics-value behind-count-value"></span>
</div>
</div>
  • 간편 설정 설정: 예상 대기 시간, 접속 가능 시간, 내 뒤의 대기
  • 사용자 정의 가능:
    • 레이블 텍스트 (.nf-vwr-metrics-optional-title)
    • 값 색상 (CSS 변수 또는 직접 스타일링)
    • 가시성 (CSS 변수: --nf-wait-time-display, --nf-enter-time-display, --nf-behind-count-display)
  • ⚠️ 중요:
    • 요소 ID를 수정하지 마세요
    • data-nf-enable 속성을 수정하지 마세요 (시스템에서 제어됨)
    • 값 텍스트는 동적으로 업데이트됩니다

진입 현황 안내 메시지

<div id="nf-vwr-metrics-process-message" class="nf-vwr-metrics-process-message nf-vwr-pause-hidden" data-nf-enable="false">
곧 사이트로 진입합니다.
</div>
  • 간편 설정 설정: 진입 현황 안내 메시지
  • 사용자 정의 가능:
    • 텍스트 콘텐츠 (플레이스홀더 텍스트)
    • 글꼴 패밀리, 크기, 색상 (CSS 변수)
    • 가시성 (CSS 변수 --nf-entering-message-display)
  • ⚠️ 중요:
    • 요소 ID를 수정하지 마세요
    • 콘텐츠는 시스템에서 동적으로 업데이트됩니다
    • data-nf-enable 속성을 수정하지 마세요

구간 제어 프로그래스바 (마키)

<div id="nf-vwr-marquee" class="nf-vwr-marquee-background">
<div class="nf-vwr-marquee-object"></div>
</div>
  • 간편 설정 설정: 구간 제어 (해당하는 경우)
  • 사용자 정의 가능:
    • 가시성 (CSS 변수 --nf-marquee-display)
    • 색상 (CSS 변수 --nf-marquee-color)
  • ⚠️ 중요:
    • 요소 ID를 수정하지 마세요
    • 마키 애니메이션 구조를 수정하지 마세요

내용

<div class="nf-vwr-description nf-vwr-pause-hidden">내용을 입력해주세요.</div>
  • 간편 설정 설정: 내용
  • 사용자 정의 가능: 텍스트 콘텐츠, 색상, 글꼴 크기, 가시성 (CSS 변수 --nf-desc-display)
  • 위치: 주요 UI 컨테이너 내부

대기실 종료 버튼

<button id="nf-vwr-cancel" class="nf-vwr-cancel" data-nf-cancel-url="">
<span>닫기</span>
</button>
  • 간편 설정 설정: 대기실 종료 버튼
  • 사용자 정의 가능:
    • 버튼 텍스트 (<span> 태그 내부)
    • 색상 (CSS 변수: --nf-close-bg-color, --nf-close-text-color, --nf-close-border-color)
    • 가시성 (CSS 변수 --nf-close-display)
    • URL 속성 (data-nf-cancel-url="")
  • ⚠️ 중요:
    • 요소 ID (id="nf-vwr-cancel")를 수정하지 마세요
    • data-nf-cancel-url 속성을 제거하지 마세요 (리디렉션 기능에 필요)

푸터 정보

<div class="nf-vwr-info">Refreshing the page, going back, or closing the popup and reconnecting may reset your waiting time.</div>
<div class="nf-vwr-copyright">Powered by <strong>NetFUNNEL</strong> | © STCLab Inc.</div>
  • 간편 설정 설정: 푸터 텍스트 (색상 사용자 정의 - 첫 번째 색상 선택기를 통해)
  • 사용자 정의 가능: 텍스트 콘텐츠, 색상, 글꼴 크기, 가시성
  • 위치: 주요 UI 컨테이너 내부

안전한 사용자 정의 영역

✅ 수정 가능

CSS 속성:

  • 색상 (color, background-color)
  • 글꼴 속성 (font-size, font-weight, font-family)
  • 간격 (padding, margin, gap)
  • 레이아웃 (display, flex-direction, align-items, justify-content)
  • 크기 조정 (width, max-width, min-width, height)
  • 시각 효과 (border-radius, opacity, box-shadow)
  • 배경 이미지 (background-image, background-size, background-position)

CSS 변수 (사용자 정의 속성):

  • :root에 정의된 모든 CSS 변수를 수정하여 디자인 속성을 사용자 정의할 수 있습니다
  • 변수는 표시 토글, 색상, 글꼴, 레이아웃 설정을 제어합니다
  • 예: --nf-title-display, --nf-title-color, --nf-progress-value-display

HTML 콘텐츠:

  • ID가 없는 요소의 텍스트 콘텐츠 (예: .nf-vwr-title, .nf-vwr-description)
  • 레이블 텍스트 (예: "My waiting number", "Estimated Wait Time")
  • 버튼 텍스트 (예: "Close")

HTML 속성:

  • data-nf-cancel-url 속성 값 (리디렉션 URL용)
  • <html> 태그의 lang 속성 (언어용)
  • <title> 태그 콘텐츠
  • <link rel="icon"> href 속성 (파비콘용)

⚠️ 주의하여 수정

요소 ID:

  • id="nf-vwr-*"가 있는 모든 요소는 시스템에서 사용됩니다
  • ID를 수정하면 기능이 손상됩니다
  • 규칙: 요소 ID를 변경하거나 제거하지 마세요

동적 콘텐츠:

  • 동적 값을 표시하는 ID가 있는 요소:
    • #nf-vwr-metrics-ahead-count-value (대기 번호)
    • #nf-vwr-metrics-progress-value (대기 진행률)
    • #nf-vwr-metrics-wait-time-value (예상 시간)
    • #nf-vwr-metrics-enter-time-value (접속 가능 시간)
    • #nf-vwr-metrics-behind-count-value (내 뒤의 대기)
    • #nf-vwr-live-message (라이브 메시지 콘텐츠)
    • #nf-vwr-metrics-process-message (진입 현황 안내 메시지 콘텐츠)
  • 규칙: CSS 스타일링(색상, 글꼴 크기, CSS 변수를 통한 가시성)만 수정하세요 - 요소 구조 또는 ID를 수정하지 마세요

시스템 제어 속성:

  • 다양한 요소의 data-nf-enable 속성은 시스템에서 제어됩니다
  • 규칙: data-nf-enable 속성을 수정하지 마세요

진행 표시줄:

  • valuemax 속성은 동적으로 업데이트됩니다
  • 규칙: CSS 스타일링만 수정하세요 - HTML 속성을 수정하지 마세요

클래스 이름:

  • 일부 클래스는 시스템에서 참조될 수 있습니다
  • 규칙: 확실하지 않으면 저장하기 전에 미리보기에서 변경 사항을 테스트하세요

❌ 수정 금지

중요한 요소 ID:

  • id="nf-vwr-live-message"
  • id="nf-vwr-metrics-essential"
  • id="nf-vwr-metrics-ahead-count-value"
  • id="nf-vwr-metrics-progress"
  • id="nf-vwr-metrics-progress-value"
  • id="nf-vwr-metrics-process-status"
  • id="nf-vwr-metrics-process-message"
  • id="nf-vwr-marquee"
  • id="nf-vwr-metrics-optional"
  • id="nf-vwr-metrics-wait-time"
  • id="nf-vwr-metrics-wait-time-value"
  • id="nf-vwr-metrics-enter-time"
  • id="nf-vwr-metrics-enter-time-value"
  • id="nf-vwr-metrics-behind-count"
  • id="nf-vwr-metrics-behind-count-value"
  • id="nf-vwr-cancel"
  • id="nf-vwr-popup"
  • id="nf-vwr-popup-confirm"

중요한 속성:

  • data-nf-cancel-url 속성 이름 (버튼 기능에 필요)
  • data-nf-enable 속성 (시스템에서 제어되며 수정하지 마세요)
  • <progress> 요소의 maxvalue 속성
  • 동적 콘텐츠 컨테이너의 요소 구조

일반적인 사용자 정의 예제

제목 텍스트 및 스타일 변경

.nf-vwr-title {
color: #ff0000; /* 제목 색상 변경 */
font-size: 28px; /* 글꼴 크기 증가 */
font-weight: 700; /* 더 굵게 */
}
<div class="nf-vwr-title">Welcome to Our Service</div>

요소 숨기기

방법 1: CSS Display

.nf-vwr-description {
display: none; /* 내용 숨기기 */
}

방법 2: HTML 주석

<!-- <div class="nf-vwr-description">Please enter the content</div> -->

색상 변경

배경 색상:

.nf-vwr-background {
background-color: #1a1a1a; /* 어두운 배경 */
}

주요 UI 배경:

.nf-vwr-image3 {
background-color: #ffffff; /* 흰색 배경 */
}

텍스트 색상:

.nf-vwr-title {
color: #3354ff; /* 파란색 제목 */
}

.nf-vwr-description {
color: #666666; /* 회색 내용 */
}

동적 값 색상:

#nf-vwr-metrics-ahead-count-value {
color: #ff0000; /* 빨간색 대기 번호 */
}

#nf-vwr-metrics-wait-time-value {
color: #00ff00; /* 녹색 예상 시간 */
}

#nf-vwr-metrics-enter-time-value {
color: #0000ff; /* 파란색 접속 가능 시간 */
}

#nf-vwr-metrics-behind-count-value {
color: #ff00ff; /* 자홍색 내 뒤의 대기 */
}

CSS 변수 사용:

:root {
--nf-ahead-count-value-color: #ff0000; /* 대기 번호 색상 */
--nf-wait-time-value-color: #00ff00; /* 예상 시간 색상 */
--nf-enter-time-value-color: #0000ff; /* 접속 가능 시간 색상 */
--nf-behind-count-value-color: #ff00ff; /* 내 뒤의 대기 색상 */
}

버튼 수정

버튼 텍스트:

<button id="nf-vwr-cancel" class="nf-vwr-cancel" data-nf-cancel-url="https://example.com">
<span>대기열 나가기</span>
</button>

버튼 스타일링 (직접 CSS):

.nf-vwr-cancel {
background-color: #ff0000; /* 빨간색 배경 */
color: #ffffff; /* 흰색 텍스트 */
border: 1px solid #cc0000; /* 테두리 색상 */
border-radius: 12px; /* 더 둥글게 */
}

버튼 스타일링 (CSS 변수):

:root {
--nf-close-display: flex; /* 버튼 표시 */
--nf-close-bg-color: #ff0000ff; /* 빨간색 배경 */
--nf-close-text-color: #ffffffff; /* 흰색 텍스트 */
--nf-close-border-color: #cc0000ff; /* 테두리 색상 */
}

버튼 URL:

<button id="nf-vwr-cancel" class="nf-vwr-cancel" data-nf-cancel-url="https://yoursite.com/home">Close</button>

배경 이미지 추가

배경 이미지:

.nf-vwr-background {
background-image: url('https://example.com/background.jpg');
background-size: cover;
background-position: center;
}

이미지 1:

.nf-vwr-image1 {
background-image: url('https://example.com/image1.png');
background-size: contain;
}

고급 프로그래밍 사례

사례 1: 동적 언어 전환

시나리오: 사용자 로케일에 따라 다른 언어로 대기실 표시.

구현:

  1. 사용자 로케일 감지 (브라우저 언어, URL 매개변수 등)
  2. JavaScript를 사용하여 텍스트 콘텐츠를 동적으로 수정
  3. 필요한 경우 언어별 글꼴에 대한 CSS 업데이트

예제:

// 로케일 감지 및 텍스트 업데이트
const locale = navigator.language || 'en';
const translations = {
'en': { title: 'Please Wait', description: 'You are in queue' },
'ko': { title: '대기 중', description: '대기열에 있습니다' },
'ja': { title: 'お待ちください', description: 'キューに入っています' }
};

const title = document.querySelector('.nf-vwr-title');
const description = document.querySelector('.nf-vwr-description');
title.textContent = translations[locale]?.title || translations['en'].title;
description.textContent = translations[locale]?.description || translations['en'].description;

규칙:

  • ✅ ID가 없는 요소의 텍스트 콘텐츠 수정 가능
  • ✅ 동적 콘텐츠를 위한 JavaScript 추가 가능
  • ❌ 요소 ID 수정 금지
  • ⚠️ 다양한 로케일에서 철저히 테스트

사례 2: 사용자 정의 자산 추가

시나리오: 사용자 정의 글꼴, 이미지 또는 기타 자산 로드.

구현:

  1. 외부 리소스에 대해 <head><link> 태그 추가
  2. 이미지에 대해 CSS에서 url() 사용
  3. 자산이 접근 가능한지 확인 (CORS, HTTPS)

예제 - 사용자 정의 글꼴:

<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
</head>
.nf-vwr-title {
font-family: 'Roboto', sans-serif;
}

예제 - 사용자 정의 이미지:

.nf-vwr-image1 {
background-image: url('https://cdn.example.com/custom-image.png');
}

규칙:

  • <head><link> 태그 추가 가능
  • ✅ CSS url()에서 외부 URL 사용 가능
  • ⚠️ 자산이 접근 가능한지 확인 (CORS 활성화, HTTPS)
  • ⚠️ 로딩 성능 고려

사례 3: 사용자 정의 로직 추가

시나리오: 향상된 기능을 위한 사용자 정의 JavaScript 추가.

구현:

  1. </body> 태그 앞에 <script> 태그 추가
  2. 기존 요소 ID를 사용하여 대기실 요소와 상호 작용
  3. NetFUNNEL의 핵심 기능을 재정의하지 마세요

예제 - 사용자 정의 분석:

<body>
<!-- ... 기존 코드 ... -->

<script>
// 사용자 정의 분석 추적
document.getElementById('nf-vwr-cancel').addEventListener('click', function() {
// 취소 버튼 클릭 추적
console.log('Cancel button clicked');
// 분석 서비스로 전송
});
</script>
</body>

규칙:

  • ✅ 사용자 정의 <script> 태그 추가 가능
  • ✅ 기존 요소에 이벤트 리스너 추가 가능
  • ❌ 필수 요소 ID 제거 또는 수정 금지
  • ⚠️ 호환성을 보장하기 위해 철저히 테스트

사례 4: 조건부 스타일링

시나리오: 조건(시간대, 사용자 유형 등)에 따라 다른 스타일 적용.

구현:

  1. JavaScript를 사용하여 조건 감지
  2. CSS 클래스 추가/제거 또는 인라인 스타일 수정
  3. 직접 스타일 수정이 아닌 CSS 클래스를 사용하여 스타일링

예제 - 시간 기반 스타일링:

<script>
const hour = new Date().getHours();
const background = document.querySelector('.nf-vwr-background');

if (hour >= 6 && hour < 18) {
background.style.backgroundColor = '#f0f0f0'; // 라이트 모드
} else {
background.style.backgroundColor = '#1a1a1a'; // 다크 모드
}
</script>

규칙:

  • ✅ JavaScript를 통해 CSS 클래스 및 인라인 스타일 수정 가능
  • ✅ 조건부 로직 추가 가능
  • ⚠️ 변경 사항이 핵심 기능을 손상시키지 않는지 확인
  • ⚠️ 다양한 조건에서 테스트

사례 5: 사용자 정의 애니메이션

시나리오: 사용자 정의 애니메이션 또는 전환 추가.

구현:

  1. CSS에서 @keyframes 정의
  2. 요소에 애니메이션 적용
  3. 기존 애니메이션과 간섭하지 않는지 확인

예제:

@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

.nf-vwr-title {
animation: fadeIn 1s ease-in;
}

규칙:

  • ✅ 사용자 정의 @keyframes 추가 가능
  • ✅ CSS 애니메이션 추가 가능
  • ⚠️ 기존 @keyframes 수정 금지 (marquee, entering)
  • ⚠️ 애니메이션 성능 테스트

프로그래밍 규칙 요약

✅ 허용된 작업

  1. CSS 수정: 모든 CSS 속성 수정 가능 (색상, 글꼴, 간격, 레이아웃 등)
  2. HTML 콘텐츠: ID가 없는 요소의 텍스트 콘텐츠 수정 가능
  3. HTML 속성: 안전한 속성 수정 가능 (data-nf-cancel-url, lang, title, href)
  4. 리소스 추가: 글꼴, 스타일시트 등을 위한 <link> 태그 추가 가능
  5. 스크립트 추가: 추가 기능을 위한 사용자 정의 <script> 태그 추가 가능
  6. 요소 추가: 새로운 HTML 요소 추가 가능 (주의 - 레이아웃에 영향을 줄 수 있음)

⚠️ 제한된 작업

  1. 요소 ID: nf-vwr-*로 시작하는 ID를 수정하거나 제거하지 마세요
  2. 동적 속성: <progress> 요소의 value 또는 max 수정 금지
  3. 필수 속성: data-nf-cancel-url 속성 이름 제거 금지
  4. 핵심 애니메이션: 기존 @keyframes 수정 금지 (marquee, entering)
  5. 요소 구조: 동적 콘텐츠 컨테이너의 구조 수정 시 주의

❌ 금지된 작업

  1. 필수 요소 제거: ID가 있는 요소 제거 금지
  2. 기능 손상: 대기실 기능을 손상시키는 변경 금지
  3. 보안 위험: 보안 위험을 초래하는 스크립트 추가 금지

베스트 프랙티스

코드 구성

  • 주석 사용: 사용자 정의 섹션을 식별하기 위한 주석 추가
  • 구조 유지: 코드를 체계적이고 읽기 쉽게 유지
  • 점진적 테스트: 작은 변경을 하고 자주 테스트

미리보기 모니터링

  • 각 변경 후 확인: 각 수정 후 미리보기에서 변경 사항 확인
  • 다양한 시나리오 테스트: 미리보기 컨트롤을 사용하여 다양한 해상도에서 테스트
  • 기능 검증: 모든 대화형 요소가 올바르게 작동하는지 확인

안전 가이드라인

  • 코드 백업: 주요 변경 전에 코드 백업 저장
  • 철저한 테스트: 수정 후 모든 기능 테스트
  • 변경 사항 문서화: 수정된 내용과 이유에 대한 메모 유지

중요

주요 변경을 하기 전에 항상 코드를 백업하세요. 간편 설정 모드로 재설정한 후에는 코드 변경 사항을 복구할 수 없습니다.

다국어 서비스

사용자 로케일에 따른 동적 언어 전환의 경우, JavaScript를 사용하여 로케일 감지 및 콘텐츠 업데이트를 구현하세요. 구현 세부 사항은 고급 프로그래밍 사례의 예제를 참조하세요.