| |
| /******************** |
| * HTML CSS |
| */ |
| |
| |
| .chartWrap { |
| margin: 0; |
| padding: 0; |
| overflow: hidden; |
| } |
| |
| /******************** |
| Box shadow and border radius styling |
| */ |
| .nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip { |
| -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2); |
| -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2); |
| box-shadow: 0 5px 10px rgba(0,0,0,.2); |
| |
| -webkit-border-radius: 6px; |
| -moz-border-radius: 6px; |
| border-radius: 6px; |
| } |
| |
| /******************** |
| * TOOLTIP CSS |
| */ |
| |
| .nvtooltip { |
| position: absolute; |
| background-color: rgba(255,255,255,1.0); |
| padding: 1px; |
| border: 1px solid rgba(0,0,0,.2); |
| z-index: 10000; |
| |
| font-family: Arial; |
| font-size: 13px; |
| text-align: left; |
| pointer-events: none; |
| |
| white-space: nowrap; |
| |
| -webkit-touch-callout: none; |
| -webkit-user-select: none; |
| -khtml-user-select: none; |
| -moz-user-select: none; |
| -ms-user-select: none; |
| user-select: none; |
| } |
| |
| /*Give tooltips that old fade in transition by |
| putting a "with-transitions" class on the container div. |
| */ |
| .nvtooltip.with-transitions, .with-transitions .nvtooltip { |
| transition: opacity 250ms linear; |
| -moz-transition: opacity 250ms linear; |
| -webkit-transition: opacity 250ms linear; |
| |
| transition-delay: 250ms; |
| -moz-transition-delay: 250ms; |
| -webkit-transition-delay: 250ms; |
| } |
| |
| .nvtooltip.x-nvtooltip, |
| .nvtooltip.y-nvtooltip { |
| padding: 8px; |
| } |
| |
| .nvtooltip h3 { |
| margin: 0; |
| padding: 4px 14px; |
| line-height: 18px; |
| font-weight: normal; |
| background-color: rgba(247,247,247,0.75); |
| text-align: center; |
| |
| border-bottom: 1px solid #ebebeb; |
| |
| -webkit-border-radius: 5px 5px 0 0; |
| -moz-border-radius: 5px 5px 0 0; |
| border-radius: 5px 5px 0 0; |
| } |
| |
| .nvtooltip p { |
| margin: 0; |
| padding: 5px 14px; |
| text-align: center; |
| } |
| |
| .nvtooltip span { |
| display: inline-block; |
| margin: 2px 0; |
| } |
| |
| .nvtooltip table { |
| margin: 6px; |
| border-spacing:0; |
| } |
| |
| |
| .nvtooltip table td { |
| padding: 2px 9px 2px 0; |
| vertical-align: middle; |
| } |
| |
| .nvtooltip table td.key { |
| font-weight:normal; |
| } |
| .nvtooltip table td.value { |
| text-align: right; |
| font-weight: bold; |
| } |
| |
| .nvtooltip table tr.highlight td { |
| padding: 1px 9px 1px 0; |
| border-bottom-style: solid; |
| border-bottom-width: 1px; |
| border-top-style: solid; |
| border-top-width: 1px; |
| } |
| |
| .nvtooltip table td.legend-color-guide div { |
| width: 8px; |
| height: 8px; |
| vertical-align: middle; |
| } |
| |
| .nvtooltip .footer { |
| padding: 3px; |
| text-align: center; |
| } |
| |
| |
| .nvtooltip-pending-removal { |
| position: absolute; |
| pointer-events: none; |
| } |
| |
| |
| /******************** |
| * SVG CSS |
| */ |
| |
| |
| svg { |
| -webkit-touch-callout: none; |
| -webkit-user-select: none; |
| -khtml-user-select: none; |
| -moz-user-select: none; |
| -ms-user-select: none; |
| user-select: none; |
| /* Trying to get SVG to act like a greedy block in all browsers */ |
| display: block; |
| width:100%; |
| height:100%; |
| } |
| |
| |
| svg text { |
| font: normal 12px Arial; |
| } |
| |
| svg .title { |
| font: bold 14px Arial; |
| } |
| |
| .nvd3 .nv-background { |
| fill: white; |
| fill-opacity: 0; |
| /* |
| pointer-events: none; |
| */ |
| } |
| |
| .nvd3.nv-noData { |
| font-size: 18px; |
| font-weight: bold; |
| } |
| |
| |
| /********** |
| * Brush |
| */ |
| |
| .nv-brush .extent { |
| fill-opacity: .125; |
| shape-rendering: crispEdges; |
| } |
| |
| |
| |
| /********** |
| * Legend |
| */ |
| |
| .nvd3 .nv-legend .nv-series { |
| cursor: pointer; |
| } |
| |
| .nvd3 .nv-legend .disabled circle { |
| fill-opacity: 0; |
| } |
| |
| |
| |
| /********** |
| * Axes |
| */ |
| .nvd3 .nv-axis { |
| pointer-events:none; |
| } |
| |
| .nvd3 .nv-axis path { |
| fill: none; |
| stroke: #000; |
| stroke-opacity: .75; |
| shape-rendering: crispEdges; |
| } |
| |
| .nvd3 .nv-axis path.domain { |
| stroke-opacity: .75; |
| } |
| |
| .nvd3 .nv-axis.nv-x path.domain { |
| stroke-opacity: 0; |
| } |
| |
| .nvd3 .nv-axis line { |
| fill: none; |
| stroke: #e5e5e5; |
| shape-rendering: crispEdges; |
| } |
| |
| .nvd3 .nv-axis .zero line, |
| /*this selector may not be necessary*/ .nvd3 .nv-axis line.zero { |
| stroke-opacity: .75; |
| } |
| |
| .nvd3 .nv-axis .nv-axisMaxMin text { |
| font-weight: bold; |
| } |
| |
| .nvd3 .x .nv-axis .nv-axisMaxMin text, |
| .nvd3 .x2 .nv-axis .nv-axisMaxMin text, |
| .nvd3 .x3 .nv-axis .nv-axisMaxMin text { |
| text-anchor: middle |
| } |
| |
| |
| |
| /********** |
| * Brush |
| */ |
| |
| .nv-brush .resize path { |
| fill: #eee; |
| stroke: #666; |
| } |
| |
| |
| |
| /********** |
| * Bars |
| */ |
| |
| .nvd3 .nv-bars .negative rect { |
| zfill: brown; |
| } |
| |
| .nvd3 .nv-bars rect { |
| zfill: steelblue; |
| fill-opacity: .75; |
| |
| transition: fill-opacity 250ms linear; |
| -moz-transition: fill-opacity 250ms linear; |
| -webkit-transition: fill-opacity 250ms linear; |
| } |
| |
| .nvd3 .nv-bars rect.hover { |
| fill-opacity: 1; |
| } |
| |
| .nvd3 .nv-bars .hover rect { |
| fill: lightblue; |
| } |
| |
| .nvd3 .nv-bars text { |
| fill: rgba(0,0,0,0); |
| } |
| |
| .nvd3 .nv-bars .hover text { |
| fill: rgba(0,0,0,1); |
| } |
| |
| |
| /********** |
| * Bars |
| */ |
| |
| .nvd3 .nv-multibar .nv-groups rect, |
| .nvd3 .nv-multibarHorizontal .nv-groups rect, |
| .nvd3 .nv-discretebar .nv-groups rect { |
| stroke-opacity: 0; |
| |
| transition: fill-opacity 250ms linear; |
| -moz-transition: fill-opacity 250ms linear; |
| -webkit-transition: fill-opacity 250ms linear; |
| } |
| |
| .nvd3 .nv-multibar .nv-groups rect:hover, |
| .nvd3 .nv-multibarHorizontal .nv-groups rect:hover, |
| .nvd3 .nv-discretebar .nv-groups rect:hover { |
| fill-opacity: 1; |
| } |
| |
| .nvd3 .nv-discretebar .nv-groups text, |
| .nvd3 .nv-multibarHorizontal .nv-groups text { |
| font-weight: bold; |
| fill: rgba(0,0,0,1); |
| stroke: rgba(0,0,0,0); |
| } |
| |
| /*********** |
| * Pie Chart |
| */ |
| |
| .nvd3.nv-pie path { |
| stroke-opacity: 0; |
| transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear; |
| -moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear; |
| -webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear; |
| |
| } |
| |
| .nvd3.nv-pie .nv-slice text { |
| stroke: #000; |
| stroke-width: 0; |
| } |
| |
| .nvd3.nv-pie path { |
| stroke: #fff; |
| stroke-width: 1px; |
| stroke-opacity: 1; |
| } |
| |
| .nvd3.nv-pie .hover path { |
| fill-opacity: .7; |
| } |
| .nvd3.nv-pie .nv-label { |
| pointer-events: none; |
| } |
| .nvd3.nv-pie .nv-label rect { |
| fill-opacity: 0; |
| stroke-opacity: 0; |
| } |
| |
| /********** |
| * Lines |
| */ |
| |
| .nvd3 .nv-groups path.nv-line { |
| fill: none; |
| stroke-width: 1.5px; |
| /* |
| stroke-linecap: round; |
| shape-rendering: geometricPrecision; |
| |
| transition: stroke-width 250ms linear; |
| -moz-transition: stroke-width 250ms linear; |
| -webkit-transition: stroke-width 250ms linear; |
| |
| transition-delay: 250ms |
| -moz-transition-delay: 250ms; |
| -webkit-transition-delay: 250ms; |
| */ |
| } |
| |
| .nvd3 .nv-groups path.nv-line.nv-thin-line { |
| stroke-width: 1px; |
| } |
| |
| |
| .nvd3 .nv-groups path.nv-area { |
| stroke: none; |
| /* |
| stroke-linecap: round; |
| shape-rendering: geometricPrecision; |
| |
| stroke-width: 2.5px; |
| transition: stroke-width 250ms linear; |
| -moz-transition: stroke-width 250ms linear; |
| -webkit-transition: stroke-width 250ms linear; |
| |
| transition-delay: 250ms |
| -moz-transition-delay: 250ms; |
| -webkit-transition-delay: 250ms; |
| */ |
| } |
| |
| .nvd3 .nv-line.hover path { |
| stroke-width: 6px; |
| } |
| |
| /* |
| .nvd3.scatter .groups .point { |
| fill-opacity: 0.1; |
| stroke-opacity: 0.1; |
| } |
| */ |
| |
| .nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point { |
| fill-opacity: 0; |
| stroke-opacity: 0; |
| } |
| |
| .nvd3.nv-scatter.nv-single-point .nv-groups .nv-point { |
| fill-opacity: .5 !important; |
| stroke-opacity: .5 !important; |
| } |
| |
| |
| .with-transitions .nvd3 .nv-groups .nv-point { |
| transition: stroke-width 250ms linear, stroke-opacity 250ms linear; |
| -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear; |
| -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear; |
| |
| } |
| |
| .nvd3.nv-scatter .nv-groups .nv-point.hover, |
| .nvd3 .nv-groups .nv-point.hover { |
| stroke-width: 7px; |
| fill-opacity: .95 !important; |
| stroke-opacity: .95 !important; |
| } |
| |
| |
| .nvd3 .nv-point-paths path { |
| stroke: #aaa; |
| stroke-opacity: 0; |
| fill: #eee; |
| fill-opacity: 0; |
| } |
| |
| |
| |
| .nvd3 .nv-indexLine { |
| cursor: ew-resize; |
| } |
| |
| |
| /********** |
| * Distribution |
| */ |
| |
| .nvd3 .nv-distribution { |
| pointer-events: none; |
| } |
| |
| |
| |
| /********** |
| * Scatter |
| */ |
| |
| /* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere |
| .nvd3 .nv-groups .nv-point { |
| pointer-events: none; |
| } |
| */ |
| |
| .nvd3 .nv-groups .nv-point.hover { |
| stroke-width: 20px; |
| stroke-opacity: .5; |
| } |
| |
| .nvd3 .nv-scatter .nv-point.hover { |
| fill-opacity: 1; |
| } |
| |
| /* |
| .nv-group.hover .nv-point { |
| fill-opacity: 1; |
| } |
| */ |
| |
| |
| /********** |
| * Stacked Area |
| */ |
| |
| .nvd3.nv-stackedarea path.nv-area { |
| fill-opacity: .7; |
| /* |
| stroke-opacity: .65; |
| fill-opacity: 1; |
| */ |
| stroke-opacity: 0; |
| |
| transition: fill-opacity 250ms linear, stroke-opacity 250ms linear; |
| -moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear; |
| -webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear; |
| |
| /* |
| transition-delay: 500ms; |
| -moz-transition-delay: 500ms; |
| -webkit-transition-delay: 500ms; |
| */ |
| |
| } |
| |
| .nvd3.nv-stackedarea path.nv-area.hover { |
| fill-opacity: .9; |
| /* |
| stroke-opacity: .85; |
| */ |
| } |
| /* |
| .d3stackedarea .groups path { |
| stroke-opacity: 0; |
| } |
| */ |
| |
| |
| |
| .nvd3.nv-stackedarea .nv-groups .nv-point { |
| stroke-opacity: 0; |
| fill-opacity: 0; |
| } |
| |
| /* |
| .nvd3.nv-stackedarea .nv-groups .nv-point.hover { |
| stroke-width: 20px; |
| stroke-opacity: .75; |
| fill-opacity: 1; |
| }*/ |
| |
| |
| |
| /********** |
| * Line Plus Bar |
| */ |
| |
| .nvd3.nv-linePlusBar .nv-bar rect { |
| fill-opacity: .75; |
| } |
| |
| .nvd3.nv-linePlusBar .nv-bar rect:hover { |
| fill-opacity: 1; |
| } |
| |
| |
| /********** |
| * Bullet |
| */ |
| |
| .nvd3.nv-bullet { font: 10px sans-serif; } |
| .nvd3.nv-bullet .nv-measure { fill-opacity: .8; } |
| .nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; } |
| .nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; } |
| .nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; } |
| .nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; } |
| .nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; } |
| .nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; } |
| .nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; } |
| .nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; } |
| .nvd3.nv-bullet .nv-subtitle { fill: #999; } |
| |
| |
| .nvd3.nv-bullet .nv-range { |
| fill: #bababa; |
| fill-opacity: .4; |
| } |
| .nvd3.nv-bullet .nv-range:hover { |
| fill-opacity: .7; |
| } |
| |
| |
| |
| /********** |
| * Sparkline |
| */ |
| |
| .nvd3.nv-sparkline path { |
| fill: none; |
| } |
| |
| .nvd3.nv-sparklineplus g.nv-hoverValue { |
| pointer-events: none; |
| } |
| |
| .nvd3.nv-sparklineplus .nv-hoverValue line { |
| stroke: #333; |
| stroke-width: 1.5px; |
| } |
| |
| .nvd3.nv-sparklineplus, |
| .nvd3.nv-sparklineplus g { |
| pointer-events: all; |
| } |
| |
| .nvd3 .nv-hoverArea { |
| fill-opacity: 0; |
| stroke-opacity: 0; |
| } |
| |
| .nvd3.nv-sparklineplus .nv-xValue, |
| .nvd3.nv-sparklineplus .nv-yValue { |
| /* |
| stroke: #666; |
| */ |
| stroke-width: 0; |
| font-size: .9em; |
| font-weight: normal; |
| } |
| |
| .nvd3.nv-sparklineplus .nv-yValue { |
| stroke: #f66; |
| } |
| |
| .nvd3.nv-sparklineplus .nv-maxValue { |
| stroke: #2ca02c; |
| fill: #2ca02c; |
| } |
| |
| .nvd3.nv-sparklineplus .nv-minValue { |
| stroke: #d62728; |
| fill: #d62728; |
| } |
| |
| .nvd3.nv-sparklineplus .nv-currentValue { |
| /* |
| stroke: #444; |
| fill: #000; |
| */ |
| font-weight: bold; |
| font-size: 1.1em; |
| } |
| |
| /********** |
| * historical stock |
| */ |
| |
| .nvd3.nv-ohlcBar .nv-ticks .nv-tick { |
| stroke-width: 2px; |
| } |
| |
| .nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover { |
| stroke-width: 4px; |
| } |
| |
| .nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive { |
| stroke: #2ca02c; |
| } |
| |
| .nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative { |
| stroke: #d62728; |
| } |
| |
| .nvd3.nv-historicalStockChart .nv-axis .nv-axislabel { |
| font-weight: bold; |
| } |
| |
| .nvd3.nv-historicalStockChart .nv-dragTarget { |
| fill-opacity: 0; |
| stroke: none; |
| cursor: move; |
| } |
| |
| .nvd3 .nv-brush .extent { |
| /* |
| cursor: ew-resize !important; |
| */ |
| fill-opacity: 0 !important; |
| } |
| |
| .nvd3 .nv-brushBackground rect { |
| stroke: #000; |
| stroke-width: .4; |
| fill: #fff; |
| fill-opacity: .7; |
| } |
| |
| |
| |
| /********** |
| * Indented Tree |
| */ |
| |
| |
| /** |
| * TODO: the following 3 selectors are based on classes used in the example. I should either make them standard and leave them here, or move to a CSS file not included in the library |
| */ |
| .nvd3.nv-indentedtree .name { |
| margin-left: 5px; |
| } |
| |
| .nvd3.nv-indentedtree .clickable { |
| color: #08C; |
| cursor: pointer; |
| } |
| |
| .nvd3.nv-indentedtree span.clickable:hover { |
| color: #005580; |
| text-decoration: underline; |
| } |
| |
| |
| .nvd3.nv-indentedtree .nv-childrenCount { |
| display: inline-block; |
| margin-left: 5px; |
| } |
| |
| .nvd3.nv-indentedtree .nv-treeicon { |
| cursor: pointer; |
| /* |
| cursor: n-resize; |
| */ |
| } |
| |
| .nvd3.nv-indentedtree .nv-treeicon.nv-folded { |
| cursor: pointer; |
| /* |
| cursor: s-resize; |
| */ |
| } |
| |
| /********** |
| * Parallel Coordinates |
| */ |
| |
| .nvd3 .background path { |
| fill: none; |
| stroke: #ccc; |
| stroke-opacity: .4; |
| shape-rendering: crispEdges; |
| } |
| |
| .nvd3 .foreground path { |
| fill: none; |
| stroke: steelblue; |
| stroke-opacity: .7; |
| } |
| |
| .nvd3 .brush .extent { |
| fill-opacity: .3; |
| stroke: #fff; |
| shape-rendering: crispEdges; |
| } |
| |
| .nvd3 .axis line, .axis path { |
| fill: none; |
| stroke: #000; |
| shape-rendering: crispEdges; |
| } |
| |
| .nvd3 .axis text { |
| text-shadow: 0 1px 0 #fff; |
| } |
| |
| /**** |
| Interactive Layer |
| */ |
| .nvd3 .nv-interactiveGuideLine { |
| pointer-events:none; |
| } |
| .nvd3 line.nv-guideline { |
| stroke: #ccc; |
| } |