Commit Graph

83 Commits

Author SHA1 Message Date
Liam DeBeasi
f8067819ee feat(a11y): add dynamic font scaling (#28314)
Issue number: resolves #24638, resolves #18592

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Developers have requested that Ionic Framework support the dynamic type
feature on iOS for accessibility purposes. Ionic applications do not
respond to font scaling on iOS which can create inaccessible
applications particularly for users with low vision. Ionic apps on
Android devices currently support the Android equivalent due to
functionality in the Chromium webview.

Developers have also requested a way of adjusting the fonts in their
Ionic UI components consistently.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Ionic components now use `rem` instead of `px` where appropriate. This
means devs can change the font size on `html` and the text in supported
Ionic components will scale up/down appropriately
- Add support for Dynamic Type on iOS (the iOS version of Dynamic Font
Scaling)

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

---------

Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
Co-authored-by: Brandy Carney <brandyscarney@users.noreply.github.com>
Co-authored-by: Shawn Taylor <shawn@ionic.io>
Co-authored-by: ionitron <hi@ionicframework.com>
Co-authored-by: Sean Perkins <sean@ionic.io>
Co-authored-by: Sean Perkins <13732623+sean-perkins@users.noreply.github.com>
Co-authored-by: Amanda Johnston <90629384+amandaejohnston@users.noreply.github.com>
2023-10-10 17:38:09 -04:00
Liam DeBeasi
b297529afc fix(core): allow fullscreen scroll content to flow outside container for translucent tab bar (#28246)
Issue number: resolves #17676

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

The IonNav, IonRouterOutlet, and .ion-page elements have `overflow:
hidden` which prevent content from spilling out of it. This was likely
done to prevent these elements from having overflow scroll (since the
inner IonContent should be scrollable). However, this breaks the
translucency effect on IonTabBar because the content in IonContent can
not scroll under the IonTabBar.

```html
<ion-tabs>
  <ion-router-outlet> <!-- this has overflow: hidden -->
    ...
    <ion-content fullscreen="true">...</ion-content>
  </ion-router-outlet>
  <ion-tab-bar translucent="true">...</ion-tab-bar>
</ion-tabs>
```

In Ionic v3 components such as IonTabs and IonNav did have `overflow:
hidden`:
cf35d5eb7f/src/components/app/app.scss (L241-L246)

However, components like IonNav were not used inside of tabs at the
time, so the reported bug was not a problem then.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Removed `overflow: hidden` from IonNav, IonRouterOutlet, and
.ion-page. This change seems safe to make because the `position:
absolute` and top/right/bottom/left values should ensure that these
elements take up the available screen space and avoid having overflow
scrolling.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Dev build: `7.4.2-dev.11695832397.13fa6703`

Note: Fixing this reveals
https://github.com/ionic-team/ionic-framework/issues/21130 which is why
this fix is dependent on the linked issue getting fixed first.

---------

Co-authored-by: ionitron <hi@ionicframework.com>
2023-10-04 19:18:48 +00:00
Liam DeBeasi
66584b03d0 fix: safari no longer adjusts text in landscape (#27787)
Issue number: resolves #27782

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Ionic uses text-size-adjust to prevent browsers from resizing text in
landscape mode in order to match native app behavior. However, WebKit
only supports `-webkit-text-size-adjust`, so this fix never applied to
iOS devices.

https://caniuse.com/?search=text-size-adjust

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Add `-webkit-text-size-adjust` where we use `text-size-adjust`

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

**Landscape**

| main | branch |
| - | - |
|
![IMG_0046](https://github.com/ionic-team/ionic-framework/assets/2721089/d719f495-c051-4f64-a6fa-f17435c68cb5)
|
![IMG_0048](https://github.com/ionic-team/ionic-framework/assets/2721089/7a0b5f45-b72a-466d-8e00-846de2572e49)
|

**Portrait** (Should be no changes)

| main | branch |
| - | - |
|
![IMG_0045](https://github.com/ionic-team/ionic-framework/assets/2721089/a2324f9f-efcc-4c75-8359-2441f93ceadc)
|
![IMG_0047](https://github.com/ionic-team/ionic-framework/assets/2721089/64566645-5778-435f-a511-5fe7234c7f65)
|
2023-07-13 17:26:13 +00:00
Liam DeBeasi
77b9e11c2b chore(): sync with main 2023-03-08 09:35:37 -05:00
Liam DeBeasi
a3f8e28172 fix(modal): avoid chrome memory leak bug (#26911) 2023-03-06 12:38:29 -05:00
Liam DeBeasi
708ccbf808 chore(): sync with main 2023-03-01 11:22:56 -05:00
Liam DeBeasi
00d10f5f6a fix(modal): dialog styles work on old chrome versions (#26746)
resolves #26745
2023-02-07 15:02:10 -05:00
Liam DeBeasi
f9c681331c chore(): sync with main 2022-12-14 16:49:32 -05:00
Ryan Waskiewicz
16dcd2d114 chore(scss): remove injected global styles (#26469)
this commit removes a globally injected style, `ionic.skip-warns.scss`,
from the project. this stylesheet was used to set a variable, `$Ionic`,
that would turn on/off deprecation warnings in (the also removed)
`ionic.deprecation.scss`. any file using either of the aforementioned
files have been updated.

this change is occurring while the stencil team is looking to improve
the size of generated components that use >1 mode. this deprecation was
a part of an initiative to remove sass source files from artifact
published to npm. while that was completed, this deprecation was not
removed (until now)

Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com>
2022-12-13 08:34:25 -05:00
Liam DeBeasi
82d1d948ec fix(normalize): remove normalize styles for outdated browsers (#26465)
resolves #26464
2022-12-12 14:47:15 -05:00
Liam DeBeasi
961e1bddd3 chore(): sync with main 2022-11-21 11:37:08 -05:00
Matias Salles
e14c94722c fix(normalize): normalize css resets button padding (#26214)
resolves #23928
2022-11-18 13:57:17 -05:00
Sean Perkins
c149b42d0b Merge remote-tracking branch 'origin/main' into sync-7-11-15-22 2022-11-15 15:40:21 -05:00
Amanda Johnston
e3ef932ae1 chore(many): add tech debt tickets and remove unnecessary todos (#26266) 2022-11-14 14:49:08 -06:00
Amanda Johnston
d478e03914 feat(slides): remove ion-slide, ion-slides, and IonicSwiper module (#25868) 2022-09-01 14:36:17 -05:00
Liam DeBeasi
f5a6b5a4c4 refactor(core): remove global hidden attribute (#25829)
resolves #17583

BREAKING CHANGE: 

The `[hidden]` attribute has been removed from Ionic's global stylesheet. The `[hidden]` attribute can continue to be used, but developers will get the [native `hidden` implementation](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/hidden) instead. The main difference is that the native implementation is easier to override using `display` than Ionic's implementation.

Developers can add the following CSS to their global stylesheet if they need the old behavior:

```css
[hidden] {
  display: none !important;
}
```
2022-08-26 09:34:41 -04:00
Liam DeBeasi
d1e517bfef fix(nav): exclude nav from custom dialog (#25689)
resolves #25677, resolves #25688
2022-07-28 14:01:09 -04:00
Liam DeBeasi
499733105e feat(datetime-button): add button for displaying datetime in overlays (#25655)
resolves #24316
2022-07-27 09:47:02 -04:00
Liam DeBeasi
a6f3ae67ab fix(modal): allow for custom dialog implementations (#25630)
resolves #24080
2022-07-15 09:36:19 -04:00
Liam DeBeasi
99c91eff87 fix(react, vue): scroll is no longer interrupted on ios (#24791)
resolves #24435
2022-02-17 16:41:36 -05:00
Liam DeBeasi
d3311df967 fix(accordion): items inside of the content now correct display borders (#24618)
resolves #24613
2022-01-21 09:42:26 -05:00
Liam DeBeasi
0920797612 fix(accordion): improve functionality with nested accordions (#24302) 2021-12-06 10:28:10 -05:00
Sean Perkins
9cf7c89704 fix(input): date type in ion-input now aligns correctly on iOS 15 (#24213) 2021-11-12 14:35:12 -05:00
Liam DeBeasi
5d4f5af360 fix(modal): card modal shadow now shows up correctly on ipad (#24203) 2021-11-11 10:59:18 -05:00
Liam DeBeasi
2054690f54 chore(): sync with main 2021-11-11 10:19:05 -05:00
Liam DeBeasi
1f4f8eb6ca fix(modal): border radius is now correctly applied to card modals (#24204) 2021-11-11 10:01:53 -05:00
Liam DeBeasi
d0b61307c6 feat(slides): add support for Swiper 7 (#24190) 2021-11-09 12:50:56 -05:00
Liam DeBeasi
da339a8a74 fix(modal, popover): opening modal and popover now works even if overlay was added to ion-app directly (#24174)
resolves #23728
2021-11-08 10:19:23 -05:00
William Martin
11fda41420 feat(slides): add IonicSlides module for Swiper migration, deprecate ion-slides (#23844)
backports #23447
2021-08-31 17:52:47 -04:00
Liam DeBeasi
12216d378d feat(modal): add bottom sheet functionality (#23828)
resolves #21039
2021-08-31 15:19:19 -04:00
Liam DeBeasi
dc48a9f1a2 feat(vue): add custom elements bundle (#23458) 2021-06-17 14:10:50 -04:00
Liam DeBeasi
bccb8ad5fb fix(modal): border radius is correctly set on card style modal (#23461) 2021-06-17 13:36:30 -04:00
Liam DeBeasi
623c84ab08 feat(slides): add IonicSwiper modules, deprecate ion-slides, and add link to migration (#23447) 2021-06-11 12:56:32 -04:00
Liam DeBeasi
3be1c3dcd7 feat(modal): modals can now be used inline (#23341)
resolves #20117, resolves #20263
2021-06-01 11:09:40 -04:00
William Martin
a037b65aad fix(modal): add additional padding to toolbars in iOS modal (#23262)
Resolves #22778
2021-05-03 16:43:11 -04:00
William Martin
03d5fcb6c8 chore(): revert #23181
Reverts #23181
2021-05-03 16:29:58 -04:00
William Martin
d94739f39b fix(modal): add additional padding to toolbars in iOS modal (#23181)
resolves #22778
2021-05-03 10:44:41 -04:00
Liam DeBeasi
073883a098 feat(accordion): add accordion and accordion-group components (#22865)
resolves #17094
2021-03-24 09:17:54 -04:00
Liam DeBeasi
bd64509bae fix(modal): properly inherit border radius for modals on Safari (#20887)
fixes #20878
2020-03-30 11:56:46 -04:00
Liam DeBeasi
645578c66b fix(modal): properly apply border radius on card-style modal (#20852)
fixes #20851
2020-03-25 11:10:57 -04:00
Liam DeBeasi
7a4ddde5ce fix(modal): properly remove safe area padding on card-modal (#20853)
fixes #20799
2020-03-24 11:53:29 -04:00
Liam DeBeasi
3a2d82814b fix(modal): swipeable modal styles only apply to ios (#20571)
fixes #20569
2020-02-24 11:14:43 -05:00
Liam DeBeasi
1cabb53650 fix(modal): account for safe area on devices with a notch (#20072)
* fix card modal on notch phones

* only apply safe area for card modal

* fix styles, fix gesture race condition

* a few more tweaks
2019-12-16 12:09:34 -05:00
Matthew Harris
d521f65053 docs(css): update directive references to classes in css utils (#19941) 2019-11-18 18:08:40 -05:00
Adam Bradley
0d40d3f3b7 refactor(back-button): convert to shadow component (#19411)
references #18899
2019-11-14 14:39:35 -05:00
Liam DeBeasi
d80f45516d feat(split-pane): convert to shadow component, add width, max-width, and min-width vars (#19754)
resolves #17088


Co-authored-by: troyanskiy <roman.rosluk@utopix.ch>
2019-10-30 14:16:39 -04:00
Adam Bradley
08bb60dcbb refactor(card): convert card to shadow (#19395)
references #18899
2019-10-10 15:55:35 -04:00
Oori
5d6e077067 fix(css): update responsive display media queries (#18601)
BREAKING CHANGES

The responsive display classes found in the `display.css` file have had their media queries updated to better reflect how they should work. Instead of using the maximum value of that breakpoint (for `.ion-hide-{breakpoint}-down` classes) the maximum of the media query will be the minimum of that breakpoint. 

fixes #18600
2019-10-10 14:34:16 -04:00
Brandy Carney
e67f7e81f7 refactor(css): remove CSS util attributes (#18956)
BREAKING CHANGES

Removes all CSS utility attributes. Please use CSS classes instead. See the documentation for the correct class names: https://ionicframework.com/docs/layout/css-utilities
2019-10-10 14:34:16 -04:00
Liam DeBeasi
eab0865fba fix(menu): menus show proper drop shadows (#19454)
fixes #19387
2019-09-26 09:38:28 -04:00