feat(badge): add round to the ionic theme (#29574)
@ -312,7 +312,7 @@ ion-backdrop,event,ionBackdropTap,void,true
|
|||||||
ion-badge,shadow
|
ion-badge,shadow
|
||||||
ion-badge,prop,color,"danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string & Record<never, never> | undefined,undefined,false,true
|
ion-badge,prop,color,"danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string & Record<never, never> | undefined,undefined,false,true
|
||||||
ion-badge,prop,mode,"ios" | "md",undefined,false,false
|
ion-badge,prop,mode,"ios" | "md",undefined,false,false
|
||||||
ion-badge,prop,shape,"soft" | undefined,undefined,false,false
|
ion-badge,prop,shape,"round" | "soft" | undefined,undefined,false,false
|
||||||
ion-badge,prop,size,"large" | "medium" | "small" | "xlarge" | "xsmall" | "xxsmall" | undefined,undefined,false,false
|
ion-badge,prop,size,"large" | "medium" | "small" | "xlarge" | "xsmall" | "xxsmall" | undefined,undefined,false,false
|
||||||
ion-badge,prop,theme,"ios" | "md" | "ionic",undefined,false,false
|
ion-badge,prop,theme,"ios" | "md" | "ionic",undefined,false,false
|
||||||
ion-badge,css-prop,--background,ionic
|
ion-badge,css-prop,--background,ionic
|
||||||
|
8
core/src/components.d.ts
vendored
@ -418,9 +418,9 @@ export namespace Components {
|
|||||||
*/
|
*/
|
||||||
"mode"?: "ios" | "md";
|
"mode"?: "ios" | "md";
|
||||||
/**
|
/**
|
||||||
* Set to `"soft"` for slightly rounded corners. Defaults to `"round"` for the `ionic` theme, undefined for all other themes.
|
* Set to `"soft"` for slightly rounded corners. Set to `"round"` for fully rounded corners. Defaults to `"round"` for the `ionic` theme, undefined for all other themes.
|
||||||
*/
|
*/
|
||||||
"shape"?: 'soft';
|
"shape"?: 'soft' | 'round';
|
||||||
/**
|
/**
|
||||||
* Set to `"xxsmall"` for the smallest badge. Set to "xsmall" for a very small badge. Set to `"small"` for a small badge. Set to "medium" for a medium badge. Set to "large" for a large badge. Set to `"xlarge"` for the largest badge. Defaults to `"small"` for the `ionic` theme, undefined for all other themes.
|
* Set to `"xxsmall"` for the smallest badge. Set to "xsmall" for a very small badge. Set to `"small"` for a small badge. Set to "medium" for a medium badge. Set to "large" for a large badge. Set to `"xlarge"` for the largest badge. Defaults to `"small"` for the `ionic` theme, undefined for all other themes.
|
||||||
*/
|
*/
|
||||||
@ -5666,9 +5666,9 @@ declare namespace LocalJSX {
|
|||||||
*/
|
*/
|
||||||
"mode"?: "ios" | "md";
|
"mode"?: "ios" | "md";
|
||||||
/**
|
/**
|
||||||
* Set to `"soft"` for slightly rounded corners. Defaults to `"round"` for the `ionic` theme, undefined for all other themes.
|
* Set to `"soft"` for slightly rounded corners. Set to `"round"` for fully rounded corners. Defaults to `"round"` for the `ionic` theme, undefined for all other themes.
|
||||||
*/
|
*/
|
||||||
"shape"?: 'soft';
|
"shape"?: 'soft' | 'round';
|
||||||
/**
|
/**
|
||||||
* Set to `"xxsmall"` for the smallest badge. Set to "xsmall" for a very small badge. Set to `"small"` for a small badge. Set to "medium" for a medium badge. Set to "large" for a large badge. Set to `"xlarge"` for the largest badge. Defaults to `"small"` for the `ionic` theme, undefined for all other themes.
|
* Set to `"xxsmall"` for the smallest badge. Set to "xsmall" for a very small badge. Set to `"small"` for a small badge. Set to "medium" for a medium badge. Set to "large" for a large badge. Set to `"xlarge"` for the largest badge. Defaults to `"small"` for the `ionic` theme, undefined for all other themes.
|
||||||
*/
|
*/
|
||||||
|
@ -32,6 +32,10 @@
|
|||||||
@include border-radius(globals.$ionic-border-radius-100);
|
@include border-radius(globals.$ionic-border-radius-100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:host(.badge-round) {
|
||||||
|
@include border-radius(globals.$ionic-border-radius-full);
|
||||||
|
}
|
||||||
|
|
||||||
// Badge Sizes
|
// Badge Sizes
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
|
@ -28,10 +28,11 @@ export class Badge implements ComponentInterface {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set to `"soft"` for slightly rounded corners.
|
* Set to `"soft"` for slightly rounded corners.
|
||||||
|
* Set to `"round"` for fully rounded corners.
|
||||||
*
|
*
|
||||||
* Defaults to `"round"` for the `ionic` theme, undefined for all other themes.
|
* Defaults to `"round"` for the `ionic` theme, undefined for all other themes.
|
||||||
*/
|
*/
|
||||||
@Prop() shape?: 'soft';
|
@Prop() shape?: 'soft' | 'round';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set to `"xxsmall"` for the smallest badge.
|
* Set to `"xxsmall"` for the smallest badge.
|
||||||
|
@ -73,5 +73,31 @@ configs({ directions: ['ltr'], modes: ['ionic-md'] }).forEach(({ config, screens
|
|||||||
|
|
||||||
await expect(container).toHaveScreenshot(screenshot(`badge-shape-soft-larger-sizes-long-text`));
|
await expect(container).toHaveScreenshot(screenshot(`badge-shape-soft-larger-sizes-long-text`));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should render round badges', async ({ page }) => {
|
||||||
|
await page.setContent(
|
||||||
|
`
|
||||||
|
<ion-badge shape="round">1</ion-badge>
|
||||||
|
`,
|
||||||
|
config
|
||||||
|
);
|
||||||
|
|
||||||
|
const badge = page.locator('ion-badge');
|
||||||
|
|
||||||
|
await expect(badge).toHaveScreenshot(screenshot(`badge-shape-round`));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should render round badges with long text', async ({ page }) => {
|
||||||
|
await page.setContent(
|
||||||
|
`
|
||||||
|
<ion-badge shape="round">99+</ion-badge>
|
||||||
|
`,
|
||||||
|
config
|
||||||
|
);
|
||||||
|
|
||||||
|
const badge = page.locator('ion-badge');
|
||||||
|
|
||||||
|
await expect(badge).toHaveScreenshot(screenshot(`badge-shape-round-long-text`));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
After Width: | Height: | Size: 847 B |
After Width: | Height: | Size: 720 B |
After Width: | Height: | Size: 804 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
@ -34,6 +34,11 @@
|
|||||||
<ion-badge slot="end" shape="soft">1</ion-badge>
|
<ion-badge slot="end" shape="soft">1</ion-badge>
|
||||||
<ion-badge slot="end" shape="soft">99+</ion-badge>
|
<ion-badge slot="end" shape="soft">99+</ion-badge>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
<ion-item>
|
||||||
|
<ion-label>Round</ion-label>
|
||||||
|
<ion-badge slot="end" shape="round">1</ion-badge>
|
||||||
|
<ion-badge slot="end" shape="round">99+</ion-badge>
|
||||||
|
</ion-item>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
</ion-app>
|
</ion-app>
|
||||||
|
Before Width: | Height: | Size: 294 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 978 B |
Before Width: | Height: | Size: 278 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 677 B After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 1007 B |
Before Width: | Height: | Size: 284 B After Width: | Height: | Size: 834 B |
Before Width: | Height: | Size: 224 B After Width: | Height: | Size: 937 B |
Before Width: | Height: | Size: 668 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1000 B After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 611 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 214 B After Width: | Height: | Size: 847 B |
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 720 B |
Before Width: | Height: | Size: 209 B After Width: | Height: | Size: 804 B |
Before Width: | Height: | Size: 619 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 656 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 300 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 385 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 808 B After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 791 B After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 187 B After Width: | Height: | Size: 636 B |
Before Width: | Height: | Size: 199 B After Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 618 B |
Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 953 B |
Before Width: | Height: | Size: 554 B After Width: | Height: | Size: 890 B |
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 895 B |
Before Width: | Height: | Size: 177 B After Width: | Height: | Size: 444 B |
Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 383 B |
Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 430 B |
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 715 B |
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 835 B |
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 701 B |