Skip to content

Commit 12188bd

Browse files
nakul-pymfisher87
andauthored
Color ramp selector bugfixes: gradient cut off, missing label (#950)
Co-authored-by: Nakul Verma <[email protected]> Co-authored-by: Matt Fisher <[email protected]>
1 parent 3378266 commit 12188bd

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

packages/base/src/dialogs/symbology/components/color_ramp/CanvasSelectComponent.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ const CanvasSelectComponent: React.FC<ICanvasSelectComponentProps> = ({
2121
const containerRef = useRef<HTMLDivElement>(null);
2222
const [isOpen, setIsOpen] = useState(false);
2323
const [colorMaps, setColorMaps] = useState<IColorMap[]>([]);
24+
const canvasWidth = 512;
25+
const canvasHeight = 30;
2426

2527
useColorMapList(setColorMaps);
2628

@@ -64,13 +66,16 @@ const CanvasSelectComponent: React.FC<ICanvasSelectComponentProps> = ({
6466

6567
const ramp = colorMaps.filter(c => c.name === rampName);
6668

69+
canvas.width = canvasWidth;
70+
canvas.height = canvasHeight;
71+
6772
for (let i = 0; i <= 255; i++) {
6873
ctx.beginPath();
6974

7075
const color = ramp[0].colors[i];
7176
ctx.fillStyle = color;
7277

73-
ctx.fillRect(i * 2, 0, 2, 50);
78+
ctx.fillRect(i * 2, 0, 2, canvasHeight);
7479
}
7580
canvas.style.visibility = 'initial';
7681
};
@@ -89,11 +94,15 @@ const CanvasSelectComponent: React.FC<ICanvasSelectComponentProps> = ({
8994
onClick={toggleDropdown}
9095
className="jp-Dialog-button jp-gis-canvas-button"
9196
>
92-
<canvas
93-
id="cv"
94-
className="jp-gis-color-canvas-display"
95-
height="30"
96-
></canvas>
97+
<div className="jp-gis-color-ramp-entry jp-gis-selected-entry">
98+
<span className="jp-gis-color-label">{selectedRamp}</span>
99+
<canvas
100+
id="cv"
101+
className="jp-gis-color-canvas-display"
102+
width={canvasWidth}
103+
height={canvasHeight}
104+
></canvas>
105+
</div>
97106
</Button>
98107
<div
99108
className={`jp-gis-color-ramp-dropdown ${isOpen ? 'jp-gis-open' : ''}`}

packages/base/src/dialogs/symbology/components/color_ramp/ColorRampEntry.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,17 @@ const ColorRampEntry: React.FC<IColorRampEntryProps> = ({
1313
colorMap,
1414
onClick,
1515
}) => {
16+
const canvasWidth = 512;
1617
const canvasHeight = 30;
1718

1819
useEffect(() => {
1920
const canvas = document.getElementById(`cv-${index}`) as HTMLCanvasElement;
2021
if (!canvas) {
2122
return;
2223
}
24+
canvas.width = canvasWidth;
25+
canvas.height = canvasHeight;
26+
2327
const ctx = canvas.getContext('2d');
2428

2529
if (!ctx) {
@@ -45,6 +49,7 @@ const ColorRampEntry: React.FC<IColorRampEntryProps> = ({
4549
<span className="jp-gis-color-label">{colorMap.name}</span>
4650
<canvas
4751
id={`cv-${index}`}
52+
width={canvasWidth}
4853
height={canvasHeight}
4954
className="jp-gis-color-canvas"
5055
></canvas>

packages/base/style/symbologyDialog.css

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ select option {
158158
border: var(--jp-border-width) solid var(--jp-input-border-color);
159159
border-radius: 0;
160160
outline: none;
161-
appearance: none;
162161
-webkit-appearance: none;
163162
-moz-appearance: none;
163+
appearance: none;
164164
}
165165

166166
.jp-gis-open {
@@ -172,20 +172,25 @@ select option {
172172
align-items: center;
173173
font-size: var(--jp-ui-font-size2);
174174
color: var(--jp-ui-font-color0);
175-
appearance: none;
176175
text-transform: capitalize;
177176
cursor: pointer;
177+
position: relative;
178178
-webkit-appearance: none;
179179
-moz-appearance: none;
180+
appearance: none;
180181
}
181182

182183
.jp-gis-color-label {
183184
color: white;
185+
padding-left: 10px;
184186
position: absolute;
187+
text-shadow: 0px 0px 4px black;
188+
185189
transition: transform 0.3s ease;
190+
transform-origin: left bottom;
186191
}
187192

188-
.jp-gis-color-ramp-entry:hover .jp-gis-color-label {
193+
.jp-gis-color-ramp-entry:not(.jp-gis-selected-entry):hover .jp-gis-color-label {
189194
transform: scale(1.2);
190195
}
191196

@@ -215,8 +220,11 @@ select option {
215220
}
216221

217222
#jp-gis-canvas-button.jp-gis-canvas-button {
218-
visibility: hidden;
219223
margin: 0;
220224
padding: 0 1px 0 0;
221225
width: 100%;
222226
}
227+
228+
.jp-gis-selected-entry {
229+
width: 100%;
230+
}

0 commit comments

Comments
 (0)