From 90730d5d8e7789823b4a20888efe64b258a443ae Mon Sep 17 00:00:00 2001 From: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:48:58 -0500 Subject: [PATCH 1/2] feat(range): add classes to the range when the value is at the min or max --- core/src/components/range/range.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/components/range/range.tsx b/core/src/components/range/range.tsx index d39e9732e82..cc33e101440 100644 --- a/core/src/components/range/range.tsx +++ b/core/src/components/range/range.tsx @@ -883,7 +883,7 @@ export class Range implements ComponentInterface { } render() { - const { disabled, el, hasLabel, rangeId, pin, pressedKnob, labelPlacement, label } = this; + const { disabled, el, hasLabel, rangeId, pin, pressedKnob, labelPlacement, label, min, max, dualKnobs } = this; const inItem = hostContext('ion-item', el); @@ -906,6 +906,13 @@ export class Range implements ComponentInterface { const mode = getIonMode(this); + /** + * Determine if any knob is at the min or max value to + * apply Host classes for styling. + */ + const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min; + const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max; + renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled); return ( @@ -922,6 +929,8 @@ export class Range implements ComponentInterface { [`range-label-placement-${labelPlacement}`]: true, 'range-item-start-adjustment': needsStartAdjustment, 'range-item-end-adjustment': needsEndAdjustment, + 'range-value-min': valueAtMin, + 'range-value-max': valueAtMax, })} >