docs: function () {
  
              function getVendorPrefix() {
                  if ('WebkitTransition' in s) return "webkit";
                  if ('MozTransition' in s) return "Moz";
                  if ('msTransition' in s) return "MS";
                  if ('OTransition' in s) return "o";
                  return "";
              }
  
              var browser = {};
  
              browser.isBrowser = this.runsInBrowser();
  
              if (this.runsInBrowser()) {
                  var window = this.$window,
                      document = this.$document,
                      body = document.body || document.getElementsByTagName("body")[0],
                      navigator, s;
  
                  if (window) {
                      browser.hasTouch = "ontouchend" in window;
                      browser.has3D = ('WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix());
                      browser.msPointerEnabled = "msPointerEnabled" in window.navigator;
  
                      navigator = window.navigator;
  
                      var div = document.createElement("div");
                      div.setAttribute("style", "position: absolute; height: 100vh; width: 100vw;");
                      body.appendChild(div);
  
                      browser.supportViewPortRelativeSize = (window.innerWidth === div.offsetWidth);
  
                      body.removeChild(div);
  
  
                      s = window.document.createElement('div').style;
                  }
  
  
                  if (navigator) {
  
                      var userAgent = navigator.userAgent || navigator.appVersion;
                      var mobile = /(iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm)/i.exec(userAgent);
                      browser.isMobile = !!mobile;
                      browser.isIOS = !!userAgent.match(/(iPad|iPhone|iPod)/g);
  
                      if (mobile) {
                          browser.mobileType = mobile[1].toLowerCase();
                      }
  
                      var os = /win|mac|linux|x11/i.exec(userAgent);
                      if (os) {
                          os = {
                              win: "windows",
                              mac: "mac",
                              linux: "linux",
                              x11: "unix"
                          }[os[0].toLowerCase()];
                      }
  
                      browser.os = os || "";
  
                      var browserName = /(firefox)|(chrome)|(safari)/i.exec(userAgent);
                      if (browserName) {
                          browser.isFF = !!browserName[1];
                          browser.isChrome = !!browserName[2];
                          browser.isSafari = !!browserName[3];
                          browserName = browserName[0].toLowerCase();
                          browser.name = browserName;
                      }
  
                      browserName = /msie\s(\d+)/i.exec(userAgent);
                      if (browserName) {
                          browserName = "ie ie" + browserName[1];
                          browser.name = browserName;
                          browser.isIE = true;
                      } else if ("ActiveXObject" in window) {
                          browser.isIE = true;
                          browser.name = "ie ie11";
                      } else {
                          browser.isIE = false;
                      }
  
                      browser.name = browser.name || "";
  
                      var version = /(?:opera|chrome|safari|firefox|msie|trident)\/?\s*([\d]+)/i.exec(userAgent);
                      if (version && version [1]) {
                          browser.version = version[1];
                      }
                  }
  
  
                  if (s) {
                      browser.supportsTransition = 'transition' in s ||
                          'WebkitTransition' in s ||
                          'MozTransition' in s ||
                          'msTransition' in s ||
                          'OTransition' in s;
  
                      browser.vendorPrefix = getVendorPrefix();
                  }
  
              }
  
              return browser;
  
          }