{"version":1,"pages":[{"id":"-MhzNXmacOcLwtutkI8T","title":"Welcome to our dev guides","pathname":"/","siteSpaceId":"sitesp_Y2UUz","description":""},{"id":"-MhzXui4624Df6t49sPv","title":"What is Ubidots?","pathname":"/getting-started/sending-your-first-data-points","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"⚡️ Getting started"}]},{"id":"-MiSvj3b8azg-uW8j-_G","title":"Devices, variables, and Dots","pathname":"/getting-started/devices-variables-and-dots","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"⚡️ Getting started"}]},{"id":"-MiTOp8ESxvLPv_BbX1-","title":"Technical FAQs","pathname":"/getting-started/technical-faqs","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"⚡️ Getting started"}]},{"id":"-MiTR2n1Avi15kq7kJar","title":"Business FAQs","pathname":"/getting-started/business-faqs","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"⚡️ Getting started"}]},{"id":"SGd9cxGhwZFaTkQSnL2P","title":"HTML Canvas","pathname":"/dashboards-and-widgets/html-canvas","siteSpaceId":"sitesp_Y2UUz","description":"Build your own custom widgets with the HTML Canvas","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"}]},{"id":"u1qAAZNY8pjXNQvEc0E8","title":"Third-party packages","pathname":"/dashboards-and-widgets/html-canvas/3rd-party-packages","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"}]},{"id":"jVvwTUR5uj49nALg0qTu","title":"Preload dashboard data","pathname":"/dashboards-and-widgets/html-canvas/preload-dashboard-data","siteSpaceId":"sitesp_Y2UUz","description":"This feature makes the dashboard data available for the user at load time.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"}]},{"id":"oE1Mu10IwgcVGaBFf2aT","title":"Built-in library","pathname":"/dashboards-and-widgets/html-canvas/built-in-library","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"}]},{"id":"m38fi6Si7Fp5XB5ia36L","title":"Properties","pathname":"/dashboards-and-widgets/html-canvas/built-in-library/properties","siteSpaceId":"sitesp_Y2UUz","description":"This page describes the HTML Canvas class properties.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Built-in library"}]},{"id":"q67ojxnd9YIau4wncPaP","title":"Methods","pathname":"/dashboards-and-widgets/html-canvas/built-in-library/methods","siteSpaceId":"sitesp_Y2UUz","description":"This page describes the available methods within the HTML Canvas class","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Built-in library"}]},{"id":"RnHK0t0it06xwhHe78qu","title":"Listening events","pathname":"/dashboards-and-widgets/html-canvas/built-in-library/listening-events","siteSpaceId":"sitesp_Y2UUz","description":"Access dashboard settings via event handlers","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Built-in library"}]},{"id":"iWao5I31WO4beANQ62xe","title":"API","pathname":"/dashboards-and-widgets/html-canvas/built-in-library/api","siteSpaceId":"sitesp_Y2UUz","description":"Access the Ubidots JavaScript SDK from HTML Canvas","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Built-in library"}]},{"id":"Ds6HbOFvrvGt5eVHfDxX","title":"Examples","pathname":"/dashboards-and-widgets/html-canvas/examples","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"}]},{"id":"XnliEhqywMwu98Bhgk3Y","title":"Basics","pathname":"/dashboards-and-widgets/html-canvas/examples/basics","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"pbQQpEZQuYdU6UFc9UxD","title":"Create an LCD screen with the HTML Canvas","pathname":"/dashboards-and-widgets/html-canvas/examples/create-an-lcd-screen-with-the-html-canvas","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"WxMVnHRvf9RtAsEigxBH","title":"Interacting with dashboard data","pathname":"/dashboards-and-widgets/html-canvas/examples/interacting-with-dashboard-data","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"ltxplFDDMhJN7qTr7Xgl","title":"Change the header's custom style","pathname":"/dashboards-and-widgets/html-canvas/examples/change-headers-custom-style","siteSpaceId":"sitesp_Y2UUz","description":"This example shows how to dynamically change a widget's header style when a user clicks a button in the HTML Canvas widget.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"EfFYP0KYg3adieI1jn1s","title":"Adding real time using Socket.IO","pathname":"/dashboards-and-widgets/html-canvas/examples/adding-real-time-using-socket.io","siteSpaceId":"sitesp_Y2UUz","description":"Using the socket.IO library, create a simple real-time widget with Ubidots and the HTML Canvas.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"KvaLgoD2ar5JU2V70YlN","title":"Delete variable data from a device","pathname":"/dashboards-and-widgets/html-canvas/examples/delete-variable-data-from-a-device","siteSpaceId":"sitesp_Y2UUz","description":"Learn how to use an HTML Canvas widget to delete variable data from a device within a selected time window in Dynamic Dashboards.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"ww9XDbQz8IIOkOhGzGrd","title":"Delete variable data from Device Groups or Types","pathname":"/dashboards-and-widgets/html-canvas/examples/delete-variable-data-from-groups-or-types-of-devices","siteSpaceId":"sitesp_Y2UUz","description":"Use this example to build an HTML Canvas widget that lets you select a variable label, choose a time window, and delete the matching data.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"SA9DuApC2kKiwZ91AJwD","title":"Navigation through dashboard","pathname":"/dashboards-and-widgets/html-canvas/examples/navigation-through-dashboard","siteSpaceId":"sitesp_Y2UUz","description":"This example uses the HTML Canvas \"Preload dashboard data\" feature to implement dashboard navigation.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"qyhjkW05Z7k6DHcFzTF6","title":"Using a React library","pathname":"/dashboards-and-widgets/html-canvas/examples/using-a-react-library","siteSpaceId":"sitesp_Y2UUz","description":"This example shows how to import and use Material UI.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Examples"}]},{"id":"tcuaHXeTGL4GA35QAu0w","title":"Code editor","pathname":"/dashboards-and-widgets/html-canvas/code-editor","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"}]},{"id":"nutXbxxvLsNwdJj1vMp9","title":"HTML tab","pathname":"/dashboards-and-widgets/html-canvas/code-editor/html-tab","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Code editor"}]},{"id":"s2Yk3kxYWUomjHbpqK0D","title":"CSS tab","pathname":"/dashboards-and-widgets/html-canvas/code-editor/css-tab","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Code editor"}]},{"id":"t5y4pHQgGmcoepAlc14M","title":"JavaScript tab","pathname":"/dashboards-and-widgets/html-canvas/code-editor/javascript-tab","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"HTML Canvas"},{"label":"Code editor"}]},{"id":"PgFdNXyW6wfEFF1gC2NM","title":"Custom UI","pathname":"/dashboards-and-widgets/custom-ui","siteSpaceId":"sitesp_Y2UUz","description":"This article covers the Custom UI widget, its features, and how to use it.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"}]},{"id":"dAbfGvVyGCct5RDtXCF4","title":"Paragraph","pathname":"/dashboards-and-widgets/custom-ui/paragraph","siteSpaceId":"sitesp_Y2UUz","description":"Displays headings or paragraphs depending on the `type` property.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"}]},{"id":"Yhy2quCHGoXvbcWoABAk","title":"Input combo","pathname":"/dashboards-and-widgets/custom-ui/input-combo","siteSpaceId":"sitesp_Y2UUz","description":"Displays an input field based on the `type` property.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"}]},{"id":"X1ykPWnsF5XptdRrBiwn","title":"Text","pathname":"/dashboards-and-widgets/custom-ui/input-combo/text","siteSpaceId":"sitesp_Y2UUz","description":"Use text inputs within Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"mUIeHbBgBbQKM8HfIIAn","title":"Numeric","pathname":"/dashboards-and-widgets/custom-ui/input-combo/numeric","siteSpaceId":"sitesp_Y2UUz","description":"Use numeric input fields within the Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"JWKuUzWPqEe3gVAFHoNS","title":"Numeric with buttons","pathname":"/dashboards-and-widgets/custom-ui/input-combo/numeric-with-buttons","siteSpaceId":"sitesp_Y2UUz","description":"Use numeric input fields with buttons within the Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"E0zn60qBQOGqXiRyq2Jt","title":"Date","pathname":"/dashboards-and-widgets/custom-ui/input-combo/date","siteSpaceId":"sitesp_Y2UUz","description":"Use date input fields within the Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"9rhUezPR1uDh5IWLFajy","title":"Time","pathname":"/dashboards-and-widgets/custom-ui/input-combo/time","siteSpaceId":"sitesp_Y2UUz","description":"Use time input fields within the Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"u7l5HoUfkm2EiqBKddNv","title":"Toggle","pathname":"/dashboards-and-widgets/custom-ui/input-combo/toggle","siteSpaceId":"sitesp_Y2UUz","description":"Use toggle buttons in the Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"BKtSxYYRTKUgHzf6Qge7","title":"Dropdown","pathname":"/dashboards-and-widgets/custom-ui/input-combo/dropdown","siteSpaceId":"sitesp_Y2UUz","description":"Use dropdown lists in the Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"vO2DWCQlrkeQpJEZeKp3","title":"Multiple selection dropdown","pathname":"/dashboards-and-widgets/custom-ui/input-combo/multiple-selection-dropdown","siteSpaceId":"sitesp_Y2UUz","description":"Use multiple selection dropdown lists in the Custom UI widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"},{"label":"Input combo"}]},{"id":"jg3La8yE1J9IYtnJGNeU","title":"Button","pathname":"/dashboards-and-widgets/custom-ui/button","siteSpaceId":"sitesp_Y2UUz","description":"This element displays a button whose color reflects its status based on its type.","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom UI"}]},{"id":"7J6hni5KxbT88MfHSJpR","title":"Custom style","pathname":"/dashboards-and-widgets/custom-style","siteSpaceId":"sitesp_Y2UUz","description":"Customize your App beyond the branding level with the Custom Style editor for Dashboards and Widgets","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"}]},{"id":"E5xAoVtpZ4dS9LMDgv0z","title":"Dashboards","pathname":"/dashboards-and-widgets/custom-style/dashboards","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom style"}]},{"id":"262jF6Z9ncCEajXKBen4","title":"Widgets","pathname":"/dashboards-and-widgets/custom-style/widgets","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"},{"label":"Custom style"}]},{"id":"BheBEY6bzz3t64SnJQv0","title":"Line Chart","pathname":"/dashboards-and-widgets/line-chart","siteSpaceId":"sitesp_Y2UUz","description":"Visualize time series data in Ubidots with the Line Chart widget","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"}]},{"id":"B5V91zAPGnSsRCpePDfa","title":"Gauge","pathname":"/dashboards-and-widgets/gauge","siteSpaceId":"sitesp_Y2UUz","description":"Visualize single-value data in Ubidots in the form of Gauge charts","breadcrumbs":[{"label":"Dashboards & widgets","emoji":"1f4ca"}]},{"id":"-MhzPph3WjQ6AsV3eFmO","title":"Getting started","pathname":"/ubifunctions/getting-started","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"}]},{"id":"-MhzO99Ndn76tMyxruO-","title":"Creating an UbiFunction","pathname":"/ubifunctions/getting-started/creating-an-ubifunction","siteSpaceId":"sitesp_Y2UUz","description":"Step-by-step guide to creating a UbiFunction","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Getting started"}]},{"id":"-MiTH9aMIyEOH8xcsmfY","title":"Coding an UbiFunction","pathname":"/ubifunctions/getting-started/coding-an-ubifunction","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Getting started"}]},{"id":"gGvWTDKqo3b1EAiBbRQL","title":"Testing an UbiFunction","pathname":"/ubifunctions/getting-started/testing-an-ubifunction","siteSpaceId":"sitesp_Y2UUz","description":"How to test-run your UbiFunction","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Getting started"}]},{"id":"-MhzQHagDL2-wSmfzMYV","title":"Authentication","pathname":"/ubifunctions/getting-started/authentication","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Getting started"}]},{"id":"-MhzQKTYEHMbfftTCq_u","title":"Execution Time","pathname":"/ubifunctions/getting-started/execution-time","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Getting started"}]},{"id":"-MhzQMVOZ-S8zfLZ8_rt","title":"Logs","pathname":"/ubifunctions/getting-started/logs","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Getting started"}]},{"id":"-MhzPm3J5-ZRjgu0HHGj","title":"Runtimes","pathname":"/ubifunctions/runtimes","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"}]},{"id":"-Mi-cMPoORb2_2LdKOJe","title":"Python","pathname":"/ubifunctions/runtimes/python","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Runtimes"}]},{"id":"-MhzU-OcEPbuDZqN18IS","title":"NodeJS","pathname":"/ubifunctions/runtimes/nodejs","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Runtimes"}]},{"id":"-Mi-cY5Fc-Vvlx5v1hOX","title":"Custom runtimes","pathname":"/ubifunctions/runtimes/custom-runtimes","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Runtimes"}]},{"id":"-MhzQVN8b0oPxe3zEGyq","title":"Invocation","pathname":"/ubifunctions/invocation","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"}]},{"id":"-Mi-eEb45Goeng69jPhz","title":"Time-based trigger","pathname":"/ubifunctions/invocation/time-based-trigger","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Invocation"}]},{"id":"-Mi-eLvDj0PwGBxKREww","title":"HTTPS","pathname":"/ubifunctions/invocation/https","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Invocation"}]},{"id":"-Mi-eKEd0nEmWJZLtrQk","title":"MQTT publish","pathname":"/ubifunctions/invocation/mqtt","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Invocation"}]},{"id":"xvA7O3hArOviNfXOQA2A","title":"CoAP","pathname":"/ubifunctions/invocation/coap","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Invocation"}]},{"id":"-MiTD1tIhWmB2zUnXdAK","title":"Ubidots event","pathname":"/ubifunctions/invocation/ubidots-event","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Invocation"}]},{"id":"-MhzQY7cyUPKO5xtV9AF","title":"Advanced","pathname":"/ubifunctions/advanced","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"}]},{"id":"AADGI4MaMUTu6Ad3ag8o","title":"Account token","pathname":"/ubifunctions/advanced/account-token","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Advanced"}]},{"id":"GQF8Cn9I6xIXm1Sk4zTM","title":"Execution time","pathname":"/ubifunctions/advanced/execution-time","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Advanced"}]},{"id":"-Mi-eS5v8tvHXxmoqcU2","title":"Raw functions","pathname":"/ubifunctions/advanced/raw-functions","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Advanced"}]},{"id":"RNTT8yxGj847Bd2ebk38","title":"CORS policy","pathname":"/ubifunctions/advanced/cors-policy","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Advanced"}]},{"id":"-Mi-eUr_zUezh5wtKFUS","title":"Async execution","pathname":"/ubifunctions/advanced/async-execution","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Advanced"}]},{"id":"-MhzQeFxefYmpMTu2J8-","title":"Examples","pathname":"/ubifunctions/examples","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"}]},{"id":"-MhzQapwQp2vBPyH377g","title":"Specs and limits","pathname":"/ubifunctions/specs-and-limits","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"}]},{"id":"gAtaVEzkk63juWIVWjPX","title":"Storage","pathname":"/ubifunctions/storage","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"}]},{"id":"8C1XZcOv7yLabLJLgevU","title":"File storage API","pathname":"/ubifunctions/storage/file-storage-api","siteSpaceId":"sitesp_Y2UUz","description":"The Ubidots File Storage API enables account owners to securely upload, retrieve, manage, and delete files within UbiFunctions.","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Storage"}]},{"id":"eMIxMhn2xvu2PUVJA8mU","title":"Multiple files","pathname":"/ubifunctions/storage/mutiple-files","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"UbiFunctions","emoji":"1f916"},{"label":"Storage"}]},{"id":"jiNaX2K9irvV1vON1L7l","title":"What is a plugin?","pathname":"/plugins/what-is-a-plugin","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"}]},{"id":"cBzNxbgKRSxXpMeUC7CB","title":"Public vs. private","pathname":"/plugins/public-vs.-private","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"}]},{"id":"2gK6ne3iEfiBzzxToLL9","title":"Public plugins","pathname":"/plugins/public-plugins","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"}]},{"id":"ifeimL8m7FxzKlMGAD4T","title":"Cron","pathname":"/plugins/public-plugins/cron","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Public plugins"}]},{"id":"EyqKMA52LBGjltHNcs5N","title":"Webhook","pathname":"/plugins/public-plugins/webhook","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Public plugins"}]},{"id":"YX8U2sa4o87CzK5im4K3","title":"Widget","pathname":"/plugins/public-plugins/widget","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Public plugins"}]},{"id":"y6JQhF1KBcDzwb9Vtae2","title":"Private plugins","pathname":"/plugins/private-plugins","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"}]},{"id":"7MziWvY1O31Eqt6xd5nm","title":"Cron","pathname":"/plugins/private-plugins/cron","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Private plugins"}]},{"id":"j5SPHRpQAJafR32D0plY","title":"Webhook","pathname":"/plugins/private-plugins/webhook","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Private plugins"}]},{"id":"LQSC6UFPk5LHXh6v4LlP","title":"Widget","pathname":"/plugins/private-plugins/widget","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Private plugins"}]},{"id":"2ba8br8YpAqOor51WY1E","title":"Device","pathname":"/plugins/private-plugins/device","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Private plugins"}]},{"id":"OJV7uRDzJNqB5XP3a8OX","title":"Plugins development","pathname":"/plugins/plugins-development","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"}]},{"id":"5oF4a3D9QuSzVtmket49","title":"Getting started","pathname":"/plugins/plugins-development/getting-started","siteSpaceId":"sitesp_Y2UUz","description":"Step-by-step walkthrough for building your first widget plugin using the Highcharts library.","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins development"}]},{"id":"rOXxLSuVRECFLwBSShdE","title":"Cron","pathname":"/plugins/plugins-development/cron","siteSpaceId":"sitesp_Y2UUz","description":"Learn the specifics of developing a Cron plugin.","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins development"}]},{"id":"uMjYgcn6XkaTixPJ3k3G","title":"Webhook","pathname":"/plugins/plugins-development/webhook","siteSpaceId":"sitesp_Y2UUz","description":"Learn the specifics of developing a webhook plugin.","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins development"}]},{"id":"rS0xzSFJNeWovSJ42Sfh","title":"Widget","pathname":"/plugins/plugins-development/widget","siteSpaceId":"sitesp_Y2UUz","description":"Learn the specifics of developing a widget plugin.","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins development"}]},{"id":"3swuePrz8tIrfNH4G7Er","title":"Device","pathname":"/plugins/plugins-development/device","siteSpaceId":"sitesp_Y2UUz","description":"Learn the specifics of developing a device plugin.","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins development"}]},{"id":"m19U0lqO1XcB4bNwEA5M","title":"view.xml","pathname":"/plugins/plugins-development/view.xml","siteSpaceId":"sitesp_Y2UUz","description":"This page lists all of the available tags within the view.xml file and how to access them from within the plugin","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins development"}]},{"id":"8k1p9YWRHCOVKqUXP9YJ","title":"view_widget.xml","pathname":"/plugins/plugins-development/view_widget.xml","siteSpaceId":"sitesp_Y2UUz","description":"This page lists all of the available tags within the view_widget.xml file and how to access them from within the widget","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins development"}]},{"id":"Cb4Pyn7KR79XeItpp04E","title":"Plugins deployment","pathname":"/plugins/plugins-deployment","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"}]},{"id":"vniSDd3O8AmfZXzxTt30","title":"Cron and webhook","pathname":"/plugins/plugins-deployment/cron-and-webhook","siteSpaceId":"sitesp_Y2UUz","description":"This page depicts the process of deploying Cron and Webhook plugins","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins deployment"}]},{"id":"F3vCCKx3eDQhBQmQUnTn","title":"Widget","pathname":"/plugins/plugins-deployment/widget","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins deployment"}]},{"id":"Ms3bj1kqzNlmEDeXk5Np","title":"Device","pathname":"/plugins/plugins-deployment/device","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Plugins deployment"}]},{"id":"GJKn7yGwzAZVPpLelner","title":"Using the plugins","pathname":"/plugins/using-the-plugins","siteSpaceId":"sitesp_Y2UUz","description":"This section covers the use of plugins once they are deployed","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"}]},{"id":"uZkgFujhEiWxZAGHQVaH","title":"Cron and webhook","pathname":"/plugins/using-the-plugins/cron-and-webhook","siteSpaceId":"sitesp_Y2UUz","description":"This page shows the process of using a Cron or Webhook plugin.","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Using the plugins"}]},{"id":"eUzX6ZdXgr7JNIGL4jgo","title":"Widget","pathname":"/plugins/using-the-plugins/widget","siteSpaceId":"sitesp_Y2UUz","description":"This page depicts the process of using a Widget plugin.","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Using the plugins"}]},{"id":"kki7vejYw2OIfL8tg93m","title":"Device","pathname":"/plugins/using-the-plugins/device","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Plugins","emoji":"1f9e9"},{"label":"Using the plugins"}]},{"id":"oyMSbp8Cb3v3jAO3LbG4","title":"Getting started","pathname":"/synthetic-variables/getting-started","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"}]},{"id":"viYIpauEqV3UKhDV4Knj","title":"Creating synthetic variables","pathname":"/synthetic-variables/getting-started/creating-synthetic-variables","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Getting started"}]},{"id":"TzZrWFHnaEKeppJdrnEq","title":"Synthetic variables' editor","pathname":"/synthetic-variables/getting-started/synthetic-variables-editor","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Getting started"}]},{"id":"wMv92sZ157ZoqVvLt6wU","title":"Expressions","pathname":"/synthetic-variables/expressions","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"}]},{"id":"lhyHeciOt5oljFkY6Fqp","title":"Mathematical","pathname":"/synthetic-variables/expressions/mathematical","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Expressions"}]},{"id":"J4JtQ9QMFXEKASftuqDR","title":"Date range","pathname":"/synthetic-variables/expressions/date-range","siteSpaceId":"sitesp_Y2UUz","description":"Ubidots lets you build new variables from time-series data over a date range. For example, you can calculate the mean, sum, or median per hour using a synthetic variable based on your sensor inputs.","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Expressions"}]},{"id":"7vWLeS60gpUxM8EHs9S6","title":"Rolling","pathname":"/synthetic-variables/expressions/rolling","siteSpaceId":"sitesp_Y2UUz","description":"Compute a rolling value over a time window or number of values using mean, sum, min, max, or count.","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Expressions"}]},{"id":"abFbUhNSqgSrBJjYFO66","title":"Special functions","pathname":"/synthetic-variables/expressions/special-functions","siteSpaceId":"sitesp_Y2UUz","description":"Use functions to work with time series, fill gaps in missing data, write conditional statements, compute cumulative sums, and shift values in a series.","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Expressions"}]},{"id":"ZQKLR9BIb9DOqnktNQBW","title":"Specs and limits","pathname":"/synthetic-variables/specs-and-limits","siteSpaceId":"sitesp_Y2UUz","description":"Synthetic variables have the following limits for performance and the coding environment.","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"}]},{"id":"PvVzwFDTWIuxkOEPCXTA","title":"Examples","pathname":"/synthetic-variables/examples","siteSpaceId":"sitesp_Y2UUz","description":"Here are some examples of how to use synthetic variables and its functions.","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"}]},{"id":"0RQMCTtl8SHrV7xwt5tP","title":"Mathematical","pathname":"/synthetic-variables/examples/mathematical","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Examples"}]},{"id":"RD6iu8bw1YxJJBhseETW","title":"Date range","pathname":"/synthetic-variables/examples/date-range","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Examples"}]},{"id":"O0tOFbm8mhT7VQ8je5LB","title":"Rolling","pathname":"/synthetic-variables/examples/rolling","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Examples"}]},{"id":"CGhbemiLK4vc4XyeqhaK","title":"Special functions","pathname":"/synthetic-variables/examples/special-functions","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Synthetic variables","emoji":"1f4c8"},{"label":"Examples"}]},{"id":"cCX2QRJeP5KTb8momRkA","title":"Javascript SDK","pathname":"/sdks/javascript","siteSpaceId":"sitesp_Y2UUz","description":"Table of contents","breadcrumbs":[{"label":"Developer tools","emoji":"2328"}]},{"id":"eSEBN6HTtYqRJwsWI8e9","title":"Overview","pathname":"/sdks/javascript/overview","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"}]},{"id":"DwNr9J09hOOJB4elk9SA","title":"Getting started","pathname":"/sdks/javascript/getting-started","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"}]},{"id":"YwtqICzRyLwDCGebWYH6","title":"Ubidots class","pathname":"/sdks/javascript/ubidots-class","siteSpaceId":"sitesp_Y2UUz","description":"Ubidots JavaScript library's main class.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"}]},{"id":"XFULG0XtbVJAeNEvhlxe","title":"Get methods","pathname":"/sdks/javascript/ubidots-class/get-methods","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"},{"label":"Ubidots class"}]},{"id":"dqnw0Zx1savNjukz4Gu6","title":"Filter methods","pathname":"/sdks/javascript/ubidots-class/filter-methods","siteSpaceId":"sitesp_Y2UUz","description":"Use Ubidots field filters.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"},{"label":"Ubidots class"}]},{"id":"RDjvU0qBg1yyOJDnx5dv","title":"Ubidots objects","pathname":"/sdks/javascript/ubidots-class/ubidots-objects","siteSpaceId":"sitesp_Y2UUz","description":"The following are relevant types within the library.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"},{"label":"Ubidots class"}]},{"id":"sii1jq6igs2UcPaeM7zs","title":"Entity object","pathname":"/sdks/javascript/ubidots-class/ubidots-objects/entity-object","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"},{"label":"Ubidots class"},{"label":"Ubidots objects"}]},{"id":"mXsub3HPa5jiVAvQP6ZM","title":"Paginator","pathname":"/sdks/javascript/ubidots-class/ubidots-objects/paginator","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"},{"label":"Ubidots class"},{"label":"Ubidots objects"}]},{"id":"XjWGgwbyxRuDaIBSME0G","title":"Examples","pathname":"/sdks/javascript/examples","siteSpaceId":"sitesp_Y2UUz","description":"How to use UJL","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"Javascript SDK"}]},{"id":"Dz3otxIP7mLvfEhbILvS","title":"CLI","pathname":"/sdks/cli","siteSpaceId":"sitesp_Y2UUz","description":"The Ubidots CLI allows you to manage devices, variables, cloud functions, and pages from the terminal for faster automation and testing","breadcrumbs":[{"label":"Developer tools","emoji":"2328"}]},{"id":"5XE4ZUagTyGu6WKlJ19r","title":"Overview","pathname":"/sdks/cli/overview","siteSpaceId":"sitesp_Y2UUz","description":"Learn how to interact with Ubidots from your local machine using the Ubidots CLI.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"CLI"}]},{"id":"qg7u3hobTdCgJcAfVrsb","title":"Installing","pathname":"/sdks/cli/installing","siteSpaceId":"sitesp_Y2UUz","description":"Install the Ubidots CLI on your local machine.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"CLI"}]},{"id":"MN5Ul6d6SXYmbhXee2ry","title":"Configuration","pathname":"/sdks/cli/configuration","siteSpaceId":"sitesp_Y2UUz","description":"Configure the Ubidots CLI to connect with your account.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"CLI"}]},{"id":"B9PRRJqCiDSFM7B6LPhQ","title":"Devices","pathname":"/sdks/cli/devices","siteSpaceId":"sitesp_Y2UUz","description":"Create, read, update, and delete devices using the Ubidots CLI.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"CLI"}]},{"id":"gI5BGvGHxU4cPSF4Vbeq","title":"Variables","pathname":"/sdks/cli/variables","siteSpaceId":"sitesp_Y2UUz","description":"Create, read, update, and delete variables using the Ubidots CLI.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"CLI"}]},{"id":"vKecyo86qJ0pWg0EFKzn","title":"UbiFunctions","pathname":"/sdks/cli/ubifunctions","siteSpaceId":"sitesp_Y2UUz","description":"Create, manage, and locally develop UbiFunctions using the Ubidots CLI.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"CLI"}]},{"id":"tbmS1yKM9OpgcbzOb6x5","title":"Pages","pathname":"/sdks/cli/pages","siteSpaceId":"sitesp_Y2UUz","description":"Create, manage, and locally develop Pages using the Ubidots CLI.","breadcrumbs":[{"label":"Developer tools","emoji":"2328"},{"label":"CLI"}]},{"id":"BTJDFt4oqGOLhjTMutnZ","title":"Dashboard runtime library","pathname":"/sdks/dashboard-runtime-library","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Developer tools","emoji":"2328"}]},{"id":"YmOq6CpqwG9WaOqXizfd","title":"Pages","pathname":"/apps/pages","siteSpaceId":"sitesp_Y2UUz","description":"Learn about Ubidots custom dashboard pages","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"}]},{"id":"Xpfj1nDwxtNUE1UOePBg","title":"Getting started","pathname":"/apps/pages/getting-started","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Pages"}]},{"id":"goNlf3PXdKTYn0aLQodh","title":"Development","pathname":"/apps/pages/development","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Pages"}]},{"id":"iTLHd8SfHXYpiGV3J6dy","title":"API","pathname":"/apps/pages/api","siteSpaceId":"sitesp_Y2UUz","description":"","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Pages"}]},{"id":"H43gVAuaU1MivygI2QZM","title":"Page creation","pathname":"/apps/pages/api/page-creation","siteSpaceId":"sitesp_Y2UUz","description":"Step-by-step guide on how to create a Page","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Pages"},{"label":"API"}]},{"id":"DhTKSRdtFcVKSrogzarZ","title":"Publish","pathname":"/apps/pages/api/publish","siteSpaceId":"sitesp_Y2UUz","description":"Publish your code as a ZIP file","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Pages"},{"label":"API"}]},{"id":"rShQVYo9pn63WRItEriX","title":"Custom sidebar menu","pathname":"/apps/custom-sidebar","siteSpaceId":"sitesp_Y2UUz","description":"Customize the sidebar elements to create user-aware navigations.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"}]},{"id":"RoREZue6JOFdqqPgBSJS","title":"XML v2.0","pathname":"/apps/custom-sidebar/xml-v2.0","siteSpaceId":"sitesp_Y2UUz","description":"Create a sidebar navigation that's more elaborate and dynamic.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Custom sidebar menu"}]},{"id":"Dv4dUrNNrOdTPoOCGXJX","title":"XML v1.0 (deprecated)","pathname":"/apps/custom-sidebar/xml-v1.0-deprecated","siteSpaceId":"sitesp_Y2UUz","description":"Create a custom sidebar navigation panel.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Custom sidebar menu"}]},{"id":"b5dxoQzYru3QoyewHcum","title":"Styling with CSS","pathname":"/apps/styling-with-css","siteSpaceId":"sitesp_Y2UUz","description":"Use CSS stylesheets to customize your App's identity even further.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"}]},{"id":"DM9cGLwWNBzt6ozjT9vd","title":"Application CSS","pathname":"/apps/styling-with-css/application-css","siteSpaceId":"sitesp_Y2UUz","description":"CSS classes to target application components.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Styling with CSS"}]},{"id":"NvKNmI7Vieq1fCy4WXZT","title":"Core/Entity classes","pathname":"/apps/styling-with-css/application-css/core-entity-classes","siteSpaceId":"sitesp_Y2UUz","description":"Application and entity specific classes.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Styling with CSS"},{"label":"Application CSS"}]},{"id":"VCThtgo5qKcO17nUe4aW","title":"Table","pathname":"/apps/styling-with-css/application-css/table","siteSpaceId":"sitesp_Y2UUz","description":"Classes for the Table component.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Styling with CSS"},{"label":"Application CSS"}]},{"id":"U3sUR4oFEKSJGcdqyRDt","title":"Sidebar","pathname":"/apps/styling-with-css/application-css/sidebar","siteSpaceId":"sitesp_Y2UUz","description":"Classes for the Sidebar component.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Styling with CSS"},{"label":"Application CSS"}]},{"id":"Ts25LhbkzvJcBOK7oTmm","title":"Login page CSS","pathname":"/apps/styling-with-css/login-page-css","siteSpaceId":"sitesp_Y2UUz","description":"CSS classes to target login page components.","breadcrumbs":[{"label":"Custom IoT applications","emoji":"1f3d7"},{"label":"Styling with CSS"}]}]}