diff --git a/components/nav.jai b/components/nav.jai
index 8308ef2..85e05c8 100644
--- a/components/nav.jai
+++ b/components/nav.jai
@@ -6,11 +6,10 @@ add_navbar :: (builder: *String_Builder) {
navbar : string = #string DONE
DONE
diff --git a/pages/editor.jai b/pages/editor.jai
new file mode 100644
index 0000000..f1537bc
--- /dev/null
+++ b/pages/editor.jai
@@ -0,0 +1,94 @@
+get_editor_page :: (req: Request) -> string {
+ builder : String_Builder;
+ print_to_builder(*builder, start)
+}
+
+start : string = #string DONE
+
+
+
+
+
+
Assets SEARCHING...
+
+
+
+
+
+
+
+ -
+ Asparagus (Green)
+ VEG
+
+
+
+
+
+
+
+
+DONE
diff --git a/server.jai b/server.jai
index d3304b4..5f2046f 100644
--- a/server.jai
+++ b/server.jai
@@ -4,6 +4,7 @@
#load "pages/index.jai";
#load "pages/recipe.jai";
+#load "pages/editor.jai";
init_server :: () {
init_data();
@@ -13,10 +14,10 @@ handler :: (req: Request, res: *Response) {
if req.route == {
case "/";
serve_page(res, get_main_page());
- return;
case "/recipe";
serve_page(res, get_recipe_page(req));
- return;
+ case "/editor";
+ serve_page(res, get_editor_page(req));
case "/style.css";
serve_stylesheet(res);
}
diff --git a/style.jai b/style.jai
index f24ae2d..4940421 100644
--- a/style.jai
+++ b/style.jai
@@ -124,4 +124,53 @@ nav { padding: 1rem var(--space); display: flex; justify-content: space-between;
.edit-fab { position: fixed; bottom: 2rem; right: 2rem; width: 60px; height: 60px; border-radius: 50%; background: var(--ink); color: var(--gold); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 10px 30px rgba(0,0,0,0.2); transition: transform 0.2s; z-index: 99; }
.edit-fab:hover { transform: scale(1.1); }
+/* --- INPUTS --- */
+input[type="text"], textarea {
+ background: transparent; border: none; border-bottom: 1px dashed var(--gold-dim);
+ width: 100%; color: var(--ink); font-family: inherit; padding: 0; margin: 0;
+ resize: none; outline: none;
+}
+input[type="text"]:focus, textarea:focus { border-bottom: 1px solid var(--gold); background: rgba(197, 160, 89, 0.05); }
+
+.input-title { font-family: 'Playfair Display', serif; font-size: 4.5rem; line-height: 1; margin-bottom: 1rem; }
+.input-step { font-size: 1.15rem; font-weight: 300; line-height: 1.6; }
+.input-comp { font-weight: 500; font-size: 1.1rem; }
+
+.editor-container { max-width: 1200px; margin: 4rem auto; padding: 0 var(--space); display: grid; grid-template-columns: 1fr 1.5fr; gap: 5rem; }
+
+.drop-zone {
+ width: 100%; height: 400px; background: #f0f0f0; border: 2px dashed var(--gold-dim);
+ display: flex; align-items: center; justify-content: center; flex-direction: column;
+ margin-bottom: 3rem; cursor: pointer; color: #888;
+}
+.drop-zone:hover { border-color: var(--gold); color: var(--gold); }
+
+.add-btn {
+ background: transparent; border: 1px solid var(--gold-dim); color: var(--gold);
+ width: 100%; padding: 0.5rem; margin-top: 1rem; cursor: pointer;
+ font-family: 'JetBrains Mono', monospace; text-transform: uppercase; font-size: 0.7rem;
+}
+.add-btn:hover { border-color: var(--gold); }
+
+/* --- DRAWER --- */
+.drawer {
+ position: fixed; top: 0; right: -400px; width: 400px; height: 100vh;
+ background: #fff; border-left: 1px solid var(--gold); z-index: 200;
+ padding: 2rem; box-shadow: -10px 0 30px rgba(0,0,0,0.1);
+ transition: right 0.3s ease; display: flex; flex-direction: column;
+}
+.drawer.open { right: 0; }
+
+.drawer-search { border: 1px solid var(--ink) !important; padding: 1rem !important; font-size: 1rem; margin-bottom: 2rem; }
+.drawer-list { flex: 1; overflow-y: auto; list-style: none; }
+.drawer-item { padding: 1rem 0; border-bottom: 1px solid #eee; cursor: pointer; display: flex; justify-content: space-between; }
+.drawer-item:hover { color: var(--gold); }
+
+.overlay { position: fixed; top:0; left:0; width:100%; height:100%; background: rgba(0,0,0,0.2); z-index: 150; display: none; }
+.overlay.visible { display: block; }
+
+/* HTMX Loading State for Drawer */
+.htmx-indicator { opacity: 0; transition: opacity 0.2s; }
+.htmx-request .htmx-indicator { opacity: 1; }
+
DONE