From 1ff2a54b89c9960f3ba6e39daba6d887953e07c7 Mon Sep 17 00:00:00 2001 From: Jesus David Garcia Gomez Date: Thu, 13 Sep 2018 16:59:13 -0700 Subject: [PATCH] Fix: New html formatter design --- .../src/assets/images/scan/accessibility.svg | 2 +- .../src/assets/images/scan/dev-icon.svg | 2 +- .../src/assets/images/scan/favicon-16x16.png | Bin 0 -> 390 bytes .../src/assets/images/scan/favicon-32x32.png | Bin 0 -> 719 bytes .../src/assets/images/scan/favicon_failed.ico | Bin 0 -> 306 bytes .../src/assets/images/scan/favicon_passed.ico | Bin 0 -> 293 bytes .../assets/images/scan/favicon_pending.ico | Bin 0 -> 300 bytes .../assets/images/scan/interoperability.svg | 2 +- .../src/assets/images/scan/open-blank.svg | 1 + .../src/assets/images/scan/open-close.svg | 3 + .../src/assets/images/scan/other-icon.svg | 2 +- .../src/assets/images/scan/performance.svg | 2 +- .../src/assets/images/scan/pwa.svg | 2 +- .../assets/images/scan/results-error-icon.svg | 1 - .../images/scan/results-hide-details.svg | 1 - .../images/scan/results-view-details.svg | 1 - .../images/scan/results-warning-icon.svg | 1 - .../src/assets/images/scan/security.svg | 2 +- packages/formatter-html/src/assets/index.html | 656 ++++++++++++++++++ .../src/assets/js/polyfills/accordion.js | 82 +++ .../src/assets/js/polyfills/setimmediate.js | 11 + .../src/assets/js/scan/scanner-common.js | 162 ++++- .../src/assets/styles/fonts.css | 31 + .../assets/styles/fonts/montserrat-300.woff | Bin 0 -> 22544 bytes .../assets/styles/fonts/montserrat-300.woff2 | Bin 0 -> 18444 bytes .../assets/styles/fonts/montserrat-400.woff | Bin 0 -> 22804 bytes .../assets/styles/fonts/montserrat-400.woff2 | Bin 0 -> 18684 bytes .../assets/styles/fonts/montserrat-500.woff | Bin 0 -> 22844 bytes .../assets/styles/fonts/montserrat-500.woff2 | Bin 0 -> 18728 bytes .../assets/styles/fonts/source-sans-pro.woff | Bin 0 -> 19616 bytes .../assets/styles/fonts/source-sans-pro.woff2 | Bin 0 -> 15908 bytes .../src/assets/styles/layouts.css | 30 + .../src/assets/styles/scan/scan-results.1.css | 545 +++++++++++++++ .../src/assets/styles/scan/scan-results.css | 646 +++++++++++------ .../formatter-html/src/assets/styles/type.css | 4 +- packages/formatter-html/src/formatter.ts | 49 +- packages/formatter-html/src/result.ts | 47 +- packages/formatter-html/src/utils.ts | 13 +- .../formatter-html/src/views/pages/report.ejs | 4 + .../src/views/partials/browser-icon.ejs | 11 + .../src/views/partials/check-mark.ejs | 1 + .../views/partials/scan-category-summary.ejs | 18 + .../src/views/partials/scan-expand-all.ejs | 1 + .../partials/scan-result-category-item.ejs | 22 + .../src/views/partials/scan-result-item.1.ejs | 49 ++ .../src/views/partials/scan-result-item.ejs | 89 ++- .../src/views/partials/scan-result.1.ejs | 107 +++ .../src/views/partials/scan-result.ejs | 144 ++-- packages/formatter-html/tests/tests.ts | 18 +- packages/hint/src/lib/cli/analyze.ts | 6 +- packages/hint/src/lib/types/formatters.ts | 6 +- 51 files changed, 2334 insertions(+), 440 deletions(-) create mode 100644 packages/formatter-html/src/assets/images/scan/favicon-16x16.png create mode 100644 packages/formatter-html/src/assets/images/scan/favicon-32x32.png create mode 100644 packages/formatter-html/src/assets/images/scan/favicon_failed.ico create mode 100644 packages/formatter-html/src/assets/images/scan/favicon_passed.ico create mode 100644 packages/formatter-html/src/assets/images/scan/favicon_pending.ico create mode 100644 packages/formatter-html/src/assets/images/scan/open-blank.svg create mode 100644 packages/formatter-html/src/assets/images/scan/open-close.svg delete mode 100644 packages/formatter-html/src/assets/images/scan/results-error-icon.svg delete mode 100644 packages/formatter-html/src/assets/images/scan/results-hide-details.svg delete mode 100644 packages/formatter-html/src/assets/images/scan/results-view-details.svg delete mode 100644 packages/formatter-html/src/assets/images/scan/results-warning-icon.svg create mode 100644 packages/formatter-html/src/assets/index.html create mode 100644 packages/formatter-html/src/assets/js/polyfills/accordion.js create mode 100644 packages/formatter-html/src/assets/js/polyfills/setimmediate.js create mode 100644 packages/formatter-html/src/assets/styles/fonts.css create mode 100644 packages/formatter-html/src/assets/styles/fonts/montserrat-300.woff create mode 100644 packages/formatter-html/src/assets/styles/fonts/montserrat-300.woff2 create mode 100644 packages/formatter-html/src/assets/styles/fonts/montserrat-400.woff create mode 100644 packages/formatter-html/src/assets/styles/fonts/montserrat-400.woff2 create mode 100644 packages/formatter-html/src/assets/styles/fonts/montserrat-500.woff create mode 100644 packages/formatter-html/src/assets/styles/fonts/montserrat-500.woff2 create mode 100644 packages/formatter-html/src/assets/styles/fonts/source-sans-pro.woff create mode 100644 packages/formatter-html/src/assets/styles/fonts/source-sans-pro.woff2 create mode 100644 packages/formatter-html/src/assets/styles/scan/scan-results.1.css create mode 100644 packages/formatter-html/src/views/partials/browser-icon.ejs create mode 100644 packages/formatter-html/src/views/partials/check-mark.ejs create mode 100644 packages/formatter-html/src/views/partials/scan-category-summary.ejs create mode 100644 packages/formatter-html/src/views/partials/scan-expand-all.ejs create mode 100644 packages/formatter-html/src/views/partials/scan-result-category-item.ejs create mode 100644 packages/formatter-html/src/views/partials/scan-result-item.1.ejs create mode 100644 packages/formatter-html/src/views/partials/scan-result.1.ejs diff --git a/packages/formatter-html/src/assets/images/scan/accessibility.svg b/packages/formatter-html/src/assets/images/scan/accessibility.svg index 7f930a32194..cab4632845d 100644 --- a/packages/formatter-html/src/assets/images/scan/accessibility.svg +++ b/packages/formatter-html/src/assets/images/scan/accessibility.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/dev-icon.svg b/packages/formatter-html/src/assets/images/scan/dev-icon.svg index 1a52bb679f4..0fa7f24bb55 100644 --- a/packages/formatter-html/src/assets/images/scan/dev-icon.svg +++ b/packages/formatter-html/src/assets/images/scan/dev-icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/favicon-16x16.png b/packages/formatter-html/src/assets/images/scan/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..47155cdec7ff27652121eb9463ac34e4abf39cc7 GIT binary patch literal 390 zcmV;10eSw3P)iy;=JwazB&Zj zytrCl@UHdmpMOlaG&4=@_?Y5j_TnoL|3|}}k*+U~-@Nh*x9#_C{SpBxya?8SiLWO6 zzv>5u0UKEHi>H6sE}#1;@aEMYrY8@7gV=oMPyJ8MEwoNO(TC|qEZwD&e2*f8rwn6dU_R9C&TULM70>?i-@aOkGrgv}t kumLd-66W{=(m3b<0EW&u+gJRl9smFU07*qoM6N<$g1orAE&u=k literal 0 HcmV?d00001 diff --git a/packages/formatter-html/src/assets/images/scan/favicon-32x32.png b/packages/formatter-html/src/assets/images/scan/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..befffb26b13c137a977b26d1c752612a9512a61a GIT binary patch literal 719 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dylLLH0T-^(N?%eo&_vSAjvlpK} z`~{Ln_kDl<_|MND{~p}=4dg=5+=-tcjIC?F!3BYgBYVFC$%RutLj-SL`L%5JmjJ7m z5H3&_C>7`Z3dpU=c?TqOqu;Ds@?}EvhY3v|CN_TnimX}mWlhF&|LbK>`kcCx z@?dW4pZa5)e>8tee=oMbIR3Wc)(KOr%^rF_p8a^$Iy1IO)v;ST)k*`OS)bk6{DhBn z{i2@N{;UW0i0a-_K06eZ>Z=SNG4(RZI-Z#P z@ZF|M&m3^#fEPG=+_w4UA*Pe-mFY6Yzn_muKH&hF!#r~mw0aWf;I zF|YE>KdW|cmvO8}wBT>%baL}$>@Af*#z4yV^t@&T>n%8O6 zs8Rn`&;0NZ?poYIf(_gq0b*aAAzE%}h6*h8#R^dWZ4%e2Re%iqfd(_MK=uLNTOo+g z*&+Y|f2n{s*#X(x3pQw0t*F2X)gr_StmO7?9Du;>&VabqZ=ywKTf7260TzO7hzpP0 zg!**|fAXgy+GZa@1ep(pu7Z6EKS^ky1B@g}q= rW}?At{c1*#x_Tf%1g}|d)TmJ}C!!AQ3QTJA00000NkvXXu0mjf{~~|& literal 0 HcmV?d00001 diff --git a/packages/formatter-html/src/assets/images/scan/favicon_pending.ico b/packages/formatter-html/src/assets/images/scan/favicon_pending.ico new file mode 100644 index 0000000000000000000000000000000000000000..531aafec2326cabddd6ed17d75473c3594f7bab9 GIT binary patch literal 300 zcmV+{0n`48P)E%&*AhT%9RW)W17RF@i_5FSn>fX(PIZb?oa$7kI>jkYaaxzXKOAH_xw&h) zox*PplDU4fyG`m4o(!-+5T1B=K!IYjENMiBKo52-O#popILngi5B?8(lSP0TdcxF% zC{`^H=m`aX2v%(f&_UU%6$yHQz+DZoK`)wne>@>z>a6*8jo)k#B7G~dU_m+zV6+S| z`pO0K5S<_u`ax~>$(<{S%gu9cn<}Ob?_1$@EYfP~b)`s%jr# y{MsI!iHdZ`*HJ{mj@+>#!oNm|U87(Wi~;~j7lOJ{m94G-0000 \ No newline at end of file + diff --git a/packages/formatter-html/src/assets/images/scan/open-blank.svg b/packages/formatter-html/src/assets/images/scan/open-blank.svg new file mode 100644 index 00000000000..9ef78487af3 --- /dev/null +++ b/packages/formatter-html/src/assets/images/scan/open-blank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/open-close.svg b/packages/formatter-html/src/assets/images/scan/open-close.svg new file mode 100644 index 00000000000..0dbd9c7af86 --- /dev/null +++ b/packages/formatter-html/src/assets/images/scan/open-close.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/formatter-html/src/assets/images/scan/other-icon.svg b/packages/formatter-html/src/assets/images/scan/other-icon.svg index 59749c34b96..37b8327da3b 100644 --- a/packages/formatter-html/src/assets/images/scan/other-icon.svg +++ b/packages/formatter-html/src/assets/images/scan/other-icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/performance.svg b/packages/formatter-html/src/assets/images/scan/performance.svg index 75355d0be14..e48314d34db 100644 --- a/packages/formatter-html/src/assets/images/scan/performance.svg +++ b/packages/formatter-html/src/assets/images/scan/performance.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/pwa.svg b/packages/formatter-html/src/assets/images/scan/pwa.svg index 4aed036252b..367ce4cb39d 100644 --- a/packages/formatter-html/src/assets/images/scan/pwa.svg +++ b/packages/formatter-html/src/assets/images/scan/pwa.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/results-error-icon.svg b/packages/formatter-html/src/assets/images/scan/results-error-icon.svg deleted file mode 100644 index ec6d1715367..00000000000 --- a/packages/formatter-html/src/assets/images/scan/results-error-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/results-hide-details.svg b/packages/formatter-html/src/assets/images/scan/results-hide-details.svg deleted file mode 100644 index 089aa26cc1b..00000000000 --- a/packages/formatter-html/src/assets/images/scan/results-hide-details.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/results-view-details.svg b/packages/formatter-html/src/assets/images/scan/results-view-details.svg deleted file mode 100644 index 9d051a2a2d5..00000000000 --- a/packages/formatter-html/src/assets/images/scan/results-view-details.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/results-warning-icon.svg b/packages/formatter-html/src/assets/images/scan/results-warning-icon.svg deleted file mode 100644 index 1631612a8b1..00000000000 --- a/packages/formatter-html/src/assets/images/scan/results-warning-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/formatter-html/src/assets/images/scan/security.svg b/packages/formatter-html/src/assets/images/scan/security.svg index 7964e84b7d6..fa226c6b486 100644 --- a/packages/formatter-html/src/assets/images/scan/security.svg +++ b/packages/formatter-html/src/assets/images/scan/security.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/index.html b/packages/formatter-html/src/assets/index.html new file mode 100644 index 00000000000..2266b124eac --- /dev/null +++ b/packages/formatter-html/src/assets/index.html @@ -0,0 +1,656 @@ + + + + + + Page Title + + + + + + + + + + + + + + + + + + + +
+
+
+
+

SCANNING 100%

+

+ SCAN TIME: 00:13 +

+
+
+
+

HINTS

+

14

+
+
+ + +
+
+
+

Webhint version: 3.4.0

+
+ +
+
+
+ +
+

Hints

+
+ +
+
+
+

accessibility

+ + + +
+ + + + + +
+ +
+
+

interoperability

+ + + +
+ + + + + + + +
+ +
+
+

security

+ + + +
+ + + + + + + + + +
+ +
+
+

performance

+ + + +
+ + + + + + + +
+ + +
+
+
+ +
+ + + + + + + + + + \ No newline at end of file diff --git a/packages/formatter-html/src/assets/js/polyfills/accordion.js b/packages/formatter-html/src/assets/js/polyfills/accordion.js new file mode 100644 index 00000000000..e3bb333a3ad --- /dev/null +++ b/packages/formatter-html/src/assets/js/polyfills/accordion.js @@ -0,0 +1,82 @@ +/* global setImmediate */ +/* eslint-disable no-var,prefer-arrow-callback,prefer-template */ +(function () { + var supportDetails = 'open' in document.createElement('details'); + + var shim = function () { + var accordionButtons = document.querySelectorAll('summary'); + + for (var i = 0, li = accordionButtons.length; i < li; i++) { + var button = accordionButtons[i]; + + if (!supportDetails) { + button.setAttribute('tabindex', '0'); + } + button.setAttribute('role', 'button'); + button.parentElement.setAttribute('role', 'group'); + } + }; + + var onToggleAccordion = function (e, target) { + var ariaExpanded = target.getAttribute('aria-expanded'); + var keydown = e.type === 'keydown'; + var key; + + if (keydown) { + key = e.which || e.keyCode; + + if (key !== 32 && key !== 13) { + return; + } + } + + e.preventDefault(); + + if (ariaExpanded === 'false' || !ariaExpanded) { + target.setAttribute('aria-expanded', 'true'); + target.parentElement.setAttribute('open', ''); + } else { + target.setAttribute('aria-expanded', 'false'); + target.parentElement.removeAttribute('open'); + } + }; + + var findSummary = function (element) { + if (element.nodeName === 'SUMMARY' && element.getAttribute('role') === 'button') { + return element; + } + + if (element.parentElement) { + return findSummary(element.parentElement); + } + + return null; + }; + + var registerEvents = function () { + document.addEventListener('click', function (evt) { + var target = evt.target || evt.srcElement; + var source = findSummary(target); + + if (source) { + onToggleAccordion(evt, source); + } + }, false); + + document.addEventListener('keydown', function (evt) { + var target = evt.target || evt.srcElement; + var source = findSummary(target); + + if (source) { + onToggleAccordion(evt, source); + } + }, false); + }; + + window.addEventListener('load', function () { + shim(); + if (!supportDetails) { + registerEvents(); + } + }); +}()); diff --git a/packages/formatter-html/src/assets/js/polyfills/setimmediate.js b/packages/formatter-html/src/assets/js/polyfills/setimmediate.js new file mode 100644 index 00000000000..d1ef3c880c8 --- /dev/null +++ b/packages/formatter-html/src/assets/js/polyfills/setimmediate.js @@ -0,0 +1,11 @@ +/* eslint-disable no-var */ + +(function () { + var polyfillSetImmediate = function () { + window.setImmediate = window.setImmediate || function (func) { + setTimeout(func, 0); + }; + }; + + polyfillSetImmediate(); +}()); diff --git a/packages/formatter-html/src/assets/js/scan/scanner-common.js b/packages/formatter-html/src/assets/js/scan/scanner-common.js index 19bd21e2f8a..39ea798857c 100644 --- a/packages/formatter-html/src/assets/js/scan/scanner-common.js +++ b/packages/formatter-html/src/assets/js/scan/scanner-common.js @@ -1,4 +1,4 @@ -/* global hljs */ +/* global hljs, ejsPartials */ /* eslint-disable no-var,prefer-arrow-callback,prefer-template,no-self-assign */ (function () { /** Polyfill for 'Element.closest()' */ @@ -25,12 +25,19 @@ }; } + var categoriesListElement = document.getElementById('categories-list'); + var showMenuElement = document.getElementById('show-categories'); + var header = document.querySelector('.header'); + var mql = window.matchMedia('(min-width: 48em)'); + var expandDetails = function (item) { item.setAttribute('aria-expanded', 'true'); + item.setAttribute('open', ''); }; var collapseDetails = function (item) { item.setAttribute('aria-expanded', 'false'); + item.removeAttribute('open'); }; var childRulesExpanded = function (element) { @@ -38,73 +45,122 @@ var details = Array.prototype.slice.apply(parent.querySelectorAll('.rule-result--details')); return details.some(function (detail) { - return (detail.getAttribute('aria-expanded') === 'true'); + return detail.getAttribute('open') !== null; }); }; + /** + * if all rules are closed, toggle button to 'expand all'. + * if any rule is open, toggle button to 'close all'. + */ var updateExpandAllButton = function (element, closeAll) { - var expanded = typeof closecloseAll !== 'undefined' ? closeAll : childRulesExpanded(element); + var expanded = typeof closeAll !== 'undefined' ? closeAll : childRulesExpanded(element); if (expanded) { - element.innerHTML = '- close all'; + element.innerHTML = 'close all'; element.classList.remove('closed'); element.classList.add('expanded'); } else { - element.innerHTML = '+ expand all'; + element.innerHTML = 'expand all'; element.classList.remove('expanded'); element.classList.add('closed'); } }; - var toggleExpandRule = function (element, closeAll) { - var parent = element.closest('.rule-result--details'); - var expanded = typeof closeAll !== 'undefined' ? closeAll : parent.getAttribute('aria-expanded') === 'true'; - var name = element.getAttribute('data-rule'); - var expandAllButton = parent.closest('.rule-result').querySelector('.button-expand-all'); + var expandRule = function (element, closeAll) { + var expanded = typeof closeAll !== 'undefined' ? closeAll : element.getAttribute('aria-expanded') === 'true'; + var name = element.id; if (expanded) { - collapseDetails(parent); - element.innerHTML = 'open details'; + collapseDetails(element); element.setAttribute('title', 'show ' + name + '\'s result details'); } else { - expandDetails(parent); - element.innerHTML = 'close details'; + expandDetails(element); element.setAttribute('title', 'close ' + name + '\'s result details'); } - - updateExpandAllButton(expandAllButton); - /* - * if all rules are closed, toggle button to '- open all'. - * if any rule is open, toggle button to '- close all'. - */ }; var toggleExpandAll = function (element) { var parent = element.closest('.rule-result'); - var detailButtons = Array.prototype.slice.apply(parent.querySelectorAll('.button--details')); + var detailButtons = Array.prototype.slice.apply(parent.querySelectorAll('.rule-result--details')); var expanded = element.classList.contains('expanded'); for (var i = 0; i < detailButtons.length; i++) { if (expanded) { - toggleExpandRule(detailButtons[i], true); + expandRule(detailButtons[i], true); } else { - toggleExpandRule(detailButtons[i], false); + expandRule(detailButtons[i], false); } } updateExpandAllButton(element, !expanded); }; + var toggleExpandRule = function (element) { + var parent = element.closest('.rule-result'); + var expandAll = parent.querySelector('.button-expand-all'); + + setImmediate(function () { + updateExpandAllButton(expandAll); + }); + }; + + var getCurrentCategoryMenuHeight = function () { + if (header) { + return 'calc(100% - 5rem - ' + header.clientHeight + 'px)'; + } + + return 'calc(100% - 5rem)'; + }; + + var toggleCategoryMenu = function () { + var parent = showMenuElement.closest('.module--categories'); + var menu = parent.querySelector('.rule-categories'); + + if (menu.classList.contains('open')) { + showMenuElement.textContent = 'SHOW CATEGORIES'; + menu.setAttribute('aria-expanded', 'false'); + menu.classList.remove('open'); + document.body.classList.remove('menu-open'); + } else { + categoriesListElement.style.height = getCurrentCategoryMenuHeight(); + showMenuElement.textContent = 'HIDE CATEGORIES'; + menu.setAttribute('aria-expanded', 'true'); + menu.classList.add('open'); + document.body.classList.add('menu-open'); + } + }; + + var categoryClasses = ['rule-tile', 'rule-icon', 'rule-tile__category', 'rule-tile__sub-category', 'rule-tile__passed', 'rule-tile__info', 'rule-tile__results']; + var toggleExpand = function (evt) { var element = evt.target; - if (element.className.indexOf('button--details') !== -1) { - toggleExpandRule(element); + if (element.classList.contains('button-expand-all')) { + return toggleExpandAll(element); } - if (element.className.indexOf('button-expand-all') !== -1) { - toggleExpandAll(element); + if (element.classList.contains('rule-title')) { + return toggleExpandRule(element); + } + + if (element.classList.contains('show-categories')) { + return toggleCategoryMenu(); + } + + if (!mql.matches) { + categoryClasses.some(function (className) { + if (element.classList.contains(className)) { + toggleCategoryMenu(); + + return true; + } + + return false; + }); } + + return true; }; var registerToggleExpandListener = function () { @@ -112,6 +168,7 @@ if (container) { container.addEventListener('click', toggleExpand, false); + container.addEventListener('toggle', toggleExpand, false); } }; @@ -168,19 +225,60 @@ } }; - var copyButton = document.querySelector('.permalink-copy'); - var copyPermalinkToClipboard = function () { - var permalink = document.querySelector('.scan-overview__body__permalink').textContent; + var checkClipboard = function (element) { + var parentElement = element.closest('.permalink-copy'); + var permalinkImageElement = parentElement.querySelector('img'); + + if (!window.ejsPartials) { + permalinkImageElement.src = '/images/scan/results-passed-icon.svg'; + } else { + parentElement.removeChild(permalinkImageElement); + + parentElement.innerHTML += ejsPartials['check-mark'](); + } + }; + + var copyButtons = Array.prototype.slice.apply(document.querySelectorAll('.permalink-copy')); + var copyPermalinkToClipboard = function (evt) { + const element = evt.currentTarget; + + var permalinkElement = element.querySelector('.permalink-content'); + var permalink = permalinkElement.textContent; setClipboardText(permalink.trim()); + + checkClipboard(permalinkElement); }; - if (copyButton) { + copyButtons.forEach(function (copyButton) { copyButton.addEventListener('click', copyPermalinkToClipboard); - } + }); window.addEventListener('popstate', onPopState, false); + var validateMediaQuery = function () { + if (mql.matches) { + categoriesListElement.removeAttribute('aria-expanded'); + + document.body.classList.remove('menu-open'); + } else { + var isOpen = categoriesListElement.classList.contains('open'); + + categoriesListElement.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); + + if (isOpen) { + categoriesListElement.style.height = getCurrentCategoryMenuHeight(); + document.body.classList.add('menu-open'); + } + } + }; + + var registerMediaQuery = function () { + validateMediaQuery(); + mql.addListener(validateMediaQuery); + }; + registerToggleExpandListener(); + registerMediaQuery(); highlightCodeBlocks(); }()); diff --git a/packages/formatter-html/src/assets/styles/fonts.css b/packages/formatter-html/src/assets/styles/fonts.css new file mode 100644 index 00000000000..869dcf33773 --- /dev/null +++ b/packages/formatter-html/src/assets/styles/fonts.css @@ -0,0 +1,31 @@ +@font-face { + font-family: "Montserrat"; + font-style: normal; + font-weight: 300; + src: local("Montserrat Light"), local("Montserrat-Light"), url("fonts/montserrat-300.woff2") format("woff2"), url("fonts/montserrat-300.woff") format("woff"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: "Montserrat"; + font-style: normal; + font-weight: 400; + src: local("Montserrat Regular"), local("Montserrat-Regular"), url("fonts/montserrat-400.woff2") format("woff2"), url("fonts/montserrat-400.woff") format("woff"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: "Montserrat"; + font-style: normal; + font-weight: 500; + src: local("Montserrat Medium"), local("Montserrat-Medium"), url("fonts/montserrat-500.woff2") format("woff2"), url("fonts/montserrat-500.woff") format("woff"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: "Source Sans Pro"; + font-style: normal; + font-weight: 400; + src: local("Source Sans Pro Regular"), local("SourceSansPro-Regular"), url("fonts/source-sans-pro.woff2") format("woff2"), url("fonts/source-sans-pro.woff") format("woff"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/packages/formatter-html/src/assets/styles/fonts/montserrat-300.woff b/packages/formatter-html/src/assets/styles/fonts/montserrat-300.woff new file mode 100644 index 0000000000000000000000000000000000000000..3940921f630b5d032b3430a02e14980d10251d7f GIT binary patch literal 22544 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 C3A~&D literal 0 HcmV?d00001 diff --git a/packages/formatter-html/src/assets/styles/fonts/montserrat-400.woff2 b/packages/formatter-html/src/assets/styles/fonts/montserrat-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2064548820be9a2767af53a9378bc5febab83c33 GIT binary patch literal 18684 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
kHei-5L@I@{t9NTsa6SJ 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 XRc|?U$^UrzZ&tSNPpdbC<{|(9fhQ1a literal 0 HcmV?d00001 diff --git a/packages/formatter-html/src/assets/styles/fonts/source-sans-pro.woff b/packages/formatter-html/src/assets/styles/fonts/source-sans-pro.woff new file mode 100644 index 0000000000000000000000000000000000000000..16f51fff186846809e162e0da7a07f78e0f99882 GIT binary patch literal 19616 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 literal 0 HcmV?d00001 diff --git a/packages/formatter-html/src/assets/styles/fonts/source-sans-pro.woff2 b/packages/formatter-html/src/assets/styles/fonts/source-sans-pro.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..efa300c564386e75fa0762d6a8b798442aa03711 GIT binary patch literal 15908 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 GJ^%n7S96yD literal 0 HcmV?d00001 diff --git a/packages/formatter-html/src/assets/styles/layouts.css b/packages/formatter-html/src/assets/styles/layouts.css index 1cd428569dc..87d6797ba2b 100644 --- a/packages/formatter-html/src/assets/styles/layouts.css +++ b/packages/formatter-html/src/assets/styles/layouts.css @@ -65,6 +65,36 @@ width: 50%; margin-top: 0; } + + .layout--basic--alt .module--secondary, + .layout--basic--offset--alt .module--secondary { + float: right; + } + +} + +@media (min-width: 60em) { + + .layout--basic .module--primary, + .layout--basic--alt .module--primary { + width: 62.5%; + } + + .layout--basic .module--secondary, + .layout--basic--alt .module--secondary { + width: 33.333%; + } + + .layout--basic--offset .module--primary, + .layout--basic--offset--alt .module--primary { + width: 58.333%; + } + + .layout--basic--offset .module--secondary, + .layout--basic--offset--alt .module--secondary { + width: 37.5%; + } + } /* Fixed sidebar width */ diff --git a/packages/formatter-html/src/assets/styles/scan/scan-results.1.css b/packages/formatter-html/src/assets/styles/scan/scan-results.1.css new file mode 100644 index 00000000000..a8eae48cc5c --- /dev/null +++ b/packages/formatter-html/src/assets/styles/scan/scan-results.1.css @@ -0,0 +1,545 @@ +/* +* SCAN RESULTS +* ============================================= +* @Dependencies: base.css, structure.css, type.css +*/ + +/* SCAN OVERVIEW */ + +.scan-overview { + width: 100%; + margin-bottom: 2.4rem; +} + +.scan-overview__header { + background-color: #e6e6e6; + padding: 1rem 2rem; + word-wrap: break-word; +} + +.scan-overview__header p:first-child { + margin-right: 0; + margin-bottom: 1rem; +} + +.scan-overview__status { + margin: 0; + text-transform: capitalize; +} + +.analyzing { + animation: fade 3s linear infinite; +} + +@keyframes fade { + 0% { opacity: 0; } + 50% { opacity: 1; } + 100% { opacity: 0; } +} + +.scan-overview__header a { + font-size: 1.8rem; + letter-spacing: .05rem; +} + +.scan-overview--details { + background-color: #f2f2f2; + padding: 1.4rem 2rem; +} + +.scan-overview__subheader { + font-size: 1.3rem; + font-weight: 500; + margin-top: 1.4rem; + letter-spacing: .03rem; + text-transform: uppercase; +} + +.module--primary.results { + width: 100%; +} + +[class*="scan-overview__body--"] { + font-size: 4.8rem; + font-weight: 200; + margin-top: .2rem; + letter-spacing: .03rem; + text-transform: uppercase; + min-width: 15rem; + margin-right: 1rem; +} + +.scan-overview__body--red { + color: #d33e2a; +} + +.scan-overview__body--purple { + color: #4046dd; +} + +.scan-overview__body__permalink { + overflow-wrap: break-word; + word-wrap: break-word; +} + +.permalink-copy { + background-color: transparent; + padding: 0; + min-width: 2rem; +} + +.permalink-copy img { + width: 2rem; + vertical-align: middle; + margin-left: 1rem; +} + +.scan-overview--config { + padding: 0 3rem 1rem 0; +} + +.scan-overview__body__link { + display: inline-block; + margin-top: .3rem; + font-weight: 300; + font-size: 1.5rem; +} + +@media (min-width: 33.75em) { + + .scan-overview__header { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + } + + .scan-overview__header a { + font-size: 1.8rem; + } + + .scan-overview--details { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + } + + .scan-overview__subheader { + margin-top: 0; + } + +} + +@media (min-width: 43.75em) { + + .scan-overview__header p:first-child { + margin-bottom: 0; + margin-right: 5rem; + } + +} + +@media (min-width: 58em) { + + [class*="scan-overview__body--"] { + font-size: 3.6rem; + } + +} + +/* OVERVIEW TILES */ + +.rule-tile { + padding: 1.5rem 2rem; + background-color: #f2f2f2; +} + +.rule-tile--passed { + background-color: #ebf5f1; +} + +.rule-tile--failed { + background-color: hsla(8, 79%, 61%, .1); +} + +.rule-icon { + max-width: 7rem; + width: 100%; + margin-top: 0; + vertical-align: bottom; +} + +.rule-list { + display: inline-block; + min-width: 9.4rem; + margin-left: -.5rem; + padding: 0 0 1.4rem; + font-size: 1.4rem; + font-weight: 400; + text-transform: uppercase; + color: #4046dd; +} + +.rule-list p { + margin-top: .4rem; +} + +.rule-list--passed { + color: #006538; +} + +.rule-list--failed { + color: #d23e2a; +} + +.rule-list--failed a { + color: #d23e2a; +} + +.rule-tile__category { + max-width: 19rem; + margin-bottom: 1rem; + font-size: 1.4rem; + font-weight: 600; + letter-spacing: .07rem; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +/* SCAN DETAILS */ + +.rule-result { + margin-top: 2.4rem; + padding: 2rem; + border: 1px solid #e2e2e2; +} + +.rule-result--category { + display: flex; + justify-content: space-between; + align-items: center; +} + +.button-expand-all { + position: relative; + min-width: 11.4rem; + margin-bottom: 0; + padding: .5rem 1rem; + font-size: 1.2rem; + background-color: #f0f0f0; + color: #4046dd; +} + +.rule-result h3 { + text-transform: capitalize; +} + +/* Exception to the capitalize above */ +#pwa h3 { + text-transform: uppercase; +} + +.rule-result--details { + position: relative; + margin-top: 3.6rem; +} + +.rule-result--details[aria-expanded="true"] .rule-result--details__body, +.rule-result--details[aria-expanded="true"] .rule-result--details__footer-msg { + display: block; +} + +.rule-result--details[aria-expanded="false"] .rule-result--details__body, +.rule-result--details[aria-expanded="false"] .rule-result--details__footer-msg { + display: none; +} + +.rule-title { + font-size: 1.8rem; + font-weight: 400; +} + +.rule-result__docs { + display: flex; + margin-top: 1.2rem; + flex-wrap: wrap; +} + +a.docs-button { + font-size: 1.3rem; + background-color: #4046dd; + color: #fff; + margin-right: 1rem; + margin-bottom: 1rem; + padding: .6rem 1rem; + text-align: right; + letter-spacing: .1rem; + min-width: 15rem; + text-transform: uppercase; +} + +.docs-icon { + width: 1.4rem; + vertical-align: middle; + margin-top: -.2rem; + margin-right: .5rem; + background-color: #fff; +} + +button.button--details { + position: relative; + font-size: 1.3rem; + background-color: #4046dd; + margin-bottom: 1rem; + padding: .5rem 1rem; + text-align: right; + min-width: 15rem; +} + +@media(min-width: 33.75em) { + + button.button--details, + a.docs-button { + margin-bottom: 0; + } + +} + +.rule-result--details[aria-expanded="false"] .button--details::before { + content: url("../../images/scan/results-view-details.svg"); + position: absolute; + left: .8rem; + width: 1rem; + top: .6rem; +} + +.rule-result--details[aria-expanded="true"] .button--details::before { + content: url("../../images/scan/results-hide-details.svg"); + position: absolute; + left: .8rem; + width: 1rem; + top: .6rem; +} + +.warning-badge::before { + content: url("../../images/scan/results-warning-icon.svg"); + position: absolute; + left: 0; + height: .5rem; + width: 2.5rem; +} + +.rule-result--details__body { + position: relative; + padding: 1.4rem 0; +} + +.rule-result--details__body p { + overflow-wrap: break-word; + word-wrap: break-word; +} + +.rule-result--details__body p:nth-child(2) { + margin-top: 1.2rem; +} + +.rule-result--details__body code { + padding: .2rem .4rem; + background-color: hsla(238, 65%, 90%, .6); + border-radius: .3rem; +} + +.warning-badge { + font-size: 1.4rem; + color: #ea5238; + padding-left: 3rem; +} + +.warning-badge::before { + content: url("../../images/scan/results-warning-icon.svg"); + position: absolute; + left: 0; + height: .5rem; + width: 2.5rem; +} + +.error-badge { + font-size: 1.4rem; + color: #b91b06; + padding-left: 3rem; +} + +.error-badge::before { + content: url("../../images/scan/results-error-icon.svg"); + position: absolute; + left: 0; + height: .5rem; + width: 2rem; +} + +.rule-result__code { + background-color: #f4f4f4; + margin-top: 1.4rem; + padding: 2.4rem; + + /* Hanlde long urls */ + overflow-wrap: break-word; + word-wrap: break-word; + + -ms-word-break: break-all; + word-break: break-word; + + /* Adds a hyphen where the word breaks, if supported (No Blink) */ + -ms-hyphens: auto; + -moz-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +.rule-result__code p { + padding: 0 0 1.4rem 0; +} + +.rule-result__code code { + background-color: #f4f4f4; + margin-top: 1.4rem; + padding-left: 1.4rem; +} + +@media (min-width: 48.75em) { + + .rule-result--details__header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 2.4rem; + flex-wrap: wrap; + } + + .rule-result__docs { + margin-top: 0; + } + +} + +/* RULE RESULT MESSAGES */ + +.rule-result__message--compiling { + color: #4046dd; + margin-top: -2.6rem; +} + +.rule-result__message--compiling p, +.rule-result__message--compiling__loader { + display: inline-block; +} + +.rule-result__message--compiling p { + padding-left: 1.6rem; +} + +.rule-result__message--compiling__loader { + border: 3px solid #f3f3f3; + border-radius: 50%; + border-top: 3px solid #4046dd; + width: 2.5rem; + height: 2.5rem; + animation: spin 2s linear infinite; +} + +/* RESULTS LOADER ANIMATION */ + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +.rule-result__message--passed { + color: #00864b; + padding-left: 3.6rem; +} + +.rule-result__message--passed::before { + content: url("../../images/scan/results-passed-icon.svg"); + position: absolute; + left: 0; + height: .5rem; + width: 2.5rem; +} + +.rule-result__message--failed { + color: #b91b06; + padding-left: 3.6rem; +} + +.rule-result__message--failed::before { + content: url("../../images/scan/results-error-icon.svg"); + position: absolute; + left: 0; + height: .5rem; + width: 2.5rem; +} + +/* INTEGRATION MESSAGES */ + +.rule-result--details__footer-msg { + margin: 2.4rem 0; +} + +.rule-result--details__footer-msg p { + display: inline-block; +} + +.rule-result--details__footer-msg img { + width: 15rem; + margin-top: 0; + margin-left: 1.2rem; + vertical-align: middle; +} + +.rule-result--details__footer-msg img.axe-logo { + width: 10rem; +} + + +/* SCAN QUEUE */ + +.scan-queue-bg-wrap { + background-color: #3035a6; + color: #fff; + padding-bottom: 6rem; +} + +.scan-queue-bg-wrap .breadcrumb ul, +.scan-queue-bg-wrap .breadcrumb ul a, +.scan-queue-bg-wrap > .subtitle { + color: #fff; +} + +.scan-queue__permalink { + max-width: 64rem; + margin: 2.4rem 0; + padding: 2.4rem; + background-color: #fff; + color: #000; + word-break: break-all; +} + +/* SCAN ERROR */ +.scanner-cta { + position: relative; +} + +.scanner-cta__link::after { + content: url("../../images/scan/next-arrow.svg"); + position: absolute; + display: inline-block; + left: 21rem; + width: .8rem; + margin-top: .2rem; +} + +.scan-error { + margin-top: 2.4rem; +} diff --git a/packages/formatter-html/src/assets/styles/scan/scan-results.css b/packages/formatter-html/src/assets/styles/scan/scan-results.css index 1cd42d36dd4..6ddad273a48 100644 --- a/packages/formatter-html/src/assets/styles/scan/scan-results.css +++ b/packages/formatter-html/src/assets/styles/scan/scan-results.css @@ -4,11 +4,15 @@ * @Dependencies: base.css, structure.css, type.css */ +.menu-open { + overflow: hidden; +} + /* SCAN OVERVIEW */ .scan-overview { - width: 100%; margin-bottom: 2.4rem; + width: 100%; } .scan-overview__header { @@ -18,13 +22,54 @@ } .scan-overview__header p:first-child { - margin-right: 0; margin-bottom: 1rem; + margin-right: 0; } .scan-overview__status { + background-color: #e6e6e6; + display: flex; + font-size: 1.8rem; + font-weight: 500; + justify-content: space-between; + line-height: 1.8rem; margin: 0; - text-transform: capitalize; + padding: 1.2rem 2.2rem .6rem; + position: relative; +} + +.scan-overview__status * { + margin-top: 0; +} + +.scan-overview__progress-bar { + background-image: linear-gradient(270deg, #4700a3, #b914d4); + background-size: 300%; + height: 6px; + left: 0; + position: absolute; + top: 0; + transition: width 1s 0s linear; + width: 0; + animation: progressBarAnimation 2s ease infinite; +} + +.scan-overview__progress-bar.end-animation { + animation: none; + background-size: 100%; + background-image: linear-gradient(to right, #4700a3, #b914d4); +} + +@keyframes progressBarAnimation { + 0% { + background-position: 0% 50% + } + 50% { + background-position: 100% 50% + } + 100% { + background-position: 0% 50% + } } .analyzing { @@ -32,9 +77,15 @@ } @keyframes fade { - 0% { opacity: 0; } - 50% { opacity: 1; } - 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 1; + } + 100% { + opacity: 0; + } } .scan-overview__header a { @@ -45,32 +96,56 @@ .scan-overview--details { background-color: #f2f2f2; padding: 1.4rem 2rem; + position: relative; +} + +.scan-overview--debug-details { + display: flex; +} + +.scan-overview__scan-time { + display: none; + margin: 0; +} + +.scan-overview--version { + margin-right: 2rem; } .scan-overview__subheader { - font-size: 1.3rem; + font-size: 1.4rem; font-weight: 500; - margin-top: 1.4rem; letter-spacing: .03rem; - text-transform: uppercase; + margin-top: 1.4rem; + max-width: none; } -.module--primary.results { - width: 100%; +.scan-overview__subheader span { + color: #4700a3; + font-weight: 300; +} + +.scan-overview--debug-details .scan-overview__subheader { + color: #000; + font-weight: 300; +} + +.scan-overview--debug-details .scan-overview__subheader span { + color: #000; +} + +.overview--url__url { + text-transform: lowercase; } [class*="scan-overview__body--"] { font-size: 4.8rem; font-weight: 200; - margin-top: .2rem; letter-spacing: .03rem; - text-transform: uppercase; - min-width: 15rem; margin-right: 1rem; -} - -.scan-overview__body--red { - color: #d33e2a; + margin-top: .2rem; + min-width: 15rem; + text-transform: uppercase; } .scan-overview__body--purple { @@ -78,44 +153,37 @@ } .scan-overview__body__permalink { - display: inline; - font-size: 1.5rem; - font-weight: 300; - color: #4046dd; - margin-top: .8rem; overflow-wrap: break-word; word-wrap: break-word; } .permalink-copy { background-color: transparent; - padding: 0; + color: #4046dd; + font-weight: 300; min-width: 2rem; + padding: 0; + text-align: left; + white-space: normal; } .permalink-copy img { - width: 2rem; + margin: 0 0 0 1rem; vertical-align: middle; - margin-left: 1rem; -} - -.scan-overview--config { - padding: 0 3rem 1rem 0; + width: 2rem; } .scan-overview__body__link { + color: #000; display: inline-block; - margin-top: .3rem; font-weight: 300; - font-size: 1.5rem; } @media (min-width: 33.75em) { - .scan-overview__header { display: flex; - justify-content: space-between; flex-wrap: wrap; + justify-content: space-between; } .scan-overview__header a { @@ -123,221 +191,407 @@ } .scan-overview--details { + display: flex; + justify-content: flex-start; + padding-bottom: 4rem; + } + + .scan-overview--more-details { display: flex; flex-wrap: wrap; justify-content: flex-start; } + .scan-overview--scan-links { + margin-right: 2rem; + } + + .scan-overview__scan-time { + display: block; + } + + .scan-overview--scan-links .scan-overview__subheader { + margin-bottom: 1.4rem; + } + + .scan-overview--debug-details { + bottom: 1rem; + position: absolute; + right: 2rem; + } + .scan-overview__subheader { margin-top: 0; } - } @media (min-width: 43.75em) { - .scan-overview__header p:first-child { margin-bottom: 0; margin-right: 5rem; } - } @media (min-width: 58em) { - [class*="scan-overview__body--"] { font-size: 3.6rem; } - } /* OVERVIEW TILES */ -.rule-tile { - padding: 1.5rem 2rem; - background-color: #f2f2f2; +.module.module--categories { + margin-top: 0; + width: 100%; } -.rule-tile--passed { - background-color: #ebf5f1; +.rule-categories { + background-color: #fff; + bottom: calc(-100% + 5rem); + display: flex; + flex-direction: column; + justify-content: center; + height: calc(100% - 5rem); + left: 0; + padding: 0 2rem; + position: fixed; + width: 100%; + z-index: 5; + transition: bottom .5s ease-out; +} + +.rule-categories.open { + bottom: 5rem; +} + +.rule-categories a { + text-decoration: none; +} + +.rule-tile--wrapper { + border: 1px solid #979797; + border-top: none; + display: block; +} + +.rule-tile--wrapper:first-child { + border-top: 1px solid #979797; } -.rule-tile--failed { - background-color: hsla(8, 79%, 61%, .1); +.rule-tile { + align-items: center; + background-color: #f2f2f2; + color: #000; + display: flex; + justify-content: space-evenly; + padding: 1.2rem; } .rule-icon { - max-width: 7rem; - width: 100%; margin-top: 0; - vertical-align: bottom; + max-width: 3.1rem; + width: 100%; } -.rule-list { - display: inline-block; - min-width: 9.4rem; - margin-left: -.5rem; - padding: 0 0 1.4rem; - font-size: 1.4rem; - font-weight: 400; +a > .rule-tile:hover { + background-color: rgba(64, 69, 221, 0.2); + text-decoration: none; +} + +.rule-tile__category { + color: #000; + flex: 1; + font-size: 1.2rem; + font-weight: 600; + letter-spacing: .07rem; + margin: 0 0 0 1rem; + max-width: 19rem; text-transform: uppercase; - color: #4046dd; + white-space: nowrap; } -.rule-list p { - margin-top: .4rem; +.rule-tile__hints { + color: #4046dd; } -.rule-list--passed { +.rule-tile__passed { color: #006538; } -.rule-list--failed { - color: #d23e2a; +.rule-tile__info { + align-items: center; + display: flex; + flex-grow: 1; + justify-content: space-between; } -.rule-list--failed a { - color: #d23e2a; +.rule-tile__results { + display: flex; + flex: 1; + justify-content: space-around; } -.rule-tile__category { - max-width: 19rem; - margin-bottom: 1rem; +.rule-tile__result-wrapper { + margin-left: 2.4rem; + text-align: center; +} + +.rule-tile__result-wrapper p { + margin: 0; +} + +.rule-tile__sub-category { + /* move to type.css */ + font-family: "Montserrat", sans-serif; font-size: 1.4rem; - font-weight: 600; - letter-spacing: .07rem; + font-weight: 500; + flex: 1; + text-transform: uppercase; +} - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; +.show-categories { + background-color: #4713a0; + bottom: 0; + height: 5rem; + left: 0; + position: fixed; + width: 100%; + z-index: 10; +} + +@media (min-width: 33.75em) { + .module.module--categories { + float: none; + } + + .rule-tile__category { + font-size: 1.4rem; + } + + .rule-tile__sub-category { + font-size: 1.6rem; + font-weight: 400; + } + + .rule-icon { + max-width: 4rem; + max-height: 5rem; + } +} + +@media (min-width: 48em) { + .module.module--categories { + float: right; + margin-top: 2.4rem; + position: sticky; + top: 1rem; + width: 35%; + } + + .module.module--results { + width: 65%; + } + .show-categories { + display: none; + } + + .rule-categories { + display: block; + padding: 0; + position: static; + } + + .rule-tile { + margin: 0 0 1.2rem; + } + + .rule-tile--wrapper { + border: none; + } + + .rule-tile--wrapper:first-child { + border-top: none; + } +} + +@media (min-width: 48em) and (max-width: 82.5em) { + .rule-tile__info { + flex-direction: column; + justify-content: center; + align-items: start; + } + + .rule-tile__category { + font-size: 1.2rem; + } + + .rule-tile__results { + justify-content: start; + line-height: 1.3rem; + margin-left: 1rem; + width: 100%; + } + + .rule-tile__result-wrapper { + margin: 0; + } + + .rule-tile__result-wrapper:first-child { + margin-right: 2rem; + } + + .rule-tile__result-wrapper p { + display: inline-block; + } + + .rule-tile__sub-category { + font-size: 1.2rem; + } } /* SCAN DETAILS */ .rule-result { + border: 1px solid #e2e2e2; margin-top: 2.4rem; padding: 2rem; - border: 1px solid #e2e2e2; } .rule-result--category { + align-items: center; display: flex; justify-content: space-between; - align-items: center; + margin-bottom: 3.6rem; } .button-expand-all { - position: relative; - min-width: 11.4rem; - margin-bottom: 0; - padding: .5rem 1rem; - font-size: 1.2rem; - background-color: #f0f0f0; + background: rgba(255, 255, 255, 0) url('/images/scan/open-close.svg') 0 -1px no-repeat; color: #4046dd; + font-size: 1.2rem; + font-weight: 500; + height: 22px; + letter-spacing: -.1px; + line-height: 22px; + min-width: 0; + padding: 0 0 0 3rem; + position: relative; } -.rule-result h3 { - text-transform: capitalize; +.button-expand-all.closed { + background-position: 0 -23px; } -/* Exception to the capitalize above */ -#pwa h3 { - text-transform: uppercase; +.rule-result h3 { + text-transform: capitalize; } .rule-result--details { + /* display: block; is necessary for Edge */ + display: block; + margin-bottom: 3rem; + max-width: none; position: relative; - margin-top: 3.6rem; + width: 100%; } -.rule-result--details[aria-expanded="true"] .rule-result--details__body, -.rule-result--details[aria-expanded="true"] .rule-result--details__footer-msg { - display: block; +.rule-result--details > .rule-content { + display: none; } -.rule-result--details[aria-expanded="false"] .rule-result--details__body, -.rule-result--details[aria-expanded="false"] .rule-result--details__footer-msg { - display: none; +.rule-result--details[open] > .rule-content { + display: block; } .rule-title { + cursor: pointer; font-size: 1.8rem; font-weight: 400; + padding-left: 3rem; +} + +.rule-title::-webkit-details-marker { + display: none; +} + +.rule-title::after { + background: url('/images/scan/open-close.svg') no-repeat 0 -22px; + content: ""; + height: 22px; + left: 0; + position: absolute; + width: 22px; +} + +.rule-result--details[open] .rule-title::after { + background-position: 0 0; } -.rule-result__docs { +.rule-content { + border-top: 1px solid #979797; display: flex; - margin-top: 1.2rem; - flex-wrap: wrap; + flex-flow: column; + margin-top: .8rem; } -a.docs-button { - font-size: 1.3rem; - background-color: #4046dd; - color: #fff; - margin-right: 1rem; - margin-bottom: 1rem; - padding: .6rem 1rem; - text-align: right; - letter-spacing: .1rem; - min-width: 15rem; - text-transform: uppercase; +.rule-result--details__hint-number { + color: #4046dd; } -.docs-icon { - width: 1.4rem; - vertical-align: middle; - margin-top: -.2rem; - margin-right: .5rem; +.rule-result--details__hint-link, +.rule-result--details__hint-link:visited { + color: #4700a3; +} + +.rule-doc-buttons { background-color: #fff; + padding-top: 1rem; + position: sticky; + top: 0; + z-index: 1; } -button.button--details { +.rule-doc-button { + background: #4046dd; + display: inline-block; + font-size: 1.4rem; + font-weight: 500; + padding: .6rem 3.5rem .6rem 1rem; position: relative; - font-size: 1.3rem; - background-color: #4046dd; - margin-bottom: 1rem; - padding: .5rem 1rem; - text-align: right; - min-width: 15rem; + text-decoration: none; } -@media(min-width: 33.75em) { - - button.button--details, - a.docs-button { - margin-bottom: 0; - } +.rule-doc-button, +.rule-doc-button:visited { + color: #fff; +} +.rule-doc-button:nth-child(2) { + margin-left: 1rem; } -.rule-result--details[aria-expanded="false"] .button--details::before { - content: url("../../images/scan/results-view-details.svg"); +.rule-doc-icon { + background: url('/images/scan/open-blank.svg') no-repeat right center; + height: 100%; position: absolute; - left: .8rem; - width: 1rem; - top: .6rem; + right: 1rem; + top: 0; + width: 20px; } -.rule-result--details[aria-expanded="true"] .button--details::before { - content: url("../../images/scan/results-hide-details.svg"); - position: absolute; - left: .8rem; - width: 1rem; - top: .6rem; +button { + text-transform: none; } -.warning-badge::before { - content: url("../../images/scan/results-warning-icon.svg"); - position: absolute; - left: 0; - height: .5rem; - width: 2.5rem; +@media(min-width: 33.75em) { + a.docs-button { + margin-bottom: 0; + } } .rule-result--details__body { - position: relative; padding: 1.4rem 0; + position: relative; + margin-left: 3rem; } .rule-result--details__body p { @@ -345,56 +599,31 @@ button.button--details { word-wrap: break-word; } -.rule-result--details__body p:nth-child(2) { - margin-top: 1.2rem; +.rule-result--details__body > * { + margin-top: 2rem; } .rule-result--details__body code { - padding: .2rem .4rem; background-color: hsla(238, 65%, 90%, .6); border-radius: .3rem; -} - -.warning-badge { - font-size: 1.4rem; - color: #ea5238; - padding-left: 3rem; -} - -.warning-badge::before { - content: url("../../images/scan/results-warning-icon.svg"); - position: absolute; - left: 0; - height: .5rem; - width: 2.5rem; + padding: .2rem .4rem; } .error-badge { - font-size: 1.4rem; color: #b91b06; + font-size: 1.4rem; padding-left: 3rem; } -.error-badge::before { - content: url("../../images/scan/results-error-icon.svg"); - position: absolute; - left: 0; - height: .5rem; - width: 2rem; -} - .rule-result__code { background-color: #f4f4f4; - margin-top: 1.4rem; + margin-top: 3rem; padding: 2.4rem; - /* Hanlde long urls */ overflow-wrap: break-word; word-wrap: break-word; - -ms-word-break: break-all; word-break: break-word; - /* Adds a hyphen where the word breaks, if supported (No Blink) */ -ms-hyphens: auto; -moz-hyphens: auto; @@ -413,19 +642,13 @@ button.button--details { } @media (min-width: 48.75em) { - .rule-result--details__header { - display: flex; align-items: center; + display: flex; + flex-wrap: wrap; justify-content: space-between; margin-bottom: 2.4rem; - flex-wrap: wrap; } - - .rule-result__docs { - margin-top: 0; - } - } /* RULE RESULT MESSAGES */ @@ -445,44 +668,35 @@ button.button--details { } .rule-result__message--compiling__loader { - border: 3px solid #f3f3f3; - border-radius: 50%; - border-top: 3px solid #4046dd; - width: 2.5rem; - height: 2.5rem; - animation: spin 2s linear infinite; + animation: spin 2s linear infinite; + border: 3px solid #f3f3f3; + border-radius: 50%; + border-top: 3px solid #4046dd; + height: 2.5rem; + width: 2.5rem; } /* RESULTS LOADER ANIMATION */ @keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } } .rule-result__message--passed { - color: #00864b; + color: #006538; padding-left: 3.6rem; } .rule-result__message--passed::before { - content: url("../../images/scan/results-passed-icon.svg"); - position: absolute; - left: 0; + content: url("/images/scan/results-passed-icon.svg"); height: .5rem; - width: 2.5rem; -} - -.rule-result__message--failed { - color: #b91b06; - padding-left: 3.6rem; -} - -.rule-result__message--failed::before { - content: url("../../images/scan/results-error-icon.svg"); - position: absolute; left: 0; - height: .5rem; + position: absolute; width: 2.5rem; } @@ -497,17 +711,16 @@ button.button--details { } .rule-result--details__footer-msg img { - width: 15rem; - margin-top: 0; margin-left: 1.2rem; + margin-top: 0; vertical-align: middle; + width: 15rem; } .rule-result--details__footer-msg img.axe-logo { width: 10rem; } - /* SCAN QUEUE */ .scan-queue-bg-wrap { @@ -523,26 +736,27 @@ button.button--details { } .scan-queue__permalink { + background-color: #fff; + color: #000; max-width: 64rem; margin: 2.4rem 0; padding: 2.4rem; - background-color: #fff; - color: #000; word-break: break-all; } /* SCAN ERROR */ + .scanner-cta { - position: relative; + position: relative; } .scanner-cta__link::after { - content: url("../../images/scan/next-arrow.svg"); - position: absolute; - display: inline-block; - left: 21rem; - width: .8rem; - margin-top: .2rem; + content: url("/images/scan/next-arrow.svg"); + display: inline-block; + left: 21rem; + margin-top: .2rem; + position: absolute; + width: .8rem; } .scan-error { diff --git a/packages/formatter-html/src/assets/styles/type.css b/packages/formatter-html/src/assets/styles/type.css index 63fb82941ef..fa8f90a0953 100644 --- a/packages/formatter-html/src/assets/styles/type.css +++ b/packages/formatter-html/src/assets/styles/type.css @@ -62,9 +62,7 @@ h2, } .headline::before, -.heading::before, -.scan-heading::before, -.rule-title::before { +.heading::before { content: ""; position: absolute; left: 0; diff --git a/packages/formatter-html/src/formatter.ts b/packages/formatter-html/src/formatter.ts index a32f9ca5e7f..2785781ec5a 100644 --- a/packages/formatter-html/src/formatter.ts +++ b/packages/formatter-html/src/formatter.ts @@ -14,13 +14,13 @@ import * as ejs from 'ejs'; import * as fs from 'fs-extra'; import { debug as d } from 'hint/dist/src/lib/utils/debug'; -import { IFormatter, Problem, FormatterOptions } from 'hint/dist/src/lib/types'; +import { IFormatter, Problem, FormatterOptions, HintResources } from 'hint/dist/src/lib/types'; import { Category } from 'hint/dist/src/lib/enums/category'; import * as logger from 'hint/dist/src/lib/utils/logging'; const utils = require('./utils'); -import AnalysisResult from './result'; +import AnalysisResult, { CategoryResult, HintResult } from './result'; const debug = d(__filename); @@ -29,8 +29,22 @@ const debug = d(__filename); * Utils * ------------------------------------------------------------------------------ */ +const getCategoryListFromResources = (resources: HintResources) => { + const categoriesArray: Array = resources.hints.map((hint) => { + return hint.meta.docs!.category!; + }); + + // Clean duplicated values. + const categories: Set = new Set(categoriesArray); + + return [...categories]; +}; + +const getCategoryList = (resources?: HintResources): Array => { + if (resources) { + return getCategoryListFromResources(resources); + } -const getCategoryList = (): Array => { const result: Array = []; for (let [, value] of Object.entries(Category)) { @@ -70,7 +84,7 @@ export default class HTMLFormatter implements IFormatter { debug('Formatting results'); const result = new AnalysisResult(target, options); - const categoryList: Array = getCategoryList(); + const categoryList: Array = getCategoryList(options.resources); categoryList.forEach((category) => { result.addCategory(category); @@ -80,8 +94,23 @@ export default class HTMLFormatter implements IFormatter { result.addProblem(message); }); + if (options.resources) { + options.resources.hints.forEach((hintConstructor) => { + const categoryName: string = hintConstructor.meta.docs!.category!; + const hintId: string = hintConstructor.meta.id; + + const category: CategoryResult = result.getCategoryByName(categoryName)!; + const hint: HintResult | undefined = category.getHintByName(hintId); + + if (!hint) { + category.addHint(hintId, 'pass'); + } + }); + } + try { if (!options.noGenerateFiles) { + result.percentage = 100; result.id = Date.now().toString(); const htmlPath = path.join(__dirname, 'views', 'pages', 'report.ejs'); @@ -100,7 +129,17 @@ export default class HTMLFormatter implements IFormatter { await fs.mkdirp(configDir); - await fs.copy(path.join(currentDir, 'assets'), path.join(destDir)); + await fs.copy(path.join(currentDir, 'assets'), destDir); + + const scanCSSFile = path.join(destDir, 'styles', 'scan', 'scan-results.css'); + let scanCSS = await fs.readFile(scanCSSFile, 'utf-8'); + const urlCSSRegex = /url\(['"]?([^'")]*)['"]?\)/g; + + scanCSS = scanCSS.replace(urlCSSRegex, (match, group) => { + return `url('${group[0] === '/' ? '../..' : ''}${group}')`; + }); + + await fs.outputFile(scanCSSFile, scanCSS, { encoding: 'utf-8' }); if (options.config) { await fs.outputFile(path.join(configDir, result.id), JSON.stringify(options.config)); diff --git a/packages/formatter-html/src/result.ts b/packages/formatter-html/src/result.ts index 2e28e70322f..0094f559c33 100644 --- a/packages/formatter-html/src/result.ts +++ b/packages/formatter-html/src/result.ts @@ -56,8 +56,8 @@ export class HintResult { } export class CategoryResult { - public errors: number; - public warnings: number; + public hintsCount: number; + public passed: Array; public hints: Array; public name: string; public image: string; @@ -68,10 +68,10 @@ export class CategoryResult { public constructor(name: string, url: string, isScanner: boolean) { this.hints = []; + this.passed = []; this.name = name; - this.errors = 0; - this.warnings = 0; + this.hintsCount = 0; this.image = categoryImages[name.toLowerCase()]; this.isScanner = isScanner; @@ -101,16 +101,20 @@ export class CategoryResult { return hint; } - public addHint(name: string): HintResult { + public addHint(name: string, status: string): HintResult { let hint = this.getHintByName(name); if (hint) { return hint; } - hint = new HintResult(name, 'pass', this.url, this.isScanner); + hint = new HintResult(name, status, this.url, this.isScanner); - this.hints.push(hint); + if (status === 'pass') { + this.passed.push(hint); + } else { + this.hints.push(hint); + } return hint; } @@ -129,10 +133,8 @@ export class CategoryResult { this.hints.push(hint); } - if (problem.severity === Severity.error) { - this.errors++; - } else if (problem.severity === Severity.warning) { - this.warnings++; + if (problem.severity === Severity.error || problem.severity === Severity.warning) { + this.hintsCount++; } hint.addProblem(problem); @@ -140,9 +142,9 @@ export class CategoryResult { } export default class AnalysisResult { - public warnings: number; - public errors: number; + public hintsCount: number; public scanTime: string; + public timeStamp: string; public version?: string; public permalink: string; public categories: Array; @@ -151,21 +153,23 @@ export default class AnalysisResult { public status: string; public id: string; public isScanner: boolean; + public percentage: number; private cache: Map = new Map(); public constructor(target: string, options: FormatterOptions) { this.url = target; - this.warnings = 0; - this.errors = 0; + this.hintsCount = 0; this.status = options.status ? options.status : 'finished'; // Question: Should we have this here or in webhint.io? this.isFinish = this.status === 'finished' || this.status === 'error'; this.scanTime = this.parseScanTime(options.scanTime || 0); + this.timeStamp = this.parseTimeStamp(options.timeStamp!); this.version = options.version; this.permalink = ''; this.id = ''; this.isScanner = !!options.isScanner; + this.percentage = 0; this.categories = []; } @@ -189,6 +193,10 @@ export default class AnalysisResult { return time; } + private parseTimeStamp(timeStamp: number): string { + return moment(timeStamp).format('YYYY-MM-DD H:mm'); + } + public getCategoryByName(name: string): CategoryResult | undefined { const lowerCaseName = name.toLowerCase(); let category = this.cache.get(lowerCaseName); @@ -217,10 +225,8 @@ export default class AnalysisResult { this.categories.push(category); } - if (problem.severity === Severity.error) { - this.errors++; - } else if (problem.severity === Severity.warning) { - this.warnings++; + if (problem.severity === Severity.error || problem.severity === Severity.warning) { + this.hintsCount++; } category.addProblem(problem); @@ -244,8 +250,7 @@ export default class AnalysisResult { const category = this.getCategoryByName(name); if (category) { - this.errors -= category.errors; - this.warnings -= category.warnings; + this.hintsCount -= category.hintsCount; const index = this.categories.indexOf(category); diff --git a/packages/formatter-html/src/utils.ts b/packages/formatter-html/src/utils.ts index c90b29e8f86..01b4394aa31 100644 --- a/packages/formatter-html/src/utils.ts +++ b/packages/formatter-html/src/utils.ts @@ -112,6 +112,16 @@ }); }; + const passedHints = (category: any): Array => { + if (!category) { + return []; + } + + return category.hints.filter((hint: any) => { + return hint.status === hintStatus.pass; + }); + }; + const utils = { cutCodeString, cutUrlString, @@ -119,7 +129,8 @@ linkify, noIssues, noPending, - normalizePosition + normalizePosition, + passedHints }; if (typeof module === 'object' && module.exports) { diff --git a/packages/formatter-html/src/views/pages/report.ejs b/packages/formatter-html/src/views/pages/report.ejs index b00666aa34d..7814828a7c2 100644 --- a/packages/formatter-html/src/views/pages/report.ejs +++ b/packages/formatter-html/src/views/pages/report.ejs @@ -4,6 +4,8 @@ Page Title + <%- include('../partials/browser-icon', { result }); %> + @@ -18,6 +20,8 @@ + + diff --git a/packages/formatter-html/src/views/partials/browser-icon.ejs b/packages/formatter-html/src/views/partials/browser-icon.ejs new file mode 100644 index 00000000000..cd52fd3af34 --- /dev/null +++ b/packages/formatter-html/src/views/partials/browser-icon.ejs @@ -0,0 +1,11 @@ +<% if (result && result.status) { %> + <% if (result.status === 'error' || result.hintsCount !== 0) { %> + + <% } else if (result.status === 'finished') { %> + + <% } else { %> + + <% } %> +<% } else { %> + +<% } %> diff --git a/packages/formatter-html/src/views/partials/check-mark.ejs b/packages/formatter-html/src/views/partials/check-mark.ejs new file mode 100644 index 00000000000..a2bc24cbdc3 --- /dev/null +++ b/packages/formatter-html/src/views/partials/check-mark.ejs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/formatter-html/src/views/partials/scan-category-summary.ejs b/packages/formatter-html/src/views/partials/scan-category-summary.ejs new file mode 100644 index 00000000000..810869f5a7c --- /dev/null +++ b/packages/formatter-html/src/views/partials/scan-category-summary.ejs @@ -0,0 +1,18 @@ + +

+ diff --git a/packages/formatter-html/src/views/partials/scan-expand-all.ejs b/packages/formatter-html/src/views/partials/scan-expand-all.ejs new file mode 100644 index 00000000000..770bff3381f --- /dev/null +++ b/packages/formatter-html/src/views/partials/scan-expand-all.ejs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/formatter-html/src/views/partials/scan-result-category-item.ejs b/packages/formatter-html/src/views/partials/scan-result-category-item.ejs new file mode 100644 index 00000000000..142980d2608 --- /dev/null +++ b/packages/formatter-html/src/views/partials/scan-result-category-item.ejs @@ -0,0 +1,22 @@ +
+
+

<%= category.name %>

+ <% if (result.isFinish && !utils.noIssues(category)) { %> + <%- include('scan-expand-all') %> + <% } %> +
+ <% if (result.status !== 'error' && result.status !== 'finished') { %> +
+
+
+

Gathering results

+
+
+ <% } else if (utils.noIssues(category)) { %> + <%- include('category-pass-message'); %> + <% } else { %> + <% utils.filterErrorsAndWarnings(category).forEach((hint) => { %> + <%- include('scan-result-item', { hint, utils, isScanner }); %> + <% }) %> + <% } %> +
diff --git a/packages/formatter-html/src/views/partials/scan-result-item.1.ejs b/packages/formatter-html/src/views/partials/scan-result-item.1.ejs new file mode 100644 index 00000000000..dceb33c701a --- /dev/null +++ b/packages/formatter-html/src/views/partials/scan-result-item.1.ejs @@ -0,0 +1,49 @@ + diff --git a/packages/formatter-html/src/views/partials/scan-result-item.ejs b/packages/formatter-html/src/views/partials/scan-result-item.ejs index dceb33c701a..293f224b009 100644 --- a/packages/formatter-html/src/views/partials/scan-result-item.ejs +++ b/packages/formatter-html/src/views/partials/scan-result-item.ejs @@ -1,49 +1,48 @@ -