@@ -0,0 +1,99 @@ | |||||
/* | |||||
Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org> | |||||
*/ | |||||
.hljs { | |||||
display: block; | |||||
overflow-x: auto; | |||||
padding: 0.5em; | |||||
background: #F0F0F0; | |||||
} | |||||
/* Base color: saturation 0; */ | |||||
.hljs, | |||||
.hljs-subst { | |||||
color: #444; | |||||
} | |||||
.hljs-comment { | |||||
color: #888888; | |||||
} | |||||
.hljs-keyword, | |||||
.hljs-attribute, | |||||
.hljs-selector-tag, | |||||
.hljs-meta-keyword, | |||||
.hljs-doctag, | |||||
.hljs-name { | |||||
font-weight: bold; | |||||
} | |||||
/* User color: hue: 0 */ | |||||
.hljs-type, | |||||
.hljs-string, | |||||
.hljs-number, | |||||
.hljs-selector-id, | |||||
.hljs-selector-class, | |||||
.hljs-quote, | |||||
.hljs-template-tag, | |||||
.hljs-deletion { | |||||
color: #880000; | |||||
} | |||||
.hljs-title, | |||||
.hljs-section { | |||||
color: #880000; | |||||
font-weight: bold; | |||||
} | |||||
.hljs-regexp, | |||||
.hljs-symbol, | |||||
.hljs-variable, | |||||
.hljs-template-variable, | |||||
.hljs-link, | |||||
.hljs-selector-attr, | |||||
.hljs-selector-pseudo { | |||||
color: #BC6060; | |||||
} | |||||
/* Language color: hue: 90; */ | |||||
.hljs-literal { | |||||
color: #78A960; | |||||
} | |||||
.hljs-built_in, | |||||
.hljs-bullet, | |||||
.hljs-code, | |||||
.hljs-addition { | |||||
color: #397300; | |||||
} | |||||
/* Meta color: hue: 200 */ | |||||
.hljs-meta { | |||||
color: #1f7199; | |||||
} | |||||
.hljs-meta-string { | |||||
color: #4d99bf; | |||||
} | |||||
/* Misc effects */ | |||||
.hljs-emphasis { | |||||
font-style: italic; | |||||
} | |||||
.hljs-strong { | |||||
font-weight: bold; | |||||
} |
@@ -0,0 +1,693 @@ | |||||
/*------------------------------------- | |||||
Custom CSS | |||||
---------------------------------------*/ | |||||
body { | |||||
font-family: "proxima-nova", sans-serif; | |||||
font-size: 15px; | |||||
color: #6c7680; | |||||
text-rendering: optimizeLegibility !important; | |||||
line-height: 1.5em; | |||||
-moz-osx-font-smoothing: grayscale; | |||||
-webkit-font-smoothing: antialiased; | |||||
} | |||||
p.lead { | |||||
font-family: "proxima-nova", sans-serif; | |||||
} | |||||
h1, | |||||
h2, | |||||
h3, | |||||
h4, | |||||
h5, | |||||
h6, | |||||
.lead, | |||||
.page-sidebar, | |||||
.breadcrumb, | |||||
.label, | |||||
.h6, | |||||
.sans, | |||||
blockquote { | |||||
font-family: "proxima-nova", sans-serif; | |||||
color: #36414C; | |||||
} | |||||
button, | |||||
.button, | |||||
.btn { | |||||
font-family: "proxima-nova", sans-serif; | |||||
} | |||||
.page-header-block, | |||||
.page-header-actions { | |||||
display: none; | |||||
} | |||||
.btn-primary { | |||||
background-color: #7575ff; | |||||
border-color: #7575ff; | |||||
} | |||||
.btn-primary :hover { | |||||
background-color: #5b5be5; | |||||
} | |||||
article button, | |||||
article .button, | |||||
article .btn, | |||||
blockquote { | |||||
font-size: 0.93em; | |||||
} | |||||
article ul > li, | |||||
article ol > li { | |||||
margin: 10px 0px; | |||||
} | |||||
figcaption { | |||||
font-size: 0.8em; | |||||
color: #B8C2CC; | |||||
padding: 10px 0px; | |||||
line-height: 1.3em; | |||||
} | |||||
.text-extra-muted { | |||||
color: #B8C2CC !important; | |||||
} | |||||
.page-sidebar, | |||||
.breadcrumb { | |||||
line-height: 1.5em; | |||||
} | |||||
.breadcrumb { | |||||
background-color: transparent; | |||||
padding: 10px 0px; | |||||
} | |||||
.breadcrumb a, | |||||
.breadcrumb a:hover, | |||||
.breadcrumb a:focus, | |||||
.breadcrumb a:visited { | |||||
color: inherit; | |||||
} | |||||
.container, | |||||
.navbar, | |||||
footer { | |||||
max-width: 900px; | |||||
margin: auto; | |||||
} | |||||
@media (min-width: 768px) { | |||||
.narrow { | |||||
max-width: 75%; | |||||
margin: auto; | |||||
} | |||||
} | |||||
h1, | |||||
h2, | |||||
h3, | |||||
h4, | |||||
h5, | |||||
h6 { | |||||
font-weight: 700; | |||||
} | |||||
p.description, | |||||
p.description a { | |||||
color: #B8C2CC; | |||||
font-size: 1.06em; | |||||
margin: 12px 0 0; | |||||
text-decoration: none; | |||||
} | |||||
p.description a:focus, | |||||
p.description a:active, | |||||
p.description a:hover { | |||||
color: #36414C; | |||||
} | |||||
.hero-content p.description, | |||||
.page-hero p.description, | |||||
.hero-content p.description a, | |||||
.page-hero p.description a { | |||||
font-size: 0.9em; | |||||
} | |||||
.hero-content .x-large.button, | |||||
.page-hero .x-large.button { | |||||
font-size: 1em; | |||||
} | |||||
a { | |||||
color: #5E64FF; | |||||
} | |||||
a, | |||||
a:focus, | |||||
a:hover { | |||||
transition: color 0.3s, border 0.3s, background-color 0.3s; | |||||
} | |||||
a.grey { | |||||
color: #36414C; | |||||
} | |||||
a.close, | |||||
a.btn { | |||||
text-decoration: none; | |||||
} | |||||
.navbar a, | |||||
.sidebar-navbar-items a { | |||||
color: inherit; | |||||
text-decoration: none; | |||||
border-color: inherit; | |||||
} | |||||
.page-padding, | |||||
.page-content { | |||||
padding-top: 30px; | |||||
padding-bottom: 30px; | |||||
} | |||||
.page-title { | |||||
text-align: center; | |||||
margin-top: 30px; | |||||
} | |||||
.page-sub-title { | |||||
color: #8D99A6; | |||||
text-align: center; | |||||
margin-top: 0px; | |||||
margin-bottom: 45px; | |||||
font-weight: 300; | |||||
} | |||||
.btn-white { | |||||
background-color: #fff; | |||||
color: #36414C; | |||||
border-color: #d1d8dd; | |||||
} | |||||
.btn-white:hover { | |||||
background-color: #fafbfc; | |||||
} | |||||
.screenshot { | |||||
border: 2px solid #d1d8dd; | |||||
box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.15); | |||||
margin: 15px 0px; | |||||
} | |||||
blockquote { | |||||
border-left: 5px solid #F0F4F7; | |||||
background-color: #fafbfc; | |||||
margin-top: 15px; | |||||
} | |||||
blockquote p { | |||||
margin: 0px; | |||||
} | |||||
.page-hero { | |||||
padding: 130px 0px 100px; | |||||
margin-top: -60px; | |||||
} | |||||
h1 { | |||||
font-size: 2.13em; | |||||
} | |||||
.navbar { | |||||
background-color: transparent; | |||||
} | |||||
.button { | |||||
display: inline-block; | |||||
border-radius: 4px; | |||||
padding: 7px 12px 9px; | |||||
line-height: 1; | |||||
text-decoration: none; | |||||
} | |||||
.button:hover, | |||||
.button:active, | |||||
.button:focus { | |||||
text-decoration: none; | |||||
} | |||||
.large.button { | |||||
font-size: 1.33em; | |||||
padding: 12px 24px 10px; | |||||
border-bottom: 3px solid rgba(0, 0, 0, 0.2); | |||||
} | |||||
.x-large.button { | |||||
font-size: 1.6em; | |||||
padding: 16px 40px; | |||||
border-bottom: 3px solid rgba(0, 0, 0, 0.2); | |||||
} | |||||
.small.button { | |||||
padding-top: 11px; | |||||
} | |||||
.blue.button { | |||||
color: #fff; | |||||
background: #7575ff; | |||||
border: 0px; | |||||
border-bottom: 3px solid rgba(0, 0, 0, 0.2); | |||||
} | |||||
.blue.button:hover { | |||||
background: #5b5be5; | |||||
} | |||||
.white.button { | |||||
color: #6C7680; | |||||
border: 1px solid #d1d8dd; | |||||
} | |||||
.white.button:hover { | |||||
background: #fafbfc; | |||||
} | |||||
.navbar { | |||||
padding: 10px 0px; | |||||
border-bottom: 1px solid #d1d8dd; | |||||
} | |||||
.navbar-brand, | |||||
.navbar-brand:hover, | |||||
.navbar-brand:visited, | |||||
.navbar-brand:focus { | |||||
font-size: 1.2em; | |||||
text-decoration: none; | |||||
color: #36414C; | |||||
} | |||||
.hero { | |||||
padding: 70px 0; | |||||
font-size: 1.6em; | |||||
font-weight: 300; | |||||
text-align: center; | |||||
} | |||||
.hero-content { | |||||
font-weight: 300; | |||||
margin-top: 12px; | |||||
} | |||||
.hero-content h1 { | |||||
padding-top: 24px; | |||||
font-size: 1.5em; | |||||
} | |||||
.hero-content p { | |||||
width: 80%; | |||||
margin: 0 auto 24px; | |||||
line-height: 1.4; | |||||
} | |||||
.hero-content p.description { | |||||
margin-top: 16px; | |||||
margin-bottom: 0px; | |||||
} | |||||
.group, | |||||
.border-bottom { | |||||
border-bottom: 1px solid #d1d8dd; | |||||
} | |||||
.row.section, | |||||
section { | |||||
padding: 70px 0 70px; | |||||
} | |||||
.row.section p, | |||||
section p { | |||||
color: #6c7680; | |||||
} | |||||
.content { | |||||
padding: 24px 40px 0; | |||||
} | |||||
.small-content { | |||||
text-align: center; | |||||
padding: 0 32px; | |||||
} | |||||
.small-content img { | |||||
width: 130px; | |||||
height: 130px; | |||||
} | |||||
.small-content h1 { | |||||
font-size: 1.5em; | |||||
} | |||||
.tiny-content { | |||||
margin-bottom: 40px; | |||||
font-size: 1em; | |||||
} | |||||
.tiny-content h1 { | |||||
color: #36414c; | |||||
} | |||||
.tiny-content p { | |||||
margin: 6px 0 0; | |||||
color: #858d95; | |||||
} | |||||
.tiny-content h1 { | |||||
font-size: 1.2em; | |||||
} | |||||
footer { | |||||
color: #8D99A6; | |||||
padding: 3px 0; | |||||
border-top: 1px solid #d1d8dd; | |||||
} | |||||
footer h1 { | |||||
color: #36414C; | |||||
font-size: 1.42em; | |||||
margin: 0; | |||||
} | |||||
footer p { | |||||
margin: 0; | |||||
padding: 2px 0 10px; | |||||
color: #6c7680; | |||||
} | |||||
footer ul, | |||||
footer ul li { | |||||
margin: 0; | |||||
padding: 0; | |||||
list-style-type: none; | |||||
text-align: center; | |||||
} | |||||
footer li a { | |||||
text-decoration: none; | |||||
color: #6c7680; | |||||
} | |||||
footer li a:hover, | |||||
footer li a:active, | |||||
footer li a:focus { | |||||
color: #36414C; | |||||
text-decoration: none; | |||||
} | |||||
.footer-list { | |||||
text-align: center; | |||||
display: inline-block; | |||||
width: 100%; | |||||
margin-top: 50px; | |||||
margin-bottom: 10px; | |||||
} | |||||
.footer-list ul { | |||||
margin-top: 20px; | |||||
} | |||||
.footer-list li { | |||||
margin: 0px 15px; | |||||
display: inline-block; | |||||
} | |||||
.footer-link { | |||||
color: #B8C2CC; | |||||
} | |||||
.footer-link:hover, | |||||
.footer-link:focus { | |||||
color: #8D99A6; | |||||
} | |||||
.copyright { | |||||
font-size: 0.8em; | |||||
text-align: center; | |||||
padding-bottom: 50px; | |||||
} | |||||
.copyright p { | |||||
padding-bottom: 0px; | |||||
color: #B8C2CC; | |||||
} | |||||
.center { | |||||
text-align: center; | |||||
} | |||||
/*------------------------------------- | |||||
ERPNext | |||||
---------------------------------------*/ | |||||
.erp-next-logo { | |||||
margin: 8px 0; | |||||
height: 14px; | |||||
width: 76px; | |||||
} | |||||
.erp-hero { | |||||
width: 500px; | |||||
margin: auto; | |||||
} | |||||
.tabs { | |||||
text-align: center; | |||||
} | |||||
.tabs ul, | |||||
.tabs li { | |||||
margin: 0; | |||||
padding: 0; | |||||
list-style-type: none; | |||||
display: inline-block; | |||||
} | |||||
.tabs ul { | |||||
margin: 0 auto; | |||||
} | |||||
.tabs li { | |||||
width: 64px; | |||||
text-align: center; | |||||
margin: 0 16px; | |||||
} | |||||
.tabs li input { | |||||
background: transparent; | |||||
border: 0; | |||||
color: #8d99a6; | |||||
padding-bottom: 8px; | |||||
transition: 0.5s; | |||||
border-bottom: 2px solid transparent; | |||||
cursor: pointer; | |||||
} | |||||
.tabs li input:focus { | |||||
outline: none; | |||||
} | |||||
.tabs li input:hover { | |||||
color: #36414c; | |||||
} | |||||
.tabs li input.active { | |||||
color: #36414c; | |||||
border-bottom: 2px solid #7575ff; | |||||
} | |||||
.feature { | |||||
text-align: center; | |||||
display: none; | |||||
} | |||||
.feature p, | |||||
.feature h1 { | |||||
width: 65%; | |||||
margin: 0 auto; | |||||
} | |||||
.feature h1 { | |||||
padding: 40px 0 16px; | |||||
} | |||||
.feature p { | |||||
font-size: 1.13em; | |||||
padding-bottom: 24px; | |||||
} | |||||
/*------------------------------------- | |||||
Frappé for Developers | |||||
---------------------------------------*/ | |||||
.developers-hero { | |||||
width: 313px; | |||||
} | |||||
.developers-logo { | |||||
height: 19px; | |||||
} | |||||
.erp-framework { | |||||
width: 80%; | |||||
margin: 30px auto; | |||||
} | |||||
.get-involved { | |||||
color: #36414c; | |||||
font-size: 1.2em; | |||||
text-align: center; | |||||
} | |||||
.get-involved p { | |||||
margin-top: 0; | |||||
} | |||||
.get-involved img { | |||||
width: 20px; | |||||
height: 20px; | |||||
margin: -3px 10px 0 -5px; | |||||
} | |||||
.get-involved .button { | |||||
margin: 0 4px; | |||||
} | |||||
/*------------------------------------- | |||||
Frappé | |||||
---------------------------------------*/ | |||||
.frappe-hero { | |||||
width: 385px; | |||||
} | |||||
.frappe-logo { | |||||
height: 19px; | |||||
} | |||||
.open-source { | |||||
text-align: center; | |||||
} | |||||
.open-source img { | |||||
width: 325px; | |||||
} | |||||
.team-picture { | |||||
text-align: center; | |||||
} | |||||
.team-picture h1 { | |||||
margin: 0 0 40px; | |||||
} | |||||
.team-description { | |||||
text-align: center; | |||||
margin-bottom: 20px; | |||||
} | |||||
.team-description a { | |||||
text-decoration: none; | |||||
} | |||||
.input-label { | |||||
margin: 16px 0 3px; | |||||
color: #8d99a6; | |||||
font-size: 0.93em; | |||||
} | |||||
#message { | |||||
height: 150px; | |||||
} | |||||
#send { | |||||
display: block; | |||||
text-align: center; | |||||
margin-top: 16px; | |||||
} | |||||
.office-map { | |||||
width: 394px; | |||||
margin-top: 40px; | |||||
} | |||||
.contact .content { | |||||
margin-top: -40px; | |||||
} | |||||
.page-breadcrumbs { | |||||
display: none !important; | |||||
} | |||||
.half-width { | |||||
max-width: 50%; | |||||
margin-left: auto; | |||||
margin-right: auto; | |||||
} | |||||
.width-75 { | |||||
max-width: 75%; | |||||
margin-left: auto; | |||||
margin-right: auto; | |||||
} | |||||
.media-object { | |||||
max-width: 120px; | |||||
margin-right: 15px; | |||||
} | |||||
.browser-image { | |||||
border: 1px solid #d1d8dd; | |||||
} | |||||
.fake-browser-frame { | |||||
position: relative; | |||||
margin: 40px auto; | |||||
max-width: 600px; | |||||
} | |||||
.fake-browser-frame::before { | |||||
content: ""; | |||||
height: 24px; | |||||
position: absolute; | |||||
top: -24px; | |||||
left: 0px; | |||||
right: 0px; | |||||
border: 1px solid #d1d8dd; | |||||
border-bottom: none; | |||||
border-top-left-radius: 4px; | |||||
border-top-right-radius: 4px; | |||||
} | |||||
.fake-browser-frame::after { | |||||
content: '\f052 \f052 \f052'; | |||||
position: absolute; | |||||
color: #d1d8dd; | |||||
top: -17px; | |||||
left: 8px; | |||||
/* octicon */ | |||||
font: normal normal 12px octicons; | |||||
line-height: 1; | |||||
display: inline-block; | |||||
text-decoration: none; | |||||
-webkit-font-smoothing: antialiased; | |||||
-moz-osx-font-smoothing: grayscale; | |||||
-webkit-user-select: none; | |||||
-moz-user-select: none; | |||||
-ms-user-select: none; | |||||
user-select: none; | |||||
} | |||||
.fake-iphone-frame { | |||||
position: relative; | |||||
padding: 40px 8px; | |||||
border: 1px solid #d1d8dd; | |||||
border-radius: 15px; | |||||
} | |||||
.fake-ipad-frame { | |||||
position: relative; | |||||
padding: 8px 40px; | |||||
border: 1px solid #d1d8dd; | |||||
border-radius: 15px; | |||||
} | |||||
.cover { | |||||
width: 100%; | |||||
} | |||||
.underline { | |||||
color: inherit; | |||||
text-decoration: underline; | |||||
} | |||||
.underline:hover, | |||||
.underline:focus, | |||||
.underline:active { | |||||
color: #36414C; | |||||
} | |||||
.spacer { | |||||
margin-top: 40px; | |||||
margin-bottom: 40px; | |||||
} | |||||
article h3 { | |||||
margin-top: 40px; | |||||
} | |||||
article hr + h3 { | |||||
margin-top: 0px; | |||||
} | |||||
.negative-margin { | |||||
margin-left: -15px; | |||||
margin-right: -15px; | |||||
padding-left: 15px; | |||||
padding-right: 15px; | |||||
} | |||||
.navbar-icon { | |||||
width: 24px; | |||||
margin-right: 7px; | |||||
margin-top: -3px; | |||||
} | |||||
.large-description { | |||||
line-height: 1.5; | |||||
font-size: 1.5em; | |||||
font-weight: 200; | |||||
display: inline-block; | |||||
} | |||||
@media (max-width: 767px) { | |||||
.navbar { | |||||
height: auto; | |||||
} | |||||
.hero { | |||||
font-size: 1.2em; | |||||
} | |||||
.large-description { | |||||
font-size: 1.2em; | |||||
} | |||||
.hero-content h1 { | |||||
font-size: 1.2em; | |||||
} | |||||
.hero-content p { | |||||
width: 100%; | |||||
} | |||||
.small-content { | |||||
padding-top: 70px; | |||||
} | |||||
.small-content:first-child { | |||||
padding-top: 0px; | |||||
} | |||||
.page-content { | |||||
padding-top: 0px; | |||||
} | |||||
.footer-list { | |||||
margin-top: 40px; | |||||
} | |||||
.footer-list li { | |||||
margin: 15px 0px; | |||||
display: block; | |||||
text-align: left; | |||||
} | |||||
.copyright { | |||||
text-align: left; | |||||
padding-bottom: 55px; | |||||
} | |||||
.half-width { | |||||
max-width: 90%; | |||||
} | |||||
.width-75 { | |||||
max-width: 100%; | |||||
} | |||||
.fake-iphone-frame { | |||||
display: inline-block; | |||||
margin-bottom: 60px; | |||||
} | |||||
.erp-hero { | |||||
margin-bottom: 1px; | |||||
} | |||||
} | |||||
.website-list .result { | |||||
border: none; | |||||
} | |||||
.page-container { | |||||
max-width: 970px; | |||||
margin: 0 auto; | |||||
} | |||||
.text-center { | |||||
text-align: center; | |||||
} | |||||
.jumbotron { | |||||
margin-bottom: 0; | |||||
} |
@@ -0,0 +1,59 @@ | |||||
.page-header { | |||||
width: 100%; | |||||
text-align: center; | |||||
color: #fff; | |||||
padding: 2em 0; | |||||
} | |||||
.project-name { | |||||
padding-top: 1.8em; | |||||
font-size: 2.5em; | |||||
} | |||||
.project-tagline { | |||||
font-size: 1em; | |||||
opacity: 0.7; | |||||
padding: 2em; | |||||
} | |||||
.btn-transparent { | |||||
margin: 0 0.5em; | |||||
color: #fff; | |||||
background: rgba(255, 255, 255, 0.1); | |||||
border: 1px solid rgba(255, 255, 255, 0.4) | |||||
} | |||||
.btn-transparent:hover { | |||||
color: #fff; | |||||
background: rgba(255, 255, 255, 0.3); | |||||
} | |||||
.main-content { | |||||
padding: 2em; | |||||
} | |||||
.main-content .row { | |||||
margin-bottom: 20px; | |||||
} | |||||
hr { | |||||
margin-bottom: 2rem; | |||||
} | |||||
.chart-container { | |||||
border: 1px solid #ddd; | |||||
border-radius: 3px; | |||||
} | |||||
pre.highlight { | |||||
background: #f7f7f7; | |||||
border-radius: 3px; | |||||
} | |||||
.btn-group>.btn { | |||||
outline: none !important; | |||||
} | |||||
.dashboard-section h1 { | |||||
margin-left: -2px; | |||||
} | |||||
.hero .gantt-container { | |||||
text-align: left; | |||||
} |
@@ -0,0 +1,424 @@ | |||||
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ | |||||
/** | |||||
* 1. Set default font family to sans-serif. | |||||
* 2. Prevent iOS text size adjust after orientation change, without disabling | |||||
* user zoom. | |||||
*/ | |||||
html { | |||||
font-family: sans-serif; /* 1 */ | |||||
-ms-text-size-adjust: 100%; /* 2 */ | |||||
-webkit-text-size-adjust: 100%; /* 2 */ | |||||
} | |||||
/** | |||||
* Remove default margin. | |||||
*/ | |||||
body { | |||||
margin: 0; | |||||
} | |||||
/* HTML5 display definitions | |||||
========================================================================== */ | |||||
/** | |||||
* Correct `block` display not defined for any HTML5 element in IE 8/9. | |||||
* Correct `block` display not defined for `details` or `summary` in IE 10/11 | |||||
* and Firefox. | |||||
* Correct `block` display not defined for `main` in IE 11. | |||||
*/ | |||||
article, | |||||
aside, | |||||
details, | |||||
figcaption, | |||||
figure, | |||||
footer, | |||||
header, | |||||
hgroup, | |||||
main, | |||||
menu, | |||||
nav, | |||||
section, | |||||
summary { | |||||
display: block; | |||||
} | |||||
/** | |||||
* 1. Correct `inline-block` display not defined in IE 8/9. | |||||
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. | |||||
*/ | |||||
audio, | |||||
canvas, | |||||
progress, | |||||
video { | |||||
display: inline-block; /* 1 */ | |||||
vertical-align: baseline; /* 2 */ | |||||
} | |||||
/** | |||||
* Prevent modern browsers from displaying `audio` without controls. | |||||
* Remove excess height in iOS 5 devices. | |||||
*/ | |||||
audio:not([controls]) { | |||||
display: none; | |||||
height: 0; | |||||
} | |||||
/** | |||||
* Address `[hidden]` styling not present in IE 8/9/10. | |||||
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. | |||||
*/ | |||||
[hidden], | |||||
template { | |||||
display: none; | |||||
} | |||||
/* Links | |||||
========================================================================== */ | |||||
/** | |||||
* Remove the gray background color from active links in IE 10. | |||||
*/ | |||||
a { | |||||
background-color: transparent; | |||||
} | |||||
/** | |||||
* Improve readability when focused and also mouse hovered in all browsers. | |||||
*/ | |||||
a:active, | |||||
a:hover { | |||||
outline: 0; | |||||
} | |||||
/* Text-level semantics | |||||
========================================================================== */ | |||||
/** | |||||
* Address styling not present in IE 8/9/10/11, Safari, and Chrome. | |||||
*/ | |||||
abbr[title] { | |||||
border-bottom: 1px dotted; | |||||
} | |||||
/** | |||||
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome. | |||||
*/ | |||||
b, | |||||
strong { | |||||
font-weight: bold; | |||||
} | |||||
/** | |||||
* Address styling not present in Safari and Chrome. | |||||
*/ | |||||
dfn { | |||||
font-style: italic; | |||||
} | |||||
/** | |||||
* Address variable `h1` font-size and margin within `section` and `article` | |||||
* contexts in Firefox 4+, Safari, and Chrome. | |||||
*/ | |||||
h1 { | |||||
font-size: 2em; | |||||
margin: 0.67em 0; | |||||
} | |||||
/** | |||||
* Address styling not present in IE 8/9. | |||||
*/ | |||||
mark { | |||||
background: #ff0; | |||||
color: #000; | |||||
} | |||||
/** | |||||
* Address inconsistent and variable font size in all browsers. | |||||
*/ | |||||
small { | |||||
font-size: 80%; | |||||
} | |||||
/** | |||||
* Prevent `sub` and `sup` affecting `line-height` in all browsers. | |||||
*/ | |||||
sub, | |||||
sup { | |||||
font-size: 75%; | |||||
line-height: 0; | |||||
position: relative; | |||||
vertical-align: baseline; | |||||
} | |||||
sup { | |||||
top: -0.5em; | |||||
} | |||||
sub { | |||||
bottom: -0.25em; | |||||
} | |||||
/* Embedded content | |||||
========================================================================== */ | |||||
/** | |||||
* Remove border when inside `a` element in IE 8/9/10. | |||||
*/ | |||||
img { | |||||
border: 0; | |||||
} | |||||
/** | |||||
* Correct overflow not hidden in IE 9/10/11. | |||||
*/ | |||||
svg:not(:root) { | |||||
overflow: hidden; | |||||
} | |||||
/* Grouping content | |||||
========================================================================== */ | |||||
/** | |||||
* Address margin not present in IE 8/9 and Safari. | |||||
*/ | |||||
figure { | |||||
margin: 1em 40px; | |||||
} | |||||
/** | |||||
* Address differences between Firefox and other browsers. | |||||
*/ | |||||
hr { | |||||
box-sizing: content-box; | |||||
height: 0; | |||||
} | |||||
/** | |||||
* Contain overflow in all browsers. | |||||
*/ | |||||
pre { | |||||
overflow: auto; | |||||
} | |||||
/** | |||||
* Address odd `em`-unit font size rendering in all browsers. | |||||
*/ | |||||
code, | |||||
kbd, | |||||
pre, | |||||
samp { | |||||
font-family: monospace, monospace; | |||||
font-size: 1em; | |||||
} | |||||
/* Forms | |||||
========================================================================== */ | |||||
/** | |||||
* Known limitation: by default, Chrome and Safari on OS X allow very limited | |||||
* styling of `select`, unless a `border` property is set. | |||||
*/ | |||||
/** | |||||
* 1. Correct color not being inherited. | |||||
* Known issue: affects color of disabled elements. | |||||
* 2. Correct font properties not being inherited. | |||||
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome. | |||||
*/ | |||||
button, | |||||
input, | |||||
optgroup, | |||||
select, | |||||
textarea { | |||||
color: inherit; /* 1 */ | |||||
font: inherit; /* 2 */ | |||||
margin: 0; /* 3 */ | |||||
} | |||||
/** | |||||
* Address `overflow` set to `hidden` in IE 8/9/10/11. | |||||
*/ | |||||
button { | |||||
overflow: visible; | |||||
} | |||||
/** | |||||
* Address inconsistent `text-transform` inheritance for `button` and `select`. | |||||
* All other form control elements do not inherit `text-transform` values. | |||||
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. | |||||
* Correct `select` style inheritance in Firefox. | |||||
*/ | |||||
button, | |||||
select { | |||||
text-transform: none; | |||||
} | |||||
/** | |||||
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` | |||||
* and `video` controls. | |||||
* 2. Correct inability to style clickable `input` types in iOS. | |||||
* 3. Improve usability and consistency of cursor style between image-type | |||||
* `input` and others. | |||||
*/ | |||||
button, | |||||
html input[type="button"], /* 1 */ | |||||
input[type="reset"], | |||||
input[type="submit"] { | |||||
-webkit-appearance: button; /* 2 */ | |||||
cursor: pointer; /* 3 */ | |||||
} | |||||
/** | |||||
* Re-set default cursor for disabled elements. | |||||
*/ | |||||
button[disabled], | |||||
html input[disabled] { | |||||
cursor: default; | |||||
} | |||||
/** | |||||
* Remove inner padding and border in Firefox 4+. | |||||
*/ | |||||
button::-moz-focus-inner, | |||||
input::-moz-focus-inner { | |||||
border: 0; | |||||
padding: 0; | |||||
} | |||||
/** | |||||
* Address Firefox 4+ setting `line-height` on `input` using `!important` in | |||||
* the UA stylesheet. | |||||
*/ | |||||
input { | |||||
line-height: normal; | |||||
} | |||||
/** | |||||
* It's recommended that you don't attempt to style these elements. | |||||
* Firefox's implementation doesn't respect box-sizing, padding, or width. | |||||
* | |||||
* 1. Address box sizing set to `content-box` in IE 8/9/10. | |||||
* 2. Remove excess padding in IE 8/9/10. | |||||
*/ | |||||
input[type="checkbox"], | |||||
input[type="radio"] { | |||||
box-sizing: border-box; /* 1 */ | |||||
padding: 0; /* 2 */ | |||||
} | |||||
/** | |||||
* Fix the cursor style for Chrome's increment/decrement buttons. For certain | |||||
* `font-size` values of the `input`, it causes the cursor style of the | |||||
* decrement button to change from `default` to `text`. | |||||
*/ | |||||
input[type="number"]::-webkit-inner-spin-button, | |||||
input[type="number"]::-webkit-outer-spin-button { | |||||
height: auto; | |||||
} | |||||
/** | |||||
* 1. Address `appearance` set to `searchfield` in Safari and Chrome. | |||||
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome | |||||
* (include `-moz` to future-proof). | |||||
*/ | |||||
input[type="search"] { | |||||
-webkit-appearance: textfield; /* 1 */ /* 2 */ | |||||
box-sizing: content-box; | |||||
} | |||||
/** | |||||
* Remove inner padding and search cancel button in Safari and Chrome on OS X. | |||||
* Safari (but not Chrome) clips the cancel button when the search input has | |||||
* padding (and `textfield` appearance). | |||||
*/ | |||||
input[type="search"]::-webkit-search-cancel-button, | |||||
input[type="search"]::-webkit-search-decoration { | |||||
-webkit-appearance: none; | |||||
} | |||||
/** | |||||
* Define consistent border, margin, and padding. | |||||
*/ | |||||
fieldset { | |||||
border: 1px solid #c0c0c0; | |||||
margin: 0 2px; | |||||
padding: 0.35em 0.625em 0.75em; | |||||
} | |||||
/** | |||||
* 1. Correct `color` not being inherited in IE 8/9/10/11. | |||||
* 2. Remove padding so people aren't caught out if they zero out fieldsets. | |||||
*/ | |||||
legend { | |||||
border: 0; /* 1 */ | |||||
padding: 0; /* 2 */ | |||||
} | |||||
/** | |||||
* Remove default vertical scrollbar in IE 8/9/10/11. | |||||
*/ | |||||
textarea { | |||||
overflow: auto; | |||||
} | |||||
/** | |||||
* Don't inherit the `font-weight` (applied by a rule above). | |||||
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X. | |||||
*/ | |||||
optgroup { | |||||
font-weight: bold; | |||||
} | |||||
/* Tables | |||||
========================================================================== */ | |||||
/** | |||||
* Remove most spacing between table cells. | |||||
*/ | |||||
table { | |||||
border-collapse: collapse; | |||||
border-spacing: 0; | |||||
} | |||||
td, | |||||
th { | |||||
padding: 0; | |||||
} |
@@ -0,0 +1,84 @@ | |||||
let bar_data = { | |||||
"labels": ["Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"], | |||||
"datasets": [{ | |||||
"color": "orange", | |||||
"values": [50804, 10000, 20000, 61500, 82936.88, 24010, 4000, 6000, 25840, 50804.82, 116820, 6000], | |||||
"formatted": ["₹ 0.00", "₹ 0.00", "₹ 0.00", "₹ 61,500.00", "₹ 82,936.88", "₹ 24,010.00", "₹ 0.00", "₹ 0.00", "₹ 25,840.00", "₹ 5,08,048.82", "₹ 1,16,820.00", "₹ 0.00"], | |||||
}, | |||||
// { | |||||
// "color": "blue", | |||||
// "values": [108048, 0, 0, 101500, 50000.88, 24010, 0, 0, 25840, 108048.82, 51682, 0], | |||||
// "formatted": ["₹ 0.00", "₹ 0.00", "₹ 0.00", "₹ 61,500.00", "₹ 82,936.88", "₹ 24,010.00", "₹ 0.00", "₹ 0.00", "₹ 25,840.00", "₹ 5,08,048.82", "₹ 1,16,820.00", "₹ 0.00"], | |||||
// } | |||||
] | |||||
} | |||||
let line_data = { | |||||
"labels": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], | |||||
"datasets": [{ | |||||
"color": "green", | |||||
"values": [25, 40, 30, 35, 48, 52, 17] | |||||
} | |||||
] | |||||
}; | |||||
let more_line_data = { | |||||
0: { | |||||
values: [25, 40, 30, 35, 48, 52, 17] | |||||
}, | |||||
1: { | |||||
values: [35, 48, 40, 30, 52, 17, 25] | |||||
}, | |||||
2: { | |||||
values: [5, 48, 52, 17, 25, 40, 30] | |||||
}, | |||||
3: { | |||||
values: [25, 40, 30, 35, 48, 52, 17] | |||||
}, | |||||
4: { | |||||
values: [35, 48, 40, 30, 52, 17, 72] | |||||
}, | |||||
5: { | |||||
values: [5, 48, 52, 17, 72, 40, 30] | |||||
}, | |||||
6: { | |||||
values: [72, 40, 30, 35, 48, 52, 17] | |||||
}, | |||||
7: { | |||||
values: [35, 48, 40, 30, 52, 17, 25] | |||||
}, | |||||
8: { | |||||
values: [5, 48, 52, 17, 25, 40, 30] | |||||
}, | |||||
9: { | |||||
values: [25, 40, 30, 35, 48, 52, 17] | |||||
}, | |||||
10: { | |||||
values: [35, 48, 40, 30, 52, 17, 25] | |||||
}, | |||||
11: { | |||||
values: [5, 48, 52, 17, 25, 40, 30] | |||||
} | |||||
} | |||||
let bar_chart = new FrappeChart ({ | |||||
parent: "#charts-1", | |||||
data: bar_data, | |||||
type: 'bar', | |||||
height: 140, | |||||
is_navigable: 1 | |||||
}) | |||||
let line_chart = new FrappeChart ({ | |||||
parent: "#charts-2", | |||||
data: line_data, | |||||
type: 'line', | |||||
height: 140, | |||||
is_navigable: 0 | |||||
}) | |||||
bar_chart.parent.addEventListener('data-select', (e) => { | |||||
line_chart.update_values([more_line_data[e.index]]); | |||||
}); | |||||
console.log("chart", bar_chart); |
@@ -0,0 +1,193 @@ | |||||
<!DOCTYPE html> | |||||
<html> | |||||
<head> | |||||
<meta charset="UTF-8"> | |||||
<title>Frappe Charts</title> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||||
<meta name="keywords" content="open source javascript js charts library svg zero-dependency interactive data visualization beautiful drag resize"> | |||||
<meta name="description" content="A simple, responsive, modern charts library for the web."> | |||||
<link rel="stylesheet" type="text/css" href="assets/css/normalize.css" media="screen"> | |||||
<!--<link href='https://fonts.googleapis.com/css?family=Roboto:400,700' rel='stylesheet' type='text/css'>--> | |||||
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css" media="screen"> | |||||
<link rel="stylesheet" type="text/css" href="assets/css/frappe_theme.css" media="screen"> | |||||
<link rel="stylesheet" type="text/css" href="assets/css/index.css" media="screen"> | |||||
<link rel="stylesheet" type="text/css" href="assets/css/default.css" media="screen"> | |||||
<link rel="stylesheet" type="text/css" href="../src/charts.css" media="screen"> | |||||
<script src="assets/js/highlight.pack.js"></script> | |||||
<script>hljs.initHighlightingOnLoad();</script> | |||||
<!--<link rel="shortcut icon" href="https://frappe.github.io/frappe/assets/img/favicon.png" type="image/x-icon"> | |||||
<link rel="icon" href="https://frappe.github.io/frappe/assets/img/favicon.png" type="image/x-icon">--> | |||||
</head> | |||||
<body> | |||||
<div class="container"> | |||||
<div class="row hero" style="padding-top: 30px; padding-bottom: 0px;"> | |||||
<div class="jumbotron" style="background: transparent;"> | |||||
<h1>Frappé Charts</h1> | |||||
<p class="mt-2">GitHub-style simple and modern charts for the web</p> | |||||
<p class="mt-2">with zero dependencies.</p> | |||||
</div> | |||||
<div class="col-sm-10 push-sm-1 later" style="font-size: 14px;"> | |||||
<div id="charts-1" class="chart-container"></div> | |||||
<p class="mt-1"><strong>Try it!</strong> Use arrow keys to navigate data points</p> | |||||
</div> | |||||
<div class="col-sm-10 push-sm-1 later" style="font-size: 14px;"> | |||||
<div id="charts-2" class="chart-container"></div> | |||||
</div> | |||||
</div> | |||||
<div class="group later"> | |||||
<div class="row section"> | |||||
<div class="col-sm-10 push-sm-1"> | |||||
<div class="dashboard-section"> | |||||
<h1>Installation</h1> | |||||
<pre> | |||||
<code class="hljs">npm install frappe-charts</code> | |||||
</pre> | |||||
<svg class="chart" width="720" height="140"> | |||||
<rect class="bar mini fill green" x="449.99999999999994" y="15.32519666666667" width="23.076923076923077" height="10"> | |||||
</rect> | |||||
<!--<animate | |||||
attributeName="height" | |||||
from="10" | |||||
to="110" | |||||
begin="0.2s" | |||||
dur="2s" | |||||
values="10;110" | |||||
keySplines="0 0 1 1" | |||||
keyTimes=" | |||||
0;1" | |||||
calcMode="spline" | |||||
/>--> | |||||
<!--<animate | |||||
attributeName="height" | |||||
from="10" | |||||
to="110" | |||||
begin="0s" | |||||
dur="1s" | |||||
values="10;110" | |||||
keySplines="0.1 0.8 0.2 1" | |||||
keyTimes=" | |||||
0;1" | |||||
calcMode="spline" | |||||
/> | |||||
<animate | |||||
attributeName="y" | |||||
from="15" | |||||
to="50" | |||||
begin="0s" | |||||
dur="1s" | |||||
values="15;50" | |||||
keySplines="0.1 0.8 0.2 1" | |||||
keyTimes=" | |||||
0;1" | |||||
calcMode="spline" | |||||
/>--> | |||||
<path class="stroke green" | |||||
d="M0,100L54.55,100L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,100L381.82,100L436.36,95.69L490.91,15.33L545.45,80.53L600,100"> | |||||
<animate | |||||
attributeName="d" | |||||
from="M0,100L54.55,100L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,100L381.82,100L436.36,95.69L490.91,15.33L545.45,80.53L600,100" | |||||
to="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L222.73,96L267.27,32L381.82,45L436.36,95.69L490.91,65.33L545.45,80.53L600,100" | |||||
begin="1s" | |||||
dur="1s" | |||||
values="M0,100L54.55,100L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,100L381.82,100L436.36,95.69L490.91,15.33L545.45,80.53L600,100; | |||||
M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L222.73,96L267.27,32L381.82,45L436.36,95.69L490.91,65.33L545.45,80.53L600,100" | |||||
keySplines="0.1 0.8 0.2 1" | |||||
keyTimes=" | |||||
0;1" | |||||
calcMode="spline" | |||||
repeatCount="indefinite" | |||||
/> | |||||
</path> | |||||
<!--<path class="stroke green" | |||||
d="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20"> | |||||
<animate | |||||
attributeName="d" | |||||
from="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20" | |||||
to="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20L560,80L600,50" | |||||
begin="0s" | |||||
dur="6s" | |||||
values="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20; | |||||
M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20L560,80L600,50" | |||||
keySplines="0.1 0.8 0.2 1" | |||||
keyTimes=" | |||||
0;1" | |||||
calcMode="spline" | |||||
repeatCount="indefinite" | |||||
/> | |||||
</path>--> | |||||
<!--<path class="stroke green" d="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L600,100"></path>--> | |||||
</svg> | |||||
<!--<svg class="chart" width="720" height="140"> | |||||
<path class="stroke green" d="M0,100L54.55,35L109.09,100L163.64,89.75L218.18,86.18L272.73,96L327.27,32L381.82,45L436.36,95.69L490.91,65.33L500.45,80.53L530,20L560,80L600,50"></path> | |||||
</svg>--> | |||||
</div> | |||||
</div> | |||||
<div class="col-sm-10 push-sm-1"> | |||||
<div class="dashboard-section"> | |||||
<h1>Usage</h1> | |||||
<h6 style="margin:2em 0 0 0"> | |||||
Include it in your html | |||||
</h6> | |||||
<pre> | |||||
<code class="hljs html"><script src="frappe-charts.min.js" /></code> | |||||
</pre> | |||||
<h6 style="margin:0">Create an svg element</h6> | |||||
<pre> | |||||
<code class="hljs html"><svg id="chart"></svg></code> | |||||
</pre> | |||||
<h6 style="margin:0">Initiliaze a new Chart object</h6> | |||||
<pre> | |||||
<code class="hljs javascript">var tasks = [ | |||||
{ | |||||
id: 'Task 1', | |||||
name: 'Redesign website', | |||||
start: '2016-12-28', | |||||
end: '2016-12-31', | |||||
progress: 20, | |||||
dependencies: 'Task 2, Task 3' | |||||
}, | |||||
... | |||||
] | |||||
var chart = new Chart; | |||||
</code> | |||||
</pre> | |||||
</div> | |||||
</div> | |||||
<div class="col-sm-10 push-sm-1"> | |||||
<div class="dashboard-section"> | |||||
<h1>Examples</h1> | |||||
<!-- Closing --> | |||||
<div class="text-center" style="margin-top: 70px"> | |||||
<a href=""><button class="large blue button">Download</button></a> | |||||
<p class="mt-2"><a href="https://github.com/frappe" target="_blank">View on GitHub</a></p> | |||||
<p>License: MIT</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<script src="../src/charts.js"></script> | |||||
<script src="assets/js/index.js"></script> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,10 @@ | |||||
{ | |||||
"labels": ["Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"], | |||||
"datasets": [{ | |||||
"color": "green", | |||||
"values": [0, 0, 0, 61500, 82936.88, 24010, 0, 0, 25840, 508048.82, 116820, 0], | |||||
"formatted": ["₹ 0.00", "₹ 0.00", "₹ 0.00", "₹ 61,500.00", "₹ 82,936.88", "₹ 24,010.00", "₹ 0.00", "₹ 0.00", "₹ 25,840.00", "₹ 5,08,048.82", "₹ 1,16,820.00", "₹ 0.00"], | |||||
"y_tops": [100, 100, 100, 89.75, 86.17718666666667, 95.99833333333333, 100, 100, 95.69333333333333, 15.32519666666667, 80.53, 100], | |||||
"data_units": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}] | |||||
}] | |||||
} |
@@ -0,0 +1,272 @@ | |||||
/* graphs */ | |||||
.graph-container .graph-focus-margin { | |||||
margin: 0px 5%; | |||||
} | |||||
.graph-container .graphics { | |||||
margin-top: 10px; | |||||
padding-top: 10px; | |||||
padding-bottom: 10px; | |||||
position: relative; | |||||
} | |||||
.graph-container .graph-stats-group { | |||||
display: flex; | |||||
justify-content: space-around; | |||||
flex: 1; | |||||
} | |||||
.graph-container .graph-stats-container { | |||||
display: flex; | |||||
justify-content: space-around; | |||||
padding-top: 10px; | |||||
} | |||||
.graph-container .graph-stats-container .stats { | |||||
padding-bottom: 15px; | |||||
} | |||||
.graph-container .graph-stats-container .stats-title { | |||||
color: #8D99A6; | |||||
} | |||||
.graph-container .graph-stats-container .stats-value { | |||||
font-size: 20px; | |||||
font-weight: 300; | |||||
} | |||||
.graph-container .graph-stats-container .stats-description { | |||||
font-size: 12px; | |||||
color: #8D99A6; | |||||
} | |||||
.graph-container .graph-stats-container .graph-data .stats-value { | |||||
color: #98d85b; | |||||
} | |||||
.graph-container .axis, | |||||
.graph-container .chart-label { | |||||
font-size: 10px; | |||||
fill: #959ba1; | |||||
} | |||||
.graph-container .axis line, | |||||
.graph-container .chart-label line { | |||||
stroke: rgba(27, 31, 35, 0.1); | |||||
} | |||||
.graph-container .percentage-graph .progress { | |||||
margin-bottom: 0px; | |||||
} | |||||
.graph-container .data-points circle { | |||||
stroke: #fff; | |||||
stroke-width: 2; | |||||
} | |||||
.graph-container .data-points path { | |||||
fill: none; | |||||
stroke-opacity: 1; | |||||
stroke-width: 2px; | |||||
} | |||||
.graph-container line.dashed { | |||||
stroke-dasharray: 5,3; | |||||
} | |||||
.graph-container .tick.x-axis-label { | |||||
display: block; | |||||
} | |||||
.graph-container .tick .specific-value { | |||||
text-anchor: start; | |||||
} | |||||
.graph-container .tick .y-value-text { | |||||
text-anchor: end; | |||||
} | |||||
.graph-container .tick .x-value-text { | |||||
text-anchor: middle; | |||||
} | |||||
.graph-svg-tip { | |||||
position: absolute; | |||||
z-index: 99999; | |||||
padding: 10px; | |||||
font-size: 12px; | |||||
color: #959da5; | |||||
text-align: center; | |||||
background: rgba(0, 0, 0, 0.8); | |||||
border-radius: 3px; | |||||
} | |||||
.graph-svg-tip.comparison { | |||||
padding: 0; | |||||
text-align: left; | |||||
pointer-events: none; | |||||
} | |||||
.graph-svg-tip.comparison .title { | |||||
display: block; | |||||
padding: 10px; | |||||
margin: 0; | |||||
font-weight: 600; | |||||
line-height: 1; | |||||
pointer-events: none; | |||||
} | |||||
.graph-svg-tip.comparison ul { | |||||
margin: 0; | |||||
white-space: nowrap; | |||||
list-style: none; | |||||
} | |||||
.graph-svg-tip.comparison li { | |||||
display: inline-block; | |||||
padding: 5px 10px; | |||||
} | |||||
.graph-svg-tip ul, | |||||
.graph-svg-tip ol { | |||||
padding-left: 0; | |||||
display: flex; | |||||
} | |||||
.graph-svg-tip ul.data-point-list li { | |||||
min-width: 90px; | |||||
flex: 1; | |||||
} | |||||
.graph-svg-tip strong { | |||||
color: #dfe2e5; | |||||
} | |||||
.graph-svg-tip .svg-pointer { | |||||
position: absolute; | |||||
bottom: -10px; | |||||
left: 50%; | |||||
width: 5px; | |||||
height: 5px; | |||||
margin: 0 0 0 -5px; | |||||
content: " "; | |||||
border: 5px solid transparent; | |||||
border-top-color: rgba(0, 0, 0, 0.8); | |||||
} | |||||
.stroke.grey { | |||||
stroke: #F0F4F7; | |||||
} | |||||
.stroke.blue { | |||||
stroke: #5e64ff; | |||||
} | |||||
.stroke.red { | |||||
stroke: #ff5858; | |||||
} | |||||
.stroke.light-green { | |||||
stroke: #98d85b; | |||||
} | |||||
.stroke.green { | |||||
stroke: #28a745; | |||||
} | |||||
.stroke.orange { | |||||
stroke: #ffa00a; | |||||
} | |||||
.stroke.purple { | |||||
stroke: #743ee2; | |||||
} | |||||
.stroke.darkgrey { | |||||
stroke: #b8c2cc; | |||||
} | |||||
.stroke.black { | |||||
stroke: #36414C; | |||||
} | |||||
.stroke.yellow { | |||||
stroke: #FEEF72; | |||||
} | |||||
.stroke.light-blue { | |||||
stroke: #7CD6FD; | |||||
} | |||||
.stroke.lightblue { | |||||
stroke: #7CD6FD; | |||||
} | |||||
.fill.grey { | |||||
fill: #F0F4F7; | |||||
} | |||||
.fill.blue { | |||||
fill: #5e64ff; | |||||
} | |||||
.fill.red { | |||||
fill: #ff5858; | |||||
} | |||||
.fill.light-green { | |||||
fill: #98d85b; | |||||
} | |||||
.fill.green { | |||||
fill: #28a745; | |||||
} | |||||
.fill.orange { | |||||
fill: #ffa00a; | |||||
} | |||||
.fill.purple { | |||||
fill: #743ee2; | |||||
} | |||||
.fill.darkgrey { | |||||
fill: #b8c2cc; | |||||
} | |||||
.fill.black { | |||||
fill: #36414C; | |||||
} | |||||
.fill.yellow { | |||||
fill: #FEEF72; | |||||
} | |||||
.fill.light-blue { | |||||
fill: #7CD6FD; | |||||
} | |||||
.fill.lightblue { | |||||
fill: #7CD6FD; | |||||
} | |||||
.background.grey { | |||||
background: #F0F4F7; | |||||
} | |||||
.background.blue { | |||||
background: #5e64ff; | |||||
} | |||||
.background.red { | |||||
background: #ff5858; | |||||
} | |||||
.background.light-green { | |||||
background: #98d85b; | |||||
} | |||||
.background.green { | |||||
background: #28a745; | |||||
} | |||||
.background.orange { | |||||
background: #ffa00a; | |||||
} | |||||
.background.purple { | |||||
background: #743ee2; | |||||
} | |||||
.background.darkgrey { | |||||
background: #b8c2cc; | |||||
} | |||||
.background.black { | |||||
background: #36414C; | |||||
} | |||||
.background.yellow { | |||||
background: #FEEF72; | |||||
} | |||||
.background.light-blue { | |||||
background: #7CD6FD; | |||||
} | |||||
.background.lightblue { | |||||
background: #7CD6FD; | |||||
} | |||||
.border-top.grey { | |||||
border-top: 3px solid #F0F4F7; | |||||
} | |||||
.border-top.blue { | |||||
border-top: 3px solid #5e64ff; | |||||
} | |||||
.border-top.red { | |||||
border-top: 3px solid #ff5858; | |||||
} | |||||
.border-top.light-green { | |||||
border-top: 3px solid #98d85b; | |||||
} | |||||
.border-top.green { | |||||
border-top: 3px solid #28a745; | |||||
} | |||||
.border-top.orange { | |||||
border-top: 3px solid #ffa00a; | |||||
} | |||||
.border-top.purple { | |||||
border-top: 3px solid #743ee2; | |||||
} | |||||
.border-top.darkgrey { | |||||
border-top: 3px solid #b8c2cc; | |||||
} | |||||
.border-top.black { | |||||
border-top: 3px solid #36414C; | |||||
} | |||||
.border-top.yellow { | |||||
border-top: 3px solid #FEEF72; | |||||
} | |||||
.border-top.light-blue { | |||||
border-top: 3px solid #7CD6FD; | |||||
} | |||||
.border-top.lightblue { | |||||
border-top: 3px solid #7CD6FD; | |||||
} |