Skip to content

feat(tokens): add gray and text colors #18056

feat(tokens): add gray and text colors

feat(tokens): add gray and text colors #18056

Triggered via pull request January 20, 2026 16:39
@thetaPCthetaPC
synchronize #30799
FW-6751
Status Success
Total duration 13m 38s
Artifacts 27

build.yml

on: pull_request
build-react
54s
build-react
build-vue
43s
build-vue
Matrix: test-core-screenshot
build-angular
1m 9s
build-angular
build-angular-server
49s
build-angular-server
test-core-clean-build
12s
test-core-clean-build
test-core-lint
1m 0s
test-core-lint
test-core-spec
54s
test-core-spec
build-react-router
28s
build-react-router
build-vue-router
50s
build-vue-router
verify-screenshots
3s
verify-screenshots
Matrix: test-angular-e2e
Matrix: test-react-e2e
Matrix: test-react-router-e2e
Matrix: test-vue-e2e
verify-test-angular-e2e
4s
verify-test-angular-e2e
verify-test-react-e2e
3s
verify-test-react-e2e
verify-test-react-router-e2e
4s
verify-test-react-router-e2e
verify-test-vue-e2e
3s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

7 errors and 20 notices
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups: src/components/radio/test/a11y/radio.e2e.ts#L122
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 120 | 121 | await pageUtils.pressKeys('Tab'); > 122 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 123 | 124 | await pageUtils.pressKeys('Tab'); 125 | await expect(secondGroupRadios.nth(0)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:122:47
[Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions: src/components/tab-bar/test/basic/tab-bar.e2e.ts#L53
1) [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('#container') 541 pixels (ratio 0.03 of all image pixels) are different. Snapshot: tab-bar-default-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(tab-bar-default-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('#container') - locator resolved to <div class="ionic" id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 541 pixels (ratio 0.03 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('#container') - locator resolved to <div class="ionic" id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 541 pixels (ratio 0.03 of all image pixels) are different. 51 | const container = page.locator('#container'); 52 | > 53 | await expect(container).toHaveScreenshot(screenshot(`tab-bar-default`)); | ^ 54 | }); 55 | }); 56 | }); at /ionic/src/components/tab-bar/test/basic/tab-bar.e2e.ts:53:31
[Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with small spacing: src/components/divider/test/spacing/divider.e2e.ts#L21
4) [Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with small spacing Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('#container') 91 pixels (ratio 0.01 of all image pixels) are different. Snapshot: divider-spacing-small-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(divider-spacing-small-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 91 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 91 pixels (ratio 0.01 of all image pixels) are different. 19 | const container = page.locator('#container'); 20 | > 21 | await expect(container).toHaveScreenshot(screenshot(`divider-spacing-${spacing}`)); | ^ 22 | }); 23 | }); 24 | }); at /ionic/src/components/divider/test/spacing/divider.e2e.ts:21:33
[Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with xsmall spacing: src/components/divider/test/spacing/divider.e2e.ts#L21
3) [Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with xsmall spacing Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('#container') 91 pixels (ratio 0.01 of all image pixels) are different. Snapshot: divider-spacing-xsmall-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(divider-spacing-xsmall-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 91 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 91 pixels (ratio 0.01 of all image pixels) are different. 19 | const container = page.locator('#container'); 20 | > 21 | await expect(container).toHaveScreenshot(screenshot(`divider-spacing-${spacing}`)); | ^ 22 | }); 23 | }); 24 | }); at /ionic/src/components/divider/test/spacing/divider.e2e.ts:21:33
[Mobile Firefox] › src/components/divider/test/basic/divider.e2e.ts:6:9 › divider: rendering - ionic/md/ltr/light › should not have visual regressions: src/components/divider/test/basic/divider.e2e.ts#L20
2) [Mobile Firefox] › src/components/divider/test/basic/divider.e2e.ts:6:9 › divider: rendering - ionic/md/ltr/light › should not have visual regressions Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('#container') 91 pixels (ratio 0.01 of all image pixels) are different. Snapshot: divider-basic-default-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(divider-basic-default-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 91 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 91 pixels (ratio 0.01 of all image pixels) are different. 18 | const container = page.locator('#container'); 19 | > 20 | await expect(container).toHaveScreenshot(screenshot(`divider-basic-default`)); | ^ 21 | }); 22 | }); 23 | }); at /ionic/src/components/divider/test/basic/divider.e2e.ts:20:31
[Mobile Firefox] › src/components/datetime-button/test/basic/datetime-button.e2e.ts:6:9 › datetime-button: basic - md/ltr › should not have visual regressions: src/components/datetime-button/test/basic/datetime-button.e2e.ts#L16
1) [Mobile Firefox] › src/components/datetime-button/test/basic/datetime-button.e2e.ts:6:9 › datetime-button: basic - md/ltr › should not have visual regressions Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-datetime-button') 4928 pixels (ratio 0.41 of all image pixels) are different. Snapshot: datetime-button-basic-md-ltr.png Call log: - Expect "toHaveScreenshot(datetime-button-basic-md-ltr.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime-button') - locator resolved to <ion-datetime-button locale="en-US" color="primary" datetime="datetime" class="ion-color ion-color-primary md hydrated date-active"></ion-datetime-button> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 4928 pixels (ratio 0.41 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime-button') - locator resolved to <ion-datetime-button locale="en-US" color="primary" datetime="datetime" class="ion-color ion-color-primary md hydrated date-active"></ion-datetime-button> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 4928 pixels (ratio 0.41 of all image pixels) are different. 14 | const datetimeButton = page.locator('ion-datetime-button'); 15 | > 16 | await expect(datetimeButton).toHaveScreenshot(screenshot(`datetime-button-basic`)); | ^ 17 | }); 18 | }); 19 | }); at /ionic/src/components/datetime-button/test/basic/datetime-button.e2e.ts:16:36
🎭 Playwright Run Summary
360 skipped 272 passed (2.2m)
🎭 Playwright Run Summary
368 skipped 307 passed (3.4m)
🎭 Playwright Run Summary
2 skipped 667 passed (3.6m)
🎭 Playwright Run Summary
8 skipped 688 passed (3.8m)
🎭 Playwright Run Summary
1 skipped 676 passed (4.1m)
🎭 Playwright Run Summary
8 skipped 663 passed (4.4m)
🎭 Playwright Run Summary
152 skipped 707 passed (4.6m)
🎭 Playwright Run Summary
2 flaky [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group 4 skipped 677 passed (5.0m)
🎭 Playwright Run Summary
14 skipped 491 passed (6.2m)
🎭 Playwright Run Summary
5 skipped 681 passed (7.0m)
🎭 Playwright Run Summary
3 skipped 664 passed (7.5m)
🎭 Playwright Run Summary
12 skipped 685 passed (8.1m)
🎭 Playwright Run Summary
13 skipped 659 passed (8.5m)
🎭 Playwright Run Summary
1 flaky [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions 13 skipped 711 passed (8.6m)
🎭 Playwright Run Summary
18 skipped 640 passed (8.3m)
🎭 Playwright Run Summary
5 skipped 668 passed (9.0m)
🎭 Playwright Run Summary
4 flaky [Mobile Firefox] › src/components/datetime-button/test/basic/datetime-button.e2e.ts:6:9 › datetime-button: basic - md/ltr › should not have visual regressions [Mobile Firefox] › src/components/divider/test/basic/divider.e2e.ts:6:9 › divider: rendering - ionic/md/ltr/light › should not have visual regressions [Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with xsmall spacing [Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with small spacing 18 skipped 613 passed (9.0m)
🎭 Playwright Run Summary
1 skipped 656 passed (9.0m)
🎭 Playwright Run Summary
4 skipped 738 passed (9.4m)
🎭 Playwright Run Summary
14 skipped 682 passed (10.9m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular Expired
776 KB
sha256:77e7c5cef5d983ca85993a9441e0afb8801d5a1462c42bd6f6373a64b7bf3683
ionic-angular-server Expired
8.54 KB
sha256:fa230470a7dc7739132ebc87ef7818d733ad414e80de9e3e6b01ef6243badc9e
ionic-core Expired
5.22 MB
sha256:6d4af0964edf70b134af77cb8ce71b2fc733ca8867d64e626e294646d951fa1d
ionic-react Expired
314 KB
sha256:46df2058f9ce9a9e76500e87e818289d797b42e143f7316295dd7ce1762eafc5
ionic-react-router Expired
27.9 KB
sha256:f2ea4dbef3f796070064f38176a5e8cc8e5d5fa76bc0f5491cae37ea3fb461c8
ionic-vue Expired
344 KB
sha256:14ba231ae14fdcbba0cbe15aaaf9051839ee1f18d3d8b4940844fd4821402525
ionic-vue-router Expired
17.1 KB
sha256:85411f60ec2d4705e6585690922ee2bdb2d96265ac2b69296f3e14083f30a383
test-results-1-20 Expired
515 KB
sha256:42622619e9cb1f8f558bbde36a133b5e865e4dfa428e2f4bac1b7ceb1f2c7508
test-results-10-20 Expired
460 KB
sha256:56a56e80e356714e4c9f3e561e2bb9e4a04945a9d40090657e2c5ba368314dc0
test-results-11-20 Expired
1.72 MB
sha256:e5f01f1824e9e3864bf237ee3708882740e3c24f7f267686dd8a845edd8db6d6
test-results-12-20 Expired
499 KB
sha256:0e9e322385b59038c28867b2b438153040057280cf7d72310a2bd261e54759e6
test-results-13-20 Expired
472 KB
sha256:a66f37f447c272eed688fbf8bda8c5302f0da81b3a1e14e0d056eeb4a8a96933
test-results-14-20 Expired
443 KB
sha256:6b092fd161c54c258fc3407fdf1ac3fb4432080edbb2d8ac763d0a459dd6f4a2
test-results-15-20 Expired
478 KB
sha256:83118076bc5784df18a03ef3b523ae8ae51c67bc390b6e40eae1d05896d9a2c2
test-results-16-20 Expired
493 KB
sha256:0470f46e2b9732ec299bfa4d9aa9e8d66b0291a718a2f79ca97050b2d763e2b4
test-results-17-20 Expired
578 KB
sha256:88f1bcdc5d496d0df9bdb8381d6a5a39b7a3430f0b62df984ef8a088fc64e9fc
test-results-18-20 Expired
570 KB
sha256:4d3eb6869c3a49f87575397abab32c016efd49d521817fa205f4823a9b2a9480
test-results-19-20 Expired
462 KB
sha256:867ab34b1cb49677262655ac7d17a04a20097166adf094ebb2fee314784e8061
test-results-2-20 Expired
2.44 MB
sha256:57200dbf4ced317e654f10c4a2ac0b6cd4f9b4b6d533fd4e8076d45148b02913
test-results-20-20 Expired
355 KB
sha256:89aa8393f2aba15970fb3810d56e6fca30751bb4ec15cede5b77bd9d6c272936
test-results-3-20 Expired
455 KB
sha256:63059e618a7cefee0de45c7edcc3c4c992ca2457f2a19f573a5ff4627402d083
test-results-4-20 Expired
603 KB
sha256:3da7d51b55889d2dd8b58637ec74cabc8c4beb5c484dd942013c3fee6da443fd
test-results-5-20 Expired
506 KB
sha256:f6c142bf5d485027718e749850d6e89d5411f2d99db1556196159f95d9e1102d
test-results-6-20 Expired
1.29 MB
sha256:c4dc4a3ead652ee3d213545910411a80b481918ba6efc31ab2f026e8ace9cb96
test-results-7-20 Expired
371 KB
sha256:f03f77d4d875064ad01418cb554d398995dcfcf0e0075b8d1add8ad0bc87099b
test-results-8-20 Expired
469 KB
sha256:ccb1d55cf81b82136ad60b29ecdfe6dad05e21502567ecdb74c4acf7497f4eac
test-results-9-20 Expired
504 KB
sha256:1d499e275beafa75046b51eaaa45f225b5bb9fb5e6ebab073dc729d9f22c3f90