diff --git a/composer.json b/composer.json
index 854634255b5fca7eacb4381123a63688d121a875..34ab0a256900d706b0f1de8689fa529f7797d851 100644
--- a/composer.json
+++ b/composer.json
@@ -136,7 +136,7 @@
         "drupal/views_accordion": "1.1",
         "drupal/views_ajax_history": "^1.0",
         "drupal/views_autocomplete_filters": "1.1",
-        "drupal/views_bootstrap": "3.x-dev",
+        "drupal/views_bootstrap": "3.1",
         "drupal/views_bulk_operations": "2.4",
         "drupal/views_fieldsets": "3.3",
         "drupal/views_infinite_scroll": "1.5",
diff --git a/composer.lock b/composer.lock
index 80529fac6daa75520e376d4843de547fb10d941f..911cd135cce1ed8ebe00253a53f9ccf1ab4ec0a0 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "5e82b716556fb4aa7de504a393508053",
+    "content-hash": "60e47e19de7071bb94ff15a24b7a3cfd",
     "packages": [
         {
             "name": "alchemy/zippy",
@@ -5779,11 +5779,17 @@
         },
         {
             "name": "drupal/views_bootstrap",
-            "version": "dev-3.x",
+            "version": "3.1.0",
             "source": {
                 "type": "git",
                 "url": "https://git.drupal.org/project/views_bootstrap",
-                "reference": "8a8d1add3a575842e33c51a3733b43c24c4bc41f"
+                "reference": "8.x-3.1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://ftp.drupal.org/files/projects/views_bootstrap-8.x-3.1.zip",
+                "reference": "8.x-3.1",
+                "shasum": "7fd556457f028fa736d1422a9b5a763566fd7d2e"
             },
             "require": {
                 "drupal/core": "*"
@@ -5794,11 +5800,11 @@
                     "dev-3.x": "3.x-dev"
                 },
                 "drupal": {
-                    "version": "8.x-3.0+4-dev",
-                    "datestamp": "1523236084",
+                    "version": "8.x-3.1",
+                    "datestamp": "1537360681",
                     "security-coverage": {
-                        "status": "not-covered",
-                        "message": "Dev releases are not covered by Drupal security advisories."
+                        "status": "covered",
+                        "message": "Covered by Drupal's security advisory policy"
                     }
                 }
             },
@@ -5831,8 +5837,7 @@
             ],
             "support": {
                 "source": "http://cgit.drupalcode.org/views_bootstrap"
-            },
-            "time": "2018-05-17T13:28:26+00:00"
+            }
         },
         {
             "name": "drupal/views_bulk_operations",
@@ -10078,8 +10083,7 @@
     "aliases": [],
     "minimum-stability": "dev",
     "stability-flags": {
-        "drupal/roleassign": 15,
-        "drupal/views_bootstrap": 20
+        "drupal/roleassign": 15
     },
     "prefer-stable": true,
     "prefer-lowest": false,
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index b55a68d136718f98f804ada62f34221e51cac446..d1bb9bb8e0facfcfaab8ce179488a49d258e9667 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -5961,12 +5961,18 @@
     },
     {
         "name": "drupal/views_bootstrap",
-        "version": "dev-3.x",
-        "version_normalized": "dev-3.x",
+        "version": "3.1.0",
+        "version_normalized": "3.1.0.0",
         "source": {
             "type": "git",
             "url": "https://git.drupal.org/project/views_bootstrap",
-            "reference": "8a8d1add3a575842e33c51a3733b43c24c4bc41f"
+            "reference": "8.x-3.1"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://ftp.drupal.org/files/projects/views_bootstrap-8.x-3.1.zip",
+            "reference": "8.x-3.1",
+            "shasum": "7fd556457f028fa736d1422a9b5a763566fd7d2e"
         },
         "require": {
             "drupal/core": "*"
@@ -5977,11 +5983,11 @@
                 "dev-3.x": "3.x-dev"
             },
             "drupal": {
-                "version": "8.x-3.0+4-dev",
-                "datestamp": "1523236084",
+                "version": "8.x-3.1",
+                "datestamp": "1537360681",
                 "security-coverage": {
-                    "status": "not-covered",
-                    "message": "Dev releases are not covered by Drupal security advisories."
+                    "status": "covered",
+                    "message": "Covered by Drupal's security advisory policy"
                 }
             }
         },
diff --git a/web/modules/views_bootstrap/templates/views-bootstrap-grid.html.twig b/web/modules/views_bootstrap/templates/views-bootstrap-grid.html.twig
index 364ed1200ae37d674af005fa71f602620e9cda6f..76f5b28950ea358fd5b30c2a649f722556b30f6c 100644
--- a/web/modules/views_bootstrap/templates/views-bootstrap-grid.html.twig
+++ b/web/modules/views_bootstrap/templates/views-bootstrap-grid.html.twig
@@ -18,6 +18,9 @@
     options.alignment,
   ]
 %}
+{% if title %}
+  <h3>{{ title }}</h3>
+{% endif %}
 <div id="{{ id }}" {{ attributes.addClass(classes) }}>
   {% if options.alignment  == 'horizontal' %}
     {% for row in items %}