diff --git a/addtoany.module b/addtoany.module
index 5b92435..4a91e8a 100644
--- a/addtoany.module
+++ b/addtoany.module
@@ -13,32 +13,38 @@ use Drupal\Component\Utility\UrlHelper;
 use Drupal\node\Entity\NodeType;
 
 /**
-* Implements hook_theme().
-*/
+ * Implements hook_theme().
+ */
 function addtoany_theme() {
-  return array(
-    'addtoany_standard' => array(
-      'variables' => array(
+  return [
+    'addtoany_standard' => [
+      'variables' => [
         'addtoany_html' => FALSE,
-      ),
-    ),
-  );
+        'link_url' => FALSE,
+        'link_title' => FALSE,
+        'buttons_size' => FALSE,
+        'button_setting' => FALSE,
+        'button_image' => FALSE,
+        'universal_button_placement' => FALSE,
+      ],
+    ],
+  ];
 }
 
 /**
  * Implements hook_entity_extra_field_info().
  */
 function addtoany_entity_extra_field_info() {
-  $extra = array();
+  $extra = [];
 
   /** @var \Drupal\node\NodeTypeInterface $bundle */
   foreach (NodeType::loadMultiple() as $bundle) {
-    $extra['node'][$bundle->id()]['display']['addtoany'] = array(
+    $extra['node'][$bundle->id()]['display']['addtoany'] = [
       'label' => t('AddToAny'),
       'description' => t('Share buttons by AddToAny'),
       'weight' => 5,
       'visible' => FALSE,
-    );
+    ];
   }
 
   return $extra;
@@ -49,13 +55,20 @@ function addtoany_entity_extra_field_info() {
  */
 function addtoany_node_view(array &$build, EntityInterface $node, EntityViewDisplayInterface $display, $view_mode) {
   if ($display->getComponent('addtoany') && $node->isPublished()) {
-    $build['addtoany'] = array(
-      // Not using #markup because data attribute name gets mangled
+    $data = addtoany_create_node_data($node);
+    $build['addtoany'] = [
+      // Not using #markup because data attribute name gets mangled.
       // @see https://www.drupal.org/node/2609928
       // '#markup' => addtoany_create_node_data($node),
-      '#addtoany_html' => addtoany_create_node_buttons($node),
+      '#addtoany_html' => $data['addtoany_html'],
+      '#link_url' => $data['link_url'],
+      '#link_title' => $data['link_title'],
+      '#button_setting' => $data['button_setting'],
+      '#button_image' => $data['button_image'],
+      '#universal_button_placement' => $data['universal_button_placement'],
+      '#buttons_size' => $data['buttons_size'],
       '#theme' => 'addtoany_standard',
-    );
+    ];
   }
 }
 
@@ -63,9 +76,9 @@ function addtoany_node_view(array &$build, EntityInterface $node, EntityViewDisp
  * Implements hook_page_attachments().
  */
 function addtoany_page_attachments(&$page) {
-	global $_addtoany_init, $_addtoany_targets;
+  global $_addtoany_init, $_addtoany_targets;
 
-	$config = \Drupal::config('addtoany.settings');
+  $config = \Drupal::config('addtoany.settings');
 
   /**
    * Initial JS.
@@ -77,16 +90,16 @@ function addtoany_page_attachments(&$page) {
     $node = \Drupal::routeMatch()->getParameter('node');
     $data = [];
     if ($node) {
-       $data = ['node' => $node];
-       $additional_js = \Drupal::token()->replace($additional_js, $data);
+      $data = ['node' => $node];
+      $additional_js = \Drupal::token()->replace($additional_js, $data);
     }
   }
 
-	$javascript_header = 'window.a2a_config=window.a2a_config||{};'
-	  . 'a2a_config.callbacks=a2a_config.callbacks||[];'
-	  . 'a2a_config.templates=a2a_config.templates||{};'
-		. (($config->get('no_3p')) ? 'a2a_config.no_3p=1;' : '')
-		. $additional_js;
+  $javascript_header = 'window.a2a_config=window.a2a_config||{};'
+    . 'a2a_config.callbacks=a2a_config.callbacks||[];'
+    . 'a2a_config.templates=a2a_config.templates||{};'
+    . (($config->get('no_3p')) ? 'a2a_config.no_3p=1;' : '')
+    . $additional_js;
 
   // Add AddToAny initial JS config.
   $page['#attached']['html_head'][] = [
@@ -100,7 +113,7 @@ function addtoany_page_attachments(&$page) {
       '#weight' => 10,
     ],
     // A key, to make it possible to recognize this HTML <HEAD> element when altering.
-    'addtoany-js'
+    'addtoany-js',
   ];
 
   /**
@@ -120,14 +133,14 @@ function addtoany_page_attachments(&$page) {
         '#weight' => 10,
       ],
       // A key, to make it possible to recognize this HTML <HEAD> element when altering.
-      'addtoany-css'
+      'addtoany-css',
     ];
   }
 
   /**
    * Add module's main library, which includes external AddToAny core JS, and the module's CSS.
    */
-	$page['#attached']['library'][] = 'addtoany/addtoany';
+  $page['#attached']['library'][] = 'addtoany/addtoany';
 }
 
 /**
@@ -136,13 +149,14 @@ function addtoany_page_attachments(&$page) {
  * @param object $node
  *   The node object to create the buttons for.
  *
- * @return string
- *   The HTML code for the buttons.
+ * @return array
+ *   The array with url, title, additional_html that will be send to Twig.
  */
-function addtoany_create_node_buttons($node) {
-  $url = isset($node) ? $node->url('canonical', array('absolute' => true)) : NULL;
+function addtoany_create_node_data($node) {
+  $url = isset($node) ? $node->url('canonical', ['absolute' => TRUE]) : NULL;
   $title = isset($node) ? $node->label() : NULL;
-  return addtoany_create_buttons($url, $title);
+  return addtoany_create_data($url, $title);
+
 }
 
 /**
@@ -155,24 +169,26 @@ function addtoany_create_node_buttons($node) {
  *   If present this will be used as the title. Use an empty string for no title
  *   or NULL to use the current page title.
  *
- * @return string
- *   The HTML code for the buttons.
+ * @return array
+ *   The array with url, title, additional_html that will be send to Twig.
  */
-function addtoany_create_buttons($url = NULL, $title = NULL) {
-	global $base_path;
+function addtoany_create_data($url = NULL, $title = NULL) {
+  global $base_path;
 
-	$config = \Drupal::config('addtoany.settings');
+  $config = \Drupal::config('addtoany.settings');
 
-	$additional_html = rtrim($config->get('additional_html'));
-	$universal_button_placement = $config->get('universal_button_placement');
+  $additional_html = rtrim($config->get('additional_html'));
+  $universal_button_placement = $config->get('universal_button_placement');
 
-	$is_front = \Drupal::service('path.matcher')->isFrontPage();
+  $is_front = \Drupal::service('path.matcher')->isFrontPage();
 
   // Default to <front> or the current path.
   if (!isset($url)) {
     // Use <front> for the front page to avoid '/node' as the final URL,
     // otherwise use current path.
-    $url = ($is_front) ? Url::fromRoute('<front>')->setAbsolute()->toString() : Url::fromRoute('<current>')->setAbsolute()->toString();
+    $url = ($is_front) ? Url::fromRoute('<front>')
+      ->setAbsolute()
+      ->toString() : Url::fromRoute('<current>')->setAbsolute()->toString();
   }
   else {
     // Sanitize and encode URL for HTML output.
@@ -189,10 +205,11 @@ function addtoany_create_buttons($url = NULL, $title = NULL) {
     else {
       $request = \Drupal::request();
       $route_match = \Drupal::routeMatch();
-      $title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
+      $title = \Drupal::service('title_resolver')
+        ->getTitle($request, $route_match->getRouteObject());
       // Expecting array|string|null from getTitle
       if (is_array($title)) {
-        $title['#allowed_tags'] = array();
+        $title['#allowed_tags'] = [];
         $title = \Drupal::service('renderer')->renderPlain($title);
       }
     }
@@ -205,51 +222,43 @@ function addtoany_create_buttons($url = NULL, $title = NULL) {
   // Set the link URL.
   $link_url = Html::escape($url);
 
-	//$javascript = _addtoany_create_script($_addtoany_num, $link_name, $link_url);
+  //$javascript = _addtoany_create_script($_addtoany_num, $link_name, $link_url);
 
-	$buttons_size = $config->get('buttons_size');
+  $buttons_size = $config->get('buttons_size');
   // Must be a 3 digit positive integer.
   $buttons_size = (
-      $buttons_size !== '32' && strlen($buttons_size) <= 3 && $buttons_size !== ''
-      && is_numeric($buttons_size) && intval($buttons_size) == $buttons_size && $buttons_size > 0
-    ) ? $buttons_size : '32';
-
-	$button_setting = $config->get('universal_button');
-
-	if ($button_setting == "custom") {
-		$button_image = Html::escape(UrlHelper::stripDangerousProtocols($config->get('custom_universal_button')));
-	}
-
-  $button_innerHTML = (isset($button_image)) ? '<img src="' . $button_image . '">' : '';
-
-  if ($button_setting != 'none') {
-    $universal_button = sprintf('<a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=%s&amp;title=%s">%s</a>',
-      rawurlencode($link_url),
-      rawurlencode($link_name),
-      $button_innerHTML
-    );
-	}
-	else {
-  	$universal_button = '';
-	}
-
-  $buttons = sprintf('<span class="a2a_kit%s addtoany_list" data-a2a-url="%s" data-a2a-title="%s">%s%s%s</span>',
-    ($buttons_size != '16') ? ' a2a_kit_size_' . $buttons_size : '',
-    $link_url,
-    $link_name,
-    ($universal_button_placement == 'after') ? $additional_html : '',
-    $universal_button,
-    ($universal_button_placement == 'before') ? $additional_html : ''
-  );
+    $buttons_size !== '32' && strlen($buttons_size) <= 3 && $buttons_size !== ''
+    && is_numeric($buttons_size) && intval($buttons_size) == $buttons_size && $buttons_size > 0
+  ) ? $buttons_size : '32';
+
+  $button_setting = $config->get('universal_button');
+
+  if ($button_setting == "custom") {
+    $button_image = Html::escape(UrlHelper::stripDangerousProtocols($config->get('custom_universal_button')));
+  }
+
+  if ($button_setting == "default") {
+    $button_image = $base_path . drupal_get_path('module', 'addtoany') . '/images/a2a_32_32.svg';
+  }
 
   if (\Drupal::moduleHandler()->moduleExists('token')) {
     $node = \Drupal::routeMatch()->getParameter('node');
     $data = [];
     if ($node) {
-       $data = ['node' => $node];
-       $buttons = \Drupal::token()->replace($buttons, $data);
+      $data = ['node' => $node];
+      $additional_html = \Drupal::token()->replace($additional_html, $data);
     }
   }
 
-  return $buttons;
+  $info = [
+    'link_url' => $link_url,
+    'link_title' => $link_name,
+    'buttons_size' => $buttons_size,
+    'button_setting' => $button_setting,
+    'button_image' => isset($button_image) ? $button_image : '',
+    'universal_button_placement' => $universal_button_placement,
+    'addtoany_html' => $additional_html,
+  ];
+
+  return $info;
 }
diff --git a/src/Plugin/Block/AddToAnyBlock.php b/src/Plugin/Block/AddToAnyBlock.php
index 41b07c9..cdb4432 100644
--- a/src/Plugin/Block/AddToAnyBlock.php
+++ b/src/Plugin/Block/AddToAnyBlock.php
@@ -20,8 +20,15 @@ class AddToAnyBlock extends BlockBase {
   public function build() {
     $node = \Drupal::routeMatch()->getParameter('node');
 
+    $data = addtoany_create_node_data($node);
     return array(
-      '#addtoany_html' => addtoany_create_node_buttons($node),
+      '#addtoany_html' => $data['addtoany_html'],
+      '#link_url' => $data['link_url'],
+      '#link_title' => $data['link_title'],
+      '#button_setting' => $data['button_setting'],
+      '#button_image' => $data['button_image'],
+      '#universal_button_placement' => $data['universal_button_placement'],
+      '#buttons_size' => $data['buttons_size'],
       '#theme' => 'addtoany_standard',
       '#cache' => array(
         'contexts' => array('url'),
diff --git a/src/Plugin/views/field/NodeAddToAnyShare.php b/src/Plugin/views/field/NodeAddToAnyShare.php
index af80f91..0caf340 100644
--- a/src/Plugin/views/field/NodeAddToAnyShare.php
+++ b/src/Plugin/views/field/NodeAddToAnyShare.php
@@ -6,12 +6,12 @@ use Drupal\views\Plugin\views\field\FieldPluginBase;
 use Drupal\views\ResultRow;
 
 /**
-* Field handler to flag the node type.
-*
-* @ingroup views_field_handlers
-*
-* @ViewsField("node_addtoany_share")
-*/
+ * Field handler to flag the node type.
+ *
+ * @ingroup views_field_handlers
+ *
+ * @ViewsField("node_addtoany_share")
+ */
 class NodeAddToAnyShare extends FieldPluginBase {
 
   /**
@@ -27,10 +27,19 @@ class NodeAddToAnyShare extends FieldPluginBase {
   public function render(ResultRow $values) {
     $entity = $values->_entity;
     if ($entity->access('view')) {
-      return array(
+      $data = addtoany_create_node_data($entity);
+
+      return [
+        '#addtoany_html' => $data['addtoany_html'],
+        '#link_url' => $data['link_url'],
+        '#link_title' => $data['link_title'],
+        '#button_setting' => $data['button_setting'],
+        '#button_image' => $data['button_image'],
+        '#universal_button_placement' => $data['universal_button_placement'],
+        '#buttons_size' => $data['buttons_size'],
         '#theme' => 'addtoany_standard',
-        '#addtoany_html' => addtoany_create_node_buttons($entity),
-      );
+      ];
     }
   }
+
 }
diff --git a/templates/addtoany-standard.html.twig b/templates/addtoany-standard.html.twig
index 9274fb2..b178bae 100644
--- a/templates/addtoany-standard.html.twig
+++ b/templates/addtoany-standard.html.twig
@@ -5,8 +5,50 @@
  *
  * Available variables:
  * - addtoany_html: HTML for AddToAny buttons.
+ * - button_image: URL for universal button.
+ * - button_setting: Setting of button.
+ * - button_size: Size of buttons.
+ * - universal_bottom_placement: Value of 'before' or 'after' to place button.
+ * - link_url: Value of URL to share.
+ * - link_title: Value of page title to share.
  *
  * @ingroup themeable
  */
 #}
-{{ addtoany_html|raw }}
+
+{% if (button_image is not empty) %}
+    {% if button_setting != 'none' %}
+        {% set universal_button %}
+            <a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url={{ link_url|url_encode }}&amp;title={{ link_title|url_encode }}">
+                <img src="{{ button_image }}">
+            </a>
+        {% endset  %}
+    {% endif %}
+    {% if button_setting == 'default' %}
+        {% set universal_button %}
+            <a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url={{ link_url|url_encode }}&amp;title={{ link_title|url_encode }}">
+                <img class="addtoany-round-icon" src="{{ button_image }}" >
+            </a>
+        {% endset  %}
+     {% endif %}
+{% endif %}
+
+{% if buttons_size != 16 %}
+   {% set a2a_kit_size = 'a2a_kit_size_' ~ buttons_size %}
+{% endif %}
+
+<span class="a2a_kit {{ a2a_kit_size }} addtoany_list" data-a2a-url="{{ link_url }}" data-a2a-title="{{ link_title }}">
+    {% if universal_button_placement == 'before' %}
+        {{ universal_button }}
+    {% endif %}
+
+    {% if addtoany_html is not empty %}
+        {{ addtoany_html|raw }}
+    {% endif %}
+
+    {% if universal_button_placement == 'after' %}
+        {{ universal_button }}
+    {% endif %}
+</span>
