diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-colorblind-linux.png
new file mode 100644
index 00000000000..4d46967ddff
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-dimmed-linux.png
new file mode 100644
index 00000000000..7c279cae7cf
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..269fa7e9bc1
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-linux.png
new file mode 100644
index 00000000000..aafe2d94635
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..aafe2d94635
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-colorblind-linux.png
new file mode 100644
index 00000000000..768d375e76f
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-high-contrast-linux.png
new file mode 100644
index 00000000000..a51421a63d0
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-linux.png
new file mode 100644
index 00000000000..a9478d40c75
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-tritanopia-linux.png
new file mode 100644
index 00000000000..a9478d40c75
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Danger-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-colorblind-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-dimmed-linux.png
new file mode 100644
index 00000000000..80e8ad1fcac
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..2b7eecc23d7
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-colorblind-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-high-contrast-linux.png
new file mode 100644
index 00000000000..27bffd473f7
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-tritanopia-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Default-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-colorblind-linux.png
new file mode 100644
index 00000000000..0f679e807c0
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-dimmed-linux.png
new file mode 100644
index 00000000000..126f95d553b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..7e6709c4fa9
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-linux.png
new file mode 100644
index 00000000000..0f679e807c0
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..0f679e807c0
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-colorblind-linux.png
new file mode 100644
index 00000000000..c05ad07b61e
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-high-contrast-linux.png
new file mode 100644
index 00000000000..08d492a3a67
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-linux.png
new file mode 100644
index 00000000000..c05ad07b61e
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-tritanopia-linux.png
new file mode 100644
index 00000000000..c05ad07b61e
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Disabled-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-colorblind-linux.png
new file mode 100644
index 00000000000..6da539b28fd
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-dimmed-linux.png
new file mode 100644
index 00000000000..e0bf05aa9e6
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..b79bdd43ac2
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-linux.png
new file mode 100644
index 00000000000..6da539b28fd
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..6da539b28fd
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-colorblind-linux.png
new file mode 100644
index 00000000000..d45ffd005a8
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-high-contrast-linux.png
new file mode 100644
index 00000000000..c5d60926a9f
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-linux.png
new file mode 100644
index 00000000000..d45ffd005a8
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-tritanopia-linux.png
new file mode 100644
index 00000000000..d45ffd005a8
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Invisible-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-colorblind-linux.png
new file mode 100644
index 00000000000..40a0c859db8
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-dimmed-linux.png
new file mode 100644
index 00000000000..ca1b5b17751
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..5f38391c8cc
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-linux.png
new file mode 100644
index 00000000000..40a0c859db8
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..40a0c859db8
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-colorblind-linux.png
new file mode 100644
index 00000000000..6970fb25932
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-high-contrast-linux.png
new file mode 100644
index 00000000000..f073bec60e3
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-linux.png
new file mode 100644
index 00000000000..6970fb25932
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-tritanopia-linux.png
new file mode 100644
index 00000000000..6970fb25932
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Large-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-colorblind-linux.png
new file mode 100644
index 00000000000..bcb81af0467
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-dimmed-linux.png
new file mode 100644
index 00000000000..9ff68751dab
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..b79587f4afe
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-linux.png
new file mode 100644
index 00000000000..bcb81af0467
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..bcb81af0467
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-colorblind-linux.png
new file mode 100644
index 00000000000..093d2de4152
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-high-contrast-linux.png
new file mode 100644
index 00000000000..fc2901cc27b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-linux.png
new file mode 100644
index 00000000000..093d2de4152
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-tritanopia-linux.png
new file mode 100644
index 00000000000..093d2de4152
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Leading-Visual-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-colorblind-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-dimmed-linux.png
new file mode 100644
index 00000000000..80e8ad1fcac
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..2b7eecc23d7
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-colorblind-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-high-contrast-linux.png
new file mode 100644
index 00000000000..27bffd473f7
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-tritanopia-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Medium-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-colorblind-linux.png
new file mode 100644
index 00000000000..37a4bdfe8be
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-dimmed-linux.png
new file mode 100644
index 00000000000..e4081923124
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..379f2bd5aa1
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-linux.png
new file mode 100644
index 00000000000..37a4bdfe8be
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..37a4bdfe8be
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-colorblind-linux.png
new file mode 100644
index 00000000000..9893ec21912
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-high-contrast-linux.png
new file mode 100644
index 00000000000..e4cdf292d82
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-linux.png
new file mode 100644
index 00000000000..9893ec21912
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-tritanopia-linux.png
new file mode 100644
index 00000000000..9893ec21912
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Outline-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-colorblind-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-dimmed-linux.png
new file mode 100644
index 00000000000..80e8ad1fcac
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..2b7eecc23d7
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..09fca2c6b20
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-colorblind-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-high-contrast-linux.png
new file mode 100644
index 00000000000..27bffd473f7
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-tritanopia-linux.png
new file mode 100644
index 00000000000..9a6e7d2477b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Playground-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-colorblind-linux.png
new file mode 100644
index 00000000000..0163734217f
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-dimmed-linux.png
new file mode 100644
index 00000000000..549458e0684
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..baa9f12ddb8
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-linux.png
new file mode 100644
index 00000000000..9b4f6a6ddcd
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..0163734217f
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-colorblind-linux.png
new file mode 100644
index 00000000000..e1f9cc0742e
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-high-contrast-linux.png
new file mode 100644
index 00000000000..22cca92d77c
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-linux.png
new file mode 100644
index 00000000000..244bcebe27f
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-tritanopia-linux.png
new file mode 100644
index 00000000000..e1f9cc0742e
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Primary-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-colorblind-linux.png
new file mode 100644
index 00000000000..6a72a96baf1
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-dimmed-linux.png
new file mode 100644
index 00000000000..a52a6610793
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..a722086fbdd
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-linux.png
new file mode 100644
index 00000000000..6a72a96baf1
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..6a72a96baf1
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-colorblind-linux.png
new file mode 100644
index 00000000000..0bffaa41c89
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-high-contrast-linux.png
new file mode 100644
index 00000000000..c469395bc1d
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-linux.png
new file mode 100644
index 00000000000..0bffaa41c89
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-tritanopia-linux.png
new file mode 100644
index 00000000000..0bffaa41c89
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Small-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-colorblind-linux.png
new file mode 100644
index 00000000000..dcb7e013f1d
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-dimmed-linux.png
new file mode 100644
index 00000000000..b5acd817e88
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..20db6851f7c
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-linux.png
new file mode 100644
index 00000000000..dcb7e013f1d
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..dcb7e013f1d
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-colorblind-linux.png
new file mode 100644
index 00000000000..e8108858328
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-high-contrast-linux.png
new file mode 100644
index 00000000000..d9643b3ea56
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-linux.png
new file mode 100644
index 00000000000..e8108858328
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-tritanopia-linux.png
new file mode 100644
index 00000000000..e8108858328
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Counter-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-colorblind-linux.png
new file mode 100644
index 00000000000..6b6c693667c
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-dimmed-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-dimmed-linux.png
new file mode 100644
index 00000000000..4fb4f267546
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..aebe0f9fcc6
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-linux.png
new file mode 100644
index 00000000000..6b6c693667c
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..6b6c693667c
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-colorblind-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-colorblind-linux.png
new file mode 100644
index 00000000000..6c68fb0861b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-high-contrast-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-high-contrast-linux.png
new file mode 100644
index 00000000000..966331ec746
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-linux.png
new file mode 100644
index 00000000000..6c68fb0861b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-linux.png differ
diff --git a/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-tritanopia-linux.png b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-tritanopia-linux.png
new file mode 100644
index 00000000000..6c68fb0861b
Binary files /dev/null and b/.playwright/snapshots/components/Button.test.ts-snapshots/Button-Trailing-Visual-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-colorblind-linux.png
new file mode 100644
index 00000000000..433609dca4d
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-dimmed-linux.png
new file mode 100644
index 00000000000..120aa345f9f
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..ff5034030b4
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-linux.png
new file mode 100644
index 00000000000..1c46911a8b7
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..1c46911a8b7
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-colorblind-linux.png
new file mode 100644
index 00000000000..4308eaffc14
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-high-contrast-linux.png
new file mode 100644
index 00000000000..fea7b78c2ab
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-linux.png
new file mode 100644
index 00000000000..b784eb66ff2
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-tritanopia-linux.png
new file mode 100644
index 00000000000..b784eb66ff2
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Danger-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-colorblind-linux.png
new file mode 100644
index 00000000000..f7c84f36e51
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-dimmed-linux.png
new file mode 100644
index 00000000000..4b37bcd228c
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..d1a17b9413e
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-linux.png
new file mode 100644
index 00000000000..f7c84f36e51
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..f7c84f36e51
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-colorblind-linux.png
new file mode 100644
index 00000000000..4f122c9dc18
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-high-contrast-linux.png
new file mode 100644
index 00000000000..5e39ccd261b
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-linux.png
new file mode 100644
index 00000000000..4f122c9dc18
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-tritanopia-linux.png
new file mode 100644
index 00000000000..4f122c9dc18
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Default-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-colorblind-linux.png
new file mode 100644
index 00000000000..3ecad5da83f
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-dimmed-linux.png
new file mode 100644
index 00000000000..c35373ffcb5
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..21a7ebe4abb
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-linux.png
new file mode 100644
index 00000000000..3ecad5da83f
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..3ecad5da83f
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-colorblind-linux.png
new file mode 100644
index 00000000000..4effbfa23a5
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-high-contrast-linux.png
new file mode 100644
index 00000000000..1a3cceaa3bf
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-linux.png
new file mode 100644
index 00000000000..4effbfa23a5
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-tritanopia-linux.png
new file mode 100644
index 00000000000..4effbfa23a5
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Disabled-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-colorblind-linux.png
new file mode 100644
index 00000000000..706caa8285a
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-dimmed-linux.png
new file mode 100644
index 00000000000..cae151129dd
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..60c491f81b7
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-linux.png
new file mode 100644
index 00000000000..706caa8285a
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..706caa8285a
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-colorblind-linux.png
new file mode 100644
index 00000000000..6f38300c227
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-high-contrast-linux.png
new file mode 100644
index 00000000000..88d04cb1f5b
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-linux.png
new file mode 100644
index 00000000000..6f38300c227
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-tritanopia-linux.png
new file mode 100644
index 00000000000..6f38300c227
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Invisible-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-colorblind-linux.png
new file mode 100644
index 00000000000..98c36810154
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-dimmed-linux.png
new file mode 100644
index 00000000000..fa494b8694f
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..77d4d3b0e1c
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-linux.png
new file mode 100644
index 00000000000..98c36810154
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..98c36810154
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-colorblind-linux.png
new file mode 100644
index 00000000000..7def6954541
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-high-contrast-linux.png
new file mode 100644
index 00000000000..704b01b094d
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-linux.png
new file mode 100644
index 00000000000..7def6954541
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-tritanopia-linux.png
new file mode 100644
index 00000000000..7def6954541
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Large-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-colorblind-linux.png
new file mode 100644
index 00000000000..f7c84f36e51
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-dimmed-linux.png
new file mode 100644
index 00000000000..4b37bcd228c
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..d1a17b9413e
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-linux.png
new file mode 100644
index 00000000000..f7c84f36e51
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..f7c84f36e51
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-colorblind-linux.png
new file mode 100644
index 00000000000..4f122c9dc18
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-high-contrast-linux.png
new file mode 100644
index 00000000000..5e39ccd261b
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-linux.png
new file mode 100644
index 00000000000..4f122c9dc18
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-tritanopia-linux.png
new file mode 100644
index 00000000000..4f122c9dc18
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Medium-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-colorblind-linux.png
new file mode 100644
index 00000000000..731730d9667
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-dimmed-linux.png
new file mode 100644
index 00000000000..254594eaadd
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..b000d2bc440
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-linux.png
new file mode 100644
index 00000000000..731730d9667
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..731730d9667
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-colorblind-linux.png
new file mode 100644
index 00000000000..84d98d97639
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-high-contrast-linux.png
new file mode 100644
index 00000000000..c77dcec1007
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-linux.png
new file mode 100644
index 00000000000..84d98d97639
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-tritanopia-linux.png
new file mode 100644
index 00000000000..84d98d97639
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Playground-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-colorblind-linux.png
new file mode 100644
index 00000000000..6d9dbbce002
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-dimmed-linux.png
new file mode 100644
index 00000000000..66e90591a89
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..94d314ee459
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-linux.png
new file mode 100644
index 00000000000..61de8c65f7b
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..6d9dbbce002
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-colorblind-linux.png
new file mode 100644
index 00000000000..8c49c3fb0c8
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-high-contrast-linux.png
new file mode 100644
index 00000000000..85322075097
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-linux.png
new file mode 100644
index 00000000000..765bdc62f5d
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-tritanopia-linux.png
new file mode 100644
index 00000000000..8c49c3fb0c8
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Primary-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-colorblind-linux.png
new file mode 100644
index 00000000000..f5a41634dfc
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-dimmed-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-dimmed-linux.png
new file mode 100644
index 00000000000..19edd517990
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..112344da934
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-linux.png
new file mode 100644
index 00000000000..f5a41634dfc
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..f5a41634dfc
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-colorblind-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-colorblind-linux.png
new file mode 100644
index 00000000000..503dd559d71
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-high-contrast-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-high-contrast-linux.png
new file mode 100644
index 00000000000..d73e0b30b8a
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-linux.png
new file mode 100644
index 00000000000..503dd559d71
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-linux.png differ
diff --git a/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-tritanopia-linux.png b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-tritanopia-linux.png
new file mode 100644
index 00000000000..503dd559d71
Binary files /dev/null and b/.playwright/snapshots/components/IconButton.test.ts-snapshots/IconButton-Small-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-colorblind-linux.png
new file mode 100644
index 00000000000..8e9a8cefb04
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-dimmed-linux.png
new file mode 100644
index 00000000000..6efca82d383
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..cc36b544690
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-linux.png
new file mode 100644
index 00000000000..5540f5e343c
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..5540f5e343c
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-colorblind-linux.png
new file mode 100644
index 00000000000..2fd09ce5d84
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-high-contrast-linux.png
new file mode 100644
index 00000000000..7581948193a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-linux.png
new file mode 100644
index 00000000000..19973323ad1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-tritanopia-linux.png
new file mode 100644
index 00000000000..19973323ad1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Danger-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-colorblind-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-dimmed-linux.png
new file mode 100644
index 00000000000..e2d54cd3a16
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..a4038ddb289
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-colorblind-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-high-contrast-linux.png
new file mode 100644
index 00000000000..dbf94992df7
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-tritanopia-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Default-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-colorblind-linux.png
new file mode 100644
index 00000000000..96491afdfc6
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-dimmed-linux.png
new file mode 100644
index 00000000000..1a11b62dbbe
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..36cf32ee771
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-linux.png
new file mode 100644
index 00000000000..96491afdfc6
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..96491afdfc6
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-colorblind-linux.png
new file mode 100644
index 00000000000..3011b428e1f
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-high-contrast-linux.png
new file mode 100644
index 00000000000..d274a98d639
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-linux.png
new file mode 100644
index 00000000000..3011b428e1f
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-tritanopia-linux.png
new file mode 100644
index 00000000000..3011b428e1f
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-colorblind-linux.png
new file mode 100644
index 00000000000..da4f705945e
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-dimmed-linux.png
new file mode 100644
index 00000000000..15651ab92f0
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..60370b7d94c
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-linux.png
new file mode 100644
index 00000000000..da4f705945e
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..da4f705945e
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-colorblind-linux.png
new file mode 100644
index 00000000000..7dee981476c
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-high-contrast-linux.png
new file mode 100644
index 00000000000..ccffbdd3377
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-linux.png
new file mode 100644
index 00000000000..7dee981476c
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-tritanopia-linux.png
new file mode 100644
index 00000000000..7dee981476c
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Large-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-colorblind-linux.png
new file mode 100644
index 00000000000..974631b9b5e
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-dimmed-linux.png
new file mode 100644
index 00000000000..5cec6060501
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..434329e791a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-linux.png
new file mode 100644
index 00000000000..974631b9b5e
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..974631b9b5e
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-colorblind-linux.png
new file mode 100644
index 00000000000..7f23cee775f
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-high-contrast-linux.png
new file mode 100644
index 00000000000..7a23732c0d9
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-linux.png
new file mode 100644
index 00000000000..7f23cee775f
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-tritanopia-linux.png
new file mode 100644
index 00000000000..7f23cee775f
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Leading-Visual-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-colorblind-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-dimmed-linux.png
new file mode 100644
index 00000000000..e2d54cd3a16
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..a4038ddb289
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-colorblind-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-high-contrast-linux.png
new file mode 100644
index 00000000000..dbf94992df7
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-tritanopia-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Medium-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-colorblind-linux.png
new file mode 100644
index 00000000000..f66a1116f15
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-dimmed-linux.png
new file mode 100644
index 00000000000..bcb806c2680
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..34917cad01b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-linux.png
new file mode 100644
index 00000000000..f66a1116f15
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..f66a1116f15
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-colorblind-linux.png
new file mode 100644
index 00000000000..763dfe08f8a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-high-contrast-linux.png
new file mode 100644
index 00000000000..1405af83ae1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-linux.png
new file mode 100644
index 00000000000..763dfe08f8a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-tritanopia-linux.png
new file mode 100644
index 00000000000..763dfe08f8a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Outline-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-colorblind-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-dimmed-linux.png
new file mode 100644
index 00000000000..e2d54cd3a16
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..a4038ddb289
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-colorblind-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-high-contrast-linux.png
new file mode 100644
index 00000000000..dbf94992df7
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-tritanopia-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Playground-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-colorblind-linux.png
new file mode 100644
index 00000000000..c60fd519a38
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-dimmed-linux.png
new file mode 100644
index 00000000000..de981c90608
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..8ecb03ad3fd
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-linux.png
new file mode 100644
index 00000000000..d808eb30ff6
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..c60fd519a38
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-colorblind-linux.png
new file mode 100644
index 00000000000..ea5c6a07b7d
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-high-contrast-linux.png
new file mode 100644
index 00000000000..1425e9c6731
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-linux.png
new file mode 100644
index 00000000000..cfdf0ab0ac5
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-tritanopia-linux.png
new file mode 100644
index 00000000000..ea5c6a07b7d
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Primary-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-colorblind-linux.png
new file mode 100644
index 00000000000..c4463f73bd5
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-dimmed-linux.png
new file mode 100644
index 00000000000..18b733da11d
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..809ff437833
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-linux.png
new file mode 100644
index 00000000000..c4463f73bd5
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..c4463f73bd5
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-colorblind-linux.png
new file mode 100644
index 00000000000..c7a6150491a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-high-contrast-linux.png
new file mode 100644
index 00000000000..f83e48065e0
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-linux.png
new file mode 100644
index 00000000000..c7a6150491a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-tritanopia-linux.png
new file mode 100644
index 00000000000..c7a6150491a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Small-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-colorblind-linux.png
new file mode 100644
index 00000000000..4c994c27c07
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-dimmed-linux.png
new file mode 100644
index 00000000000..5b32af2a158
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..f156322a80a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-linux.png
new file mode 100644
index 00000000000..4c994c27c07
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..4c994c27c07
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-colorblind-linux.png
new file mode 100644
index 00000000000..1a852ff0d7a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-high-contrast-linux.png
new file mode 100644
index 00000000000..5b15b2b0d93
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-linux.png
new file mode 100644
index 00000000000..1a852ff0d7a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-tritanopia-linux.png
new file mode 100644
index 00000000000..1a852ff0d7a
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Trailing-Visual-light-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-colorblind-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-dimmed-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-dimmed-linux.png
new file mode 100644
index 00000000000..e2d54cd3a16
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-dimmed-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-high-contrast-linux.png
new file mode 100644
index 00000000000..a4038ddb289
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-tritanopia-linux.png
new file mode 100644
index 00000000000..dc5f0f4b5c1
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-dark-tritanopia-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-colorblind-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-colorblind-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-colorblind-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-high-contrast-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-high-contrast-linux.png
new file mode 100644
index 00000000000..dbf94992df7
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-high-contrast-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-linux.png differ
diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-tritanopia-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-tritanopia-linux.png
new file mode 100644
index 00000000000..4137438612b
Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-With-React-Router-light-tritanopia-linux.png differ
diff --git a/docs/content/Button.mdx b/docs/content/Button.mdx
index 922ccba6aa8..d6b8b91dd5d 100644
--- a/docs/content/Button.mdx
+++ b/docs/content/Button.mdx
@@ -3,7 +3,7 @@ componentId: button
title: Button
status: Alpha
source: https://github.com/primer/react/tree/main/src/Button
-storybook: '/react/storybook?path=/story/components-button'
+storybook: '/react/storybook?path=/story/components-button--playground'
description: Use button for the main actions on a page or form.
---
diff --git a/docs/content/IconButton.mdx b/docs/content/IconButton.mdx
index 49508bcd1f2..13f61a49e09 100644
--- a/docs/content/IconButton.mdx
+++ b/docs/content/IconButton.mdx
@@ -3,7 +3,7 @@ title: IconButton
componentId: icon_button
status: Alpha
source: https://github.com/primer/react/tree/main/src/Button
-storybook: '/react/storybook?path=/story/components-button--icon-button'
+storybook: '/react/storybook?path=/story/components-iconbutton--playground'
description: An accessible button component with no text and only icon.
---
diff --git a/e2e/components/Button.test.ts b/e2e/components/Button.test.ts
index 9612329eeaa..7cd8e5f4ff5 100644
--- a/e2e/components/Button.test.ts
+++ b/e2e/components/Button.test.ts
@@ -3,354 +3,445 @@ import {visit} from '../test-helpers/storybook'
import {themes} from '../test-helpers/themes'
test.describe('Button', () => {
- test.describe('Default Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--default-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Playground', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button--playground',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Playground.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Default Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Default Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--default-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button--playground',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Primary Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--primary-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Danger', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--danger',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Danger.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Primary Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Primary Button.${theme}.focused.png`)
- })
- })
-
- test.fixme('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--primary-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--danger',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Danger Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--danger-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Default', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--default',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Default.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Danger Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Danger Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--danger-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--default',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Invisible Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--invisible-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Disabled', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--disabled',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Disabled.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Invisible Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Invisible Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--invisible-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--disabled',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Outline Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--outline-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Invisible', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--invisible',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Invisible.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Outline Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Outline Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--outline-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--invisible',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Icon Before Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--icon-before-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Large', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--large',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Large.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Icon Before Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Icon Before Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--icon-before-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--large',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Icon Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--icon-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Leading Visual', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--leading-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Leading Visual.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Icon Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Icon Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--icon-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--leading-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Watch Counter Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--watch-counter-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Medium', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--medium',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Medium.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Watch Counter Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Watch Counter Button.${theme}.focused.png`)
- })
- })
-
- test.fixme('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--watch-counter-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--medium',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Watch Icon Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--watch-icon-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Outline', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--outline',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Outline.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Watch Icon Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Watch Icon Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--watch-icon-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--outline',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Caret Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--caret-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Primary', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--primary',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Primary.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Caret Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Caret Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--caret-button',
+ test.fixme('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--primary',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Block Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--block-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Small', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--small',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Small.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Block Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Block Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--block-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--small',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Disabled Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--disabled-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Trailing Counter', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--trailing-counter',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Trailing Counter.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Disabled Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Disabled Button.${theme}.focused.png`)
- })
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--disabled-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--trailing-counter',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
- test.describe('Link Button', () => {
- themes.forEach(theme => {
- test(`${theme} @vrt`, async ({page}) => {
- await visit(page, {
- id: 'components-button--link-button',
- globals: {
- colorScheme: theme,
- },
+ test.describe('Trailing Visual', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--trailing-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`Button.Trailing Visual.${theme}.png`)
})
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`Link Button.${theme}.png`)
-
- // Focus state
- await page.keyboard.press('Tab')
- expect(await page.screenshot()).toMatchSnapshot(`Link Button.${theme}.focused.png`)
- })
- })
-
- test.fixme('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'components-button--link-button',
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-button-features--trailing-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
})
- await expect(page).toHaveNoViolations()
- })
+ }
})
})
diff --git a/e2e/components/IconButton.test.ts b/e2e/components/IconButton.test.ts
new file mode 100644
index 00000000000..988e33d898d
--- /dev/null
+++ b/e2e/components/IconButton.test.ts
@@ -0,0 +1,311 @@
+import {test, expect} from '@playwright/test'
+import {visit} from '../test-helpers/storybook'
+import {themes} from '../test-helpers/themes'
+
+test.describe('IconButton', () => {
+ test.describe('Playground', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton--playground',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Playground.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton--playground',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Danger', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--danger',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Danger.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--danger',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Default', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--default',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Default.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--default',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Disabled', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--disabled',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Disabled.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--disabled',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Invisible', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--invisible',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Invisible.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--invisible',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Large', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--large',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Large.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--large',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Medium', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--medium',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Medium.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--medium',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Primary', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--primary',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Primary.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--primary',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Small', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--small',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`IconButton.Small.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-iconbutton-features--small',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+})
diff --git a/e2e/components/LinkButton.test.ts b/e2e/components/LinkButton.test.ts
new file mode 100644
index 00000000000..e2e1abd5f63
--- /dev/null
+++ b/e2e/components/LinkButton.test.ts
@@ -0,0 +1,413 @@
+import {test, expect} from '@playwright/test'
+import {visit} from '../test-helpers/storybook'
+import {themes} from '../test-helpers/themes'
+
+test.describe('LinkButton', () => {
+ test.describe('Playground', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton--playground',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Playground.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton--playground',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Danger', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--danger',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Danger.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--danger',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Default', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--default',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Default.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--default',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Invisible', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--invisible',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Invisible.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--invisible',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Large', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--large',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Large.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--large',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Leading Visual', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--leading-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Leading Visual.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--leading-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Medium', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--medium',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Medium.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--medium',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Outline', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--outline',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Outline.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--outline',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Primary', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--primary',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Primary.${theme}.png`)
+ })
+
+ test.fixme('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--primary',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Small', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--small',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Small.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--small',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('Trailing Visual', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--trailing-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.Trailing Visual.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--trailing-visual',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+
+ test.describe('With React Router', () => {
+ for (const theme of themes) {
+ test.describe(theme, () => {
+ test('default @vrt', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--with-react-router',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+
+ // Default state
+ expect(await page.screenshot()).toMatchSnapshot(`LinkButton.With React Router.${theme}.png`)
+ })
+
+ test('axe @aat', async ({page}) => {
+ await visit(page, {
+ id: 'components-linkbutton-features--with-react-router',
+ globals: {
+ colorScheme: theme,
+ },
+ })
+ await expect(page).toHaveNoViolations({
+ rules: {
+ 'color-contrast': {
+ enabled: theme !== 'dark_dimmed',
+ },
+ },
+ })
+ })
+ })
+ }
+ })
+})
diff --git a/script/generate-e2e-tests.js b/script/generate-e2e-tests.js
index 908aeb177e6..6f2776f1e8f 100644
--- a/script/generate-e2e-tests.js
+++ b/script/generate-e2e-tests.js
@@ -71,6 +71,163 @@ const components = new Map([
],
},
],
+ [
+ 'Button',
+ {
+ stories: [
+ {
+ id: 'components-button--playground',
+ name: 'Playground',
+ },
+ {
+ id: 'components-button-features--danger',
+ name: 'Danger',
+ },
+ {
+ id: 'components-button-features--default',
+ name: 'Default',
+ },
+ {
+ id: 'components-button-features--disabled',
+ name: 'Disabled',
+ },
+ {
+ id: 'components-button-features--invisible',
+ name: 'Invisible',
+ },
+ {
+ id: 'components-button-features--large',
+ name: 'Large',
+ },
+ {
+ id: 'components-button-features--leading-visual',
+ name: 'Leading Visual',
+ },
+ {
+ id: 'components-button-features--medium',
+ name: 'Medium',
+ },
+ {
+ id: 'components-button-features--outline',
+ name: 'Outline',
+ },
+ {
+ id: 'components-button-features--primary',
+ name: 'Primary',
+ },
+ {
+ id: 'components-button-features--small',
+ name: 'Small',
+ },
+ {
+ id: 'components-button-features--trailing-counter',
+ name: 'Trailing Counter',
+ },
+ {
+ id: 'components-button-features--trailing-visual',
+ name: 'Trailing Visual',
+ },
+ ],
+ },
+ ],
+ [
+ 'IconButton',
+ {
+ stories: [
+ {
+ id: 'components-iconbutton--playground',
+ name: 'Playground',
+ },
+ {
+ id: 'components-iconbutton-features--danger',
+ name: 'Danger',
+ },
+ {
+ id: 'components-iconbutton-features--default',
+ name: 'Default',
+ },
+ {
+ id: 'components-iconbutton-features--disabled',
+ name: 'Disabled',
+ },
+ {
+ id: 'components-iconbutton-features--invisible',
+ name: 'Invisible',
+ },
+ {
+ id: 'components-iconbutton-features--large',
+ name: 'Large',
+ },
+ {
+ id: 'components-iconbutton-features--medium',
+ name: 'Medium',
+ },
+ {
+ id: 'components-iconbutton-features--primary',
+ name: 'Primary',
+ },
+ {
+ id: 'components-iconbutton-features--small',
+ name: 'Small',
+ },
+ ],
+ },
+ ],
+ [
+ 'LinkButton',
+ {
+ stories: [
+ {
+ id: 'components-linkbutton--playground',
+ name: 'Playground',
+ },
+ {
+ id: 'components-linkbutton-features--danger',
+ name: 'Danger',
+ },
+ {
+ id: 'components-linkbutton-features--default',
+ name: 'Default',
+ },
+ {
+ id: 'components-linkbutton-features--invisible',
+ name: 'Invisible',
+ },
+ {
+ id: 'components-linkbutton-features--large',
+ name: 'Large',
+ },
+ {
+ id: 'components-linkbutton-features--leading-visual',
+ name: 'Leading Visual',
+ },
+ {
+ id: 'components-linkbutton-features--medium',
+ name: 'Medium',
+ },
+ {
+ id: 'components-linkbutton-features--outline',
+ name: 'Outline',
+ },
+ {
+ id: 'components-linkbutton-features--primary',
+ name: 'Primary',
+ },
+ {
+ id: 'components-linkbutton-features--small',
+ name: 'Small',
+ },
+ {
+ id: 'components-linkbutton-features--trailing-visual',
+ name: 'Trailing Visual',
+ },
+ {
+ id: 'components-linkbutton-features--with-react-router',
+ name: 'With React Router',
+ },
+ ],
+ },
+ ],
[
'UnderlineNav',
{
diff --git a/src/Button/Button.features.stories.tsx b/src/Button/Button.features.stories.tsx
new file mode 100644
index 00000000000..3e684f8a9a1
--- /dev/null
+++ b/src/Button/Button.features.stories.tsx
@@ -0,0 +1,39 @@
+import {EyeIcon, HeartIcon} from '@primer/octicons-react'
+import React, {useState} from 'react'
+import {Button} from '.'
+
+export default {
+ title: 'Components/Button/Features',
+}
+
+export const Default = () =>
+
+export const Primary = () =>
+
+export const Danger = () =>
+
+export const Invisible = () =>
+
+export const Outline = () =>
+
+export const LeadingVisual = () =>
+
+export const TrailingVisual = () =>
+
+export const TrailingCounter = () => {
+ const [count, setCount] = useState(0)
+ return (
+
+ )
+}
+
+export const Disabled = () =>
+
+export const Small = () =>
+
+export const Medium = () =>
+
+export const Large = () =>
diff --git a/src/Button/Button.stories.tsx b/src/Button/Button.stories.tsx
index 50e4d5ff5e8..cd3166523cb 100644
--- a/src/Button/Button.stories.tsx
+++ b/src/Button/Button.stories.tsx
@@ -1,8 +1,8 @@
-import {EyeClosedIcon, EyeIcon, SearchIcon, TriangleDownIcon, XIcon, TriangleRightIcon} from '@primer/octicons-react'
-import {Meta} from '@storybook/react'
-import React, {useState, forwardRef} from 'react'
-import {Button, ButtonProps, IconButton} from '.'
-import Box from '../Box'
+import React from 'react'
+import {EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon} from '@primer/octicons-react'
+import {Story, Meta} from '@storybook/react'
+import {Button} from '.'
+import {OcticonArgType} from '../utils/story-helpers'
export default {
title: 'Components/Button',
@@ -16,230 +16,24 @@ export default {
disabled: {
control: {
type: 'boolean',
- default: false,
},
},
+ variant: {
+ control: {
+ type: 'radio',
+ options: ['default', 'primary', 'danger', 'invisible', 'outline'],
+ },
+ },
+ leadingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]),
+ trailingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]),
},
-} as Meta
-
-export const defaultButton = (args: ButtonProps) => {
- return
-}
-
-export const primaryButton = (args: ButtonProps) => {
- return (
-
- )
-}
-
-export const dangerButton = (args: ButtonProps) => {
- return (
-
- )
-}
-
-export const invisibleButton = (args: ButtonProps) => {
- return (
-
- )
-}
-
-export const outlineButton = (args: ButtonProps) => {
- return (
-
- )
-}
-
-export const iconBeforeButton = (args: ButtonProps) => {
- return (
-
- )
-}
-
-export const iconButton = ({...args}: ButtonProps) => {
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
-
-export const WatchCounterButton = ({...args}: ButtonProps) => {
- const [count, setCount] = useState(0)
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
-
-export const WatchIconButton = ({...args}: ButtonProps) => {
- const [watching, setWatching] = useState(false)
- const icon = watching ? EyeClosedIcon : () =>
- return (
-
- )
-}
-
-export const caretButton = ({...args}: ButtonProps) => {
- return (
-
- )
-}
-
-export const blockButton = ({...args}: ButtonProps) => {
- return (
-
- )
-}
-
-export const DisabledButton = ({...args}: ButtonProps) => {
- const [count, setCount] = useState(0)
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- } aria-label="Close" {...args} />
-
- >
- )
-}
-
-type ReactRouterLikeLinkProps = {to: string; children: React.ReactNode}
-const ReactRouterLikeLink = forwardRef(
- ({to, ...props}: {to: string; children: React.ReactNode}, ref) => {
- // eslint-disable-next-line jsx-a11y/anchor-has-content
- return
+ args: {
+ size: 'medium',
+ disabled: false,
+ variant: 'default',
+ trailingIcon: null,
+ leadingIcon: null,
},
-)
+} as Meta
-export const linkButton = ({...args}: ButtonProps) => {
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
+export const Playground: Story = args =>
diff --git a/src/Button/IconButton.features.stories.tsx b/src/Button/IconButton.features.stories.tsx
new file mode 100644
index 00000000000..ae550b89a2e
--- /dev/null
+++ b/src/Button/IconButton.features.stories.tsx
@@ -0,0 +1,23 @@
+import {HeartIcon} from '@primer/octicons-react'
+import React from 'react'
+import {IconButton} from '.'
+
+export default {
+ title: 'Components/IconButton/Features',
+}
+
+export const Default = () =>
+
+export const Primary = () =>
+
+export const Danger = () =>
+
+export const Invisible = () =>
+
+export const Disabled = () =>
+
+export const Small = () =>
+
+export const Medium = () =>
+
+export const Large = () =>
diff --git a/src/Button/IconButton.stories.tsx b/src/Button/IconButton.stories.tsx
new file mode 100644
index 00000000000..4418fac7ffc
--- /dev/null
+++ b/src/Button/IconButton.stories.tsx
@@ -0,0 +1,38 @@
+import React from 'react'
+import {EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon} from '@primer/octicons-react'
+import {Story, Meta} from '@storybook/react'
+import {IconButton} from '.'
+import {OcticonArgType} from '../utils/story-helpers'
+
+export default {
+ title: 'Components/IconButton',
+ argTypes: {
+ size: {
+ control: {
+ type: 'radio',
+ options: ['small', 'medium', 'large'],
+ },
+ },
+ disabled: {
+ control: {
+ type: 'boolean',
+ },
+ },
+ variant: {
+ control: {
+ type: 'radio',
+ options: ['default', 'primary', 'danger', 'invisible'],
+ },
+ },
+ icon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]),
+ },
+ args: {
+ size: 'medium',
+ disabled: false,
+ variant: 'default',
+ 'aria-label': 'Icon button description',
+ icon: XIcon,
+ },
+} as Meta
+
+export const Playground: Story = args =>
diff --git a/src/Button/LinkButton.features.stories.tsx b/src/Button/LinkButton.features.stories.tsx
new file mode 100644
index 00000000000..1a53318634b
--- /dev/null
+++ b/src/Button/LinkButton.features.stories.tsx
@@ -0,0 +1,81 @@
+import {EyeIcon, HeartIcon} from '@primer/octicons-react'
+import React, {forwardRef} from 'react'
+import {Button} from '.'
+
+export default {
+ title: 'Components/LinkButton/Features',
+}
+
+export const Default = () => (
+
+)
+
+export const Primary = () => (
+
+)
+
+export const Danger = () => (
+
+)
+
+export const Invisible = () => (
+
+)
+
+export const Outline = () => (
+
+)
+
+export const LeadingVisual = () => (
+
+)
+
+export const TrailingVisual = () => (
+
+)
+
+export const Small = () => (
+
+)
+
+export const Medium = () => (
+
+)
+
+export const Large = () => (
+
+)
+
+type ReactRouterLikeLinkProps = {to: string; children: React.ReactNode}
+const ReactRouterLikeLink = forwardRef(
+ ({to, ...props}: {to: string; children: React.ReactNode}, ref) => {
+ // eslint-disable-next-line jsx-a11y/anchor-has-content
+ return
+ },
+)
+
+export const WithReactRouter = () => (
+
+)
diff --git a/src/Button/LinkButton.stories.tsx b/src/Button/LinkButton.stories.tsx
new file mode 100644
index 00000000000..feca1c35a6f
--- /dev/null
+++ b/src/Button/LinkButton.stories.tsx
@@ -0,0 +1,39 @@
+import React from 'react'
+import {EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon} from '@primer/octicons-react'
+import {Story, Meta} from '@storybook/react'
+import {Button} from '.'
+import {OcticonArgType} from '../utils/story-helpers'
+
+export default {
+ title: 'Components/LinkButton',
+ argTypes: {
+ size: {
+ control: {
+ type: 'radio',
+ options: ['small', 'medium', 'large'],
+ },
+ },
+ variant: {
+ control: {
+ type: 'radio',
+ options: ['default', 'primary', 'danger', 'invisible', 'outline'],
+ },
+ },
+ leadingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]),
+ trailingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]),
+ href: {control: 'text'},
+ },
+ args: {
+ size: 'medium',
+ variant: 'default',
+ trailingIcon: null,
+ leadingIcon: null,
+ href: '/',
+ },
+} as Meta
+
+export const Playground: Story = args => (
+
+)