feat: redesign contact page for POD sellers & add theme enhancements

Contact page redesign:
- Replace retail-style contact info (phone, address, hours) with POD-appropriate layout
- Add order tracking card with email input
- Add "Handy to know" section with printing/delivery/returns info
- Add email contact with response time promise
- Add social links (Instagram, Pinterest)
- Update intro text to be warmer and more personal

Collection page improvements:
- Replace sidebar filters with horizontal category pills
- Add filter pill CSS with theme token integration

PDP enhancements:
- Add image lightbox with keyboard navigation
- Add thumbnail gallery with active state
- Add reviews section (toggleable)
- Add related products section (toggleable)
- Add trust badges section (toggleable)

Theme system additions:
- Add button_style setting (filled/outline/soft)
- Add product_text_align setting (left/center)
- Add image_aspect_ratio setting (square/portrait/landscape)
- Add responsive form layouts with flex-wrap

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-02 13:48:03 +00:00
parent 98a9e3b3d4
commit 37653e5e7a
14 changed files with 1178 additions and 236 deletions

View File

@@ -44,7 +44,6 @@ defmodule SimpleshopTheme.Settings.ThemeSettings do
field :announcement_bar, :boolean, default: true
field :sticky_header, :boolean, default: false
field :hover_image, :boolean, default: true
field :quick_add, :boolean, default: true
field :show_prices, :boolean, default: true
field :pdp_trust_badges, :boolean, default: true
field :pdp_reviews, :boolean, default: true
@@ -85,7 +84,6 @@ defmodule SimpleshopTheme.Settings.ThemeSettings do
:announcement_bar,
:sticky_header,
:hover_image,
:quick_add,
:show_prices,
:pdp_trust_badges,
:pdp_reviews,
@@ -105,5 +103,10 @@ defmodule SimpleshopTheme.Settings.ThemeSettings do
|> validate_number(:header_position_y, greater_than_or_equal_to: 0, less_than_or_equal_to: 100)
|> validate_inclusion(:layout_width, ~w(contained wide full))
|> validate_inclusion(:card_shadow, ~w(none sm md lg))
|> validate_inclusion(:font_size, ~w(small medium large))
|> validate_inclusion(:heading_weight, ~w(regular medium bold))
|> validate_inclusion(:button_style, ~w(filled outline soft))
|> validate_inclusion(:product_text_align, ~w(left center))
|> validate_inclusion(:image_aspect_ratio, ~w(square portrait landscape))
end
end