From 068826aa3b2542a61faa0e05a5bdb46533f84134 Mon Sep 17 00:00:00 2001
From: Freeplay <freeplay@duck.com>
Date: Fri, 2 Jun 2023 15:39:33 -0400
Subject: [PATCH] Setup to also support steps

---
 packages/client/src/components/mfm.ts | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/packages/client/src/components/mfm.ts b/packages/client/src/components/mfm.ts
index 74a92ee48..86a9aba2e 100644
--- a/packages/client/src/components/mfm.ts
+++ b/packages/client/src/components/mfm.ts
@@ -59,7 +59,9 @@ export default defineComponent({
 		};
 		const validEase = (e: string | null | undefined) => {
 			if (e == null) return null;
-			return e.match(/\(-?[0-9.]+,-?[0-9.]+,-?[0-9.]+,-?[0-9.]+\)/) ? e : null;
+			return e.match(/(steps)?\(-?[0-9.]+,-?[0-9.]+,-?[0-9.]+,-?[0-9.]+\)/) 
+				? (e.startsWith("steps") ? e : "cubic-bezier" + e)
+				: null
 		}
 
 		const genEl = (ast: mfm.MfmNode[]) =>
@@ -107,8 +109,8 @@ export default defineComponent({
 								case "tada": {
 									const speed = validTime(token.props.args.speed) || "1s";
 									const delay = validTime(token.props.args.delay) || "0s";
-									const ease = validEase(token.props.args.ease) || "(0,0,1,1)";
-									style = `font-size: 150%; animation: tada ${speed} ${delay} cubic-bezier${ease} infinite both;`;
+									const ease = validEase(token.props.args.ease) || "linear";
+									style = `font-size: 150%; animation: tada ${speed} ${delay} ${ease} infinite both;`;
 									break;
 								}
 								case "jelly": {