diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml
index 92ceab00..fe526cf4 100644
--- a/.github/workflows/development.yml
+++ b/.github/workflows/development.yml
@@ -52,12 +52,12 @@ jobs:
- name: โ๏ธ checkout repository
uses: actions/checkout@v4
- - name: "๐ง setup pnpm"
+ - name: ๐ง setup pnpm
uses: pnpm/action-setup@v3
with:
version: 9
- - name: "๐ง setup node"
+ - name: ๐ง setup node
uses: actions/setup-node@v4
with:
node-version: 20
@@ -74,36 +74,4 @@ jobs:
uses: google/wireit@setup-github-actions-caching/v2
- name: ๐งช run tests
- run: |
- pnpm test | tee output.log
- if grep -q -e "Error: A snapshot doesn't exist at" -e "Screenshot comparison failed" output.log; then
- echo "Playwright tests failed due to a snapshot issue."
- echo "SNAPSHOT_DIFFERENCES=true" >> $GITHUB_ENV
- exit 1
- elif grep -q "failed" output.log; then
- echo "Playwright tests failed due to a non-snapshot issue."
- exit 1
- fi
-
- - name: ๐๏ธ archive artifacts
- uses: actions/upload-artifact@v4
- id: artifact-upload
- if: ${{ !cancelled() }}
- with:
- name: playwright-report
- path: packages/web-components/playwright-report/
- retention-days: 30
-
- - name: โ๏ธ comment on PR with report link
- uses: thollander/actions-comment-pull-request@v3
- if: ${{ failure() && env.SNAPSHOT_DIFFERENCES == 'true' }}
- with:
- message: |
- > [!CAUTION]
- > Playwright visual snapshot differences were detected.
- > You can download the [report](${{ steps.artifact-upload.outputs.artifact-url }}) file.
-
- To approve the snapshot changes and update the snapshots, please comment:
- ```
- /approve-snapshots
- ```
+ run: pnpm test
diff --git a/.github/workflows/update-snapshots.yml b/.github/workflows/update-snapshots.yml
deleted file mode 100644
index 78aebf5a..00000000
--- a/.github/workflows/update-snapshots.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-name: ๐ธ Update Snapshots from /approve-snapshots
-
-on:
- issue_comment:
- types:
- - created
-
-permissions:
- contents: write
- pull-requests: write
-
-jobs:
- update-snapshots:
- name: Update Snapshots
- if: ${{ github.event.issue.pull_request && github.event.comment.body == '/approve-snapshots' }}
- runs-on: ubuntu-latest
-
- steps:
- - name: ๐ get PR branch
- uses: xt0rted/pull-request-comment-branch@v2
- id: comment-branch
-
- - name: โ๏ธ checkout PR branch
- uses: actions/checkout@v4
- with:
- ref: ${{ steps.comment-branch.outputs.head_ref }}
-
- - name: โ๏ธ comment action started
- uses: thollander/actions-comment-pull-request@v3
- with:
- message: |
- > /approve-snapshots
-
- โณ Updating snapshots. Click [here](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) to see the status.
-
- - name: ๐ง setup pnpm
- uses: pnpm/action-setup@v3
- with:
- version: 9
-
-
- - name: ๐ง setup node
- uses: actions/setup-node@v4
- with:
- node-version: 20
- cache: "pnpm"
-
- - name: ๐ฆ install dependencies
- run: pnpm install
-
- - name: ๐ญ install playwright
- run: pnpm playwright install --with-deps --only-shell
-
- - name: ๐ธ update snapshots
- run: pnpm run test:update-snapshots
-
- - name: โ๏ธ commit and push updated snapshots
- uses: stefanzweifel/git-auto-commit-action@v5
- with:
- commit_message: 'Update e2e snapshots'
-
- - name: โ
comment success
- uses: thollander/actions-comment-pull-request@v3
- with:
- message: |
- โ
Successfully updated and committed Playwright snapshots!
diff --git a/packages/web-components/playwright.config.ts b/packages/web-components/playwright.config.ts
index 9913eaeb..165c94e5 100644
--- a/packages/web-components/playwright.config.ts
+++ b/packages/web-components/playwright.config.ts
@@ -6,19 +6,19 @@ export default defineConfig({
retries: process.env.CI ? 2 : undefined,
forbidOnly: !!process.env.CI,
reporter: process.env.CI
- ? [["github"], ["html", { open: "never" }]]
+ ? [["github"]]
: [["list"], ["html", { open: "never" }]],
projects: [
{
- name: "๐ป Desktop",
+ name: "desktop",
use: devices["Desktop Chrome"],
},
// {
- // name: "๐ฑ iOS",
+ // name: "iOS",
// use: devices["iPhone X"],
// },
{
- name: "๐ฑ Android",
+ name: "android",
use: devices["Galaxy S9+"],
},
],
@@ -35,4 +35,10 @@ export default defineConfig({
timeout: 1000,
},
},
+ snapshotPathTemplate: `{testDir}/{testFileDir}/test-snapshots/{arg}{ext}`,
+ expect: {
+ toHaveScreenshot: {
+ maxDiffPixels: 100,
+ },
+ },
});
diff --git a/packages/web-components/src/button/icon-button/icon-button.test.ts b/packages/web-components/src/button/icon-button/icon-button.test.ts
index 380cc522..28b63827 100644
--- a/packages/web-components/src/button/icon-button/icon-button.test.ts
+++ b/packages/web-components/src/button/icon-button/icon-button.test.ts
@@ -198,4 +198,50 @@ describe("๐งฉ icon-button", () => {
await expect(spinner).toBeVisible();
await expect(root).toHaveAttribute("aria-busy", "true");
});
+
+ test("๐ธ should have correct ui in different variants, sizes and loading states", async ({
+ page,
+ }) => {
+ const sizeValues = ["sm", "md", "lg"];
+ const loadingValues = [true, false];
+ const variantValues = [
+ "primary",
+ "ghost",
+ "naked",
+ "elevated",
+ "destructive",
+ "brand",
+ ];
+
+ for (const variant of variantValues) {
+ for (const size of sizeValues) {
+ for (const loading of loadingValues) {
+ await render(
+ page,
+ `
+
+
+
+ `,
+ );
+ const component = page.getByTestId("test-button");
+
+ const screenshot = `${["icon-button", size, variant, loading && "loading"].filter(Boolean).join("_")}.png`;
+
+ await expect(component).toHaveScreenshot(screenshot, {
+ animations: "disabled", // we disable animations because of the spinner
+ omitBackground: true,
+ });
+ }
+ }
+ }
+ });
});
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-brand-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-brand-loading.png
new file mode 100644
index 00000000..93c7b0e4
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-brand-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-brand.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-brand.png
new file mode 100644
index 00000000..7a86df74
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-brand.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-destructive-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-destructive-loading.png
new file mode 100644
index 00000000..39949472
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-destructive-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-destructive.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-destructive.png
new file mode 100644
index 00000000..dcc5d61f
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-destructive.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-elevated-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-elevated-loading.png
new file mode 100644
index 00000000..6f77e79a
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-elevated-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-elevated.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-elevated.png
new file mode 100644
index 00000000..4f251dc1
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-elevated.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-ghost-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-ghost-loading.png
new file mode 100644
index 00000000..e44f46f3
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-ghost-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-ghost.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-ghost.png
new file mode 100644
index 00000000..f5e3b132
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-ghost.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-naked-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-naked-loading.png
new file mode 100644
index 00000000..8e9dd9e5
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-naked-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-naked.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-naked.png
new file mode 100644
index 00000000..4722a272
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-naked.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-primary-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-primary-loading.png
new file mode 100644
index 00000000..53193425
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-primary-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-primary.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-primary.png
new file mode 100644
index 00000000..51ee1e3c
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-lg-primary.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-brand-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-brand-loading.png
new file mode 100644
index 00000000..30082f8f
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-brand-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-brand.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-brand.png
new file mode 100644
index 00000000..5012e7b9
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-brand.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-destructive-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-destructive-loading.png
new file mode 100644
index 00000000..5e99f845
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-destructive-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-destructive.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-destructive.png
new file mode 100644
index 00000000..5f1c4f38
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-destructive.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-elevated-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-elevated-loading.png
new file mode 100644
index 00000000..40573cf2
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-elevated-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-elevated.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-elevated.png
new file mode 100644
index 00000000..9c103bce
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-elevated.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-ghost-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-ghost-loading.png
new file mode 100644
index 00000000..e6bc934a
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-ghost-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-ghost.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-ghost.png
new file mode 100644
index 00000000..70118fe7
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-ghost.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-naked-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-naked-loading.png
new file mode 100644
index 00000000..00865f2a
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-naked-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-naked.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-naked.png
new file mode 100644
index 00000000..0f216ed6
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-naked.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-primary-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-primary-loading.png
new file mode 100644
index 00000000..aaab8b10
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-primary-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-primary.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-primary.png
new file mode 100644
index 00000000..6ea81c57
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-md-primary.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-brand-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-brand-loading.png
new file mode 100644
index 00000000..81e20565
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-brand-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-brand.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-brand.png
new file mode 100644
index 00000000..2c3b7772
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-brand.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-destructive-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-destructive-loading.png
new file mode 100644
index 00000000..94371613
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-destructive-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-destructive.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-destructive.png
new file mode 100644
index 00000000..4c52f09b
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-destructive.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-elevated-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-elevated-loading.png
new file mode 100644
index 00000000..430bb192
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-elevated-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-elevated.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-elevated.png
new file mode 100644
index 00000000..2cdbdb6a
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-elevated.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-ghost-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-ghost-loading.png
new file mode 100644
index 00000000..3de17ed2
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-ghost-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-ghost.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-ghost.png
new file mode 100644
index 00000000..d3cf1af7
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-ghost.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-naked-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-naked-loading.png
new file mode 100644
index 00000000..086752d1
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-naked-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-naked.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-naked.png
new file mode 100644
index 00000000..439bb502
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-naked.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-primary-loading.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-primary-loading.png
new file mode 100644
index 00000000..9642ef15
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-primary-loading.png differ
diff --git a/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-primary.png b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-primary.png
new file mode 100644
index 00000000..43d25e5d
Binary files /dev/null and b/packages/web-components/src/button/icon-button/test-snapshots/icon-button-sm-primary.png differ
diff --git a/packages/web-components/src/button/standard/button.test.ts b/packages/web-components/src/button/standard/button.test.ts
index 3f566650..ea3c585b 100644
--- a/packages/web-components/src/button/standard/button.test.ts
+++ b/packages/web-components/src/button/standard/button.test.ts
@@ -210,4 +210,48 @@ describe("๐งฉ button", () => {
await expect(spinner).toBeVisible();
await expect(root).toHaveAttribute("aria-busy", "true");
});
+
+ test("๐ธ should have correct ui in different variants, sizes and loading states", async ({
+ page,
+ }) => {
+ const sizeValues = ["sm", "md", "lg"];
+ const loadingValues = [true, false];
+ const variantValues = [
+ "primary",
+ "ghost",
+ "naked",
+ "elevated",
+ "destructive",
+ "brand",
+ ];
+
+ for (const variant of variantValues) {
+ for (const size of sizeValues) {
+ for (const loading of loadingValues) {
+ await render(
+ page,
+ `
+
+ ุนููุงู
+
+ `,
+ );
+ const component = page.getByTestId("test-button");
+
+ const screenshot = `${["button", size, variant, loading && "loading"].filter(Boolean).join("_")}.png`;
+
+ await expect(component).toHaveScreenshot(screenshot, {
+ animations: "disabled", // we disable animations because of the spinner
+ omitBackground: true,
+ });
+ }
+ }
+ }
+ });
});
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-brand-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-brand-loading.png
new file mode 100644
index 00000000..de94b211
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-brand-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-brand.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-brand.png
new file mode 100644
index 00000000..3cf71385
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-brand.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-destructive-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-destructive-loading.png
new file mode 100644
index 00000000..6e0aacaa
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-destructive-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-destructive.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-destructive.png
new file mode 100644
index 00000000..7226db8b
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-destructive.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-elevated-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-elevated-loading.png
new file mode 100644
index 00000000..6aa6fceb
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-elevated-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-elevated.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-elevated.png
new file mode 100644
index 00000000..fcc7c372
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-elevated.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-ghost-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-ghost-loading.png
new file mode 100644
index 00000000..fb420f1b
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-ghost-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-ghost.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-ghost.png
new file mode 100644
index 00000000..4e5b32b4
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-ghost.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-naked-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-naked-loading.png
new file mode 100644
index 00000000..205f5733
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-naked-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-naked.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-naked.png
new file mode 100644
index 00000000..07c147a5
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-naked.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-primary-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-primary-loading.png
new file mode 100644
index 00000000..b1e405f3
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-primary-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-lg-primary.png b/packages/web-components/src/button/standard/test-snapshots/button-lg-primary.png
new file mode 100644
index 00000000..3d215bfc
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-lg-primary.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-brand-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-md-brand-loading.png
new file mode 100644
index 00000000..26e444bf
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-brand-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-brand.png b/packages/web-components/src/button/standard/test-snapshots/button-md-brand.png
new file mode 100644
index 00000000..797d1aa1
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-brand.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-destructive-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-md-destructive-loading.png
new file mode 100644
index 00000000..e6d24c1b
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-destructive-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-destructive.png b/packages/web-components/src/button/standard/test-snapshots/button-md-destructive.png
new file mode 100644
index 00000000..b0642441
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-destructive.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-elevated-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-md-elevated-loading.png
new file mode 100644
index 00000000..ba1494ae
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-elevated-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-elevated.png b/packages/web-components/src/button/standard/test-snapshots/button-md-elevated.png
new file mode 100644
index 00000000..a0272a93
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-elevated.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-ghost-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-md-ghost-loading.png
new file mode 100644
index 00000000..3a7c0dda
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-ghost-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-ghost.png b/packages/web-components/src/button/standard/test-snapshots/button-md-ghost.png
new file mode 100644
index 00000000..2c84a0b9
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-ghost.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-naked-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-md-naked-loading.png
new file mode 100644
index 00000000..926f6226
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-naked-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-naked.png b/packages/web-components/src/button/standard/test-snapshots/button-md-naked.png
new file mode 100644
index 00000000..fe887025
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-naked.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-primary-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-md-primary-loading.png
new file mode 100644
index 00000000..d911b076
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-primary-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-md-primary.png b/packages/web-components/src/button/standard/test-snapshots/button-md-primary.png
new file mode 100644
index 00000000..9c837b43
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-md-primary.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-brand-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-brand-loading.png
new file mode 100644
index 00000000..395dfe64
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-brand-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-brand.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-brand.png
new file mode 100644
index 00000000..e3118664
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-brand.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-destructive-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-destructive-loading.png
new file mode 100644
index 00000000..db501c58
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-destructive-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-destructive.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-destructive.png
new file mode 100644
index 00000000..4310efb2
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-destructive.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-elevated-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-elevated-loading.png
new file mode 100644
index 00000000..a1b101d6
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-elevated-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-elevated.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-elevated.png
new file mode 100644
index 00000000..ef2f5979
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-elevated.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-ghost-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-ghost-loading.png
new file mode 100644
index 00000000..d3136d3d
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-ghost-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-ghost.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-ghost.png
new file mode 100644
index 00000000..18200fd8
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-ghost.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-naked-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-naked-loading.png
new file mode 100644
index 00000000..bebaf009
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-naked-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-naked.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-naked.png
new file mode 100644
index 00000000..0f0ef1b3
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-naked.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-primary-loading.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-primary-loading.png
new file mode 100644
index 00000000..ddb51ee3
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-primary-loading.png differ
diff --git a/packages/web-components/src/button/standard/test-snapshots/button-sm-primary.png b/packages/web-components/src/button/standard/test-snapshots/button-sm-primary.png
new file mode 100644
index 00000000..45f2669b
Binary files /dev/null and b/packages/web-components/src/button/standard/test-snapshots/button-sm-primary.png differ