diff --git a/ClaudeBrandingReview.md b/ClaudeBrandingReview.md index 9bb8e90a..a0a5cc73 100644 --- a/ClaudeBrandingReview.md +++ b/ClaudeBrandingReview.md @@ -16,12 +16,19 @@ the existing artwork (`docs/brand/visual-identity.md` + `docs/brand/asset-system > Flat 2D pastel vector **illustration** in the "Closer" couples-app style: soft rounded shapes, **no harsh outlines**, > gentle smooth gradients, calm and intimate. **Palette only:** aubergine `#24122F`, deep purple `#56306F`, lavender > `#B98AF4`, soft pink `#F7C8E4`, soft lavender `#D9B8FF`, blush white `#FFF8FC`. Mood: **warm, quiet, equal, -> intentional — a private ritual for two.** Recurring motifs available: a single heart made of two equal pink+lavender -> halves, paired/sealed cards, floating hearts and petals, a small wooden table with mugs + a lit candle + a lavender -> sprig, moon/window for quiet hours, a calendar/date-card, a sealed capsule/box. If people appear: **two balanced, -> inclusive figures, simple friendly faces, no dominant partner.** Soft abstract floral/heart shapes in the background. +> intentional — a private ritual for two.** Recurring motifs available: paired/sealed cards, floating hearts and +> petals, a small wooden table with mugs + a lit candle + a lavender sprig, moon/window for quiet hours, a +> calendar/date-card, a sealed capsule/box. If people appear: **two balanced, inclusive figures, simple friendly +> faces, no dominant partner.** Soft abstract floral/heart shapes in the background. > **Do NOT include:** any readable text, answer/prompt/message content, invite codes, emails, app UI/buttons, generic -> dating-app clichés, stock-photo realism, brand logos, alarm/urgency/surveillance/fire imagery. +> dating-app clichés, stock-photo realism, other brands' logos/wordmarks/app-store badges, +> alarm/urgency/surveillance/fire imagery. + +> **The Closer brand mark** (use ONLY where a prompt explicitly calls for it — otherwise keep art mark-free): a +> pink-to-lavender **"C"** whose upper arc is soft pink and lower sweep is lavender, curving around a **heart-shaped +> negative space** with a small **dark aubergine keyhole** at its center (the keyhole = trust/privacy; the heart = +> the couple). Keep it faithful — do not redraw it as a plain `C`, turn the keyhole into a heart, add a key/lock +> shackle, add faces or text. On dark/aubergine surfaces use a white keyhole; on light/blush use the aubergine keyhole. **Aspect/format conventions** - Hero/onboarding/paywall: portrait **4:5** (matches `illustration_couple_*`). diff --git a/app/src/main/java/app/closer/ui/onboarding/OnboardingScreen.kt b/app/src/main/java/app/closer/ui/onboarding/OnboardingScreen.kt index 790d97fd..32be15bd 100644 --- a/app/src/main/java/app/closer/ui/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/app/closer/ui/onboarding/OnboardingScreen.kt @@ -35,7 +35,6 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color @@ -246,7 +245,7 @@ private fun CtaSlide(onNavigate: (String) -> Unit) { painter = painterResource(R.drawable.ic_launcher_foreground), contentDescription = null, contentScale = ContentScale.Fit, - modifier = Modifier.matchParentSize().alpha(0.96f) + modifier = Modifier.matchParentSize() ) } Spacer(Modifier.height(28.dp)) diff --git a/app/src/main/res/drawable-nodpi/closer_launcher_foreground.png b/app/src/main/res/drawable-nodpi/closer_launcher_foreground.png index 97d8a1e9..2517e4bf 100644 Binary files a/app/src/main/res/drawable-nodpi/closer_launcher_foreground.png and b/app/src/main/res/drawable-nodpi/closer_launcher_foreground.png differ diff --git a/docs/brand/asset-system.md b/docs/brand/asset-system.md index fca16732..a5a1b714 100644 --- a/docs/brand/asset-system.md +++ b/docs/brand/asset-system.md @@ -65,7 +65,7 @@ This section is only about the artwork used to represent notifications, not noti | Asset | Use | Source / Target | | --- | --- | --- | -| Primary app mark | Launcher, favicon, small brand moments | `docs/brand/sources/closer-approved-icon-source.png` | +| Primary app mark | Launcher, favicon, small brand moments | `docs/brand/sources/closer-approved-icon-square-white-keyhole.png` | | Mark for dark backgrounds | Logo use on aubergine/purple surfaces | `docs/brand/sources/closer-mark-on-dark.svg` | | Mark for light backgrounds | Logo use on blush/white/light surfaces | `docs/brand/sources/closer-mark-on-light.svg` | | Adaptive foreground | Android launcher layer | `app/src/main/res/drawable/ic_launcher_foreground.xml` | @@ -82,9 +82,37 @@ approved pink upper C, lavender lower sweep, heart-shaped inner space, and true redraw it as a generic `C`, turn the keyhole into a heart, add a key or lock shackle, add faces, add text inside it, or use it as a reaction emoji. -Keyhole rule: keep the dark keyhole in the official launcher/store icon. Use the white keyhole only -when the transparent mark sits directly on dark aubergine/purple. Use the aubergine keyhole on light -or blush backgrounds. +Keyhole rule: use the white keyhole in the official launcher/store icon and on dark aubergine/purple +logo surfaces. Use the aubergine keyhole on light or blush in-app surfaces when the mark should feel +calmer. + +### 1a. Loaded asset sets → where they are used (routing) + +This maps the asset sets currently on disk to their destination. Treat the `sources/` files as +masters (do not ship them directly); ship the exports and the wired Android rasters. + +| File on disk | Role | Wired into / destination | +| --- | --- | --- | +| `docs/brand/sources/closer-approved-icon-source.png` | Master source of truth (full color, dark keyhole) | Regenerate all icons from this after any mark change | +| `docs/brand/sources/closer-approved-icon-square.png` | Square 1024 master | iOS `AppIcon` 1024, store 1024 | +| `docs/brand/sources/closer-mark.svg` | Vector master of the mark | Source for all PNG exports | +| `docs/brand/sources/closer-mark-transparent-keyhole-white.png` | Transparent mark, white keyhole (for dark aubergine/purple) | **Source of** `drawable-nodpi/closer_launcher_foreground.png` (adaptive fg over the aubergine bg) + the Auth/Onboarding logo tile (dark surface) | +| `docs/brand/sources/closer-mark-transparent-keyhole-aubergine.png` | Transparent mark, dark keyhole (for light/blush surfaces) | **Source of** `drawable-nodpi/closer_mark_loader.png` (all loaders + the PairingSuccess hero badge on blush) | +| `docs/brand/sources/closer-mark-transparent-keyhole-black.png` | Mono/max-contrast mark | Print/legal, max-contrast light | +| `docs/brand/exports/logo/transparent-keyhole-aubergine/closer-mark-{24..1024}.png` | Sized PNGs, dark keyhole | Web/email/social on light, docs, favicons | +| `docs/brand/exports/logo/transparent-keyhole-white/closer-mark-{24..1024}.png` | Sized PNGs, white keyhole | Same, on dark surfaces | +| `docs/brand/exports/logo/transparent-keyhole-black/closer-mark-{24..1024}.png` | Sized PNGs, mono | One-color/print/footer | +| `docs/brand/exports/logo/social/closer-mark-social-{1024,2048}.png` | Square social avatars / OG | Social profile + open-graph square | +| `docs/brand/exports/logo/app-icon/closer-app-icon-512.png` | Play listing icon | `docs/store/app-icon-512.png` (Play Console) | +| `app/src/main/res/drawable-nodpi/closer_launcher_foreground.png` | Adaptive **foreground** (white-keyhole mark, safe-zone) | `drawable/ic_launcher_foreground.xml` → `mipmap-anydpi-*/ic_launcher*.xml`; also the Auth/Onboarding logo tile | +| `app/src/main/res/drawable/ic_launcher_background.xml` | Adaptive **background** (aubergine gradient) | `mipmap-anydpi-*/ic_launcher*.xml` | +| `app/src/main/res/drawable-nodpi/closer_launcher_monochrome.png` | Themed-icon **monochrome** (grayscale+alpha) | `drawable/ic_launcher_monochrome.xml` → `mipmap-anydpi-v33/*` | +| `app/src/main/res/drawable-nodpi/ic_notification_closer.png` | Notification small icon (white+alpha silhouette) | `NotificationHelper`, `PartnerNotificationManager` `setSmallIcon` | +| `app/src/main/res/drawable-nodpi/closer_mark_loader.png` | Full-color transparent mark | `CloserMarkLoader` (all loaders), `PairingSuccessScreen` hero, `AuthLogoMark`/Onboarding tile | + +Note: the section-1 rows `closer-mark-on-dark.svg` / `closer-mark-on-light.svg` and the lockup/favicon +rows are still **to-build** — the on-disk equivalents today are the `transparent-keyhole-white` (dark) +and `transparent-keyhole-aubergine` (light) PNG sets above. ### 2. App Icons diff --git a/docs/brand/exports/logo/app-icon/closer-app-icon-512.png b/docs/brand/exports/logo/app-icon/closer-app-icon-512.png index 82e3065c..3b41ddc6 100644 Binary files a/docs/brand/exports/logo/app-icon/closer-app-icon-512.png and b/docs/brand/exports/logo/app-icon/closer-app-icon-512.png differ diff --git a/docs/brand/exports/logo/social/closer-mark-social-1024.png b/docs/brand/exports/logo/social/closer-mark-social-1024.png index fea5b03e..24b7cba2 100644 Binary files a/docs/brand/exports/logo/social/closer-mark-social-1024.png and b/docs/brand/exports/logo/social/closer-mark-social-1024.png differ diff --git a/docs/brand/exports/logo/social/closer-mark-social-2048.png b/docs/brand/exports/logo/social/closer-mark-social-2048.png index 25bb0a2a..7c154eb6 100644 Binary files a/docs/brand/exports/logo/social/closer-mark-social-2048.png and b/docs/brand/exports/logo/social/closer-mark-social-2048.png differ diff --git a/docs/brand/visual-identity.md b/docs/brand/visual-identity.md index 6e8843c0..36cca7c2 100644 --- a/docs/brand/visual-identity.md +++ b/docs/brand/visual-identity.md @@ -16,6 +16,7 @@ a heart-shaped inner space, and a true centered keyhole. Pink and lavender repre meeting in one private space; the keyhole represents trust and privacy. - Master mark source: `docs/brand/sources/closer-approved-icon-source.png` +- App/store icon source: `docs/brand/sources/closer-approved-icon-square-white-keyhole.png` - Transparent mark source: `docs/brand/sources/closer-mark-transparent-keyhole-aubergine.png` - Dark-background mark source: `docs/brand/sources/closer-mark-on-dark.svg` - Light-background mark source: `docs/brand/sources/closer-mark-on-light.svg` @@ -31,17 +32,18 @@ or place text inside the icon. ### Keyhole color -Use the keyhole color to support contrast without changing the official icon: +Use the keyhole color to support contrast while keeping the official icon visually clear: -- **Primary app icon / launcher / store icon:** keep the approved dark keyhole. It feels private and - premium, and keeps the icon from looking like a generic security app. +- **Primary app icon / launcher / store icon:** use the white-keyhole square icon. It gives the + privacy cue enough contrast at launcher size. - **Transparent mark on dark aubergine or purple:** use the white-keyhole variant so the privacy cue stays visible. - **Transparent mark on blush, white, or light UI:** use the aubergine-keyhole variant first; use the black-keyhole variant only when maximum contrast is needed. - **Notification small icon:** use the single-color platform glyph; do not use the full-color launcher art. -- **Loading mark:** use the aubergine-keyhole variant on light/card surfaces. +- **Loading mark:** use the aubergine-keyhole variant on light/card surfaces so it stays calmer than + the launcher icon. ## Core colors diff --git a/docs/store/app-icon-512.png b/docs/store/app-icon-512.png index b15dd5e0..dbaf4184 100644 Binary files a/docs/store/app-icon-512.png and b/docs/store/app-icon-512.png differ diff --git a/docs/store/sources/app-icon.svg b/docs/store/sources/app-icon.svg index 137dff7f..88abe0ac 100644 --- a/docs/store/sources/app-icon.svg +++ b/docs/store/sources/app-icon.svg @@ -1,3 +1,3 @@ - + diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index 797ed8d4..d581870e 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 80d8bee3..2b14ac95 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 3995ea83..703d54d1 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index e21b4475..a43a33f8 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index f3af606a..70057bd4 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index ca2b310e..6ba9b50d 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index fd980d94..6b2e2997 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index a9477769..703d54d1 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index 0e0a1688..033213e4 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index a310774a..3250dbac 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index a310774a..3250dbac 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 376a357b..07a6572f 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index 3e44065d..d311bba0 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 6081d92d..be4cf5ef 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index 1b79f987..d2e0ee88 100644 Binary files a/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/iphone/Closer/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ