diff --git a/eslint.config.mjs b/eslint.config.mjs
index e300107..5229693 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -11,7 +11,7 @@ const gitignorePath = fileURLToPath(new URL(".gitignore", import.meta.url));
export default defineConfig(
includeIgnoreFile(gitignorePath, "Imported .gitignore patterns"),
- globalIgnores(["scripts/", "eslint.config.mjs"]),
+ globalIgnores(["scripts/", "eslint.config.mjs", "playground/"]),
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
eslintConfigPrettier,
diff --git a/playground/.gitignore b/playground/.gitignore
new file mode 100644
index 0000000..e87bc73
--- /dev/null
+++ b/playground/.gitignore
@@ -0,0 +1,24 @@
+# Nuxt dev/build outputs
+.output
+.data
+.nuxt
+.nitro
+.cache
+dist
+
+# Node dependencies
+node_modules
+
+# Logs
+logs
+*.log
+
+# Misc
+.DS_Store
+.fleet
+.idea
+
+# Local env files
+.env
+.env.*
+!.env.example
\ No newline at end of file
diff --git a/playground/.nuxtrc b/playground/.nuxtrc
new file mode 100644
index 0000000..1e78080
--- /dev/null
+++ b/playground/.nuxtrc
@@ -0,0 +1 @@
+setups.@nuxt/test-utils="3.23.0"
\ No newline at end of file
diff --git a/playground/.prettierignore b/playground/.prettierignore
new file mode 100644
index 0000000..a03f30f
--- /dev/null
+++ b/playground/.prettierignore
@@ -0,0 +1,7 @@
+# Ignore artifacts
+.nuxt
+.output
+node_modules
+playwright-report
+pnpm-lock.yaml
+pnpm-workspace.yaml
\ No newline at end of file
diff --git a/playground/.prettierrc b/playground/.prettierrc
new file mode 100644
index 0000000..b4bfed3
--- /dev/null
+++ b/playground/.prettierrc
@@ -0,0 +1,3 @@
+{
+ "plugins": ["prettier-plugin-tailwindcss"]
+}
diff --git a/playground/.prototools b/playground/.prototools
new file mode 100644
index 0000000..a47e44f
--- /dev/null
+++ b/playground/.prototools
@@ -0,0 +1,2 @@
+node = "22.17.1"
+pnpm = "10.27.0"
diff --git a/playground/LICENSE b/playground/LICENSE
new file mode 100644
index 0000000..fb5f6af
--- /dev/null
+++ b/playground/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2025 [fullname]
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/playground/README.md b/playground/README.md
new file mode 100644
index 0000000..25b5821
--- /dev/null
+++ b/playground/README.md
@@ -0,0 +1,75 @@
+# Nuxt Minimal Starter
+
+Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
+
+## Setup
+
+Make sure to install dependencies:
+
+```bash
+# npm
+npm install
+
+# pnpm
+pnpm install
+
+# yarn
+yarn install
+
+# bun
+bun install
+```
+
+## Development Server
+
+Start the development server on `http://localhost:3000`:
+
+```bash
+# npm
+npm run dev
+
+# pnpm
+pnpm dev
+
+# yarn
+yarn dev
+
+# bun
+bun run dev
+```
+
+## Production
+
+Build the application for production:
+
+```bash
+# npm
+npm run build
+
+# pnpm
+pnpm build
+
+# yarn
+yarn build
+
+# bun
+bun run build
+```
+
+Locally preview production build:
+
+```bash
+# npm
+npm run preview
+
+# pnpm
+pnpm preview
+
+# yarn
+yarn preview
+
+# bun
+bun run preview
+```
+
+Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
diff --git a/playground/app/app.config.ts b/playground/app/app.config.ts
new file mode 100644
index 0000000..82a57a3
--- /dev/null
+++ b/playground/app/app.config.ts
@@ -0,0 +1,13 @@
+export default defineAppConfig({
+ ui: {
+ colors: {
+ primary: "royal",
+ secondary: "blue",
+ success: "emerald",
+ info: "sky",
+ warning: "amber",
+ error: "rose",
+ neutral: "gray",
+ },
+ },
+});
diff --git a/playground/app/app.vue b/playground/app/app.vue
new file mode 100644
index 0000000..30badb8
--- /dev/null
+++ b/playground/app/app.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/playground/app/assets/css/main.css b/playground/app/assets/css/main.css
new file mode 100644
index 0000000..80c81a8
--- /dev/null
+++ b/playground/app/assets/css/main.css
@@ -0,0 +1,16 @@
+@import "tailwindcss";
+@import "@nuxt/ui";
+
+@theme static {
+ --color-royal-50: #7997fa;
+ --color-royal-100: #6282ea;
+ --color-royal-200: #5777df;
+ --color-royal-300: #4061d0;
+ --color-royal-400: #3858c1;
+ --color-royal-500: #3451b2;
+ --color-royal-600: #2c469c;
+ --color-royal-700: #253c87;
+ --color-royal-800: #1e3270;
+ --color-royal-900: #18285a;
+ --color-royal-950: #111c40;
+}
diff --git a/playground/app/components/recipe/CookwareItem.vue b/playground/app/components/recipe/CookwareItem.vue
new file mode 100644
index 0000000..fb849aa
--- /dev/null
+++ b/playground/app/components/recipe/CookwareItem.vue
@@ -0,0 +1,17 @@
+
+
+
+