+ {search ? 'No tags match your search.' : 'No tags yet.'}
+ {#if !search}
+ Create one
+ {/if}
+
+ {/if}
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/routes/tags/[id]/+page.svelte b/frontend/src/routes/tags/[id]/+page.svelte
new file mode 100644
index 0000000..277e8c1
--- /dev/null
+++ b/frontend/src/routes/tags/[id]/+page.svelte
@@ -0,0 +1,317 @@
+
+
+
+ {tag?.name ?? 'Tag'} | Tanabata
+
+
+
+
+
+
{tag?.name ?? 'Tag'}
+
+
+
+ {#if loadError}
+
{loadError}
+ {:else if !loaded}
+
+
+
+ {:else}
+ {#if saveError}
+
{saveError}
+ {/if}
+
+
+
+
+
+
Implied tags
+ (rules = r)} />
+
+
+ {/if}
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/routes/tags/new/+page.svelte b/frontend/src/routes/tags/new/+page.svelte
new file mode 100644
index 0000000..03919f9
--- /dev/null
+++ b/frontend/src/routes/tags/new/+page.svelte
@@ -0,0 +1,221 @@
+
+
+
+ New Tag | Tanabata
+
+
+