diff --git a/.gitignore b/.gitignore
index 3d22ffc..9d25a11 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,3 @@
-# AI tool output (planning artifacts are excluded from git)
-_bmad-output/
-
# PlatformIO build artifacts
.pio/
diff --git a/_bmad-output/planning-artifacts/ux-design-directions.html b/_bmad-output/planning-artifacts/ux-design-directions.html
new file mode 100644
index 0000000..ffc6fef
--- /dev/null
+++ b/_bmad-output/planning-artifacts/ux-design-directions.html
@@ -0,0 +1,507 @@
+
+
+
+
+
+pictureFrame — Design Directions
+
+
+
+
+
pictureFrame — Design Directions
+
5 layout approaches · Warm Craft theme · tap to explore
+
+
+
+
+
+
+
+
+
+
+
+
+
1 · Photo Grid
+
Home is a mosaic of your photos. The frame assignment is a secondary action. Feels like a personal gallery that happens to connect to a frame.
+
+
+
+
Home
+
+
+
9:41●●●
+
Your Photos
+
+
🏔️
+
👨👩👧
+
🌅
+
🎄
+
🐕
+
🎂
+
🏖️
+
❄️
+
+
+
+
+
📷Photos
+
🖼️Frames
+
↗️Shared
+
👤Me
+
+
+
+
+
+
Photo Detail
+
+
+
9:41●●●
+
🏔️
+
+
Lake Trip 2024
+
Added 3 days ago · On 2 frames
+
+ Margaret's Frame
+ Living Room
+
+
+
Edit & Add
+
Share
+
+
+
+
📷Photos
+
🖼️Frames
+
↗️Shared
+
👤Me
+
+
+
+
+
+
+
✓ Familiar
Feels like Apple Photos or Google Photos — users know how to navigate it immediately.
+
✓ Photo-forward
The content (photos) is the hero. Great for libraries with many images.
+
✗ Frame is secondary
The physical frame — the whole point — is buried under a tab, not the first thing you see.
+
✗ Upload entry unclear
Floating "+" button competes with the grid. Upload vs. camera roll confusion likely.
+
+
+
+
+
+
+
2 · Frame-Centric
+
Home shows your frames first. Each frame has a current photo preview. You navigate into a frame to add or manage photos for it. The frame is always the destination.
+
+
+
+
Home
+
+
+
9:41●●●
+
Your Frames
+
+
+
👨👩👧
+
+
Margaret's Frame
+
14 photos · Updates daily
+
+ Live
+
+
+
🏠
+
+
Living Room
+
6 photos · Updates weekly
+
+ Live
+
+
+
+ Add a frame
+
+
+
+
🖼️Frames
+
📚Library
+
↗️Shared
+
👤Me
+
+
+
+
+
+
Frame Detail
+
+
+
9:41●●●
+
+
← Frames
+
+
Margaret's Frame
+
14 photos · Updates daily
+
+
+ Add Photo
+
Settings
+
+
On this frame
+
+
🏔️
+
👨👩👧
+
🌅
+
🎄
+
🐕
+
🎂
+
+
+
🖼️Frames
+
📚Library
+
↗️Shared
+
👤Me
+
+
+
+
+
+
+
✓ Frame is the hero
Every interaction starts with "which frame?" — keeps the physical gift front and center.
+
✓ Clear mental model
Navigate into a frame → add photos to it. Mirrors how users think about the product.
+
✗ Library is secondary
Your full photo library is a tab away. Users who want to browse all photos have to look for it.
+
✗ Multi-frame add is extra steps
Adding one photo to multiple frames requires navigating between frame detail screens.
+
+
+
+
+
+
+
3 · Upload-First
+
The upload action IS the home screen. A big prominent upload button with recent activity below. The app communicates: the main thing you do here is put photos on frames.
+
+
+
+
Home
+
+
+
9:41●●●
+
+
pictureFrame
+
Hey Matt 👋
+
+
+
📷
+
Add a photo
+
Crop, add stickers, put it on a frame
+
+
Recent
+
+
+
🏔️
+
+
Lake Trip
+
Margaret's Frame · 2 days ago
+
+
+
+
🎄
+
+
Christmas 2024
+
Living Room · 5 days ago
+
+
+
+
+
🏠Home
+
📚Library
+
🖼️Frames
+
👤Me
+
+
+
+
+
+
Upload Flow Step 1
+
+
+
9:41●●●
+
+
Cancel
+
Crop Photo
+
Next →
+
+
+
🏔️
+
Margaret's Frame
+
+
Pinch and drag to fit the frame shape
+
+
Landscape
+
Portrait
+
+
+
🏠Home
+
📚Library
+
🖼️Frames
+
👤Me
+
+
+
+
+
+
+
✓ Intent is unmistakable
First thing you see is "add a photo." The app's purpose is communicated before anything else.
+
✓ Upload funnel is the flow
Tapping the big button goes straight into crop → sticker → add to frame. No detours.
+
✗ Repeat visitors see the same home
After the 10th upload, the big prompt feels redundant. No sense of the growing collection.
+
✗ Library/frames are tabs
Managing existing content requires navigation rather than being surfaced on home.
+
+
+
+
+
+
+
4 · Activity Feed
+
Home is a chronological feed of what's happened — photos added, shares received, approvals needed. Upload lives as a persistent top button. Feels connected and social.
+
+
+
+
Home
+
+
+
9:41●●●
+
+
Recent
+
+ Photo
+
+
+
+
Sarah shared a photo · 1h ago
+
+
🎂
+
+
Birthday Party
+
Tap to approve for a frame
+
+
Approve
+
+
+
+
You added a photo · 2 days ago
+
+
🏔️
+
+
Lake Trip 2024
+
On Margaret's Frame
+
+
+
+
+
Frame updated · 5 days ago
+
Margaret's Frame cycled to a new photo
+
+
+
+
📋Feed
+
📚Library
+
🖼️Frames
+
👤Me
+
+
+
+
+
+
Approve Flow
+
+
+
9:41●●●
+
+
← Feed
+
+
Sarah shared a photo
+
Add it to one of your frames?
+
🎂
+
Choose a frame
+
+
+
👵
+
Margaret's Frame
+
✓
+
+
+
🏠
+
Living Room
+
+
+
Add to Margaret's Frame
+
+
📋Feed
+
📚Library
+
🖼️Frames
+
👤Me
+
+
+
+
+
+
+
✓ Approvals surface naturally
Shared photos that need approval appear inline in the feed — no hunting for a notification.
+
✓ Feels alive
The home screen changes as photos are added and frames cycle. Gives the app a sense of activity.
+
✗ Complexity for simple users
Margaret opening the app sees a feed with notifications and actions. Might be overwhelming.
+
✗ Upload is a button, not the hero
The core action (add a photo) competes with the feed content for attention.
+
+
+
+
+
+
+
5 · Minimal Card
+
Home is clean and spacious — one frame card prominently displayed with its current photo, a clear "Add Photo" action, and simple navigation. Maximum focus, minimum noise.
+
+
+
+
Home (1 frame)
+
+
+
9:41●●●
+
+
pictureFrame
+
👤
+
+
+
👨👩👧
+
+
+
Margaret's Frame
+ Live
+
+
14 photos · Next cycle in 6 hours
+
+ Add a Photo
+
+
+
Library
+
+
🏔️
+
🌅
+
🎄
+
🐕
+
+
+
🏠Home
+
📚Library
+
🖼️Frames
+
👤Me
+
+
+
+
+
+
Home (2+ frames)
+
+
+
9:41●●●
+
pictureFrame
+
+
+
👨👩👧
+
+
+
Margaret's Frame
+
14 photos
+
+
+ Add
+
+
+
+
🏠
+
+
+
Living Room
+
6 photos
+
+
+ Add
+
+
+
+
+
🏠Home
+
📚Library
+
🖼️Frames
+
👤Me
+
+
+
+
+
+
+
✓ Frame + action in one glance
You see the frame's current photo AND the "Add Photo" button together. Purpose is immediate.
+
✓ Scales cleanly
One frame: big featured card. Two+ frames: stacked cards, each with their own Add button.
+
✓ Closest to the mental model
The frame is the hero, the photo is the content, the action is obvious. No secondary navigation needed for the primary job.
+
✗ Library is below the fold
The photo library strip is a hint, not a feature. Power users with large libraries need to go to the Library tab.
+
+
+
+
+
+
diff --git a/_bmad-output/planning-artifacts/ux-design-specification.md b/_bmad-output/planning-artifacts/ux-design-specification.md
new file mode 100644
index 0000000..79f670d
--- /dev/null
+++ b/_bmad-output/planning-artifacts/ux-design-specification.md
@@ -0,0 +1,827 @@
+---
+stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
+inputDocuments: ['prd.md', 'architecture.md']
+workflowType: 'ux-design'
+project_name: 'pictureFrame'
+user_name: 'Matt.edholm'
+date: '2026-04-27'
+---
+
+# UX Design Specification - pictureFrame
+
+**Author:** Matt.edholm
+**Date:** 2026-04-27
+
+---
+
+
+
+## Executive Summary
+
+### Project Vision
+
+pictureFrame is a handcrafted e-ink digital picture frame ecosystem built as a meaningful gift. The physical frame is hand-built; the companion web app is where the frame's content comes to life — uploading photos, approving shares from family, curating what someone you love wakes up to every morning.
+
+The app is not a monitoring dashboard. It is an image curation tool with a warm, personal, playful character — simple and obvious in its interactions, fun in its personality. Future directions (image stickers, overlays) are consistent with this tone: the app should feel like a place where you make something for someone, not a place where you manage a device.
+
+### Target Users
+
+**Margaret (recipient)** — non-technical gift recipient. Approves photos shared by family members. Her primary interaction is clicking an email approve link and choosing which frame to add a photo to — no login required for that flow. When she does open the app, it should be immediately obvious what to do.
+
+**Matt (builder/admin)** — gift giver and super admin. Uploads the initial photo collection, approves images per device, configures device settings, monitors the fleet. Power user comfort without admin visual weight — the controls should feel purposeful, not bureaucratic.
+
+**Sarah (contributor)** — family member. Uploads photos and shares them to a recipient. Should never need to understand approvals, device settings, or the rotation engine. Her job is: pick a photo, send it to someone.
+
+### Key Design Challenges
+
+1. **Non-technical provisioning** — Two-phase QR flow must be self-explanatory and self-healing. Every failure state resets automatically. No step can require interpretation.
+
+2. **Email-first approval** — The share email is a primary UX surface, not just a notification. It must work on any email client, any device, with no login. The device-selection page after approval is a critical no-auth screen.
+
+3. **Three users, one app** — Matt wants control and visibility. Sarah wants to pick a photo and go. The app must not expose contributor-level users to admin complexity, while giving Matt the full picture.
+
+### Design Opportunities
+
+1. **Curation as the core emotional experience** — Choosing which photos appear on someone's frame is an act of care. The image upload and approval flows should feel considered and personal, not transactional. Image detail views should feel like a canvas — ready for future sticker/overlay features without a redesign.
+
+2. **The gift moment** — When a device is first linked via setup QR, there is an opportunity to frame the experience as "you just gave someone this" rather than "device provisioning complete."
+
+3. **Warm, playful personality** — Simple and obvious as the baseline; fun as the texture. The visual and copy language should reflect that this is for family, not for IT departments.
+
+## Core User Experience
+
+### Defining Experience
+
+The heart of pictureFrame is the upload-to-frame flow: pick a photo, make it yours, see it in the frame, put it there. Everything else — sharing, approvals, device settings — orbits this moment.
+
+The editing experience is the product's personality. Crop/fit and pre-baked sticker overlays are first-class, not afterthoughts. Images with stickers retain their edit state and can be re-edited at any time — sticker placement, sizing, and removal is always available on images you own.
+
+### Platform Strategy
+
+Mobile-first web app. iOS Safari and Android Chrome are the primary targets; all flows are designed touch-first. Laptop is a supported secondary use case. No native app.
+
+Touch interactions drive all design decisions: tap targets sized for thumbs, drag-to-position for sticker placement, tap-to-remove (×) on placed stickers.
+
+### Upload & Edit Flow
+
+The primary upload flow is a linear funnel on mobile:
+
+1. **Pick** — select from camera roll or files
+2. **Crop/Fit** — frame-shaped crop UI (device aspect ratio always visible; landscape or portrait per device)
+3. **Stickers** — add pre-baked sticker overlays; drag to position, resize, tap × to delete; multiple stickers supported
+4. **Add to Frame** — choose which device(s) this goes to (own devices only; sharing to others uses the share flow)
+5. **Done** — return to home page
+
+Images with stickers can be re-edited from the library at any time. The original and edit state (crop parameters, sticker positions/sizes) are stored separately from the rendered output.
+
+### Sharing & Approval
+
+Sharing is initiated from the UI (library or image detail). The email approve flow is the primary approval mechanism for recipients — one tap, no login required, device-selection page after approval.
+
+Users can also approve or decline images directly within the app UI (equivalent action to the email flow, both are first-class paths).
+
+### Critical Success Moments
+
+- **First photo on the frame** — the upload-edit-add funnel completes and the image enters rotation. This should feel like sending something.
+- **Sticker placement** — drag-and-drop on mobile should feel immediate and fun; the frame preview keeps the recipient's experience in frame.
+- **Email approval** — one tap, confirmation, done. No friction for non-technical recipients.
+- **Re-editing** — returning to a photo with stickers and adjusting it should feel natural, not like a special mode.
+
+### Experience Principles
+
+1. **The frame is always in view** — the device's aspect ratio is visible throughout crop and sticker editing. You are always making something for someone.
+2. **Edit state is never lost** — sticker compositions and crop settings are preserved and re-editable indefinitely.
+3. **Fun is prominent** — stickers and editing are surfaced in the primary flow, not buried in an overflow menu.
+4. **One flow, complete** — upload leads directly to frame assignment; no orphaned library items unless the user explicitly chooses not to add to a device.
+5. **Approve your way** — email tap or UI action: both paths are first-class and produce identical results.
+
+## Desired Emotional Response
+
+### Primary Emotional Goals
+
+- **Warmth** — sharing and curating photos should feel like an act of care, not a task. The product is for family; the UI should reflect that.
+- **Playfulness** — the sticker/editing experience is where personality lives. It should make you smile. A funny edit spreads because someone saw it on a frame and said "send me that one."
+- **Connection** — the frame is the social surface. You see a photo cycling on someone's wall, you want it, you ask for it. The app is how you send it; it should be fast.
+- **Confidence** — every step obvious and safe, no dead ends.
+
+### Emotional Journey Mapping
+
+| Moment | Target feeling |
+|---|---|
+| First open | "This feels friendly" |
+| Upload + crop | "Easy — and I'm making something" |
+| Sticker placement | "Haha, yes" |
+| Add to own frame | Immediate satisfaction — no approval, no wait |
+| See photo on someone's frame in person | "Send me that one" |
+| Owner finds it, shares it | Quick, obvious, done |
+| Email approve (recipient) | "Oh that was easy" |
+| Frame cycles to new photo | The payoff — warmth without the app |
+
+### Micro-Emotions
+
+- **Delight** — sticker interactions, fun copy, small animations on completion
+- **Accomplishment** — the upload-edit-add funnel ends with something on the frame, not in a queue
+- **Trust** — no approval needed for your own devices; the system does what you expect
+- **Connection** — the frame in the room drives the social loop; the app just closes it
+
+### Design Implications
+
+- **Warmth** → rounded UI, named devices ("Dad's Frame", not "Device #3"), friendly copy throughout
+- **Playfulness** → stickers prominent in edit flow; small celebratory feedback on actions
+- **Connection** → finding and sharing a photo should take seconds; the share flow is the product's social handshake
+- **Confidence** → one obvious action per screen; your own devices need no approval gate; clear feedback on every tap
+
+### Emotions to Avoid
+
+- Tech anxiety — especially for non-technical recipients
+- Overwhelm — settings and admin complexity never leak into contributor or recipient flows
+- Transactional — nothing should feel like filing paperwork
+- Waiting — adding to your own frame is instant; no approval limbo for the uploader
+
+## UX Pattern Analysis & Inspiration
+
+### Inspiring Products Analysis
+
+**Snapchat — sticker/overlay editing**
+The gold standard for tap-to-place sticker UX on mobile. Users already know it: tap a sticker from a tray to place it on the canvas, drag to reposition, pinch to resize, tap to select, × to delete. Zero learning curve. The sticker tray scrolls horizontally and stays out of the way of the canvas. This is the exact pattern to replicate for pictureFrame's sticker editor.
+
+**iMessage / Apple Photos — sharing and warmth**
+Named recipients, not abstract IDs. Sharing feels like handing something to a specific person. Confirmation is quiet — a small animation, not a modal. The visual language is warm and human without being childish.
+
+**Instagram — mobile upload funnel**
+Crop-first design: you see the frame before you decide anything else. The aspect ratio is always visible. The upload flow is linear and committed — you move forward, not sideways. One obvious action per step.
+
+**Canva (simplified) — pre-baked element tray**
+A scrollable horizontal tray of categorized elements (stickers, in our case) that opens from the bottom of the screen. Doesn't take over the canvas. Categories let you browse without overwhelming. Works well for non-technical users who just want to pick something fun.
+
+### Transferable UX Patterns
+
+**Sticker interaction (from Snapchat):**
+Tap from tray → placed on canvas → drag to move → pinch to resize → tap to re-select → × to delete. Applied directly to pictureFrame's sticker editor. Users arrive already knowing this pattern.
+
+**Crop-first framing (from Instagram):**
+Show the device aspect ratio before anything else in the edit flow. The frame shape is the first thing you see — you are always designing for a specific physical object, not cropping an abstract photo.
+
+**Named, human recipients (from iMessage):**
+Devices are always shown by their given name ("Margaret's Frame") in every context — upload, share, approve. Never a MAC address, device ID, or generic label.
+
+**Bottom sheet element tray (from Canva/Snapchat):**
+Sticker categories and sticker items in a bottom sheet that slides up without covering the full canvas. Scrolls horizontally within categories. Dismisses by tapping the canvas.
+
+**Quiet confirmation (from Apple Photos):**
+Completing an action (add to frame, approve, share) should feel settled and calm — a small visual acknowledgment, then return to context. No success modal that demands a tap to dismiss.
+
+### Anti-Patterns to Avoid
+
+- **Approval-first design** — adding a photo to your own frame should never require an approval step. Approval friction belongs only in the cross-user sharing flow.
+- **Settings leaking into primary flows** — device configuration, rotation frequency, uniqueness windows are admin concerns. They should never appear in the upload, sticker, or share flows.
+- **Buried stickers** — if stickers require more than one tap to reach from the edit screen, they won't be used. They must be a first-class element of the editing UI.
+- **Empty canvas anxiety** — the crop/edit screen should never look blank or intimidating. The device frame shape, a clear "Add sticker" affordance, and the photo itself should fill the space confidently.
+- **Generic confirmation copy** — "Success" or "Done" is wasted space. Every completion moment should say something specific and warm.
+
+### Design Inspiration Strategy
+
+**Adopt directly:**
+- Snapchat sticker interaction model — tap, drag, pinch, ×
+- Instagram crop-first funnel — frame shape before anything else
+- Bottom sheet sticker tray — non-intrusive, dismissable
+
+**Adapt for pictureFrame:**
+- Canva element tray → simplified to stickers only, mobile-optimized, warmer visual style
+- iMessage sharing warmth → applied to the share flow and email design, not just in-app interactions
+
+**Avoid entirely:**
+- Any UX that treats the frame as a device to be configured rather than a gift to be curated
+- Multi-step confirmation flows for actions the user has clear intent on
+
+## Design System Foundation
+
+### Design System Choice
+
+**Authenticated app:** Vue 3 SPA (TypeScript strict, Vite, Vue Router, Pinia) with SCSS modules scoped per SFC component and Konva.js + Vue-Konva for the sticker canvas editor.
+
+**Public flows** (email approve/decline, provisioning setup page): Symfony + Twig, minimal SCSS, no Vue dependency.
+
+### Rationale for Selection
+
+- **Vue 3 over React** — Composition API is clean, bundle size is smaller, TypeScript integration is excellent, appropriate for this application's complexity level.
+- **SCSS modules over Tailwind** — semantic, authored CSS produces more maintainable component styles; complex canvas states (sticker selected, dragging, pinch-active) express more clearly as authored classes than utility strings. No utility class noise in templates.
+- **No DaisyUI** — components are written properly from scratch in Vue SFCs with scoped SCSS; a pre-built component library is unnecessary.
+- **Konva.js** over Fabric.js — lighter, superior mobile touch event handling, maintained Vue-Konva wrapper for reactive sticker state.
+- **TypeScript strict mode** — API response interfaces mirror Symfony entities; compiler surfaces contract drift before it reaches deployed devices. Non-negotiable given the no-breaking-changes firmware constraint.
+
+### Implementation Approach
+
+- Vue app scaffolded with Vite + TypeScript template
+- `src/types/` directory holds interfaces mirroring every Symfony API response shape: `Device`, `Image`, `StickerLayer`, `RenderedAsset`, `Token`
+- Symfony serves the Vue app's `index.html` shell for all authenticated routes; Vue Router handles client-side navigation
+- Public Symfony routes (`/setup/{mac}`, `/token/{uuid}/approve`) remain outside the Vue app entirely
+
+### Customization Strategy
+
+- Design tokens defined as SCSS variables: color palette, spacing scale, border radius, typography — warm/playful values set once, used everywhere
+- Component SCSS lives in each SFC `
+
+
+
+
pictureFrame
+
Theme Explorer — click a theme to preview
+
+
+
+
+ ✓
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Color Palette
+
+
Primary#c4622a
+
Secondary#e8956a
+
Accent#f5c842
+
Surface#f0e8df
+
Text#2a1e16
+
+
Concept
+
Inspired by the walnut frame itself. Warm amber and terracotta feel handmade and intentional — like something that belongs on a shelf, not a screen. The golden accent echoes the e-ink's yellow. Feels like a gift, not an app.
+
Buttons
+
+
+
+
+
+
+
+
+
Library Card
+
+
🏔️
+
Lake Trip 2024
+
Added 3 days ago
+
Margaret's Frame
+
+
+
+
Device Card
+
+
Margaret's Frame
+
Margaret's Frame
+
12 photos · Rotates daily
+
Online
+
+
+
+
Sticker Editor
+
+
+
🏔️
+
Photo canvas
+
🎅
+
+
🎅⭐🎉❤️🌟
+
+
Navigation
+
+
+
🖼️Home
+
📷Upload
+
📚Library
+
⚙️Frames
+
+
+
+
+
+
+
+
+
Color Palette
+
+
Primary#d94f6e
+
Secondary#f47b93
+
Accent#ffb347
+
Surface#fce8ed
+
Text#26101a
+
+
Concept
+
Bold, warm coral with a sunny amber accent. Feels energetic and fun — the kind of app you're happy to open. The sticker editor will feel at home here. Expressive and youthful while staying warm and personal rather than cold and techy.
+
Buttons
+
+
+
+
+
+
+
+
+
Library Card
+
+
🏔️
+
Lake Trip 2024
+
Added 3 days ago
+
Margaret's Frame
+
+
+
+
Device Card
+
+
Margaret's Frame
+
Margaret's Frame
+
12 photos · Rotates daily
+
Online
+
+
+
+
Sticker Editor
+
+
+
🏔️
+
Photo canvas
+
🎅
+
+
🎅⭐🎉❤️🌟
+
+
Navigation
+
+
+
🖼️Home
+
📷Upload
+
📚Library
+
⚙️Frames
+
+
+
+
+
+
+
+
+
Color Palette
+
+
Primary#3d7a5a
+
Secondary#6aab87
+
Accent#e8965a
+
Surface#eaf2ed
+
Text#1a2e24
+
+
Concept
+
Sage green with a warm terracotta accent — calm and natural, like something grown rather than designed. Welcoming and trustworthy without being corporate. The most approachable for Margaret; the terracotta keeps it from feeling clinical.
+
Buttons
+
+
+
+
+
+
+
+
+
Library Card
+
+
🏔️
+
Lake Trip 2024
+
Added 3 days ago
+
Margaret's Frame
+
+
+
+
Device Card
+
+
Margaret's Frame
+
Margaret's Frame
+
12 photos · Rotates daily
+
Online
+
+
+
+
Sticker Editor
+
+
+
🏔️
+
Photo canvas
+
🎅
+
+
🎅⭐🎉❤️🌟
+
+
Navigation
+
+
+
🖼️Home
+
📷Upload
+
📚Library
+
⚙️Frames
+
+
+
+
+
+
+
+
+
Color Palette
+
+
Primary#8a4a7a
+
Secondary#b87aaa
+
Accent#d4a843
+
Surface#f2e4f0
+
Text#221220
+
+
Concept
+
Muted dusty rose and plum with a warm gold accent. Whimsical and personal without being loud — the kind of palette that feels handpicked rather than designed. Pairs beautifully with family photos and gives the sticker editor a slightly magical quality.
+
Buttons
+
+
+
+
+
+
+
+
+
Library Card
+
+
🏔️
+
Lake Trip 2024
+
Added 3 days ago
+
Margaret's Frame
+
+
+
+
Device Card
+
+
Margaret's Frame
+
Margaret's Frame
+
12 photos · Rotates daily
+
Online
+
+
+
+
Sticker Editor
+
+
+
🏔️
+
Photo canvas
+
🎅
+
+
🎅⭐🎉❤️🌟
+
+
Navigation
+
+
+
🖼️Home
+
📷Upload
+
📚Library
+
⚙️Frames
+
+
+
+
+
+
+
+
+
Color Palette
+
+
Primary#2a6878
+
Secondary#5498aa
+
Accent#f0875a
+
Surface#deedf2
+
Text#0e1f26
+
+
Concept
+
Deep teal with a warm peach-coral accent — calm and considered, like late afternoon light on water. Feels premium and intentional. The warmth of the accent stops it from feeling cold. A more refined option that still carries personality and pairs beautifully with photography.
+
Buttons
+
+
+
+
+
+
+
+
+
Library Card
+
+
🏔️
+
Lake Trip 2024
+
Added 3 days ago
+
Margaret's Frame
+
+
+
+
Device Card
+
+
Margaret's Frame
+
Margaret's Frame
+
12 photos · Rotates daily
+
Online
+
+
+
+
Sticker Editor
+
+
+
🏔️
+
Photo canvas
+
🎅
+
+
🎅⭐🎉❤️🌟
+
+
Navigation
+
+
+
🖼️Home
+
📷Upload
+
📚Library
+
⚙️Frames
+
+
+
+
+
+
+
+
+
Color Palette
+
+
Primary#5a5068
+
Secondary#8a80a0
+
Accent#e8a830
+
Surface#eeeaf6
+
Text#1e1a28
+
+
Concept
+
Cool lavender-slate with a rich honey gold accent. The most sophisticated of the set — the slate reads as calm and considered while the honey accent brings warmth and personality. Photos look stunning against this palette. Feels like a frame that belongs in a thoughtfully decorated home.