커스텀 위젯은 HTML/CSS/JavaScript 코드로 UI를 만들고, 설정 패널을 구성하여 코드 수정 없이 설정값을 변경할 수 있도록 하는 구조예요. 이 도움말에서는 커스텀 위젯 만드는 방법을 알아보실 수 있습니다. 커스텀 위젯 스튜디오에 대해 궁금하다면 이 가이드를 읽어 주세요.
목차
📢 안내 | 최신 프롬프트 및 코드 제한 가이드는 별도 문서에서 관리하고 있어요. 아래 링크를 참고해 주세요!
프롬프트 및 코드 가이드 업데이트 바로가기 →위젯 소스 에디터에서 HTML, CSS, JavaScript 탭에 Handlebars 문법을 활용하여 코드를 작성합니다.
{{backgroundColor}} 변수가 있고, 수정 후에도 동일한 {{backgroundColor}} 변수가 있으면 이전에 설정한 값이 유지됩니다.아래의 항목들은 현재(2026.05.01) 커스텀 위젯 스튜디오에서 지원하지 않는 기능이에요. 단, 서비스가 고도화 되면서 해당 내용은 변경될 수 있어요.
설정 패널의 기본 원리는 다음과 같아요.
Handlebars 주석 형태의 annotation을 코드에 작성하면, 에디터가 이를 파싱하여 설정 패널을 자동으로 생성해요.
@name에 작성한 이름이 변수명이 되며, 바로 아랫줄의 이중 중괄호로 코드에서 해당 값을 참조합니다. 속성 선언과 변수 참조가 코드 한 곳에서 동시에 이루어져요.

지원 태그
| 태그 | 필수 | 설명 |
|---|---|---|
@name | 필수 | 대상 변수명 |
@type | 선택 | 패널 타입 (9종, 2-2 항목 참조) |
@default | 선택 | 기본값 |
@label | 선택 | 패널 항목 라벨 |
@placeholder | 선택 | 입력 필드 플레이스홀더 |
@values | 선택 | select / segment 옵션 값 (쉼표 구분) |
@valueNames | 선택 | select / segment 옵션 라벨 (@values와 함께 사용) |
설정 패널 화면에서 추가 버튼을 클릭하여 설정 항목의 컴포넌트 유형을 선택·추가하는 방식이에요.


{{변수명}} 형태로 직접 입력하여, 속성과 코드 변수를 연결해 주세요
이로써 설정 패널 항목과 코드 변수의 연결이 완성돼요. 이후 사용자가 설정 패널에서 값을 변경하면, 연결된 변수를 통해 위젯 화면에 즉시 반영돼요.
설정 패널에서 지원하는 컴포넌트 타입은 다음과 같아요. 모든 컴포넌트의 필수 속성은 변수 id와 라벨명입니다.
| 항목명 | 정의 | 특징 |
|---|---|---|
| outlined-textfield (입력창) | 텍스트, 정수, 실수 데이터를 입력할 수 있는 입력창 | 최대 100자까지 입력 가능하며, 데이터 유형(텍스트/정수/실수) 선택이 필수입니다. 디폴트 값, 최대값, 최소값, 단위(최대 5글자), 플레이스홀더(최대 10글자)를 선택적으로 설정할 수 있어요. |
| text-editor (에디터) | 줄글 텍스트를 입력할 수 있는 에디터 | 최대 2,000자까지 입력 가능하며, 볼드·기울임·밑줄·취소선·링크 삽입 서식을 지원합니다. |
| select (목록 선택) | 드롭다운 형태 | 최대 10개까지 옵션을 만들 수 있어요. |
| segmented-control (옵션 버튼) | 탭 형태 | 최대 4개의 옵션 중 하나를 선택할 수 있어요. 옵션명은 최대 8글자이며, 첫 번째 옵션이 기본값으로 설정됩니다. |
| switch (스위치) | ON/OFF 토글 | 기본값은 ON이에요. |
| color-picker (색상 선택) | 색상 및 투명도 선택 | 디폴트 색상과 투명도 설정이 필수이며, 설정하지 않으면 #000000, 투명도 100%가 기본값이에요. |
| image-uploader (이미지 업로더) | 이미지 업로드 | 용량 100MB, 크기 8,000px 이하의 이미지를 지원하며 mp4 영상은 제외돼요. |
| date-picker (날짜 선택) | 날짜 선택 | 기본값은 오늘 날짜이며, 이전 날짜는 선택할 수 없습니다. |
| time-picker (시간 선택) | 시간 선택 | 기본값은 오전 00시 00분입니다. |
| 아이템 (반복 항목) | 동일한 구조의 항목을 반복적으로 추가 | 제품 카드 리스트, 팀원 소개, 이미지 슬라이더 등 같은 형태의 콘텐츠를 여러 개 만들어야 할 때 사용합니다. |
아이템은 부모 아이템(parent item)과 자식 아이템(child item)으로 구성돼요. 부모 아이템은 반복 그룹 자체를 의미하고, 자식 아이템은 반복되는 개별 항목을 의미합니다. 각 자식 아이템 안에는 입력창, 이미지 업로더, 색상 선택 등 다른 컴포넌트를 하위 속성으로 넣을 수 있어요.
아이템의 제한 사항:
banner.title이 아닌 title로 작성){{#each}} 안에 각 필드 annotation과 루트 @type item이 모두 필요해요.{{#each}} 내부 annotation
같은 블록 안에 각 필드 annotation과 루트 @type item이 모두 필요해요.
{{#each}} 블록은 독립된 annotation 스코프를 가져요. 서로 다른 {{#each}} 안에서는 같은 @name을 사용해도 됩니다.기존 코드 위젯과 커스텀 위젯은 다음과 같은 차이가 있어요.
코드 위젯은 HTML, JavaScript, CSS 등 클라이언트 사이드 언어를 지원하며, 입력한 코드를 페이지에 그대로 출력하는 방식으로 동작해요. 주로 시각적으로 보이지 않는 스크립트 삽입 용도로 활용됩니다.
코드 위젯은 아임웹 전역 스타일과 격리되어 있지 않아요. 그래서 아래와 같은 특징이 있습니다.
커스텀 위젯은 HTML+CSS+JS로 UI 위젯을 제작하며, 코드 위젯과 비교해 다음과 같은 차이가 있어요.