Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/icons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Otto <otto@github.com>2022-05-13 21:07:08 +0300
committerGitHub <noreply@github.com>2022-05-13 21:07:08 +0300
commitae7fb9791d99fc378cf6118d4a66c4f03e3a77c1 (patch)
treebcc5bd151b5d2f9f4f996f2e3fd52e5483689acf
parent1007a03b0a290a40ea82dadf8fa1129e4223cf62 (diff)
Prep for v1.8.2 (#1193)
* Update design to match v5.2.0 * Update for v1.8.2 * Add figma link in hero, tweak a few things * Update to use Bootstrap via npm * Fixes #1308: Update search field to use type=search * Fixes #1274: Update clipboard.min.js to latest * Only import the font CSS on the homepage * Fix test * Clean up CSS errors * Fathom * update bootstrap versions * Fix version config
-rw-r--r--config.yml9
-rw-r--r--docs/assets/js/vendor/clipboard.min.js6
-rw-r--r--docs/assets/scss/_ads.scss2
-rw-r--r--docs/assets/scss/_buttons.scss64
-rw-r--r--docs/assets/scss/_clipboard-js.scss6
-rw-r--r--docs/assets/scss/_footer.scss6
-rw-r--r--docs/assets/scss/_navbar.scss67
-rw-r--r--docs/assets/scss/_skippy.scss4
-rw-r--r--docs/assets/scss/_syntax.scss2
-rw-r--r--docs/assets/scss/_variables.scss27
-rw-r--r--docs/assets/scss/docs.scss78
-rw-r--r--docs/layouts/partials/analytics.html1
-rw-r--r--docs/layouts/partials/favicons.html4
-rw-r--r--docs/layouts/partials/footer.html2
-rw-r--r--docs/layouts/partials/home/hero.html10
-rw-r--r--docs/layouts/partials/icons.html2
-rw-r--r--docs/layouts/partials/icons/figma.svg8
-rw-r--r--docs/layouts/partials/icons/hamburger.svg3
-rw-r--r--docs/layouts/partials/navbar.html117
-rw-r--r--docs/layouts/partials/scripts.html3
-rw-r--r--docs/layouts/partials/stylesheet.html3
-rw-r--r--docs/static/assets/img/bootstrap-icons-social.pngbin474765 -> 473664 bytes
-rw-r--r--package-lock.json52
-rw-r--r--package.json3
24 files changed, 324 insertions, 155 deletions
diff --git a/config.yml b/config.yml
index c4447d91a..e67648773 100644
--- a/config.yml
+++ b/config.yml
@@ -44,13 +44,17 @@ module:
target: static/assets/icons
- source: font
target: static/assets/font
+ - source: node_modules/bootstrap/scss
+ target: assets/scss/bootstrap
+ - source: node_modules/bootstrap/dist/js/bootstrap.min.js
+ target: assets/js/bootstrap.min.js
params:
description: "Official open source SVG icon library for Bootstrap"
social_image_path: /assets/img/bootstrap-icons-social.png
- version: "1.8.1"
- bs_docs_version: "5.1"
+ version: "1.8.2"
+ docs_version: "5.2"
main: "https://getbootstrap.com"
github_org: "https://github.com/twbs"
@@ -61,3 +65,4 @@ params:
expo: "https://expo.getbootstrap.com"
themes: "https://themes.getbootstrap.com"
opencollective: "https://opencollective.com/bootstrap"
+ icons_figma: "https://www.figma.com/community/file/1042482994486402696/Bootstrap-Icons"
diff --git a/docs/assets/js/vendor/clipboard.min.js b/docs/assets/js/vendor/clipboard.min.js
index 1e6a96f4e..98d959b3c 100644
--- a/docs/assets/js/vendor/clipboard.min.js
+++ b/docs/assets/js/vendor/clipboard.min.js
@@ -1,7 +1,7 @@
/*!
- * clipboard.js v2.0.6
+ * clipboard.js v2.0.11
* https://clipboardjs.com/
- *
+ *
* Licensed MIT © Zeno Rocha
*/
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n,t.exports.TinyEmitter=n},function(t,e,n){var d=n(3),h=n(4);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!d.string(e))throw new TypeError("Second argument must be a String");if(!d.fn(n))throw new TypeError("Third argument must be a Function");if(d.node(t))return s=e,f=n,(u=t).addEventListener(s,f),{destroy:function(){u.removeEventListener(s,f)}};if(d.nodeList(t))return a=t,c=e,l=n,Array.prototype.forEach.call(a,function(t){t.addEventListener(c,l)}),{destroy:function(){Array.prototype.forEach.call(a,function(t){t.removeEventListener(c,l)})}};if(d.string(t))return o=t,r=e,i=n,h(document.body,o,r,i);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,a,c,l,u,s,f}},function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var a=n(5);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},function(t,e,n){"use strict";n.r(e);var o=n(0),r=n.n(o),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function a(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function c(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,c),this.resolveOptions(t),this.initSelection()}var l=(function(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),t}(c,[{key:"resolveOptions",value:function(t){var e=0<arguments.length&&void 0!==t?t:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=r()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=r()(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(t){var e=0<arguments.length&&void 0!==t?t:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),c),u=n(1),s=n.n(u),f=n(2),d=n.n(f),h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(t,e,n){return e&&y(t.prototype,e),n&&y(t,n),t};function y(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}var m=(function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(v,s.a),p(v,[{key:"resolveOptions",value:function(t){var e=0<arguments.length&&void 0!==t?t:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===h(e.container)?e.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=d()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return b("action",t)}},{key:"defaultTarget",value:function(t){var e=b("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return b("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(t){var e=0<arguments.length&&void 0!==t?t:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),v);function v(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,v);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(v.__proto__||Object.getPrototypeOf(v)).call(this));return n.resolveOptions(e),n.listenClick(t),n}function b(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=m}],r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=6).default;function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}var n,o});
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:"cut",value:function(t){return a(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",t=s({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:n,text:t,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return m("action",t)}},{key:"defaultTarget",value:function(t){t=m("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return m("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&d(t.prototype,e),n&&d(t,n),r}()},828:function(t){var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!f.string(e))throw new TypeError("Second argument must be a String");if(!f.fn(n))throw new TypeError("Third argument must be a Function");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r});
diff --git a/docs/assets/scss/_ads.scss b/docs/assets/scss/_ads.scss
index cdf13c55a..1251ec5e3 100644
--- a/docs/assets/scss/_ads.scss
+++ b/docs/assets/scss/_ads.scss
@@ -5,7 +5,7 @@
margin-right: auto;
margin-left: auto;
overflow: auto;
- background-color: $gray-100;
+ background-color: var(--bs-gray-100);
border-radius: .25rem;
@media (min-width: 992px) {
diff --git a/docs/assets/scss/_buttons.scss b/docs/assets/scss/_buttons.scss
index 25bcbbd4b..13bd6e48a 100644
--- a/docs/assets/scss/_buttons.scss
+++ b/docs/assets/scss/_buttons.scss
@@ -2,36 +2,44 @@
//
// Custom buttons for the docs.
+// scss-docs-start btn-css-vars-example
.btn-bd-primary {
- font-weight: 600;
- color: $bd-purple-bright;
- border-color: $bd-purple-bright;
-
- &:hover,
- &:active {
- color: $white;
- background-color: $bd-purple-bright;
- border-color: $bd-purple-bright;
- }
-
- &:focus {
- box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);
- }
+ --bs-btn-font-weight: 600;
+ --bs-btn-color: var(--bs-white);
+ --bs-btn-bg: var(--bd-violet);
+ --bs-btn-border-color: var(--bd-violet);
+ --bs-btn-border-radius: .5rem;
+ --bs-btn-hover-color: var(--bs-white);
+ --bs-btn-hover-bg: #{shade-color($bd-violet, 10%)};
+ --bs-btn-hover-border-color: #{shade-color($bd-violet, 10%)};
+ --bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
+ --bs-btn-active-color: var(--bs-btn-hover-color);
+ --bs-btn-active-bg: #{shade-color($bd-violet, 20%)};
+ --bs-btn-active-border-color: #{shade-color($bd-violet, 20%)};
}
+// scss-docs-end btn-css-vars-example
-.btn-bd-download {
- font-weight: 600;
- color: $bd-download;
- border-color: $bd-download;
-
- &:hover,
- &:active {
- color: $bd-dark;
- background-color: $bd-download;
- border-color: $bd-download;
- }
+.btn-bd-accent {
+ --bs-btn-font-weight: 600;
+ --bs-btn-color: var(--bd-accent);
+ --bs-btn-border-color: var(--bd-accent);
+ --bs-btn-hover-color: var(--bd-dark);
+ --bs-btn-hover-bg: var(--bd-accent);
+ --bs-btn-hover-border-color: var(--bd-accent);
+ --bs-btn-focus-shadow-rgb: var(--bd-accent-rgb);
+ --bs-btn-active-color: var(--bs-btn-hover-color);
+ --bs-btn-active-bg: var(--bs-btn-hover-bg);
+ --bs-btn-active-border-color: var(--bs-btn-hover-border-color);
+}
- &:focus {
- box-shadow: 0 0 0 3px rgba($bd-download, .25);
- }
+.btn-bd-light {
+ --bs-btn-color: var(--bs-gray-600);
+ --bs-btn-border-color: var(--bs-gray-400);
+ --bs-btn-hover-color: var(--bd-violet);
+ --bs-btn-hover-border-color: var(--bd-violet);
+ --bs-btn-active-color: var(--bd-violet);
+ --bs-btn-active-bg: var(--bs-white);
+ --bs-btn-active-border-color: var(--bd-violet);
+ --bs-btn-focus-border-color: var(--bd-violet);
+ --bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
}
diff --git a/docs/assets/scss/_clipboard-js.scss b/docs/assets/scss/_clipboard-js.scss
index fa6e9e161..5d4cbba44 100644
--- a/docs/assets/scss/_clipboard-js.scss
+++ b/docs/assets/scss/_clipboard-js.scss
@@ -24,12 +24,12 @@
display: block;
padding: .5em .75em .625em;
line-height: 1;
- color: $gray-900;
- background-color: $gray-100;
+ color: var(--bs-gray-900);
+ background-color: var(--bs-gray-100);
border: 0;
border-radius: .25rem;
&:hover {
- color: $primary;
+ color: var(--bs-primary);
}
}
diff --git a/docs/assets/scss/_footer.scss b/docs/assets/scss/_footer.scss
index 297c31135..22d20c969 100644
--- a/docs/assets/scss/_footer.scss
+++ b/docs/assets/scss/_footer.scss
@@ -4,15 +4,15 @@
.bd-footer {
font-size: .875rem;
- color: #63707c;
+ color: var(--bs-gray-600);
a {
font-weight: 600;
- color: $gray-700;
+ color: var(--bs-gray-700);
&:hover,
&:focus {
- color: $blue;
+ color: var(--bs-primary);
}
}
diff --git a/docs/assets/scss/_navbar.scss b/docs/assets/scss/_navbar.scss
index 9d814117d..481d489f4 100644
--- a/docs/assets/scss/_navbar.scss
+++ b/docs/assets/scss/_navbar.scss
@@ -1,37 +1,64 @@
.bd-navbar {
padding: .75rem 0;
- background-color: $bd-purple-bright;
+ background-color: transparent;
+ background-image: linear-gradient(to bottom, rgba(var(--bd-violet-rgb), 1), rgba(var(--bd-violet-rgb), .95));
+ box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15), inset 0 -1px 0 rgba(0, 0, 0, .15);
.navbar-toggler {
padding: 0;
+ margin-right: -.5rem;
border: 0;
+ &:first-child {
+ margin-left: -.5rem;
+ }
+
.bi {
- width: 2rem;
- fill: currentcolor;
+ width: 1.5rem;
+ height: 1.5rem;
+ }
+
+ &:focus {
+ box-shadow: none;
}
}
- .navbar-nav {
- .nav-link {
- padding-right: $spacer / 4;
- padding-left: $spacer / 4;
- color: rgba($white, .85);
-
- &:hover,
- &:focus {
- color: $white;
- }
-
- &.active {
- font-weight: 600;
- color: $white;
- }
+ .navbar-brand {
+ transition: .2s ease-in-out transform;
+
+ &:hover {
+ transform: rotate(-5deg) scale(1.1);
+ }
+ }
+
+ .navbar-toggler,
+ .nav-link {
+ padding-right: $spacer * .25;
+ padding-left: $spacer * .25;
+ color: rgba($white, .85);
+
+ &:hover,
+ &:focus {
+ color: $white;
+ }
+
+ &.active {
+ font-weight: 600;
+ color: $white;
}
}
.navbar-nav-svg {
- width: 1rem;
- height: 1rem;
+ display: inline-block;
+ vertical-align: -.125rem;
+ }
+
+ .offcanvas-lg {
+ background-color: var(--bd-violet);
+ border-left: 0;
+
+ @media (max-width: 992px) {
+ box-shadow: $box-shadow-lg;
+ }
}
}
diff --git a/docs/assets/scss/_skippy.scss b/docs/assets/scss/_skippy.scss
index ab59339d0..459c203a5 100644
--- a/docs/assets/scss/_skippy.scss
+++ b/docs/assets/scss/_skippy.scss
@@ -1,13 +1,13 @@
.skippy {
display: block;
padding: 1em;
- color: $white;
+ color: #fff;
text-align: center;
background-color: $bd-purple;
outline: 0;
&:hover {
- color: $white;
+ color: #fff;
}
}
diff --git a/docs/assets/scss/_syntax.scss b/docs/assets/scss/_syntax.scss
index a7148c999..43cb79199 100644
--- a/docs/assets/scss/_syntax.scss
+++ b/docs/assets/scss/_syntax.scss
@@ -88,7 +88,7 @@
.language-bash,
.language-sh {
&::before {
- color: $gray-500;
+ color: var(--bs-gray-600);
content: "$ ";
user-select: none;
}
diff --git a/docs/assets/scss/_variables.scss b/docs/assets/scss/_variables.scss
index d4b484334..167b89df1 100644
--- a/docs/assets/scss/_variables.scss
+++ b/docs/assets/scss/_variables.scss
@@ -1,16 +1,15 @@
-$white: #fff;
-$blue: #007bff;
-$gray-100: #f8f9fa;
-$gray-500: #adb5bd;
-$gray-700: #495057;
-$gray-900: #212529;
-$primary: #0d6efd;
-$teal-100: #d2f4ea;
-
// Local docs variables
-$bd-purple: #563d7c;
-$bd-purple-bright: lighten(saturate($bd-purple, 5%), 15%); // #7952b3
-$bd-dark: #2a2730;
-$bd-download: #ffe484;
+$bd-purple: #4c0bce;
+$bd-violet: lighten(saturate($bd-purple, 5%), 15%);
+$bd-accent: #ffe484;
+$bd-gutter-x: 3rem;
-$spacer: 1rem;
+:root {
+ --bd-purple: #{$bd-purple};
+ --bd-violet: #{$bd-violet};
+ --bd-accent: #{$bd-accent};
+ --bd-violet-rgb: #{to-rgb($bd-violet)};
+ --bd-accent-rgb: #{to-rgb($bd-accent)};
+ --bd-pink-rgb: #{to-rgb($pink-500)};
+ --bd-teal-rgb: #{to-rgb($teal-500)};
+}
diff --git a/docs/assets/scss/docs.scss b/docs/assets/scss/docs.scss
index 0e81de2b6..8ab1ed50a 100644
--- a/docs/assets/scss/docs.scss
+++ b/docs/assets/scss/docs.scss
@@ -1,3 +1,42 @@
+@import "bootstrap/functions";
+@import "bootstrap/variables";
+@import "bootstrap/maps";
+@import "bootstrap/mixins";
+@import "bootstrap/utilities";
+@import "bootstrap/root";
+@import "bootstrap/reboot";
+@import "bootstrap/type";
+@import "bootstrap/images";
+@import "bootstrap/containers";
+@import "bootstrap/grid";
+@import "bootstrap/tables";
+@import "bootstrap/forms";
+@import "bootstrap/buttons";
+@import "bootstrap/transitions";
+@import "bootstrap/dropdown";
+@import "bootstrap/button-group";
+@import "bootstrap/nav";
+@import "bootstrap/navbar";
+// @import "bootstrap/card";
+// @import "bootstrap/accordion";
+@import "bootstrap/breadcrumb";
+// @import "bootstrap/pagination";
+// @import "bootstrap/badge";
+// @import "bootstrap/alert";
+// @import "bootstrap/progress";
+// @import "bootstrap/list-group";
+@import "bootstrap/close";
+// @import "bootstrap/toasts";
+// @import "bootstrap/modal";
+// @import "bootstrap/tooltip";
+// @import "bootstrap/popover";
+// @import "bootstrap/carousel";
+// @import "bootstrap/spinners";
+@import "bootstrap/offcanvas";
+// @import "bootstrap/placeholders";
+@import "bootstrap/helpers";
+@import "bootstrap/utilities/api";
+
@import "variables";
@import "buttons";
@import "clipboard-js";
@@ -7,9 +46,14 @@
@import "syntax";
@import "ads";
+.bd-gutter {
+ --bs-gutter-x: #{$bd-gutter-x};
+}
+
.bi {
display: inline-block;
vertical-align: -.125em;
+ fill: currentcolor;
}
.hero-notice {
@@ -23,13 +67,15 @@
.highlight {
padding: 1.25rem;
margin-bottom: 1.5rem;
- background-color: $gray-100;
- border-radius: .25rem;
+ background-color: var(--bs-gray-100);
+ border-radius: .5rem;
pre {
margin-bottom: 0;
scrollbar-width: none;
+ &:focus { outline: 0; }
+
&::-webkit-scrollbar {
display: none;
}
@@ -71,15 +117,31 @@
}
.hero {
- border-bottom: 1px solid rgba(0, 0, 0, .05);
+ border-bottom: 1px solid rgba(0, 0, 0, .075);
- .highlight pre {
- padding-right: 4em;
+ .highlight {
margin-bottom: 0;
- border-radius: .5rem;
+ color: var(--bs-gray-200);
+ background-color: var(--bs-gray-800);
+
+ pre {
+ margin-bottom: 0;
+
+ @media (min-width: 768px) {
+ padding-right: 4em;
+ }
+ }
}
+
.btn-clipboard {
top: .625em;
+ color: var(--bs-gray-200);
+ background-color: var(--bs-gray-800);
+ }
+
+ .btn {
+ padding: 1rem 1.25rem;
+ border-radius: .5rem;
}
hr {
@@ -112,10 +174,10 @@
padding: 100px 2rem;
margin-right: 15px;
margin-left: 15px;
- color: $gray-500;
+ color: var(--bs-gray-500);
text-align: center;
content: "Nothing found, try searching again.";
- background-color: $gray-100;
+ background-color: var(--bs-gray-100);
border-radius: .5rem;
}
}
diff --git a/docs/layouts/partials/analytics.html b/docs/layouts/partials/analytics.html
index ded6e7244..3881ae896 100644
--- a/docs/layouts/partials/analytics.html
+++ b/docs/layouts/partials/analytics.html
@@ -1,3 +1,4 @@
+<script defer src="https://cdn.usefathom.com/script.js" data-site="ITUSEYJG"></script>
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-146052-10', 'getbootstrap.com');
diff --git a/docs/layouts/partials/favicons.html b/docs/layouts/partials/favicons.html
index 420c38057..520b61a12 100644
--- a/docs/layouts/partials/favicons.html
+++ b/docs/layouts/partials/favicons.html
@@ -3,6 +3,6 @@
<link rel="icon" href="/assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
<link rel="icon" href="/assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
<link rel="manifest" href="/assets/img/favicons/manifest.json">
-<link rel="mask-icon" href="/assets/img/favicons/safari-pinned-tab.svg" color="#7952b3">
+<link rel="mask-icon" href="/assets/img/favicons/safari-pinned-tab.svg" color="#712cf9">
<link rel="icon" href="/assets/img/favicons/favicon.ico">
-<meta name="theme-color" content="#7952b3">
+<meta name="theme-color" content="#712cf9">
diff --git a/docs/layouts/partials/footer.html b/docs/layouts/partials/footer.html
index b9ef0e022..fdad6d856 100644
--- a/docs/layouts/partials/footer.html
+++ b/docs/layouts/partials/footer.html
@@ -3,7 +3,7 @@
<ul class="bd-footer-links">
<li><a href="{{ .Site.Params.github_org }}">GitHub</a></li>
<li><a href="https://twitter.com/{{ .Site.Params.twitter }}">Twitter</a></li>
- <li><a href="{{ .Site.Params.main }}/docs/{{ .Site.Params.bs_docs_version }}/about/overview/">About</a></li>
+ <li><a href="{{ .Site.Params.main }}/docs/{{ .Site.Params.docs_version }}/about/overview/">About</a></li>
</ul>
<p>Currently <a href="{{ .Site.Params.repo }}/releases/tag/v{{ .Site.Params.version }}">v{{ .Site.Params.version }}</a>. Icons and documentation licensed <a href="{{ .Site.Params.repo }}/blob/main/LICENSE.md" target="_blank" rel="license noopener">MIT</a>.</p>
</div>
diff --git a/docs/layouts/partials/home/hero.html b/docs/layouts/partials/home/hero.html
index ea6a99d8a..22b118998 100644
--- a/docs/layouts/partials/home/hero.html
+++ b/docs/layouts/partials/home/hero.html
@@ -14,8 +14,14 @@
<h1 class="f0">Bootstrap Icons</h1>
<p class="mb-4 f3 font-weight-normal">Free, high quality, open source icon library with over 1,600 icons. Include them anyway you like—SVGs, SVG sprite, or web fonts. Use them with or without <a href="{{ .Site.Params.main }}/">Bootstrap</a> in any project.</p>
- <div class="fs-5 d-inline-block mb-3">
- {{ highlight "npm i bootstrap-icons" "sh" "" }}
+ <div class="d-flex flex-column flex-md-row align-items-stretch justify-content-center justify-content-md-start mb-5 fs-5">
+ <div class="fs-5 d-inline-block mb-3 me-md-3 mb-md-0">
+ {{ highlight "npm i bootstrap-icons" "sh" "" }}
+ </div>
+ <a class="btn btn-lg btn-outline-dark d-flex align-items-center justify-content-center" href="{{ .Site.Params.icons_figma }}" target="_blank" rel="noopener">
+ {{ partial "icons/figma.svg" (dict "class" "me-2" "width" "18" "height" "24") }}
+ Open in Figma
+ </a>
</div>
{{ partialCached "ads" . }}
diff --git a/docs/layouts/partials/icons.html b/docs/layouts/partials/icons.html
index 3e9ef278d..bab633c79 100644
--- a/docs/layouts/partials/icons.html
+++ b/docs/layouts/partials/icons.html
@@ -3,7 +3,7 @@
<h2 id="icons" class="mb-0">Icons</h2>
<form class="subnav-search d-flex flex-nowrap ms-auto">
<label for="search" class="visually-hidden">Search for icons</label>
- <input class="form-control search mb-0" id="search" placeholder="Start typing to filter..." autocomplete="off">
+ <input class="form-control search mb-0" id="search" type="search" placeholder="Start typing to filter..." autocomplete="off">
</form>
</div>
<ul class="row row-cols-3 row-cols-sm-4 row-cols-lg-6 row-cols-xl-8 list-unstyled list">
diff --git a/docs/layouts/partials/icons/figma.svg b/docs/layouts/partials/icons/figma.svg
new file mode 100644
index 000000000..2d22b215d
--- /dev/null
+++ b/docs/layouts/partials/icons/figma.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg"{{ with .width }} width="{{ . }}"{{ end }}{{ with .height }} height="{{ . }}"{{ end }}{{ with .class }} class="{{ . }}"{{ end }} viewBox="0 0 288 432" role="img">
+ <rect width="95.0226" height="142.534" fill="black" fill-opacity="0" transform="translate(1.46603 2.19946) scale(3)"/>
+ <path d="M144 216C144 176.641 175.907 144.733 215.267 144.733V144.733C254.626 144.733 286.534 176.641 286.534 216V216C286.534 255.36 254.626 287.267 215.267 287.267V287.267C175.907 287.267 144 255.36 144 216V216Z" fill="#1ABCFE"/>
+ <path d="M1.46603 358.534C1.46603 319.175 33.3733 287.267 72.733 287.267H144V358.534C144 397.894 112.093 429.801 72.733 429.801V429.801C33.3733 429.801 1.46603 397.894 1.46603 358.534V358.534Z" fill="#0ACF83"/>
+ <path d="M144 2.19946V144.733H215.267C254.627 144.733 286.534 112.826 286.534 73.4664V73.4664C286.534 34.1068 254.627 2.19946 215.267 2.19946L144 2.19946Z" fill="#FF7262"/>
+ <path d="M1.46603 73.4664C1.46603 112.826 33.3733 144.733 72.733 144.733L144 144.733L144 2.19941L72.733 2.19941C33.3733 2.19941 1.46603 34.1067 1.46603 73.4664V73.4664Z" fill="#F24E1E"/>
+ <path d="M1.46603 216C1.46603 255.36 33.3733 287.267 72.733 287.267H144L144 144.733L72.733 144.733C33.3733 144.733 1.46603 176.641 1.46603 216V216Z" fill="#A259FF"/>
+</svg>
diff --git a/docs/layouts/partials/icons/hamburger.svg b/docs/layouts/partials/icons/hamburger.svg
new file mode 100644
index 000000000..955d8a651
--- /dev/null
+++ b/docs/layouts/partials/icons/hamburger.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg"{{ with .width }} width="{{ . }}"{{ end }}{{ with .height }} height="{{ . }}"{{ end }}{{ with .class }} class="{{ . }}"{{ end }} fill="currentColor" viewBox="0 0 16 16">
+ <path fill-rule="evenodd" d="M2.5 11.5A.5.5 0 0 1 3 11h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4A.5.5 0 0 1 3 3h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"/>
+</svg>
diff --git a/docs/layouts/partials/navbar.html b/docs/layouts/partials/navbar.html
index df7b42566..467ecd252 100644
--- a/docs/layouts/partials/navbar.html
+++ b/docs/layouts/partials/navbar.html
@@ -1,67 +1,70 @@
-<header class="navbar navbar-expand-md navbar-dark bd-navbar">
- <nav class="container-xxl flex-wrap flex-md-nowrap" aria-label="Main navigation">
- <a class="navbar-brand p-0 me-2" href="{{ .Site.Params.main }}/" aria-label="Bootstrap">
- {{ partialCached "icons/bootstrap-white-fill.svg" (dict "class" "d-block" "width" "40" "height" "32") }}
+<header class="navbar navbar-expand-lg navbar-dark bd-navbar sticky-top">
+ <nav class="container-xxl bd-gutter flex-wrap flex-lg-nowrap" aria-label="Main navigation">
+ <div class="d-lg-none" style="width: 2.25rem;"></div>
+
+ <a class="navbar-brand p-0 me-0 me-lg-2" href="/" aria-label="Bootstrap">
+ {{ partial "icons/bootstrap-white-fill.svg" (dict "class" "d-block my-1" "width" "40" "height" "32") }}
</a>
- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#bdNavbar" aria-controls="bdNavbar" aria-expanded="false" aria-label="Toggle navigation">
- <svg class="bi" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
- <path fill-rule="evenodd" d="M2.5 11.5A.5.5 0 0 1 3 11h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4A.5.5 0 0 1 3 3h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"/>
- </svg>
+ <button class="navbar-toggler d-flex d-lg-none order-3 p-2" type="button" data-bs-toggle="offcanvas" data-bs-target="#bdNavbar" aria-controls="bdNavbar" aria-expanded="false" aria-label="Toggle navigation">
+ <svg class="bi" width="24" height="24" aria-hidden="true"><use xlink:href="/bootstrap-icons.svg#three-dots"></use></svg>
</button>
- <div class="collapse navbar-collapse" id="bdNavbar">
- <ul class="navbar-nav flex-row flex-wrap bd-navbar-nav pt-2 py-md-0">
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.main }}/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Bootstrap');">Home</a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.main }}/docs/{{ .Site.Params.bs_docs_version }}/getting-started/introduction/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Docs');">Docs</a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.main }}/docs/{{ .Site.Params.bs_docs_version }}/examples/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Examples');">Examples</a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2 active" href="/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Icons');">Icons</a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.themes }}/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Themes');" target="_blank" rel="noopener">Themes</a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.blog }}/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Blog');" target="_blank" rel="noopener">Blog</a>
- </li>
- </ul>
+ <div class="offcanvas-lg offcanvas-end flex-grow-1" id="bdNavbar" aria-labelledby="bdNavbarOffcanvasLabel">
+ <div class="offcanvas-header px-4 pb-0">
+ <h5 class="offcanvas-title text-white" id="bdNavbarOffcanvasLabel">Bootstrap</h5>
+ <button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvas" aria-label="Close" data-bs-target="#bdNavbar"></button>
+ </div>
- <hr class="d-md-none text-white-50">
+ <div class="offcanvas-body p-4 pt-0 p-lg-0">
+ <hr class="d-lg-none text-white-50">
+ <ul class="navbar-nav flex-row flex-wrap bd-navbar-nav">
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="{{ .Site.Params.main }}/docs/{{ .Site.Params.docs_version }}/getting-started/introduction/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Docs');">Docs</a>
+ </li>
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="{{ .Site.Params.main }}/docs/{{ .Site.Params.docs_version }}/examples/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Examples');">Examples</a>
+ </li>
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2 active" href="{{ .Site.Params.icons }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Icons');" target="_blank" rel="noopener">Icons</a>
+ </li>
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="{{ .Site.Params.themes }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Themes');" target="_blank" rel="noopener">Themes</a>
+ </li>
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="{{ .Site.Params.blog }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Blog');" rel="noopener">Blog</a>
+ </li>
+ </ul>
- <ul class="navbar-nav flex-row flex-wrap ms-md-auto">
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.github_org }}" target="_blank" rel="noopener">
- {{ partialCached "icons/github.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }}
- <small class="d-md-none ms-2">GitHub</small>
- </a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="https://twitter.com/{{ .Site.Params.twitter }}" target="_blank" rel="noopener">
- {{ partialCached "icons/twitter.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }}
- <small class="d-md-none ms-2">Twitter</small>
- </a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.slack }}/" target="_blank" rel="noopener">
- {{ partialCached "icons/slack.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }}
- <small class="d-md-none ms-2">Slack</small>
- </a>
- </li>
- <li class="nav-item col-6 col-md-auto">
- <a class="nav-link p-2" href="{{ .Site.Params.opencollective }}/" target="_blank" rel="noopener">
- {{ partialCached "icons/opencollective.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }}
- <small class="d-md-none ms-2">Open Collective</small>
- </a>
- </li>
- </ul>
+ <hr class="d-lg-none text-white-50">
- <a class="btn btn-bd-download d-none d-lg-inline-block mb-3 mb-md-0 ms-md-3" href="{{ .Site.Params.repo }}/archive/v{{ .Site.Params.version }}.zip">Download</a>
+ <ul class="navbar-nav flex-row flex-wrap ms-md-auto">
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="{{ .Site.Params.github_org }}" target="_blank" rel="noopener">
+ {{ partial "icons/github.svg" (dict "class" "navbar-nav-svg" "width" "16" "height" "16") }}
+ <small class="d-lg-none ms-2">GitHub</small>
+ </a>
+ </li>
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="https://twitter.com/{{ .Site.Params.twitter }}" target="_blank" rel="noopener">
+ {{ partial "icons/twitter.svg" (dict "class" "navbar-nav-svg" "width" "16" "height" "16") }}
+ <small class="d-lg-none ms-2">Twitter</small>
+ </a>
+ </li>
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="{{ .Site.Params.slack }}" target="_blank" rel="noopener">
+ {{ partial "icons/slack.svg" (dict "class" "navbar-nav-svg" "width" "16" "height" "16") }}
+ <small class="d-lg-none ms-2">Slack</small>
+ </a>
+ </li>
+ <li class="nav-item col-6 col-lg-auto">
+ <a class="nav-link py-2 px-0 px-lg-2" href="{{ .Site.Params.opencollective }}" target="_blank" rel="noopener">
+ {{ partial "icons/opencollective.svg" (dict "class" "navbar-nav-svg" "width" "16" "height" "16") }}
+ <small class="d-lg-none ms-2">Open Collective</small>
+ </a>
+ </li>
+ </ul>
+ </div>
</div>
</nav>
</header>
diff --git a/docs/layouts/partials/scripts.html b/docs/layouts/partials/scripts.html
index ef11a9eb3..2edf5b151 100644
--- a/docs/layouts/partials/scripts.html
+++ b/docs/layouts/partials/scripts.html
@@ -1,3 +1,6 @@
+{{ $bootstrapJs := resources.Get "/js/bootstrap.min.js" }}
+<script src="{{ $bootstrapJs.Permalink | relURL }}"></script>
+
{{- if .IsHome }}
<script src="/assets/js/list.min.js"></script>
<script>
diff --git a/docs/layouts/partials/stylesheet.html b/docs/layouts/partials/stylesheet.html
index ef2880ab1..49a612f96 100644
--- a/docs/layouts/partials/stylesheet.html
+++ b/docs/layouts/partials/stylesheet.html
@@ -1,5 +1,6 @@
-<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
+{{- if eq .Layout "home" -}}
<link rel="stylesheet" href="/assets/font/bootstrap-icons.css">
+{{- end -}}
{{- $sassOptions := dict "targetPath" "assets/css/docs.css" "precision" 6 -}}
{{- $postcssOptions := dict "use" "autoprefixer" "noMap" true -}}
diff --git a/docs/static/assets/img/bootstrap-icons-social.png b/docs/static/assets/img/bootstrap-icons-social.png
index 2f90f1b46..530994bf5 100644
--- a/docs/static/assets/img/bootstrap-icons-social.png
+++ b/docs/static/assets/img/bootstrap-icons-social.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index ec655c11f..84f6c0b6f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,15 +1,16 @@
{
"name": "bootstrap-icons",
- "version": "1.8.1",
+ "version": "1.8.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "bootstrap-icons",
- "version": "1.8.1",
+ "version": "1.8.2",
"license": "MIT",
"devDependencies": {
"autoprefixer": "^10.4.7",
+ "bootstrap": "5.2.0-beta1",
"cross-env": "^7.0.3",
"eslint": "^8.14.0",
"fantasticon": "^1.2.3",
@@ -26,9 +27,6 @@
"svg-sprite": "^2.0.0-beta4",
"svgo": "^2.8.0",
"vnu-jar": "21.10.12"
- },
- "engines": {
- "node": ">=10"
}
},
"node_modules/@babel/code-frame": {
@@ -291,6 +289,17 @@
"node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
+ "node_modules/@popperjs/core": {
+ "version": "2.11.5",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
+ "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==",
+ "dev": true,
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
"node_modules/@resvg/resvg-js": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-1.4.0.tgz",
@@ -1039,6 +1048,25 @@
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
"dev": true
},
+ "node_modules/bootstrap": {
+ "version": "5.2.0-beta1",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0-beta1.tgz",
+ "integrity": "sha512-6qbgs177WZEFY4SLQUq3tEHayYG80nfDmyTpdKi0MJqRMdS+HAoq24+YKfx6wf+nHY0rx8zrh477J1lFu4WzOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/twbs"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/bootstrap"
+ }
+ ],
+ "peerDependencies": {
+ "@popperjs/core": "^2.11.5"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -8167,6 +8195,13 @@
"rimraf": "^3.0.2"
}
},
+ "@popperjs/core": {
+ "version": "2.11.5",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
+ "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==",
+ "dev": true,
+ "peer": true
+ },
"@resvg/resvg-js": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-1.4.0.tgz",
@@ -8658,6 +8693,13 @@
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
"dev": true
},
+ "bootstrap": {
+ "version": "5.2.0-beta1",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0-beta1.tgz",
+ "integrity": "sha512-6qbgs177WZEFY4SLQUq3tEHayYG80nfDmyTpdKi0MJqRMdS+HAoq24+YKfx6wf+nHY0rx8zrh477J1lFu4WzOA==",
+ "dev": true,
+ "requires": {}
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
diff --git a/package.json b/package.json
index c0055ce6a..1a9ef1342 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "bootstrap-icons",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Official open source SVG icon library for Bootstrap",
"author": "mdo",
"license": "MIT",
@@ -40,6 +40,7 @@
"sass": "font/bootstrap-icons.scss",
"devDependencies": {
"autoprefixer": "^10.4.7",
+ "bootstrap": "5.2.0-beta1",
"cross-env": "^7.0.3",
"eslint": "^8.14.0",
"fantasticon": "^1.2.3",