diff --git a/.changeset/sixty-years-grab.md b/.changeset/sixty-years-grab.md
new file mode 100644
index 000000000..bda94a01a
--- /dev/null
+++ b/.changeset/sixty-years-grab.md
@@ -0,0 +1,5 @@
+---
+"@shopware-ag/meteor-component-library": major
+---
+
+Default variant of button is now primary
diff --git a/packages/component-library/src/components/form/mt-button/mt-button.spec.ts b/packages/component-library/src/components/form/mt-button/mt-button.spec.ts
new file mode 100644
index 000000000..91c746270
--- /dev/null
+++ b/packages/component-library/src/components/form/mt-button/mt-button.spec.ts
@@ -0,0 +1,87 @@
+import { render, screen } from "@testing-library/vue";
+import MtButton from "./mt-button.vue";
+import { vi } from "vitest";
+import { userEvent } from "@storybook/test";
+
+describe("mt-button", () => {
+ it("performs an action when clicking on a button", async () => {
+ // ARRANGE
+ const handler = vi.fn();
+
+ render(MtButton, {
+ props: {
+ // @ts-expect-error -- Event handler is not typed because they are inherited
+ onClick: handler,
+ },
+ });
+
+ // ACT
+ await userEvent.click(screen.getByRole("button"));
+
+ // ASSERT
+ expect(handler).toHaveBeenCalledOnce();
+ });
+
+ it.each(["{Enter}", " "])('performs an action when pressing "%s" on a button', async (key) => {
+ // ARRANGE
+ const handler = vi.fn();
+
+ render(MtButton, {
+ props: {
+ // @ts-expect-error -- Event handler is not typed because they are inherited
+ onClick: handler,
+ },
+ });
+
+ await userEvent.tab();
+
+ // ACT
+ await userEvent.keyboard(key);
+
+ // ASSERT
+ expect(handler).toHaveBeenCalledOnce();
+ });
+
+ it("does not perform an action when clicking on a disabled button", async () => {
+ // ARRANGE
+ const handler = vi.fn();
+
+ render(MtButton, {
+ props: {
+ // @ts-expect-error -- Event handler is not typed because they are inherited
+ onClick: handler,
+ disabled: true,
+ },
+ });
+
+ // ACT
+ await userEvent.click(screen.getByRole("button"));
+
+ // ASSERT
+ expect(handler).not.toHaveBeenCalled();
+ });
+
+ it.each(["{Enter}", " "])(
+ 'does not perform an action when pressing "%s" on a disabled button',
+ async (key) => {
+ // ARRANGE
+ const handler = vi.fn();
+
+ render(MtButton, {
+ props: {
+ // @ts-expect-error -- Event handler is not typed because they are inherited
+ onClick: handler,
+ disabled: true,
+ },
+ });
+
+ await userEvent.tab();
+
+ // ACT
+ await userEvent.keyboard(key);
+
+ // ASSERT
+ expect(handler).not.toHaveBeenCalled();
+ },
+ );
+});
diff --git a/packages/component-library/src/components/form/mt-button/mt-button.vue b/packages/component-library/src/components/form/mt-button/mt-button.vue
index c9c09ed01..5b8f1916e 100644
--- a/packages/component-library/src/components/form/mt-button/mt-button.vue
+++ b/packages/component-library/src/components/form/mt-button/mt-button.vue
@@ -21,133 +21,60 @@
v-bind="$attrs"
>
-
+
-
+
-