Caixas de diálogo e barras laterais do complemento do editor
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Para a maioria dos complementos do editor,
as janelas de diálogo e os painéis da barra lateral são as principais interfaces de usuário do complemento.
Ambos são totalmente personalizáveis usando HTML e CSS padrão, e você pode usar o
modelo de comunicação cliente-servidor
do Apps Script
para executar funções do Apps Script quando o usuário interage com a barra lateral ou a caixa de diálogo.
Seu complemento pode definir várias barras laterais e caixas de diálogo, mas só é possível mostrar uma de cada vez.
Quando você quiser impedir que o usuário interaja com o editor até que ele
faça uma escolha na interface do complemento, use uma caixa de diálogo. Caso contrário, use uma
barra lateral.
Caixas de diálogo
As caixas de diálogo são painéis de janela que se sobrepõem ao conteúdo principal do editor. As caixas de diálogo do Apps Script são modais. Enquanto elas estão abertas, o usuário não pode interagir com os outros elementos da interface do editor. É possível personalizar o conteúdo e o tamanho das caixas de diálogo.
Você cria caixas de diálogo de complementos da mesma forma que as caixas de diálogo personalizadas do Apps Script. O procedimento geral recomendado é o seguinte:
Crie um arquivo de projeto de script que defina a estrutura HTML, o CSS e o comportamento do JavaScript do lado do cliente da caixa de diálogo. Ao definir a caixa de diálogo, consulte as diretrizes de estilo do complemento do editor.
As caixas de diálogo não suspendem o script do lado do servidor enquanto estão abertas. O JavaScript do lado do cliente pode fazer chamadas assíncronas para o lado do servidor usando google.script.run() e funções de manipulador associadas. Para mais detalhes, consulte
Comunicação entre cliente e servidor.
Caixas de diálogo de abertura de arquivos
As caixas de diálogo de abertura de arquivos são pré-criadas e permitem que os usuários selecionem arquivos
do Google Drive. É possível adicionar uma caixa de diálogo de abertura de arquivo ao complemento sem precisar criar um design, mas isso exige algumas configurações adicionais. Você também precisa de acesso ao projeto do Cloud Platform do complemento para ativar a API Google Picker.
As barras laterais são painéis que aparecem à direita da interface do editor e são o tipo mais comum de interface de complemento. Ao contrário das caixas de diálogo, você pode continuar interagindo com os outros elementos da interface do editor enquanto uma barra lateral está aberta. As barras laterais têm uma largura fixa, mas você pode personalizar o conteúdo delas.
Você cria barras laterais de complementos da mesma forma que as barras laterais personalizadas do Apps Script. O procedimento geral recomendado é o seguinte:
Crie um arquivo de projeto de script que defina a estrutura HTML, o CSS e o comportamento do JavaScript do lado do cliente da sua barra lateral. Ao definir a barra lateral, consulte as diretrizes de estilo do complemento do editor.
As barras laterais não suspendem o script do lado do servidor enquanto estão abertas. O JavaScript do lado do cliente pode fazer chamadas assíncronas para o lado do servidor usando google.script.run() e funções de manipulador associadas. Para mais detalhes, consulte
Comunicação entre cliente e servidor.
[null,null,["Última atualização 2025-08-21 UTC."],[[["\u003cp\u003eEditor add-ons primarily use customizable dialog windows and sidebar panels for user interfaces, built with HTML, CSS, and Apps Script.\u003c/p\u003e\n"],["\u003cp\u003eDialogs are modal windows, overlaying editor content and preventing interaction until a choice is made, while sidebars allow continued editor interaction.\u003c/p\u003e\n"],["\u003cp\u003eBoth dialogs and sidebars are created using HtmlService to define their structure and displayed using Ui methods.\u003c/p\u003e\n"],["\u003cp\u003eFile-open dialogs are pre-built for selecting files from Google Drive but need extra configuration and Cloud Platform project access.\u003c/p\u003e\n"],["\u003cp\u003eAdd-on sidebars have a fixed width of 300 pixels and appear on the right of the editor, enabling user interaction with other editor elements.\u003c/p\u003e\n"]]],["Editor add-ons utilize customizable dialogs and sidebars as user interfaces, built with HTML, CSS, and Apps Script. Dialogs, which overlay the editor, prevent user interaction until closed, created via `HtmlService` and displayed with `Ui.showModalDialog`. Sidebars, residing on the editor's right, allow continued editor interaction and are created and displayed similarly, using `Ui.showSidebar`. Both interfaces facilitate client-server communication through `google.script.run()` for asynchronous interactions. File-open dialogs offer pre-built file selection.\n"],null,["# Dialogs and sidebars for Editor add-on\n\nFor most [Editor add-on](/workspace/add-ons/concepts/types#editor_add-ons),\ndialog windows and sidebar panels are the primary add-on user interfaces.\nBoth are fully customizable using standard HTML and CSS, and you can use\nApps Script's\n[client-server communication model](/apps-script/guides/html/communication)\nto run Apps Script functions when the user interacts with the sidebar or dialog.\nYour add-on can define multiple sidebars and dialogs, but the add-on can display\nonly one at a time.\n\nWhen you want to prevent the user from interacting with the editor until they\nmake some choice in the add-on interface, use a dialog; otherwise use a\nsidebar.\n\nDialogs\n-------\n\n*Dialogs* are window panels that overlay the primary editor content. Apps Script\ndialogs are modal; while they are opened the user can't interact with the\nother elements of the editor interface. You can customize the content and size\nof dialogs.\n\nYou build add-on dialogs the same way as Apps Script\n[custom dialogs](/apps-script/guides/dialogs#custom_dialogs); the general\nrecommended procedure is the following:\n\n1. Create a script project file that defines your dialog's HTML structure, CSS, and client-side JavaScript behavior. When defining the dialog, refer to the [Editor add-on style guidelines](/workspace/add-ons/guides/editor-style#dialogs).\n2. In your server-side code where you want the dialog to open, call [`HtmlService.createHtmlOutputFromFile(filename)`](/apps-script/reference/html/html-service#createhtmloutputfromfilefilename) to create an [`HtmlOutput`](/apps-script/reference/html/html-output) object representing the dialog. Alternatively, if you are using [templated HTML](/apps-script/guides/html/templates) you can call [`HtmlService.createTemplateFromFile(filename)`](/apps-script/reference/html/html-service#createtemplatefromfilefilename) to generate a template and then [`HtmlTemplate.evaluate()`](/apps-script/reference/html/html-template#evaluate()) to convert it to an [`HtmlOutput`](/apps-script/reference/html/html-output) object.\n3. Call [`Ui.showModalDialog(htmlOutput, dialogTitle)`](/apps-script/reference/base/ui#showModalDialog(Object,String)) to display the dialog using that [`HtmlOutput`](/apps-script/reference/html/html-output).\n\nDialogs don't suspend the server-side script while they are open. The\nclient-side JavaScript can make asynchronous calls to the server-side\nusing [`google.script.run()`](/apps-script/guides/html/reference/run) and\nassociated handler functions. For more details, see\n[Client-to-server communication](/apps-script/guides/html/communication).\n\n### File-open dialogs\n\n*File-open dialogs* are pre-built dialogs that let your users select files\nfrom their Google Drive. You can add a file-open dialog to your add-on without\nneeding to design it, but it requires some additional configuration. You also\nrequire access to the add-on's\n[Cloud Platform project](/apps-script/guides/cloud-platform-projects)\nin order to enable the Google Picker API.\n\nFor full details, see [File-open dialogs](/apps-script/guides/dialogs#file-open_dialogs).\n\nSidebars\n--------\n\n*Sidebars* are panels that appear in the right of the editor interface, and\nare the most common type of add-on interface. Unlike dialogs, you can continue\nto interact with the other elements of the editor interface while a sidebar is\nopen. Sidebars have a fixed width, but you can customize their content.\n\nYou build add-on sidebars the same way as Apps Script\n[custom sidebars](/apps-script/guides/dialogs#custom_sidebars); the general\nrecommended procedure is the following:\n\n1. Create a script project file that defines your sidebar's HTML structure, CSS, and client-side JavaScript behavior. When defining the sidebar, refer to the [Editor add-on style guidelines](/workspace/add-ons/guides/editor-style#sidebars).\n2. In your server-side code where you want the sidebar to open, call\n [`HtmlService.createHtmlOutputFromFile(filename)`](/apps-script/reference/html/html-service#createhtmloutputfromfilefilename)\n to create an [`HtmlOutput`](/apps-script/reference/html/html-output)\n object representing the sidebar. Alternatively, if you are using\n [templated HTML](/apps-script/guides/html/templates) you can call\n [`HtmlService.createTemplateFromFile(filename)`](/apps-script/reference/html/html-service#createtemplatefromfilefilename)\n to generate a template and then\n [`HtmlTemplate.evaluate()`](/apps-script/reference/html/html-template#evaluate())\n to convert it to an\n [`HtmlOutput`](/apps-script/reference/html/html-output) object.\n\n | **Note:** Add-on sidebars have a fixed width of 300 pixels that you can't alter by calling [`HtmlOutput.setWidth(width)`](/apps-script/reference/html/html-output#setwidthwidth).\n3. Call [`Ui.showSidebar(htmlOutput)`](/apps-script/reference/base/ui#showSidebar(Object))\n to display the sidebar using that\n [`HtmlOutput`](/apps-script/reference/html/html-output).\n\nSidebars don't suspend the server-side script while they are open. The\nclient-side JavaScript can make asynchronous calls to the server-side\nusing [`google.script.run()`](/apps-script/guides/html/reference/run) and\nassociated handler functions. For more details, see\n[Client-to-server communication](/apps-script/guides/html/communication)."]]