diff --git a/src/assets/icons/view-grid.svg b/src/assets/icons/view-grid.svg
new file mode 100644
index 0000000..c8c96fa
--- /dev/null
+++ b/src/assets/icons/view-grid.svg
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/view-masonry.svg b/src/assets/icons/view-masonry.svg
new file mode 100644
index 0000000..caecb48
--- /dev/null
+++ b/src/assets/icons/view-masonry.svg
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/view-single.svg b/src/assets/icons/view-single.svg
new file mode 100644
index 0000000..4b89627
--- /dev/null
+++ b/src/assets/icons/view-single.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/src/lib/components/SingleColumnPhotoGrid.svelte b/src/lib/components/SingleColumnPhotoGrid.svelte
new file mode 100644
index 0000000..c21a21a
--- /dev/null
+++ b/src/lib/components/SingleColumnPhotoGrid.svelte
@@ -0,0 +1,60 @@
+
+
+
+ {#each photoItems as item}
+
+
+ {#if !isAlbum(item) && item.caption}
+
+
{item.caption}
+
+ {/if}
+
+ {/each}
+
+
+
\ No newline at end of file
diff --git a/src/lib/components/ThreeColumnPhotoGrid.svelte b/src/lib/components/ThreeColumnPhotoGrid.svelte
new file mode 100644
index 0000000..75a7f9a
--- /dev/null
+++ b/src/lib/components/ThreeColumnPhotoGrid.svelte
@@ -0,0 +1,297 @@
+
+
+