diff --git a/_components/navbar.tsx b/_components/navbar.tsx
new file mode 100644
index 0000000..77a5c8d
--- /dev/null
+++ b/_components/navbar.tsx
@@ -0,0 +1,17 @@
+export default function() {
+ return (
+
+ );
+}
diff --git a/_includes/layouts/main.tsx b/_includes/layouts/main.tsx
index 5d726ba..c4fa57a 100644
--- a/_includes/layouts/main.tsx
+++ b/_includes/layouts/main.tsx
@@ -1,4 +1,4 @@
-export default function({ title, children }) {
+export default function({ title, children, comp }) {
return (
@@ -8,6 +8,7 @@ export default function({ title, children }) {
+ {comp.navbar()}
{ children }
diff --git a/_includes/styles/components/navbar.scss b/_includes/styles/components/navbar.scss
new file mode 100644
index 0000000..8e86246
--- /dev/null
+++ b/_includes/styles/components/navbar.scss
@@ -0,0 +1,39 @@
+.navbar {
+ display: grid;
+ grid-template-columns: 1fr auto;
+ margin: 0 auto;
+ max-width: 48rem;
+ padding: 1rem;
+}
+
+.navbar-list {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ list-style: none;
+ padding-left: 0;
+ padding-right: 1rem;
+}
+
+.navbar-list-item {
+ margin: 0;
+ font-size: 2rem;
+ &.home {
+ margin-right: auto;
+ }
+ a {
+ color: var(--color-green);
+ text-decoration: none;
+ }
+}
+
+.navbar-actions {
+ display: flex;
+ align-items: center;
+ border-left: 1px solid var(--color-black);
+ padding-left: 1rem;
+}
+
+button.navbar-theme-switcher {
+ padding: 0.3em;
+}
diff --git a/styles/main.scss b/styles/main.scss
index 06214f2..37b8c90 100644
--- a/styles/main.scss
+++ b/styles/main.scss
@@ -3,3 +3,6 @@
@import "styles/variables";
@import "styles/color-palette";
@import "styles/base";
+
+// Components
+@import "styles/components/navbar";