diff --git a/src/lib/components/RecordCard.svelte b/src/lib/components/RecordCard.svelte
new file mode 100644
index 0000000..a597863
--- /dev/null
+++ b/src/lib/components/RecordCard.svelte
@@ -0,0 +1,58 @@
+
+
+
+
+
+ {#if expanded}
+
+ {#each record.fields as field}
+ onFieldChange(slugify(field.label), v)}
+ />
+ {/each}
+
+ {/if}
+
diff --git a/src/lib/components/SchemaForm.svelte b/src/lib/components/SchemaForm.svelte
new file mode 100644
index 0000000..544aa61
--- /dev/null
+++ b/src/lib/components/SchemaForm.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {#each character.template.records as record}
+ {
+ character.data[key] = value;
+ roster.scheduleSave(character);
+ }}
+ />
+ {/each}
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index c2d3713..58a588e 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,9 +1,8 @@
@@ -11,28 +10,8 @@
{#if roster.active}
- {@const char = roster.active}
-
- {#each char.template.records as record}
-
-
- {record.type}
-
-
- {#each record.fields as field}
- {
- char.data[slugify(field.label)] = v;
- roster.scheduleSave(char);
- }}
- />
- {/each}
-
-
- {/each}
+
+
{:else}