feat(fonts): download fonts from grafana instead of CDN

Makes its possible to run grafana without internet access.
The performance hit by not using a cdn is very small since
most grafana instances are setup on locally.

closes #4223
This commit is contained in:
bergquist 2016-03-16 10:39:45 +01:00
parent 0d7eb18d7b
commit 99e068643b
43 changed files with 441 additions and 152 deletions

View File

@ -14,7 +14,6 @@
@import "base/reboot";
@import "base/type";
@import "base/forms";
@import "base/fonts";
@import "base/grid";
@import "base/font_awesome";

View File

@ -1,185 +1,280 @@
/* cyrillic-ext */
@font-face {
font-family: 'grafana-icons';
src: url('../fonts/grafana-icons.eot?h6rv8b');
src: url('../fonts/grafana-icons.eot?h6rv8b#iefix') format('embedded-opentype'),
url('../fonts/grafana-icons.ttf?h6rv8b') format('truetype'),
url('../fonts/grafana-icons.woff?h6rv8b') format('woff'),
url('../fonts/grafana-icons.svg?h6rv8b#grafana-icons') format('svg');
font-weight: normal;
font-style: normal;
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
.icon-gf {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'grafana-icons' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
.inline-icon-gf {
vertical-align: middle;
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
.icon-gf-raintank_wordmark:before {
content: "\e600";
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
.icon-gf-raintank_icn:before {
content: "\e601";
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTf8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
.icon-gf-raintank_r-icn:before {
content: "\e905";
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTT0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
.icon-gf-check-alt:before {
content: "\e603";
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/opensans/DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
.icon-gf-check:before {
content: "\e604";
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
.icon-gf-collector:before {
content: "\e605";
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
.icon-gf-dashboard:before {
content: "\e606";
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
.icon-gf-panel:before {
content: "\e904";
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
.icon-gf-datasources:before {
content: "\e607";
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
.icon-gf-endpoint-tiny:before {
content: "\e608";
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
.icon-gf-endpoint:before {
content: "\e609";
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts/opensans/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
.icon-gf-filter:before {
content: "\e60a";
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/opensans/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
.icon-gf-status:before {
content: "\e60b";
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/opensans/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
.icon-gf-monitoring:before {
content: "\e60c";
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/opensans/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
.icon-gf-monitoring-tiny:before {
content: "\e620";
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/opensans/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
.icon-gf-jump-to-dashboard:before {
content: "\e60d";
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/opensans/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
.icon-gf-warn:before {
content: "\e60e";
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/opensans/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
.icon-gf-nodata:before {
content: "\e60f";
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/opensans/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
.icon-gf-critical:before {
content: "\e610";
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/opensans/k3k702ZOKiLJc3WVjuplzK-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
.icon-gf-online:before {
content: "\e611";
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/opensans/k3k702ZOKiLJc3WVjuplzJX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
.icon-gf-event-error:before {
content: "\e623";
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/opensans/k3k702ZOKiLJc3WVjuplzBWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
.icon-gf-event:before {
content: "\e624";
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/opensans/k3k702ZOKiLJc3WVjuplzKaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
.icon-gf-sadface:before {
content: "\e907";
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/opensans/k3k702ZOKiLJc3WVjuplzP8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
.icon-gf-private-collector:before {
content: "\e612";
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/opensans/k3k702ZOKiLJc3WVjuplzD0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
.icon-gf-alert:before {
content: "\e61f";
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/opensans/k3k702ZOKiLJc3WVjuplzOgdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
.icon-gf-alert-disabled:before {
content: "\e621";
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/opensans/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
.icon-gf-refresh:before {
content: "\e613";
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/opensans/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
.icon-gf-save:before {
content: "\e614";
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/opensans/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
.icon-gf-settings:before {
content: "\e615";
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/opensans/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
.icon-gf-share:before {
content: "\e616";
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/opensans/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2) format('woff2');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
.icon-gf-star:before {
content: "\e617";
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/opensans/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
.icon-gf-search:before {
content: "\e618";
}
.icon-gf-tag-add:before {
content: "\e619";
}
.icon-gf-tag-remove:before {
content: "\e61a";
}
.icon-gf-video:before {
content: "\e61b";
}
.icon-gf-bulk_action:before {
content: "\e61c";
}
.icon-gf-users:before {
content: "\e622";
}
.icon-gf-globe:before {
content: "\e61d";
}
.icon-gf-snapshot:before {
content: "\e61e";
}
.icon-gf-play-grafana-icon:before {
content: "\e629";
}
.icon-gf-grafana-icon:before {
content: "\e625";
}
.icon-gf-email:before {
content: "\e628";
}
.icon-gf-stopwatch:before {
content: "\e626";
}
.icon-gf-skull:before {
content: "\e900";
}
.icon-gf-probe:before {
content: "\e901";
}
.icon-gf-apps:before {
content: "\e902";
}
.icon-gf-scale:before {
content: "\e906";
}
.icon-gf-litmus:before {
content: "\e627";
}
.icon-gf-grafana_wordmark:before {
content: "\e903";
}
.icon-gf-app:before {
content: "\e902";
}
.icon-gf-datasource:before {
content: "\e607";
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/opensans/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

View File

@ -0,0 +1,185 @@
@font-face {
font-family: 'grafana-icons';
src: url('../fonts/grafana-icons.eot?h6rv8b');
src: url('../fonts/grafana-icons.eot?h6rv8b#iefix') format('embedded-opentype'),
url('../fonts/grafana-icons.ttf?h6rv8b') format('truetype'),
url('../fonts/grafana-icons.woff?h6rv8b') format('woff'),
url('../fonts/grafana-icons.svg?h6rv8b#grafana-icons') format('svg');
font-weight: normal;
font-style: normal;
}
.icon-gf {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'grafana-icons' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.inline-icon-gf {
vertical-align: middle;
}
.icon-gf-raintank_wordmark:before {
content: "\e600";
}
.icon-gf-raintank_icn:before {
content: "\e601";
}
.icon-gf-raintank_r-icn:before {
content: "\e905";
}
.icon-gf-check-alt:before {
content: "\e603";
}
.icon-gf-check:before {
content: "\e604";
}
.icon-gf-collector:before {
content: "\e605";
}
.icon-gf-dashboard:before {
content: "\e606";
}
.icon-gf-panel:before {
content: "\e904";
}
.icon-gf-datasources:before {
content: "\e607";
}
.icon-gf-endpoint-tiny:before {
content: "\e608";
}
.icon-gf-endpoint:before {
content: "\e609";
}
.icon-gf-filter:before {
content: "\e60a";
}
.icon-gf-status:before {
content: "\e60b";
}
.icon-gf-monitoring:before {
content: "\e60c";
}
.icon-gf-monitoring-tiny:before {
content: "\e620";
}
.icon-gf-jump-to-dashboard:before {
content: "\e60d";
}
.icon-gf-warn:before {
content: "\e60e";
}
.icon-gf-nodata:before {
content: "\e60f";
}
.icon-gf-critical:before {
content: "\e610";
}
.icon-gf-online:before {
content: "\e611";
}
.icon-gf-event-error:before {
content: "\e623";
}
.icon-gf-event:before {
content: "\e624";
}
.icon-gf-sadface:before {
content: "\e907";
}
.icon-gf-private-collector:before {
content: "\e612";
}
.icon-gf-alert:before {
content: "\e61f";
}
.icon-gf-alert-disabled:before {
content: "\e621";
}
.icon-gf-refresh:before {
content: "\e613";
}
.icon-gf-save:before {
content: "\e614";
}
.icon-gf-settings:before {
content: "\e615";
}
.icon-gf-share:before {
content: "\e616";
}
.icon-gf-star:before {
content: "\e617";
}
.icon-gf-search:before {
content: "\e618";
}
.icon-gf-tag-add:before {
content: "\e619";
}
.icon-gf-tag-remove:before {
content: "\e61a";
}
.icon-gf-video:before {
content: "\e61b";
}
.icon-gf-bulk_action:before {
content: "\e61c";
}
.icon-gf-users:before {
content: "\e622";
}
.icon-gf-globe:before {
content: "\e61d";
}
.icon-gf-snapshot:before {
content: "\e61e";
}
.icon-gf-play-grafana-icon:before {
content: "\e629";
}
.icon-gf-grafana-icon:before {
content: "\e625";
}
.icon-gf-email:before {
content: "\e628";
}
.icon-gf-stopwatch:before {
content: "\e626";
}
.icon-gf-skull:before {
content: "\e900";
}
.icon-gf-probe:before {
content: "\e901";
}
.icon-gf-apps:before {
content: "\e902";
}
.icon-gf-scale:before {
content: "\e906";
}
.icon-gf-litmus:before {
content: "\e627";
}
.icon-gf-grafana_wordmark:before {
content: "\e903";
}
.icon-gf-app:before {
content: "\e902";
}
.icon-gf-datasource:before {
content: "\e607";
}

3
public/sass/fonts.scss Normal file
View File

@ -0,0 +1,3 @@
@import "base/fonts";
@import "base/font_awesome";
@import "base/grafana_icons";

View File

@ -8,7 +8,7 @@
<title>Grafana</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600,300,700' rel='stylesheet' type='text/css'>
<link href='[[.AppSubUrl]]/public/css/fonts.min.css' rel='stylesheet' type='text/css'>
[[if .User.LightTheme]]
<link rel="stylesheet" href="[[.AppSubUrl]]/public/css/grafana.light.min.css">

View File

@ -6,6 +6,7 @@ module.exports = function(grunt) {
'sass',
'concat:cssDark',
'concat:cssLight',
'concat:cssFonts',
'styleguide',
'sasslint',
'postcss'

View File

@ -22,6 +22,11 @@ module.exports = function(config) {
dest: '<%= genDir %>/css/grafana.light.min.css'
},
cssFonts: {
src: [ '<%= genDir %>/css/fonts.css' ],
dest: '<%= genDir %>/css/fonts.min.css'
},
js: {
src: [
'<%= genDir %>/vendor/npm/es5-shim/es5-shim.js',

View File

@ -6,6 +6,7 @@ module.exports = function(config) {
files: {
"<%= genDir %>/css/grafana.dark.css": "<%= srcDir %>/sass/grafana.dark.scss",
"<%= genDir %>/css/grafana.light.css": "<%= srcDir %>/sass/grafana.light.scss",
"<%= genDir %>/css/fonts.css": "<%= srcDir %>/sass/fonts.scss",
}
}
};