Tiledesk Developer Hub
WebsiteCommunityTutorialsGet started
  • Introduction
  • Community
  • Ask for Support
  • Public Roadmap and Changelog
  • Tutorials
  • Widget
    • Widget SDK
    • Javascript API: Methods
    • Javascript API: Attributes
    • Javascript API: Listeners/Events
    • Widget Authentication
    • Widget Angular integration
    • Widget React integration
    • Widget for Android with WebView
    • Widget for iOS with WKWebView
    • Widget for Flutter with WebView
    • Widget for React with WebView
    • Widget for Wix Website platform
    • Tutorials
      • Hide widget
      • Show/Hide widget programmatically
      • Force widget loading without user interaction
      • Mobile positioning
      • Custom size (width/height)
      • Installing widget on selected pages
      • Custom widget style
    • Conversation Embedded Apps
      • Payment App Tutorial
      • Prechat form App Tutorial
    • Advanced
      • Preset the Widget on a specific Department
      • Authentication Flow
      • Widget protocol specs
      • Prechat Form JSON specs
      • Prevent multiple conversations
      • Old versions
        • Web SDK v4
  • External Chatbot
    • Introduction
    • Hello World tutorial
    • Chatbot to Human handoff
    • Send Text Buttons
    • Advanced Tutorials
      • Introduction
      • Tutorial 1 - Dialogflow as external chatbot
      • Tutorial 2 - Buttons and images
      • Tutorial 3 - Automatic human handoff with fallback intent
      • Tutorial 4 - Explicit Human handoff with user intent
      • Tutorial 5 - Gracefully handling operating hours during handoff
      • Generate Dialogflow Google Credentials file
    • Rasa tutorials
      • Rasa Tutorial 1 - Rasa as external chatbot
  • Resolution bot
    • Introduction
    • Quickstart
    • Webhook service
    • Rich messages
    • Tutorials
      • Chatbot chooser (multilanguage)
      • Department chooser
      • Order info (webhook)
  • APIs
    • REST APIs
      • Introduction
      • Authentication
      • Requests
      • Leads
      • Messages
      • Activities
      • Projects
      • Team
      • User
      • Analytics
      • Canned responses
      • Tags
      • Events
      • Jwt
      • Labels
      • Images
      • Files
      • Segments
      • Chatbots
      • Knowledge Bases
        • Knowledge Base
        • Contents
        • Question & Answer
      • Management Api
        • Departments
        • Groups
    • NodeJS SDK
    • Webhooks
      • Subscriptions
    • Conversation Messages APIs tips
    • Realtime API
    • JWT Authentication
      • JWT Custom authentication Tutorial
    • Tutorials
      • REST API
        • Sending and receiving messages with Tiledesk APIs
        • PHP Tiledesk REST API example
        • Import multiple messages into Tiledesk using REST APIs from third party app
      • Webhooks
        • Custom Request assignment
        • Request transcript on close
  • Apps
    • Build Custom App - Quick start
    • External Channels integration flow diagram
    • Telegram integration tutorial
  • Dashboard & AgentChat SDK
    • Dashboard SDK
    • Agent Chat SDK
  • Architecture
    • Architecture overview
    • Components list
    • Bot Design diagram
    • Multi Channel Message Flow
  • Installation
    • Installation
    • Running Tiledesk using Docker Compose
    • Running Tiledesk with Kubernetes using Helm
    • Choosing Hardware
  • Configuration
    • Chat21 channel configuration
    • Email parameters and templates configuration
    • Configure the logging system
Powered by GitBook
On this page

Was this helpful?

  1. Widget
  2. Tutorials

Custom widget style

PreviousInstalling widget on selected pagesNextConversation Embedded Apps

Last updated 3 days ago

Was this helpful?

In this tutorial we will show to you a simple tutorial of how to override the default style of the widget icon, and how to add a simple animation on hover event on the same element

You can use this example to override and change every element of the widget and customize it as you want. Simply remember to subsribe to 'onInit' navite Tiledesk event and append style to the and of the already loaded files

Here is a preview of the custom launcher icon override

Custom launcher icon

Here is the full code example

<html>
    <head>
        <script type="application/javascript">
            var PROJECT_ID = "<<TILEDESK_PROJECT_ID>>"
            window.tiledeskSettings =
            {
                projectid: PROJECT_ID,
            };
            (function (d, s, id) {
                var w = window; var d = document; var i = function () {i.c(arguments);};
                i.q = []; i.c = function (args) {i.q.push(args);}; w.Tiledesk = i;
                var js, fjs = d.getElementsByTagName(s)[0];
                if (d.getElementById(id)) return;
                js = d.createElement(s);
                js.id = id; js.async = true; js.src = "https://widget.tiledesk.com/v6/launch.js";
                fjs.parentNode.insertBefore(js, fjs);
            }(document, 'script', 'tiledesk-jssdk'));

            window.Tiledesk('onInit', function (event_data) {
                var iframeTiledesk = document.getElementById("tiledeskiframe");

                var style = iframeTiledesk.contentWindow.document.createElement('style');
                style.type = 'text/css';
                style.innerHTML = '.message_innerhtml.marked { font-size: 17!important;}\n';

                //add custom stype to launcher-button (image + border + background-image)
                style.innerHTML += '#c21-launcher-button > div > svg { display: none !important; }\n';
                style.innerHTML += '#c21-launcher-button .launcher-button { background-image: url("https://panel.tiledesk.com/v3/dashboard/assets/img/avatar_bot_tiledesk.svg"); background-repeat: no-repeat;}\n';
                style.innerHTML += '#c21-launcher-button { padding: 6px;background-color:unset !important;     border: 1px solid rgb(182, 20, 22);}\n';

                //add custom animation to launcher button on hover
                style.innerHTML += '#c21-launcher-button .launcher-button:hover { animation: fade-in 1.2s ease-in both;}'
                style.innerHTML += '@-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }'

                iframeTiledesk.contentWindow.document.getElementsByTagName('head')[0].appendChild(style);

            })

        </script>
    </head>

    <body>
        This Tiledesk example will change the default style of widget launcher icon and add a simple animation hovering it
    </body> 

</html>