diff --git a/resources/css/presets/tailwind.config.preset.js b/resources/css/presets/tailwind.config.preset.js
index d7f3248b..cf031785 100644
--- a/resources/css/presets/tailwind.config.preset.js
+++ b/resources/css/presets/tailwind.config.preset.js
@@ -3,6 +3,14 @@ import typography from '@tailwindcss/typography';
/** @type {import('tailwindcss').Config} */
export default {
- content: ['./resources/**/*.blade.php', './app/View/**/*.php', './src/**/*.php', './vendor/foxws/wireuse/**/*.blade.php'],
+ content: ['./resources/**/*.blade.php', './app/View/**/*.php', './src/**/*.php', './vendor/foxws/wireuse/**/*.php', './vendor/foxws/wireuse/**/*.blade.php'],
plugins: [forms, typography],
+ theme: {
+ extend: {
+ container: {
+ center: true,
+ padding: '2rem',
+ }
+ }
+ }
};
diff --git a/resources/views/components/layout/container.blade.php b/resources/views/components/layout/container.blade.php
new file mode 100644
index 00000000..bca3885b
--- /dev/null
+++ b/resources/views/components/layout/container.blade.php
@@ -0,0 +1,16 @@
+@props([
+ 'fluid' => false,
+])
+
+
cssClass([
+ 'layer' => 'container',
+ 'width' => 'w-full max-w-4xl xl:max-w-5xl',
+ ])
+ ->classMerge([
+ 'layer',
+ 'width' => ! $fluid,
+ ]);
+}}>
+ {{ $slot }}
+
diff --git a/resources/views/components/layout/join.blade.php b/resources/views/components/layout/join.blade.php
new file mode 100644
index 00000000..0deea7d3
--- /dev/null
+++ b/resources/views/components/layout/join.blade.php
@@ -0,0 +1,18 @@
+@props([
+ 'vertical' => false,
+])
+
+cssClass([
+ 'layer' => 'flex items-center',
+ 'horizontal' => 'flex-row flex-wrap sm:flex-nowrap',
+ 'vertical' => 'flex-col',
+ ])
+ ->classMerge([
+ 'layer',
+ 'horizontal' => ! $vertical,
+ 'vertical' => $vertical,
+ ])
+}}>
+ {{ $slot }}
+
diff --git a/resources/views/components/navigation/navbar.blade.php b/resources/views/components/navigation/navbar.blade.php
new file mode 100644
index 00000000..6ebf1bea
--- /dev/null
+++ b/resources/views/components/navigation/navbar.blade.php
@@ -0,0 +1,32 @@
+@props([
+ 'start' => null,
+ 'end' => null,
+])
+
+