편집기 부가기능은 Apps Script의 HTML 서비스를 사용하여 사용자 인터페이스 (메뉴, 사이드바, 대화상자)를 빌드합니다. 인터페이스는 HTML 및 CSS로 개발되므로 맞춤설정이 매우 쉽습니다. 그러나 부가기능 인터페이스를 빌드할 때는 우수한 사용자 환경을 제공하도록 설계해야 합니다.
가장 좋은 부가기능은 익숙한 컨트롤과 동작을 사용하여 각 편집기를 자연스럽게 확장합니다. 새 부가기능을 빌드할 때:
- HTML 서비스 페이지에서 부가기능 CSS 패키지를 사용합니다.
- 디자인에 관해 확실하지 않은 경우 편집기에서 유사한 대화상자나 사이드바를 찾아 일치시키거나 부가기능 빠른 시작을 참고하세요.
- 이 스타일 가이드를 따라 원활한 환경을 만드세요.
텍스트
부가기능 이름
게시할 때 부가기능의 이름을 설정해야 합니다. 이름은 부가기능 스토어 및 메뉴와 같은 여러 위치에 표시됩니다.
- 단어 첫 글자를 대문자로 표기합니다.
- 브랜드의 일부가 아닌 한 구두점, 특히 괄호는 사용하지 마세요.
- 30자(영문 기준) 이하로 짧게 작성하는 것이 좋습니다. 이름이 너무 길면 자동으로 잘릴 수 있습니다.
- 부가기능이 제공되는 Google 제품의 이름을 포함하거나 'Google'이라는 단어를 사용하지 마세요.
- 버전 정보를 제외합니다.
- 부가기능의 게시된 이름이 스크립트 프로젝트의 파일 이름과 동일한지 확인합니다. 프로젝트 이름이 승인 대화상자에 표시됩니다.
| 금지사항 | 권장사항 |
|---|---|
작성 스타일
많이 작성할 필요는 없습니다. 대부분의 작업은 아이콘, 레이아웃, 짧은 라벨을 통해 명확하게 표시되어야 합니다. 부가기능의 일부에 짧은 라벨로 제공하기보다 더 자세한 설명이 필요한 경우 부가기능을 설명하는 별도의 웹페이지를 만들어 링크를 연결하는 것이 좋습니다.
UI 텍스트를 작성할 때는 다음을 참고하세요.
- 문장 첫 글자를 대문자로 표기하는 규칙을 사용합니다 (특히 버튼, 라벨, 메뉴 항목의 경우).
- 전문 용어나 약어를 사용하지 않는 짧고 간단한 텍스트를 사용하세요.
| 금지사항 | 권장사항 |
|---|---|
|
|
|
설치 후 도움말
설치 후 도움말은 사용자가 부가기능을 설치한 직후에 표시되며 도움말에도 표시됩니다. 사용자가 빠르게 시작할 수 있도록 몇 문장이 있습니다.
- 동사부터 시작합니다.
- 부가기능을 사용하는 첫 번째 단계를 설명합니다.
- 사이드바와 같은 기본 UI가 있는 경우 이를 여는 방법을 설명합니다.
- 여기에서 부가기능을 홍보하지 마세요. 이미 설치되어 있습니다.
| 금지사항 | 권장사항 |
|---|---|
메뉴 항목
일반 Apps Script 프로젝트와 달리 부가기능은 스크립트 편집기 또는 스크립트 관리자에 표시되지 않으므로 사용자는 부가기능 스크립트를 직접 실행할 수 없습니다. 대신 모든 부가기능이 부가기능 메뉴에 표시됩니다. 메뉴 (및 대화상자 또는 사이드바)를 통해 사용자는 부가기능과 상호작용할 수 있습니다.
- 메뉴는 사용자가 부가기능을 제어하는 데 중요한 부분이므로 구조와 문구를 신중하게 디자인하세요.
- 부가기능의 이름을 단순히 반복하는 메뉴 항목은 피하세요. 대신 액션 단어로 시작합니다.
- 기본 메뉴 항목이 워크플로를 시작하고 그 기능을 설명하는 단일 동사가 없는 경우 '시작'이라고 합니다. 이 패턴은 Docs 부가기능 빠른 시작에서 사용됩니다.
- 메뉴에 항목이 6개를 초과하지 않는 한 하위 메뉴를 사용하지 않는 것이 좋습니다. 까다로워서 선택하기 어려울 수 있습니다.
- 메뉴 항목에 표시되는 UI 구성요소가 아닌 작업을 설명합니다.
| 금지사항 | 권장사항 |
|---|---|
오류 메시지
문제가 발생하면 평이한 언어를 사용하는 것이 중요합니다. 사용자의 관점에서 문제를 설명하고 해결 방법을 제안합니다.
- 사용자가 코드에서 발생하는 예외를 보지 못하도록 합니다. 대신
try...catch문을 사용하여 예외를 가로챈 다음 부가기능 CSS 패키지 또는 알림 대화상자의error클래스로 스타일이 지정된 인라인 텍스트가 포함된 사용자 친화적인 오류 메시지를 표시합니다. - 게시하기 전에 부가기능이 JavaScript 콘솔에 디버그 정보를 로깅하지 않는지 확인합니다. 대신 Stackdriver Logging을 사용하세요.
| 금지사항 | 권장사항 |
|---|---|
헬프(도움말) 콘텐츠
모든 부가기능의 메뉴에는 자동 도움말 대화상자가 포함되어 있습니다. 게시할 때 도움말 URL을 제공하면 '자세히 알아보기' 버튼이 해당 페이지로 연결됩니다. 부가기능이 설명이 필요 없는 경우 사용 방법을 설명하는 페이지를 제공하세요.
- 가능하면 글머리기호 또는 번호가 매겨진 목록으로 안내를 표시하세요. 이름이 지정된 UI 요소를 명확하게 참조하여 사용자를 최종 결과로 안내합니다.
- 특정 방식으로 스프레드시트를 설정하는 것과 같은 요구사항을 지침에 명확하게 설명해야 합니다.
- 기본 사용자 인터페이스에서도 도움말 콘텐츠로 연결할 수 있습니다. 부가기능이 새 문서를 만드는 경우 문서 본문에 안내를 표시할 수도 있습니다.
맞춤 사용자 인터페이스
일부 간단한 편집기 부가기능은 메뉴로 완전히 제어할 수 있지만 대부분은 맞춤 콘텐츠가 포함된 측면 패널 또는 대화상자를 표시합니다.
- 사이드바는 사용자가 문서 또는 스프레드시트의 콘텐츠를 참고하는 동안 반복적으로 사용할 가능성이 높은 지속적인 도구에 가장 적합합니다.
- 대화상자는 일회용 도구, 설정 페이지, 중요한 메시지에 가장 적합합니다.
UI 텍스트
대화상자나 사이드바에서는 사용자가 제목과 버튼 라벨만 읽는다고 가정합니다. 사용자는 여전히 인터페이스의 기능을 파악하고 적절한 선택을 할 수 있나요?
- 제목과 버튼 라벨을 단독으로 사용합니다.
- 긴 설명 텍스트 블록을 피하세요.
대화상자
대화상자는 사용자가 한 번 사용한 후 계속 진행하는 도구에 적합합니다. 예를 들어 사용자가 그래픽을 삽입할 수 있는 부가기능을 사용하는 경우 삽입할 항목을 선택할 수 있는 대화상자를 표시한 다음 그래픽이 삽입되면 대화상자를 닫을 수 있습니다. 대화상자는 부가기능 설정을 표시하거나 중요한 메시지를 전달하는 데도 유용합니다.
- 다른 대화상자에서 대화상자 (알림 또는 메시지 포함)를 열지 마세요. 한 번에 하나만 표시하세요.
- 대화상자 제목에는 가장 중요한 단어를 먼저 사용하여 단어 또는 짧은 문구를 사용하세요.
- 버튼 라벨은 대화상자 제목과 관련이 있어야 합니다.
- 일반적으로 기본 작업과 '취소'라는 두 가지 버튼을 사용하는 것이 좋습니다. 세 번째 버튼이 필요한 특별한 경우에는 오른쪽 하단을 고려하세요.
- 대화상자의 왼쪽 하단에 버튼을 배치합니다. 파란색 기본 버튼은 왼쪽에 있고 회색 보조 버튼은 오른쪽에 있어야 합니다.
| 금지사항 | 권장사항 |
|---|---|
메뉴
사이드바를 사용하면 사용자가 선택하는 동안 문서, 스프레드시트, 프레젠테이션 또는 양식을 다시 참고할 수 있습니다. 또한 사용자가 부가기능을 반복적으로 사용할 수 있습니다. 새 사이드바가 열릴 때마다 이전 사이드바가 자동으로 닫힙니다. 사용자가 완료 시 종료하는 임시 모드에 가장 적합합니다.
- 사용자에게 자체 사이드바가 있는 다른 부가기능이 있을 수 있습니다. 두 개의 부가기능이 사이드바를 동시에 열려고 하면 하나만 표시됩니다.
- 문서를 처음 열 때 사이드바나 대화상자를 표시하지 않습니다.
AuthMode.FULL에서 작동하는 부가기능만 사이드바 또는 대화상자를 열 수 있습니다. 메뉴 항목을 사용하여 사이드바를 열 수 있습니다. 그러면 사용자에게 전체 승인을 제공하라는 메시지가 표시됩니다.
컨트롤
우수한 부가기능 UI는 컨트롤에 여유 공간을 둡니다. 적절한 여백과 패딩은 큰 도움이 되지만 컨트롤이 너무 많으면 부담스러울 수 있습니다. 확실하지 않은 경우 편집기 자체에서 레이아웃을 빌리세요. 예를 들어 Google Docs에서 파일 > 페이지 설정과 같은 기존 대화상자를 검토한 후 직접 만드세요.
부가기능 CSS 패키지 문서에는 아래의 각 컨트롤 유형에 관한 샘플 마크업이 제공됩니다.
버튼
일반 링크나 기타 요소 대신 버튼을 사용하여 사용자 인터페이스의 기본 작업을 제어합니다.
- 한 번에 파란색, 빨간색, 녹색 버튼을 두 개 이상 표시하지 마세요. 회색 버튼이 반복해서 표시될 수 있습니다.
- 대부분의 버튼 라벨은 문장 부호를 사용하고 동사로 시작해야 합니다. 일반적으로 만들기 작업에 사용되는 빨간색 버튼은 대문자를 사용해야 합니다.
| 금지사항 | 권장사항 |
|---|---|
|
|
|
체크박스 및 라디오 버튼
사용자가 여러 옵션을 선택하거나 옵션을 선택하지 않을 수 있는 경우 체크박스를 사용합니다. 정확히 하나의 옵션을 선택해야 하는 경우 라디오 버튼 (또는 선택 메뉴)을 사용하세요.
- 라디오 버튼을 모방하기 위해 체크박스의 동작을 변경하지 마세요.
- 확인되면 즉시 아무것도 하지 마세요. 사람은 실수를 하기 마련입니다. 사용자가 버튼을 클릭하여 선택사항을 확인할 때까지 기다립니다.
메뉴 선택
선택 항목은 대안을 간단히 나열하는 데 유용합니다.
- 옵션을 알파벳순으로 정렬하거나 모든 사용자가 이해할 수 있는 논리적 스키마 (예: 일요일부터 시작하는 요일)로 정렬합니다.
- 목록이 너무 길어지면 다른 컨트롤을 사용하는 것이 좋습니다. 예를 들어 스크롤 가능한 목록을 표시하여 메뉴에 더 많은 공간을 확보하고 탐색을 쉽게 할 수 있습니다.
텍스트 영역
사용자가 몇 단어 이상 입력해야 하는 경우 텍스트 영역을 사용하세요.
- 텍스트 영역을 두 줄 이상으로 설정하여 더 쉽게 사용하고 텍스트 필드처럼 보이지 않도록 합니다.
- 라벨을 맨 위에 배치합니다.
입력란
사용자가 단어를 한두 개만 입력해야 하는 경우 텍스트 필드를 사용하세요.
- 텍스트 필드의 너비는 사용자가 입력할 내용을 암시해야 합니다.
- 자리표시자 텍스트는 포커스가 있을 때 사라지므로 라벨로 사용하지 마세요. 자리표시자 텍스트는 예시나 추가 세부정보를 제공하는 데 유용합니다.
- 라벨은 맨 위에 배치하되 짧은 텍스트 입력란은 나란히 배치해도 됩니다.
브랜딩
부가기능에서
브랜딩을 포함하려면 간단하고 가볍게 유지하세요. 이렇게 하면 사용자가 UI에 집중할 수 있고 부가기능이 편집기의 일부처럼 느껴집니다.
- 부가기능의 모든 측면은 브랜딩 가이드라인을 준수해야 합니다.
- 'Google'이라는 단어를 포함하거나 Google 제품 아이콘을 사용하지 마세요.
- 텍스트는 몇 단어 이하여야 하며 부가기능 CSS 패키지의
gray클래스로 스타일을 지정해야 합니다. - 그래픽은 흰색 배경에 있어야 하며 크기는 200x60픽셀 이하여야 합니다.
- 대화상자의 경우 브랜딩이 오른쪽 하단에 있어야 합니다.
- 사이드바의 경우 브랜딩은 상단 또는 하단에 있을 수 있습니다.
매장
편집기 부가기능을 게시하려면 여러 이미지 저작물이 필요합니다. 이러한 애셋은 부가기능 스토어 등록정보를 구성하는 데 사용됩니다.
접근성
색상을 다르게 보거나 스크린 리더를 사용하거나 다른 니즈가 있는 등 누구나 부가기능을 즐길 수 있어야 합니다. 접근성은 이 스타일 가이드에서 완전히 다룰 수 없는 광범위한 주제입니다. Google 접근성 사이트가 유용한 리소스입니다. 다음은 시작하는 데 도움이 되는 몇 가지 도움말입니다.
- 키보드로 모든 UI 컨트롤로 이동할 수 있는지 확인합니다. 사용자가 탭하여 이동할 수 있도록 맞춤 컨트롤 (예:
<div>로 만든 컨트롤)에tabindex=0를 추가합니다. 목록의 화살표와 같은 다른 키도 지원해야 하는지 고려하세요. - 일부 사용자는 부가기능과 함께 스크린 리더를 사용할 수 있습니다. 따라서 이미지에는
alt속성이 있어야 하며 맞춤 컨트롤에는 사용을 설명하는 ARIA 속성이 있어야 합니다. - 상태를 전달하는 데 색상만 사용하지 마세요. 아이콘과 텍스트도 사용하세요.
이 가이드 앞부분에 설명된 것과 같은 표준 웹 컨트롤을 사용하면 부가기능에 액세스하기가 더 쉽습니다.