From ffcecd411713ae8a2a729b09072ebf890a987ffe Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Wed, 31 Oct 2018 06:03:37 -0400 Subject: [PATCH] Use paper_bgcolor for parcats text-shadow instead of hardcoding to white This keeps category labels from becomming blurred when text is white on a black background --- src/traces/parcats/parcats.js | 10 ++++++---- test/image/baselines/parcats_dark.png | Bin 0 -> 29236 bytes test/image/mocks/parcats_dark.json | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 test/image/baselines/parcats_dark.png create mode 100644 test/image/mocks/parcats_dark.json diff --git a/src/traces/parcats/parcats.js b/src/traces/parcats/parcats.js index 41b49adba10..538cd797f66 100644 --- a/src/traces/parcats/parcats.js +++ b/src/traces/parcats/parcats.js @@ -230,6 +230,8 @@ function performPlot(parcatsModels, graphDiv, layout, svg) { .attr('class', 'catlabel') .attr('pointer-events', 'none'); + var paperColor = graphDiv._fullLayout.paper_bgcolor; + // Update category label categorySelection.select('text.catlabel') .attr('text-anchor', @@ -245,10 +247,10 @@ function performPlot(parcatsModels, graphDiv, layout, svg) { .attr('alignment-baseline', 'middle') .style('text-shadow', - 'rgb(255, 255, 255) -1px 1px 2px, ' + - 'rgb(255, 255, 255) 1px 1px 2px, ' + - 'rgb(255, 255, 255) 1px -1px 2px, ' + - 'rgb(255, 255, 255) -1px -1px 2px') + paperColor + ' -1px 1px 2px, ' + + paperColor + ' 1px 1px 2px, ' + + paperColor + ' 1px -1px 2px, ' + + paperColor + ' -1px -1px 2px') .style('fill', 'rgb(0, 0, 0)') .attr('x', function(d) { diff --git a/test/image/baselines/parcats_dark.png b/test/image/baselines/parcats_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..167fd3428d8512ad551d266069c48578d98fe829 GIT binary patch literal 29236 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 literal 0 HcmV?d00001 diff --git a/test/image/mocks/parcats_dark.json b/test/image/mocks/parcats_dark.json new file mode 100644 index 00000000000..1a6c50b8f84 --- /dev/null +++ b/test/image/mocks/parcats_dark.json @@ -0,0 +1,18 @@ +{ + "data": [ + {"type": "parcats", + "domain": {"x": [0.125, 0.625],"y": [0.25, 0.75]}, + "dimensions":[ + {"label": "One", "values": [1, 1, 2, 1, 2, 1, 1, 2, 1]}, + {"label": "Two", "values": ["A", "B", "A", "B", "C", "C", "A", "B", "C"]}, + {"label": "Three", "values": [11, 11, 11, 11, 11, 11, 11, 11, 11]}]} + ], + "layout": { + "paper_bgcolor": "black", + "font": {"color": "white"}, + "height": 602, + "width": 592, + "margin": { + "l": 40, "r": 40, "t": 50, "b": 40 + }} +}