diff --git a/app/views/bubbles/_boosts.html.erb b/app/views/bubbles/_boosts.html.erb
new file mode 100644
index 000000000..fb7a2b48c
--- /dev/null
+++ b/app/views/bubbles/_boosts.html.erb
@@ -0,0 +1,8 @@
+<%= tag.div class: "bubble__bubble bubble__meta bubble__boosts",
+ data: {
+ controller: "animation toggle-class",
+ animation_play_class: "boosting",
+ toggle_class_toggle_class: "boosting",
+ action: "animationend->toggle-class#toggle" } do %>
+ <%= turbo_frame_tag dom_id(bubble, :boosts), src: bubble_boosts_path(bubble) %>
+<% end %>
diff --git a/app/views/bubbles/_bubble.html.erb b/app/views/bubbles/_bubble.html.erb
index 3ce7d5d05..c7a5301bf 100644
--- a/app/views/bubbles/_bubble.html.erb
+++ b/app/views/bubbles/_bubble.html.erb
@@ -1,78 +1,21 @@
-
- <%= turbo_frame_tag bubble, :edit do %>
- <%= link_to bubble.title, edit_bubble_path(bubble), class: "txt-undecorated" %>
- <% end %>
-
+
+ <%= turbo_frame_tag bubble, :edit do %>
+ <%= link_to bubble.title, edit_bubble_path(bubble), class: "txt-undecorated" %>
+ <% end %>
+
-
+
<%= link_to bubble, class: "bubble__link" do %>
<%= bubble.title %>
<% end %>
-
- <%= image_tag bubble.image.attached? ? bubble.image : "", data: { upload_preview_target: "image" } %>
-
-
- <%= form_with model: bubble, data: { controller: "form" } do | form | %>
-
- <% end %>
-
- <% if bubble.due_on.present? %>
- <%= form_with model: bubble, data: { controller: "form" } do | form | %>
-
- <% end %>
- <% else %>
-
- <% end %>
-
- <% bubble.tags.each do |tag| %>
- <%= link_to "##{tag.title}", bubbles_path(tag_id: tag), class: "bubble__bubble bubble__meta bubble__tag" %>
- <% end %>
-
- <% if bubble.tags.size < 3 %>
-
- <%= turbo_frame_tag :new_tag do %>
- <%= link_to "#", new_bubble_tag_path(bubble), class: "bubble__tag--new" %>
- <% end %>
-
- <% end %>
-
- <%= tag.div class: "bubble__bubble bubble__meta bubble__boosts",
- data: {
- controller: "animation toggle-class",
- animation_play_class: "boosting",
- toggle_class_toggle_class: "boosting",
- action: "animationend->toggle-class#toggle" } do %>
- <%= turbo_frame_tag dom_id(bubble, :boosts), src: bubble_boosts_path(bubble) %>
- <% end %>
+ <%= render "boosts", bubble: bubble %>
+ <%= render "date", bubble: bubble %>
+ <%= render "image", bubble: bubble %>
+ <%= render "tags", bubble: bubble %>
diff --git a/app/views/bubbles/_date.html.erb b/app/views/bubbles/_date.html.erb
new file mode 100644
index 000000000..e57d4c056
--- /dev/null
+++ b/app/views/bubbles/_date.html.erb
@@ -0,0 +1,19 @@
+<% if bubble.due_on.present? %>
+ <%= form_with model: bubble, data: { controller: "form" } do | form | %>
+
+ <%= image_tag bubble.image.attached? ? bubble.image : "", data: { upload_preview_target: "image" } %>
+
+
+<%= form_with model: bubble, data: { controller: "form" } do | form | %>
+