Merge branch 'MDL-71089-311' of git://github.com/roland04/moodle into MOODLE_311_STABLE
This commit is contained in:
@@ -1 +1 @@
|
||||
{"version":3,"sources":["../src/toast.js"],"names":["addToastRegion","parent","pendingPromise","Pending","Templates","renderForPromise","html","js","prependNodeContents","Notification","exception","resolve","add","message","configuration","closeButton","autohide","delay","templateName","getTargetNode","targetNode","regions","document","querySelectorAll","length","body"],"mappings":"mMAuBA,OACA,OACA,O,6jCAOO,GAAMA,CAAAA,CAAc,4CAAG,WAAMC,CAAN,+FACpBC,CADoB,CACH,GAAIC,UAAJ,CAAY,gBAAZ,CADG,yBAIGC,WAAUC,gBAAV,CAA2B,0BAA3B,CAAuD,EAAvD,CAJH,iBAIfC,CAJe,GAIfA,IAJe,CAITC,CAJS,GAITA,EAJS,CAKtBH,UAAUI,mBAAV,CAA8BP,CAA9B,CAAsCK,CAAtC,CAA4CC,CAA5C,EALsB,qDAOtBE,UAAaC,SAAb,OAPsB,QAU1BR,CAAc,CAACS,OAAf,GAV0B,uDAAH,uDAApB,C,mBAuBA,GAAMC,CAAAA,CAAG,4CAAG,WAAMC,CAAN,CAAeC,CAAf,mGACTZ,CADS,CACQ,GAAIC,UAAJ,CAAY,gBAAZ,CADR,CAEfW,CAAa,IACTC,WAAW,GADF,CAETC,QAAQ,GAFC,CAGTC,KAAK,CAAE,GAHE,EAINH,CAJM,CAAb,CAOMI,CATS,oDAWcC,CAAAA,CAAa,EAX3B,QAWLC,CAXK,uBAYchB,WAAUC,gBAAV,CAA2Ba,CAA3B,IACrBL,OAAO,CAAPA,CADqB,EAElBC,CAFkB,EAZd,iBAYJR,CAZI,GAYJA,IAZI,CAYEC,CAZF,GAYEA,EAZF,CAgBXH,UAAUI,mBAAV,CAA8BY,CAA9B,CAA0Cd,CAA1C,CAAgDC,CAAhD,EAhBW,qDAkBXE,UAAaC,SAAb,OAlBW,QAqBfR,CAAc,CAACS,OAAf,GArBe,uDAAH,uDAAT,C,QAwBP,GAAMQ,CAAAA,CAAa,4CAAG,oGACZE,CADY,CACFC,QAAQ,CAACC,gBAAT,CAA0B,gBAA1B,CADE,KAGdF,CAAO,CAACG,MAHM,0CAIPH,CAAO,CAACA,CAAO,CAACG,MAAR,CAAiB,CAAlB,CAJA,wBAOZxB,CAAAA,CAAc,CAACsB,QAAQ,CAACG,IAAV,CAAgB,cAAhB,CAPF,iCAQXN,CAAa,EARF,0CAAH,uD","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * A system for displaying small snackbar notifications to users which disappear shortly after they are shown.\n *\n * @module core/toast\n * @package core\n * @copyright 2019 Andrew Nicols <[email protected]>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\nimport Templates from 'core/templates';\nimport Notification from 'core/notification';\nimport Pending from 'core/pending';\n\n/**\n * Add a new region to place toasts in, taking in a parent element.\n *\n * @param {Element} parent\n */\nexport const addToastRegion = async(parent) => {\n const pendingPromise = new Pending('addToastRegion');\n\n try {\n const {html, js} = await Templates.renderForPromise('core/local/toast/wrapper', {});\n Templates.prependNodeContents(parent, html, js);\n } catch (e) {\n Notification.exception(e);\n }\n\n pendingPromise.resolve();\n};\n\n/**\n * Add a new toast or snackbar notification to the page.\n *\n * @param {String} message\n * @param {Object} configuration\n * @param {String} [configuration.title]\n * @param {String} [configuration.subtitle]\n * @param {Bool} [configuration.autohide=true]\n * @param {Number} [configuration.delay=4000]\n */\nexport const add = async(message, configuration) => {\n const pendingPromise = new Pending('addToastRegion');\n configuration = {\n closeButton: false,\n autohide: true,\n delay: 4000,\n ...configuration,\n };\n\n const templateName = `core/local/toast/message`;\n try {\n const targetNode = await getTargetNode();\n const {html, js} = await Templates.renderForPromise(templateName, {\n message,\n ...configuration\n });\n Templates.prependNodeContents(targetNode, html, js);\n } catch (e) {\n Notification.exception(e);\n }\n\n pendingPromise.resolve();\n};\n\nconst getTargetNode = async() => {\n const regions = document.querySelectorAll('.toast-wrapper');\n\n if (regions.length) {\n return regions[regions.length - 1];\n }\n\n await addToastRegion(document.body, 'fixed-bottom');\n return getTargetNode();\n};\n"],"file":"toast.min.js"}
|
||||
{"version":3,"sources":["../src/toast.js"],"names":["addToastRegion","parent","pendingPromise","Pending","Templates","renderForPromise","html","js","prependNodeContents","Notification","exception","resolve","add","message","configuration","closeButton","autohide","delay","templateName","getTargetNode","targetNode","regions","document","querySelectorAll","length","body"],"mappings":"mMAuBA,OACA,OACA,O,6jCAOO,GAAMA,CAAAA,CAAc,4CAAG,WAAMC,CAAN,+FACpBC,CADoB,CACH,GAAIC,UAAJ,CAAY,gBAAZ,CADG,yBAIGC,WAAUC,gBAAV,CAA2B,0BAA3B,CAAuD,EAAvD,CAJH,iBAIfC,CAJe,GAIfA,IAJe,CAITC,CAJS,GAITA,EAJS,CAKtBH,UAAUI,mBAAV,CAA8BP,CAA9B,CAAsCK,CAAtC,CAA4CC,CAA5C,EALsB,qDAOtBE,UAAaC,SAAb,OAPsB,QAU1BR,CAAc,CAACS,OAAf,GAV0B,uDAAH,uDAApB,C,mBAyBA,GAAMC,CAAAA,CAAG,4CAAG,WAAMC,CAAN,CAAeC,CAAf,mGACTZ,CADS,CACQ,GAAIC,UAAJ,CAAY,gBAAZ,CADR,CAEfW,CAAa,IACTC,WAAW,GADF,CAETC,QAAQ,GAFC,CAGTC,KAAK,CAAE,GAHE,EAINH,CAJM,CAAb,CAOMI,CATS,oDAWcC,CAAAA,CAAa,EAX3B,QAWLC,CAXK,uBAYchB,WAAUC,gBAAV,CAA2Ba,CAA3B,IACrBL,OAAO,CAAPA,CADqB,EAElBC,CAFkB,EAZd,iBAYJR,CAZI,GAYJA,IAZI,CAYEC,CAZF,GAYEA,EAZF,CAgBXH,UAAUI,mBAAV,CAA8BY,CAA9B,CAA0Cd,CAA1C,CAAgDC,CAAhD,EAhBW,qDAkBXE,UAAaC,SAAb,OAlBW,QAqBfR,CAAc,CAACS,OAAf,GArBe,uDAAH,uDAAT,C,QAwBP,GAAMQ,CAAAA,CAAa,4CAAG,oGACZE,CADY,CACFC,QAAQ,CAACC,gBAAT,CAA0B,gBAA1B,CADE,KAGdF,CAAO,CAACG,MAHM,0CAIPH,CAAO,CAACA,CAAO,CAACG,MAAR,CAAiB,CAAlB,CAJA,wBAOZxB,CAAAA,CAAc,CAACsB,QAAQ,CAACG,IAAV,CAAgB,cAAhB,CAPF,iCAQXN,CAAa,EARF,0CAAH,uD","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * A system for displaying small snackbar notifications to users which disappear shortly after they are shown.\n *\n * @module core/toast\n * @package core\n * @copyright 2019 Andrew Nicols <[email protected]>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\nimport Templates from 'core/templates';\nimport Notification from 'core/notification';\nimport Pending from 'core/pending';\n\n/**\n * Add a new region to place toasts in, taking in a parent element.\n *\n * @param {Element} parent\n */\nexport const addToastRegion = async(parent) => {\n const pendingPromise = new Pending('addToastRegion');\n\n try {\n const {html, js} = await Templates.renderForPromise('core/local/toast/wrapper', {});\n Templates.prependNodeContents(parent, html, js);\n } catch (e) {\n Notification.exception(e);\n }\n\n pendingPromise.resolve();\n};\n\n/**\n * Add a new toast or snackbar notification to the page.\n *\n * @param {String} message\n * @param {Object} configuration\n * @param {String} [configuration.title]\n * @param {String} [configuration.subtitle]\n * @param {String} [configuration.type] Optional type of the toast notification ('success', 'info', 'warning' or 'danger')\n * @param {Boolean} [configuration.autohide=true]\n * @param {Boolean} [configuration.closeButton=false]\n * @param {Number} [configuration.delay=4000]\n */\nexport const add = async(message, configuration) => {\n const pendingPromise = new Pending('addToastRegion');\n configuration = {\n closeButton: false,\n autohide: true,\n delay: 4000,\n ...configuration,\n };\n\n const templateName = `core/local/toast/message`;\n try {\n const targetNode = await getTargetNode();\n const {html, js} = await Templates.renderForPromise(templateName, {\n message,\n ...configuration\n });\n Templates.prependNodeContents(targetNode, html, js);\n } catch (e) {\n Notification.exception(e);\n }\n\n pendingPromise.resolve();\n};\n\nconst getTargetNode = async() => {\n const regions = document.querySelectorAll('.toast-wrapper');\n\n if (regions.length) {\n return regions[regions.length - 1];\n }\n\n await addToastRegion(document.body, 'fixed-bottom');\n return getTargetNode();\n};\n"],"file":"toast.min.js"}
|
||||
@@ -50,7 +50,9 @@ export const addToastRegion = async(parent) => {
|
||||
* @param {Object} configuration
|
||||
* @param {String} [configuration.title]
|
||||
* @param {String} [configuration.subtitle]
|
||||
* @param {Bool} [configuration.autohide=true]
|
||||
* @param {String} [configuration.type] Optional type of the toast notification ('success', 'info', 'warning' or 'danger')
|
||||
* @param {Boolean} [configuration.autohide=true]
|
||||
* @param {Boolean} [configuration.closeButton=false]
|
||||
* @param {Number} [configuration.delay=4000]
|
||||
*/
|
||||
export const add = async(message, configuration) => {
|
||||
|
||||
@@ -30,18 +30,27 @@
|
||||
"data": 200,
|
||||
"autohide": true,
|
||||
"Message": "Cubing negative numbers is tough",
|
||||
"title": "Negative numbers",
|
||||
"subtitle": "Cubing",
|
||||
"type": "info",
|
||||
"closebutton": true
|
||||
}
|
||||
}}
|
||||
<div id="toast-{{uniqid}}" class="toast bg-dark text-white rounded mx-auto" data-delay="{{delay}}" {{^autohide}}data-autohide="false"{{/autohide}}>
|
||||
<div class="toast-body">
|
||||
<span>{{{message}}}</span>
|
||||
{{#closeButton}}
|
||||
<button type="button" class="ml-2 mb-1 close text-white" data-dismiss="toast" aria-label="{{#str}}dismissnotification, core{{/str}}">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
{{/closeButton}}
|
||||
</div>
|
||||
<div id="toast-{{uniqid}}" class="toast mx-auto {{#type}}toast-{{type}}{{/type}}" data-delay="{{delay}}" {{^autohide}}data-autohide="false"{{/autohide}}>
|
||||
{{#title}}
|
||||
<div class="toast-header">
|
||||
<span class="toast-title">{{{title}}}</span>
|
||||
{{#subtitle}}<span class="toast-subtitle ml-auto small">{{{subtitle}}}</span>{{/subtitle}}
|
||||
</div>
|
||||
{{/title}}
|
||||
<div class="toast-body d-flex">
|
||||
<div class="toast-message px-1">{{{message}}}</div>
|
||||
{{#closeButton}}
|
||||
<button type="button" class="ml-auto align-self-baseline close" data-dismiss="toast" aria-label="{{#str}}dismissnotification, core{{/str}}">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
{{/closeButton}}
|
||||
</div>
|
||||
</div>
|
||||
{{#js}}
|
||||
require(['jquery', 'theme_boost/bootstrap/toast'], function(jQuery) {
|
||||
|
||||
@@ -42,3 +42,4 @@ $breadcrumb-divider-rtl: "◀" !default;
|
||||
@import "moodle/layout";
|
||||
@import "moodle/prefixes";
|
||||
@import "moodle/atto";
|
||||
@import "moodle/toasts";
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
@mixin toast-icon($content) {
|
||||
@include fa-icon();
|
||||
margin: 2px 5px 0 0;
|
||||
content: $content;
|
||||
}
|
||||
|
||||
@mixin toast-variant($color) {
|
||||
background-color: rgba(theme-color-level($color, $alert-bg-level), .95);
|
||||
color: theme-color-level($color, $alert-color-level);
|
||||
.toast-header {
|
||||
color: theme-color-level($color, $alert-color-level);
|
||||
}
|
||||
}
|
||||
|
||||
.toast {
|
||||
border-radius: $toast-border-radius;
|
||||
|
||||
&.toast-success {
|
||||
@include toast-variant('success');
|
||||
.toast-body:before {
|
||||
@include toast-icon($fa-var-check-circle);
|
||||
}
|
||||
}
|
||||
|
||||
&.toast-danger {
|
||||
@include toast-variant('danger');
|
||||
.toast-body:before {
|
||||
@include toast-icon($fa-var-times-circle);
|
||||
}
|
||||
}
|
||||
|
||||
&.toast-info {
|
||||
@include toast-variant('info');
|
||||
.toast-body:before {
|
||||
@include toast-icon($fa-var-info-circle);
|
||||
}
|
||||
}
|
||||
|
||||
&.toast-warning {
|
||||
@include toast-variant('warning');
|
||||
.toast-body:before {
|
||||
@include toast-icon($fa-var-exclamation-circle);
|
||||
}
|
||||
}
|
||||
|
||||
.close {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
@@ -66,6 +66,12 @@ $alert-border-width: 0 !default;
|
||||
|
||||
$card-group-margin: .25rem;
|
||||
|
||||
// Toasts
|
||||
$toast-color: $white !default;
|
||||
$toast-background-color: rgba($gray-900, .95) !default;
|
||||
$toast-header-color: $gray-100 !default;
|
||||
$toast-header-background-color: rgba($white, .1) !default;
|
||||
|
||||
// Custom control size
|
||||
$custom-control-indicator-size: 1.25rem;
|
||||
|
||||
|
||||
@@ -6317,7 +6317,8 @@ a.close.disabled {
|
||||
max-width: 350px;
|
||||
overflow: hidden;
|
||||
font-size: 0.875rem;
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
color: #fff;
|
||||
background-color: rgba(33, 37, 41, 0.95);
|
||||
background-clip: padding-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
|
||||
@@ -6337,8 +6338,8 @@ a.close.disabled {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.25rem 0.75rem;
|
||||
color: #6c757d;
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
color: #f8f9fa;
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
background-clip: padding-box;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
|
||||
|
||||
@@ -19694,6 +19695,67 @@ div.editor_atto_content:hover .atto_control {
|
||||
div.editor_atto_toolbar button .icon {
|
||||
color: #495057; }
|
||||
|
||||
.toast {
|
||||
border-radius: 0.25rem; }
|
||||
.toast.toast-success {
|
||||
background-color: rgba(215, 228, 214, 0.95);
|
||||
color: #1c3f1a; }
|
||||
.toast.toast-success .toast-header {
|
||||
color: #1c3f1a; }
|
||||
.toast.toast-success .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast.toast-danger {
|
||||
background-color: rgba(244, 214, 210, 0.95);
|
||||
color: #691911; }
|
||||
.toast.toast-danger .toast-header {
|
||||
color: #691911; }
|
||||
.toast.toast-danger .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast.toast-info {
|
||||
background-color: rgba(204, 230, 234, 0.95);
|
||||
color: #00434e; }
|
||||
.toast.toast-info .toast-header {
|
||||
color: #00434e; }
|
||||
.toast.toast-info .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast.toast-warning {
|
||||
background-color: rgba(252, 239, 220, 0.95);
|
||||
color: #7d5a29; }
|
||||
.toast.toast-warning .toast-header {
|
||||
color: #7d5a29; }
|
||||
.toast.toast-warning .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast .close {
|
||||
color: inherit; }
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale; }
|
||||
|
||||
@@ -63,6 +63,12 @@ $alert-border-width: 0 !default;
|
||||
|
||||
$card-group-margin: .25rem;
|
||||
|
||||
// Toasts
|
||||
$toast-color: $white !default;
|
||||
$toast-background-color: rgba($gray-900, .95) !default;
|
||||
$toast-header-color: $gray-100 !default;
|
||||
$toast-header-background-color: rgba($white, .1) !default;
|
||||
|
||||
$input-btn-focus-color: rgba($primary, .75) !default;
|
||||
|
||||
$input-border-color: $gray-500 !default;
|
||||
|
||||
@@ -6510,7 +6510,8 @@ a.close.disabled {
|
||||
max-width: 350px;
|
||||
overflow: hidden;
|
||||
font-size: 0.875rem;
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
color: #fff;
|
||||
background-color: rgba(33, 37, 41, 0.95);
|
||||
background-clip: padding-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
|
||||
@@ -6531,8 +6532,8 @@ a.close.disabled {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.25rem 0.75rem;
|
||||
color: #6c757d;
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
color: #f8f9fa;
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
background-clip: padding-box;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
|
||||
|
||||
@@ -19877,6 +19878,67 @@ div.editor_atto_content:hover .atto_control {
|
||||
div.editor_atto_toolbar button .icon {
|
||||
color: #495057; }
|
||||
|
||||
.toast {
|
||||
border-radius: 0.25rem; }
|
||||
.toast.toast-success {
|
||||
background-color: rgba(215, 228, 214, 0.95);
|
||||
color: #1c3f1a; }
|
||||
.toast.toast-success .toast-header {
|
||||
color: #1c3f1a; }
|
||||
.toast.toast-success .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast.toast-danger {
|
||||
background-color: rgba(244, 214, 210, 0.95);
|
||||
color: #691911; }
|
||||
.toast.toast-danger .toast-header {
|
||||
color: #691911; }
|
||||
.toast.toast-danger .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast.toast-info {
|
||||
background-color: rgba(204, 230, 234, 0.95);
|
||||
color: #00434e; }
|
||||
.toast.toast-info .toast-header {
|
||||
color: #00434e; }
|
||||
.toast.toast-info .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast.toast-warning {
|
||||
background-color: rgba(252, 239, 220, 0.95);
|
||||
color: #7d5a29; }
|
||||
.toast.toast-warning .toast-header {
|
||||
color: #7d5a29; }
|
||||
.toast.toast-warning .toast-body:before {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
margin: 2px 5px 0 0;
|
||||
content: ""; }
|
||||
.toast .close {
|
||||
color: inherit; }
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale; }
|
||||
|
||||
Reference in New Issue
Block a user