<% actions.each do |action| %>
<%= action %>
<% end %>
diff --git a/app/components/DS/dialog.rb b/app/components/DS/dialog.rb
index 3385003c112..fb03ac05c41 100644
--- a/app/components/DS/dialog.rb
+++ b/app/components/DS/dialog.rb
@@ -90,7 +90,7 @@ def dialog_inner_classes
end
class_names(
- "flex flex-col bg-container rounded-xl shadow-border-xs mx-3 lg:mx-0 w-full overflow-hidden",
+ "flex flex-col bg-container rounded-xl shadow-border-xs mx-3 lg:mx-0 w-full overflow-hidden pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]",
variant_classes
)
end
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index 796c55aeb83..46b34c36723 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -112,7 +112,8 @@
<% end %>
<%# SHARED - Main content %>
- <%= tag.main class: class_names("grow overflow-y-auto px-3 lg:px-10 py-4 w-full mx-auto max-w-5xl"), data: { app_layout_target: "content" } do %>
+ <%# Add bottom padding to account for fixed mobile nav + safe area inset %>
+ <%= tag.main class: class_names("grow overflow-y-auto px-3 lg:px-10 py-4 pb-[calc(3.75rem+env(safe-area-inset-bottom))] w-full mx-auto max-w-5xl"), data: { app_layout_target: "content" } do %>
<%= icon("panel-left", as_button: true, data: { action: "app-layout#toggleLeftSidebar" }) %>
@@ -157,7 +158,7 @@
<% end %>
<%# MOBILE - Bottom Nav %>
- <%= tag.nav class: "lg:hidden bg-surface shrink-0 z-10 pb-[env(safe-area-inset-bottom)] border-t border-tertiary flex justify-around" do %>
+ <%= tag.nav class: "lg:hidden bg-surface fixed bottom-0 left-0 w-full shrink-0 z-10 pb-[env(safe-area-inset-bottom)] border-t border-tertiary flex justify-around" do %>
<% mobile_nav_items.each do |nav_item| %>
<%= render "layouts/shared/nav_item", **nav_item %>
<% end %>
diff --git a/app/views/layouts/shared/_head.html.erb b/app/views/layouts/shared/_head.html.erb
index 8dd683d4bea..d75092dc05b 100644
--- a/app/views/layouts/shared/_head.html.erb
+++ b/app/views/layouts/shared/_head.html.erb
@@ -19,13 +19,18 @@
+
-
-
+ <%# Use a dark surface color so iOS PWA chrome matches the app theme %>
+
+
-
+ <%# Provide multiple iOS icons (standard 180x180 and larger) %>
+
+
+
<% if Rails.env.production? && (posthog_config = Rails.configuration.x.posthog).try(:api_key).present? %>
<%= render "shared/posthog", posthog_api_key: posthog_config.api_key, posthog_host: posthog_config.host %>
diff --git a/app/views/layouts/shared/_htmldoc.html.erb b/app/views/layouts/shared/_htmldoc.html.erb
index 25b0ba7730c..b203de061e7 100644
--- a/app/views/layouts/shared/_htmldoc.html.erb
+++ b/app/views/layouts/shared/_htmldoc.html.erb
@@ -7,13 +7,13 @@
data-theme="<%= theme %>"
data-controller="theme"
data-theme-user-preference-value="<%= Current.user&.theme || "system" %>"
- class="h-full text-primary overflow-hidden font-sans <%= @os %>">
+ class="h-dvh text-primary overflow-hidden font-sans bg-surface <%= @os %>">
<%= render "layouts/shared/head" %>
<%= yield :head %>
-
+
<% if Rails.env.development? %>
<% end %>
diff --git a/app/views/pwa/manifest.json.erb b/app/views/pwa/manifest.json.erb
index 05382503b6e..fc4ef183894 100644
--- a/app/views/pwa/manifest.json.erb
+++ b/app/views/pwa/manifest.json.erb
@@ -19,6 +19,6 @@
"display_override": ["fullscreen", "minimal-ui"],
"scope": "/",
"description": "<%= j product_name %> is your personal finance assistant.",
- "theme_color": "#F9F9F9",
- "background_color": "#F9F9F9"
+ "theme_color": "#0B0B0B",
+ "background_color": "#0B0B0B"
}
diff --git a/bin/dev b/bin/dev
index 6b73c3e9faf..2eb2a6da920 100755
--- a/bin/dev
+++ b/bin/dev
@@ -3,7 +3,7 @@
if ! gem list foreman -i --silent; then
echo "Installing foreman..."
gem install foreman
-
+
# Add rehash for rbenv users
if command -v rbenv > /dev/null; then
echo "Running rbenv rehash..."
diff --git a/public/site.webmanifest b/public/site.webmanifest
index 15a5afe8aba..f5b143e45fe 100644
--- a/public/site.webmanifest
+++ b/public/site.webmanifest
@@ -1,6 +1,8 @@
{
- "name": "",
- "short_name": "",
+ "name": "Sure",
+ "short_name": "Sure",
+ "start_url": "/",
+ "scope": "/",
"icons": [
{
"src": "/android-chrome-192x192.png",
@@ -13,7 +15,8 @@
"type": "image/png"
}
],
- "theme_color": "#ffffff",
- "background_color": "#ffffff",
- "display": "fullscreen"
+ "theme_color": "#0B0B0B",
+ "background_color": "#0B0B0B",
+ "display": "fullscreen",
+ "orientation": "portrait-primary"
}