-
Notifications
You must be signed in to change notification settings - Fork 13.4k
feat(range): adding custom styling for ionic theme #29979
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 5 commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
7e0dd91
First commit
OS-pedrolourenco 4b36e73
Finishing range styling
OS-pedrolourenco c65e3c9
Fixing lint issue
OS-pedrolourenco 06408d8
CR
OS-pedrolourenco 3152425
Merge branch 'next' into ROU-11323
OS-pedrolourenco 6004d45
CR + QA
OS-pedrolourenco 4db25bf
Fixing lint issue
OS-pedrolourenco 5300f3b
Merge branch 'next' into ROU-11323
OS-pedrolourenco e55f83d
CR
OS-pedrolourenco c2aede0
Merge branch 'next' into ROU-11323
OS-pedrolourenco f27239a
Fixing one css issue caused by previous CR
OS-pedrolourenco 1a9493b
Fixing snapshot tests
OS-pedrolourenco b543e1f
Merge branch 'next' into ROU-11323
OS-pedrolourenco db3239a
Removing unnecessary import
OS-pedrolourenco a74024a
CR
OS-pedrolourenco eb17aa4
Merge branch 'next' into ROU-11323
OS-pedrolourenco 10f6745
Fix broken snapshot tests
OS-pedrolourenco 44b8f4b
Merge branch 'next' into ROU-11323
OS-pedrolourenco File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
brandyscarney marked this conversation as resolved.
Show resolved
Hide resolved
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,147 @@ | ||
| @import "./range.common"; | ||
| @import "./range.ionic.vars"; | ||
| @import "../../foundations/ionic.vars"; | ||
|
|
||
| // Ionic Range | ||
| // -------------------------------------------------- | ||
|
|
||
| :host { | ||
| --knob-border-radius: 50%; | ||
OS-pedrolourenco marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| --knob-background: #{$range-ion-knob-background-color}; | ||
| --knob-box-shadow: #{$range-ion-knob-box-shadow}; | ||
| --knob-size: #{$range-ion-knob-width}; | ||
| --knob-handle-size: #{$range-ion-knob-handle-width}; | ||
| --bar-height: #{$range-ion-bar-height}; | ||
| --bar-background: #{$range-ion-bar-background-color}; | ||
| --bar-background-active: #{ion-color(primary, base)}; | ||
| --bar-border-radius: #{$range-ion-bar-border-radius}; | ||
| --height: #{$range-ion-slider-height}; | ||
| } | ||
|
|
||
| :host(.range-item-start-adjustment) { | ||
| @include padding(null, null, null, $range-ion-item-padding-horizontal); | ||
| } | ||
|
|
||
| :host(.range-item-end-adjustment) { | ||
| @include padding(null, $range-ion-item-padding-horizontal, null, null); | ||
| } | ||
|
|
||
| :host(.ion-color) .range-bar-active, | ||
| :host(.ion-color) .range-tick-active { | ||
| background: current-color(base); | ||
| } | ||
|
|
||
| ::slotted([slot="start"]) { | ||
| @include margin(0, 16px, 0, 0); | ||
OS-pedrolourenco marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| } | ||
|
|
||
| ::slotted([slot="end"]) { | ||
| @include margin(0, 0, 0, 16px); | ||
OS-pedrolourenco marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| } | ||
|
|
||
| :host(.range-has-pin:not(.range-label-placement-stacked)) { | ||
| /** | ||
| * The pin should not overlap any elements that are | ||
| * above the range. By adding padding to the top of the | ||
| * range, it provides a buffer for the pin to move into | ||
| * when it is pressed. | ||
| * | ||
| * The padding is not included when the label is stacked | ||
| * because the pin is below the label. | ||
| * It still requires a buffer to prevent the pin from | ||
| * overlapping the range. The buffer is added to the | ||
| * bottom of the range label instead of the host. | ||
| */ | ||
| @include padding(calc($range-ion-padding-vertical + $range-ion-pin-font-size), null, null, null); | ||
| } | ||
|
|
||
| :host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper { | ||
| /** | ||
| * The pin should not overlap the stacked label. By adding | ||
| * margin to the bottom of the label, it provides a buffer | ||
| * for the pin to move into when it is pressed. | ||
| */ | ||
| @include margin(null, null, calc($range-ion-padding-vertical + $range-ion-pin-font-size), null); | ||
| } | ||
|
|
||
| .range-bar-active { | ||
| bottom: 0; | ||
|
|
||
| width: auto; | ||
|
|
||
| background: var(--bar-background-active); | ||
|
|
||
| &.has-ticks { | ||
| @include border-radius(0); | ||
| @include margin(null, calc(-1 * $range-ion-tick-width * 0.5), null, calc(-1 * $range-ion-tick-width * 0.5)); | ||
| } | ||
| } | ||
|
|
||
| .range-tick { | ||
| @include margin-horizontal(calc($range-ion-tick-width * -0.5), null); | ||
| @include border-radius($range-ion-tick-border-radius); | ||
|
|
||
| position: absolute; | ||
| top: calc(($range-ion-hit-height * 0.5) - ($range-ion-tick-height * 0.5)); | ||
|
|
||
| width: $range-ion-tick-width; | ||
| height: $range-ion-tick-height; | ||
|
|
||
| background: $range-ion-tick-background-color; | ||
| pointer-events: none; | ||
| } | ||
|
|
||
| .range-tick-active { | ||
| background: var(--bar-background-active); | ||
| } | ||
|
|
||
| .range-pin { | ||
| @include transform(translate3d(0, 100%, 0), scale(0.01)); | ||
| @include padding( | ||
| $range-ion-pin-padding-top, | ||
| $range-ion-pin-padding-end, | ||
| $range-ion-pin-padding-bottom, | ||
| $range-ion-pin-padding-start | ||
| ); | ||
|
|
||
| min-width: 28px; | ||
OS-pedrolourenco marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| transition: transform 120ms ease; | ||
|
|
||
| background: $range-ion-pin-background-color; | ||
| color: $range-ion-pin-color; | ||
|
|
||
| font-size: $range-ion-pin-font-size; | ||
|
|
||
| text-align: center; | ||
| } | ||
|
|
||
| .range-knob { | ||
| border-width: $ion-border-size-025; | ||
| border-style: solid; | ||
OS-pedrolourenco marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| border-color: #{ion-color(primary, base)}; | ||
| } | ||
OS-pedrolourenco marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| /** | ||
| * The -100% ensures the pin sits on top | ||
| * of the range-knob-handle container. | ||
| * We apply 11px so that the pin | ||
| * text is closer to the knob inside of the container. | ||
| * We also apply the 11px here instead of using "top" | ||
| * otherwise the pin text will translate below the knob | ||
| * when the text is scaled. | ||
| */ | ||
| .range-knob-pressed .range-pin, | ||
| .range-knob-handle.ion-focused .range-pin { | ||
| transform: translate3d(0, calc(-100% + 11px), 0) scale(1); | ||
| } | ||
|
|
||
| // Ionic Range: Disabled (based on iOS Range) | ||
| // -------------------------------------------------- | ||
| // When the range is disabled, the entire range, | ||
| // range label, any slotted labels, and any slotted | ||
| // icons need to receive the same opacity. | ||
|
|
||
| :host(.range-disabled) { | ||
| opacity: $range-ion-disabled-opacity; | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,78 @@ | ||
| @import "../../foundations/ionic.vars"; | ||
| @import "../../themes/native/native.globals.ios"; | ||
|
|
||
| // Ionic Range | ||
| // -------------------------------------------------- | ||
|
|
||
| /// @prop - Padding top/bottom of the range | ||
| $range-ion-padding-vertical: $ion-space-200; | ||
|
|
||
| /// @prop - Padding start/end of the range - modern syntax | ||
| /** | ||
| * 24px was chosen so the knob and its | ||
| * shadow do not get cut off by the item. | ||
| */ | ||
| $range-ion-item-padding-horizontal: $ion-space-600; | ||
|
|
||
| /// @prop - Height of the range slider | ||
| $range-ion-slider-height: 42px; | ||
|
|
||
| /// @prop - Height of the area that will select the range knob | ||
| $range-ion-hit-height: $range-ion-slider-height; | ||
|
|
||
| /// @prop - Height of the range bar | ||
| $range-ion-bar-height: $ion-scale-200; | ||
|
|
||
| /// @prop - Background of the range bar | ||
| $range-ion-bar-background-color: $ion-primitives-neutral-100; | ||
|
|
||
| /// @prop - Border radius of the range bar | ||
| $range-ion-bar-border-radius: $ion-border-radius-400; | ||
|
|
||
| /// @prop - Width of the range knob | ||
| $range-ion-knob-handle-width: $ion-scale-1000; | ||
|
|
||
| /// @prop - Width of the range knob | ||
| $range-ion-knob-width: 22px; | ||
|
|
||
| /// @prop - Box shadow of the range knob | ||
| $range-ion-knob-box-shadow: 0; | ||
|
|
||
| /// @prop - Background of the range knob | ||
| $range-ion-knob-background-color: $ion-primitives-base-white; | ||
|
|
||
| /// @prop - Width of the range tick | ||
| $range-ion-tick-width: $ion-scale-100; | ||
|
|
||
| /// @prop - Height of the range tick | ||
| $range-ion-tick-height: $ion-font-line-height-300; | ||
|
|
||
| /// @prop - Border radius of the range tick | ||
| $range-ion-tick-border-radius: $ion-border-radius-0; | ||
|
|
||
| /// @prop - Background of the range tick | ||
| $range-ion-tick-background-color: $range-ion-bar-background-color; | ||
|
|
||
| /// @prop - Background of the range pin | ||
| $range-ion-pin-background-color: transparent; | ||
|
|
||
| /// @prop - Color of the range pin | ||
| $range-ion-pin-color: $text-color; | ||
|
|
||
| /// @prop - Font size of the range pin | ||
| $range-ion-pin-font-size: dynamic-font(12px); | ||
|
|
||
| /// @prop - Padding top of the range pin | ||
| $range-ion-pin-padding-top: $ion-space-200; | ||
|
|
||
| /// @prop - Padding end of the range pin | ||
| $range-ion-pin-padding-end: $range-ion-pin-padding-top; | ||
|
|
||
| /// @prop - Padding bottom of the range pin | ||
| $range-ion-pin-padding-bottom: $range-ion-pin-padding-top; | ||
|
|
||
| /// @prop - Padding start of the range pin | ||
| $range-ion-pin-padding-start: $range-ion-pin-padding-end; | ||
|
|
||
| /// @prop - Opacity of the disabled range | ||
| $range-ion-disabled-opacity: $form-control-ios-disabled-opacity; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| @import "./range"; | ||
| @import "./range.native"; | ||
| @import "./range.ios.vars"; | ||
|
|
||
| // iOS Range | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| @import "./range"; | ||
| @import "./range.native"; | ||
| @import "./range.md.vars"; | ||
|
|
||
| // Material Design Range | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| @import "range.common"; | ||
| @import "./range.vars.scss"; | ||
|
|
||
| :host { | ||
| --knob-handle-size: calc(var(--knob-size) * 2); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.