@rdlabo/ionic-theme-ios26 0.0.4 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/demo/src/app/index/index-page.component.html +8 -6
  2. package/demo/src/app/index/index-page.component.ts +7 -13
  3. package/demo/src/app/index/index.routes.ts +24 -4
  4. package/demo/src/app/index/pages/accordion/accordion.page.html +45 -0
  5. package/demo/src/app/index/pages/accordion/accordion.page.scss +0 -0
  6. package/demo/src/app/index/pages/accordion/accordion.page.spec.ts +21 -0
  7. package/demo/src/app/index/pages/accordion/accordion.page.ts +47 -0
  8. package/demo/src/app/index/pages/inputs/inputs.page.html +65 -0
  9. package/demo/src/app/index/pages/inputs/inputs.page.scss +0 -0
  10. package/demo/src/app/index/pages/inputs/inputs.page.spec.ts +21 -0
  11. package/demo/src/app/index/pages/inputs/inputs.page.ts +49 -0
  12. package/demo/src/app/index/pages/item-list/item-list.page.html +52 -0
  13. package/demo/src/app/index/pages/item-list/item-list.page.scss +0 -0
  14. package/demo/src/app/index/pages/item-list/item-list.page.spec.ts +21 -0
  15. package/demo/src/app/index/pages/item-list/item-list.page.ts +47 -0
  16. package/demo/src/app/index/pages/reorder/reorder.page.html +52 -0
  17. package/demo/src/app/index/pages/reorder/reorder.page.scss +0 -0
  18. package/demo/src/app/index/pages/reorder/reorder.page.spec.ts +21 -0
  19. package/demo/src/app/index/pages/reorder/reorder.page.ts +47 -0
  20. package/demo/src/app/index/pages/segment/segment.page.html +6 -1
  21. package/demo/src/app/index/pages/segment/segment.page.scss +1 -0
  22. package/demo/src/app/index/pages/tabs/tabs.page.html +78 -0
  23. package/demo/src/app/index/pages/tabs/tabs.page.scss +6 -0
  24. package/demo/src/app/index/pages/tabs/tabs.page.spec.ts +21 -0
  25. package/demo/src/app/index/pages/tabs/tabs.page.ts +47 -0
  26. package/demo/src/app/index/pages/toolbar/toolbar.page.html +121 -0
  27. package/demo/src/app/index/pages/toolbar/toolbar.page.scss +0 -0
  28. package/demo/src/app/index/pages/toolbar/toolbar.page.spec.ts +21 -0
  29. package/demo/src/app/index/pages/toolbar/toolbar.page.ts +55 -0
  30. package/demo/src/app/tabs/tabs.page.scss +0 -9
  31. package/demo/src/app/tabs/tabs.page.ts +2 -2
  32. package/package.json +3 -3
  33. package/src/components/ion-action-sheet.scss +4 -0
  34. package/src/components/ion-alert.scss +0 -1
  35. package/src/components/ion-button.scss +19 -6
  36. package/src/components/ion-datetime.scss +2 -2
  37. package/src/components/ion-list.scss +3 -1
  38. package/src/components/ion-modal.scss +2 -2
  39. package/src/components/ion-searchbar.scss +2 -3
  40. package/src/components/ion-tabs.scss +23 -7
  41. package/src/default-variables.scss +2 -0
  42. package/src/ionic-theme-ios26.scss +0 -1
  43. package/src/utils/theme-list-inset.scss +1 -0
  44. package/src/utils/translucent.scss +2 -3
@@ -0,0 +1,78 @@
1
+ <ion-header [translucent]="true">
2
+ <ion-toolbar>
3
+ <ion-back-button slot="start" defaultHref="/main/index"></ion-back-button>
4
+ <ion-title>tabs</ion-title>
5
+ </ion-toolbar>
6
+ </ion-header>
7
+
8
+ <ion-content [fullscreen]="true" color="light">
9
+ <ion-list [inset]="true">
10
+ <ion-item-group class="header-item-group">
11
+ <ion-item>
12
+ <ion-label>
13
+ <ion-icon name="logo-ionic" style="background: linear-gradient(#489bfd, #2b77f4)"></ion-icon>
14
+ <h2>tabs</h2>
15
+ <ion-header collapse="condense">
16
+ <ion-toolbar></ion-toolbar>
17
+ </ion-header>
18
+ <ion-text><code>This page is a component demo for &#64;rdlabo/ionic-theme-ios26.</code></ion-text>
19
+ </ion-label>
20
+ </ion-item>
21
+ </ion-item-group>
22
+ </ion-list>
23
+
24
+ <ion-tab-bar class="ion-margin-bottom">
25
+ <ion-tab-button tab="home">
26
+ <ion-icon name="play-circle"></ion-icon>
27
+ Listen Now
28
+ </ion-tab-button>
29
+ <ion-tab-button tab="radio">
30
+ <ion-icon name="radio"></ion-icon>
31
+ Radio
32
+ </ion-tab-button>
33
+ <ion-tab-button tab="library">
34
+ <ion-icon name="library"></ion-icon>
35
+ Library
36
+ </ion-tab-button>
37
+ </ion-tab-bar>
38
+ <ion-tab-bar class="ion-margin-bottom">
39
+ <ion-tab-button tab="home">
40
+ <ion-icon name="play-circle"></ion-icon>
41
+ Listen Now
42
+ </ion-tab-button>
43
+ <ion-tab-button tab="radio">
44
+ <ion-icon name="radio"></ion-icon>
45
+ Radio
46
+ </ion-tab-button>
47
+ <ion-tab-button tab="library">
48
+ <ion-icon name="library"></ion-icon>
49
+ Library
50
+ </ion-tab-button>
51
+ <ion-tab-button tab="search">
52
+ <ion-icon name="search"></ion-icon>
53
+ Search
54
+ </ion-tab-button>
55
+ </ion-tab-bar>
56
+ <ion-tab-bar class="ion-margin-bottom">
57
+ <ion-tab-button tab="home">
58
+ <ion-icon name="play-circle"></ion-icon>
59
+ Listen Now
60
+ </ion-tab-button>
61
+ <ion-tab-button tab="radio">
62
+ <ion-icon name="radio"></ion-icon>
63
+ Radio
64
+ </ion-tab-button>
65
+ <ion-tab-button tab="library">
66
+ <ion-icon name="library"></ion-icon>
67
+ Library
68
+ </ion-tab-button>
69
+ <ion-tab-button tab="search">
70
+ <ion-icon name="search"></ion-icon>
71
+ Search
72
+ </ion-tab-button>
73
+ <ion-tab-button tab="search">
74
+ <ion-icon name="search"></ion-icon>
75
+ Last
76
+ </ion-tab-button>
77
+ </ion-tab-bar>
78
+ </ion-content>
@@ -0,0 +1,6 @@
1
+ :host {
2
+ ion-tab-bar {
3
+ margin-left: calc(16px + var(--ion-safe-area-left, 0px));
4
+ margin-right: calc(16px + var(--ion-safe-area-right, 0px));
5
+ }
6
+ }
@@ -0,0 +1,21 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+ import { TabsPage } from './tabs.page';
3
+ import { testConfig } from '../../../../../util/test.config';
4
+
5
+ describe('TabsPage', () => {
6
+ let component: TabsPage;
7
+ let fixture: ComponentFixture<TabsPage>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ providers: testConfig.providers,
12
+ }).compileComponents();
13
+ fixture = TestBed.createComponent(TabsPage);
14
+ component = fixture.componentInstance;
15
+ fixture.detectChanges();
16
+ });
17
+
18
+ it('should create', () => {
19
+ expect(component).toBeTruthy();
20
+ });
21
+ });
@@ -0,0 +1,47 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import {
5
+ IonBackButton,
6
+ IonContent,
7
+ IonHeader,
8
+ IonIcon,
9
+ IonItem,
10
+ IonItemGroup,
11
+ IonLabel,
12
+ IonList,
13
+ IonTabBar,
14
+ IonTabButton,
15
+ IonText,
16
+ IonTitle,
17
+ IonToolbar,
18
+ } from '@ionic/angular/standalone';
19
+
20
+ @Component({
21
+ selector: 'app-tabs',
22
+ templateUrl: './tabs.page.html',
23
+ styleUrls: ['./tabs.page.scss'],
24
+ standalone: true,
25
+ imports: [
26
+ IonContent,
27
+ IonHeader,
28
+ IonTitle,
29
+ IonToolbar,
30
+ CommonModule,
31
+ FormsModule,
32
+ IonBackButton,
33
+ IonIcon,
34
+ IonItem,
35
+ IonItemGroup,
36
+ IonLabel,
37
+ IonList,
38
+ IonText,
39
+ IonTabBar,
40
+ IonTabButton,
41
+ ],
42
+ })
43
+ export class TabsPage implements OnInit {
44
+ constructor() {}
45
+
46
+ ngOnInit() {}
47
+ }
@@ -0,0 +1,121 @@
1
+ <ion-header [translucent]="true">
2
+ <ion-toolbar>
3
+ <ion-back-button slot="start" defaultHref="/main/index"></ion-back-button>
4
+ <ion-title>toolbar</ion-title>
5
+ </ion-toolbar>
6
+ </ion-header>
7
+
8
+ <ion-content [fullscreen]="true" color="light">
9
+ <ion-list [inset]="true">
10
+ <ion-item-group class="header-item-group">
11
+ <ion-item>
12
+ <ion-label>
13
+ <ion-icon name="logo-ionic" style="background: linear-gradient(#489bfd, #2b77f4)"></ion-icon>
14
+ <h2>toolbar</h2>
15
+ <ion-header collapse="condense">
16
+ <ion-toolbar></ion-toolbar>
17
+ </ion-header>
18
+ <ion-text><code>This page is a component demo for &#64;rdlabo/ionic-theme-ios26.</code></ion-text>
19
+ </ion-label>
20
+ </ion-item>
21
+ </ion-item-group>
22
+ </ion-list>
23
+
24
+ <ion-toolbar>
25
+ <ion-buttons slot="start">
26
+ <ion-button> Start </ion-button>
27
+ </ion-buttons>
28
+ <ion-title>Start / End Buttons</ion-title>
29
+ <ion-buttons slot="end">
30
+ <ion-button [disabled]="true"> Disable End </ion-button>
31
+ </ion-buttons>
32
+ </ion-toolbar>
33
+
34
+ <ion-toolbar>
35
+ <ion-buttons slot="secondary">
36
+ <ion-button> Secondary </ion-button>
37
+ </ion-buttons>
38
+ <ion-buttons slot="primary">
39
+ <ion-button> Primary </ion-button>
40
+ </ion-buttons>
41
+ <ion-title>Primary / Secondary Buttons</ion-title>
42
+ </ion-toolbar>
43
+
44
+ <ion-toolbar>
45
+ <ion-buttons slot="secondary">
46
+ <ion-button>
47
+ <ion-icon slot="icon-only" name="person-circle"></ion-icon>
48
+ </ion-button>
49
+ <ion-button>
50
+ <ion-icon slot="icon-only" name="search"></ion-icon>
51
+ </ion-button>
52
+ </ion-buttons>
53
+ <ion-buttons slot="primary">
54
+ <ion-button>
55
+ <ion-icon slot="icon-only" ios="ellipsis-horizontal" md="ellipsis-vertical"></ion-icon>
56
+ </ion-button>
57
+ </ion-buttons>
58
+ <ion-title>Icon Buttons</ion-title>
59
+ </ion-toolbar>
60
+
61
+ <ion-toolbar>
62
+ <ion-buttons slot="secondary">
63
+ <ion-button fill="solid">
64
+ <ion-icon slot="start" name="person-circle"></ion-icon>
65
+ Contact
66
+ </ion-button>
67
+ </ion-buttons>
68
+ <ion-buttons slot="primary">
69
+ <ion-button fill="solid">
70
+ Help
71
+ <ion-icon slot="end" name="help-circle"></ion-icon>
72
+ </ion-button>
73
+ </ion-buttons>
74
+ <ion-title>Solid Buttons</ion-title>
75
+ </ion-toolbar>
76
+
77
+ <ion-toolbar>
78
+ <ion-buttons slot="secondary">
79
+ <ion-button fill="outline">
80
+ <ion-icon slot="start" name="star"></ion-icon>
81
+ Star
82
+ </ion-button>
83
+ </ion-buttons>
84
+ <ion-buttons slot="primary">
85
+ <ion-button fill="outline">
86
+ Edit
87
+ <ion-icon slot="end" name="create"></ion-icon>
88
+ </ion-button>
89
+ </ion-buttons>
90
+ <ion-title>Outline Buttons</ion-title>
91
+ </ion-toolbar>
92
+
93
+ <ion-toolbar>
94
+ <ion-buttons slot="start">
95
+ <ion-back-button default-href="#"></ion-back-button>
96
+ </ion-buttons>
97
+ <ion-title>Back Button</ion-title>
98
+ </ion-toolbar>
99
+
100
+ <ion-toolbar>
101
+ <ion-buttons slot="start">
102
+ <ion-menu-button auto-hide="false"></ion-menu-button>
103
+ </ion-buttons>
104
+ <ion-title>Menu Button</ion-title>
105
+ </ion-toolbar>
106
+
107
+ <ion-toolbar>
108
+ <ion-searchbar></ion-searchbar>
109
+ </ion-toolbar>
110
+
111
+ <ion-toolbar>
112
+ <ion-segment [value]="'all'">
113
+ <ion-segment-button [value]="'all'">
114
+ <ion-label>All</ion-label>
115
+ </ion-segment-button>
116
+ <ion-segment-button [value]="'favorites'">
117
+ <ion-label>Favorites</ion-label>
118
+ </ion-segment-button>
119
+ </ion-segment>
120
+ </ion-toolbar>
121
+ </ion-content>
@@ -0,0 +1,21 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+ import { ToolbarPage } from './toolbar.page';
3
+ import { testConfig } from '../../../../../util/test.config';
4
+
5
+ describe('ToolbarPage', () => {
6
+ let component: ToolbarPage;
7
+ let fixture: ComponentFixture<ToolbarPage>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ providers: testConfig.providers,
12
+ }).compileComponents();
13
+ fixture = TestBed.createComponent(ToolbarPage);
14
+ component = fixture.componentInstance;
15
+ fixture.detectChanges();
16
+ });
17
+
18
+ it('should create', () => {
19
+ expect(component).toBeTruthy();
20
+ });
21
+ });
@@ -0,0 +1,55 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import {
5
+ IonBackButton,
6
+ IonButton,
7
+ IonButtons,
8
+ IonContent,
9
+ IonHeader,
10
+ IonIcon,
11
+ IonItem,
12
+ IonItemGroup,
13
+ IonLabel,
14
+ IonList,
15
+ IonMenuButton,
16
+ IonSearchbar,
17
+ IonSegment,
18
+ IonSegmentButton,
19
+ IonText,
20
+ IonTitle,
21
+ IonToolbar,
22
+ } from '@ionic/angular/standalone';
23
+
24
+ @Component({
25
+ selector: 'app-toolbar',
26
+ templateUrl: './toolbar.page.html',
27
+ styleUrls: ['./toolbar.page.scss'],
28
+ standalone: true,
29
+ imports: [
30
+ IonContent,
31
+ IonHeader,
32
+ IonTitle,
33
+ IonToolbar,
34
+ CommonModule,
35
+ FormsModule,
36
+ IonBackButton,
37
+ IonIcon,
38
+ IonItem,
39
+ IonItemGroup,
40
+ IonLabel,
41
+ IonList,
42
+ IonText,
43
+ IonButtons,
44
+ IonButton,
45
+ IonMenuButton,
46
+ IonSearchbar,
47
+ IonSegment,
48
+ IonSegmentButton,
49
+ ],
50
+ })
51
+ export class ToolbarPage implements OnInit {
52
+ constructor() {}
53
+
54
+ ngOnInit() {}
55
+ }
@@ -1,9 +0,0 @@
1
- ion-label {
2
- margin-bottom: 4px;
3
- }
4
-
5
- ion-tab-bar {
6
- &.tab-bar-hide {
7
- display: none;
8
- }
9
- }
@@ -19,9 +19,9 @@ export class TabsPage implements OnInit {
19
19
  return;
20
20
  }
21
21
  if (['/main/settings'].includes(params.urlAfterRedirects)) {
22
- tabBar.classList.add('tab-bar-hide');
22
+ tabBar.classList.add('tab-bar-hidden');
23
23
  } else if (tabBar) {
24
- tabBar.classList.remove('tab-bar-hide');
24
+ tabBar.classList.remove('tab-bar-hidden');
25
25
  }
26
26
  });
27
27
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@rdlabo/ionic-theme-ios26",
3
- "version": "0.0.4",
3
+ "version": "0.1.1",
4
4
  "description": "iOS26 CSS Theme for Ionic Framework",
5
5
  "exports": {
6
6
  "./src/*": {
7
7
  "style": "./src/*"
8
8
  },
9
- "./css/*": {
10
- "style": "./css/*"
9
+ "./dist/*": {
10
+ "style": "./dist/*"
11
11
  },
12
12
  "./package.json": {
13
13
  "default": "./package.json"
@@ -11,6 +11,10 @@ ion-action-sheet.ios:not(.ios26-disabled) {
11
11
  margin: 0 8px 8px;
12
12
  border-radius: 32px;
13
13
 
14
+ .action-sheet-title,
15
+ .action-sheet-has-sub-title {
16
+ background: none;
17
+ }
14
18
  .action-sheet-title {
15
19
  padding-top: 8px;
16
20
  }
@@ -12,7 +12,6 @@ ion-alert.ios:not(.ios26-disabled) {
12
12
  .alert-head,
13
13
  .alert-message {
14
14
  text-align: left;
15
- padding: 12px 20px;
16
15
  }
17
16
 
18
17
  .alert-radio-group {
@@ -9,6 +9,10 @@
9
9
  @include api.glass-background;
10
10
  border-radius: 25px;
11
11
  overflow: hidden;
12
+
13
+ /**
14
+ * compare .header-collapse-main ion-toolbar.in-toolbar ion-title, .header-collapse-main ion-toolbar.in-toolbar ion-buttons
15
+ */
12
16
  transition: transform 100ms ease-out !important;
13
17
 
14
18
  &:has(.ion-activated) {
@@ -18,7 +22,10 @@
18
22
  ion-button:not(.ios26-disabled),
19
23
  ion-back-button:not(.ios26-disabled) {
20
24
  transform: none;
21
- opacity: 1;
25
+
26
+ &:not(.button-disabled) {
27
+ opacity: 1;
28
+ }
22
29
 
23
30
  &.ion-activated {
24
31
  --color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);
@@ -29,7 +36,8 @@
29
36
 
30
37
  &::part(native) {
31
38
  /**
32
- * TODO: remove !important.
39
+ * overwrite theme-button mixin.
40
+ * ex) ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.ios26-button-solid):not(.button-outline):not(.ios26-button-outline):not(.button-clear):not(.ios26-button-clear)::part(native)
33
41
  */
34
42
  box-shadow: none !important;
35
43
  border: none !important;
@@ -73,9 +81,11 @@
73
81
  }
74
82
  }
75
83
 
76
- --border-radius: 24px !important;
77
- &.button-large {
78
- --border-radius: 30px !important;
84
+ &:not(.button-round) {
85
+ --border-radius: 24px;
86
+ &.button-large {
87
+ --border-radius: 30px;
88
+ }
79
89
  }
80
90
 
81
91
  &:not(.button-clear):not(.ios26-button-clear) {
@@ -99,7 +109,10 @@
99
109
  &::part(native) {
100
110
  @include api.glass-background;
101
111
  }
102
- opacity: 1; // for ion-back-button
112
+
113
+ &:not(.button-disabled) {
114
+ opacity: 1; // for ion-back-button
115
+ }
103
116
 
104
117
  --color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 1);
105
118
  &.ion-color {
@@ -4,6 +4,6 @@ ion-datetime.ios:not(.ios26-disabled) {
4
4
  @include api.glass-background;
5
5
  border-radius: 24px;
6
6
 
7
- --wheel-highlight-background: transparent !important;
8
- --wheel-highlight-border-radius: 24px !important;
7
+ --wheel-highlight-background: transparent;
8
+ --wheel-highlight-border-radius: 24px;
9
9
  }
@@ -3,12 +3,14 @@
3
3
  ion-list.list-inset.ios:not(.ios26-disabled) {
4
4
  @include theme-list-inset.ion-list-inset();
5
5
 
6
- ion-radio-group {
6
+ ion-radio-group,
7
+ ion-reorder-group {
7
8
  display: block;
8
9
  }
9
10
 
10
11
  ion-item-group,
11
12
  ion-reorder-group,
13
+ ion-accordion-group,
12
14
  ion-radio-group {
13
15
  border-radius: 24px;
14
16
  overflow: hidden;
@@ -3,8 +3,8 @@
3
3
  ion-modal.ios:not(.ios26-disabled) {
4
4
  --backdrop-opacity: 0.2;
5
5
  ion-toolbar {
6
- padding-right: calc(var(--ion-safe-area-right) + 4px) !important;
7
- padding-left: calc(var(--ion-safe-area-left) + 4px) !important;
6
+ padding-right: calc(var(--ion-safe-area-right) + 4px);
7
+ padding-left: calc(var(--ion-safe-area-left) + 4px);
8
8
  }
9
9
  &::part(handle) {
10
10
  width: 80px;
@@ -3,7 +3,6 @@
3
3
  ion-modal.ios {
4
4
  ion-searchbar:not(.ios26-disabled) {
5
5
  .searchbar-input-container {
6
- margin: 0 6px;
7
6
  input.searchbar-input {
8
7
  // Modal表示でのアイコン非表示の不具合の対応
9
8
  backdrop-filter: none;
@@ -28,10 +27,10 @@ ion-searchbar.ios:not(.ios26-disabled) {
28
27
  min-height: 44px;
29
28
  @include api.glass-background;
30
29
  border-radius: 20px;
31
- padding-inline-start: 2.4rem !important;
30
+ padding-inline-start: 2.4rem;
32
31
  }
33
32
  .searchbar-clear-button {
34
- padding-inline-end: 2rem !important;
33
+ padding-inline-end: 2rem;
35
34
  }
36
35
  }
37
36
  }
@@ -6,13 +6,28 @@ ion-tab-bar.ios:not(.ios26-disabled) {
6
6
 
7
7
  border-radius: 40px;
8
8
 
9
- width: calc(100% - 56px - 16px - 16px - 4px - 16px);
10
- max-width: 400px;
9
+ &[slot='top'] {
10
+ position: absolute;
11
+ top: var(--ios26-floating-safe-area-top);
12
+ right: calc(16px + var(--ion-safe-area-right, 0px));
13
+ }
14
+
15
+ &[slot='bottom'] {
16
+ position: absolute;
17
+ bottom: var(--ios26-floating-safe-area-bottom);
18
+ left: calc(16px + var(--ion-safe-area-left, 0px));
19
+ }
20
+
21
+ /**
22
+ * 100% - margin-left - margin-right - right-fab - margin-right-fab
23
+ */
24
+ width: calc(100% - calc(18px + var(--ion-safe-area-left, 0px)) - calc(18px + var(--ion-safe-area-left, 0px)) - 54px - 18px);
25
+ max-width: 474px;
26
+ &:has(:nth-child(5)) {
27
+ width: calc(100% - calc(18px + var(--ion-safe-area-left, 0px)) - calc(18px + var(--ion-safe-area-left, 0px)));
28
+ max-width: 546px;
29
+ }
11
30
  padding: 2px 2px;
12
- bottom: var(--ios26-floating-safe-area-bottom);
13
- left: calc(16px + var(--ion-safe-area-left, 0px));
14
- position: absolute;
15
- margin: auto;
16
31
 
17
32
  transition: transform 100ms ease-out;
18
33
  will-change: transform;
@@ -23,12 +38,13 @@ ion-tab-bar.ios:not(.ios26-disabled) {
23
38
 
24
39
  ion-tab-button {
25
40
  & > ion-icon {
26
- font-size: 30px;
41
+ font-size: 28px;
27
42
  }
28
43
  background: rgba(var(--ios26-color-light-rgb), 0);
29
44
  height: auto;
30
45
  &::part(native) {
31
46
  overflow: visible;
47
+ padding: 2px;
32
48
  }
33
49
 
34
50
  &.tab-selected {
@@ -1,5 +1,7 @@
1
1
  :root {
2
+ --ios26-floating-safe-area-top: max(10px, var(--ion-safe-area-top, 0px));
2
3
  --ios26-floating-safe-area-bottom: max(10px, var(--ion-safe-area-bottom, 0px));
4
+
3
5
  --ios26-content-box-shadow-opacity: 0.8;
4
6
 
5
7
  --ios26-color-dark-rgb: 0, 0, 0;
@@ -16,7 +16,6 @@
16
16
  @use 'components/ion-popover';
17
17
  @use 'components/ion-range';
18
18
  @use 'components/ion-searchbar';
19
- @use 'components/ion-segment';
20
19
  @use 'components/ion-tabs';
21
20
  @use 'components/ion-toast';
22
21
  @use 'components/ion-toggle';
@@ -57,6 +57,7 @@
57
57
 
58
58
  ion-item-group,
59
59
  ion-reorder-group,
60
+ ion-accordion-group,
60
61
  ion-radio-group {
61
62
  ion-item {
62
63
  ion-text[slot='end'] {
@@ -25,8 +25,7 @@ ion-footer.ios:not(.ios26-disabled).footer-translucent {
25
25
  }
26
26
  }
27
27
 
28
- ion-header.ios:not(.ios26-disabled).header-collapse-main ion-toolbar.in-toolbar ion-title,
29
- ion-header.ios:not(.ios26-disabled).header-collapse-main ion-toolbar.in-toolbar ion-buttons {
28
+ ion-header.ios:not(.ios26-disabled).header-collapse-main ion-toolbar.in-toolbar ion-title {
30
29
  transition: all 0.5s ease-in-out;
31
30
  }
32
31
 
@@ -62,7 +61,7 @@ ion-content::part(background)::after {
62
61
  z-index: 2;
63
62
  bottom: 0;
64
63
  height: calc(56px + var(--ios26-floating-safe-area-bottom));
65
- box-shadow: inset 0 calc(-55px - var(--ios26-floating-safe-area-bottom)) 16px -16px
64
+ box-shadow: inset 0 calc(-56px - var(--ios26-floating-safe-area-bottom)) 16px -16px
66
65
  rgba(var(--ios26-color-background-rgb), var(--ios26-content-box-shadow-opacity));
67
66
  }
68
67