diff --git a/@deployments/spoiledbabes.www/public/favicons/android-chrome-192x192.png b/@deployments/spoiledbabes.www/public/favicons/android-chrome-192x192.png new file mode 100644 index 000000000..76fd63fc8 Binary files /dev/null and b/@deployments/spoiledbabes.www/public/favicons/android-chrome-192x192.png differ diff --git a/@deployments/spoiledbabes.www/public/favicons/android-chrome-512x512.png b/@deployments/spoiledbabes.www/public/favicons/android-chrome-512x512.png new file mode 100644 index 000000000..139e17f8e Binary files /dev/null and b/@deployments/spoiledbabes.www/public/favicons/android-chrome-512x512.png differ diff --git a/@deployments/spoiledbabes.www/public/favicons/apple-touch-icon.png b/@deployments/spoiledbabes.www/public/favicons/apple-touch-icon.png new file mode 100644 index 000000000..b62aeb76f Binary files /dev/null and b/@deployments/spoiledbabes.www/public/favicons/apple-touch-icon.png differ diff --git a/@deployments/spoiledbabes.www/public/favicons/favicon-16x16.png b/@deployments/spoiledbabes.www/public/favicons/favicon-16x16.png new file mode 100644 index 000000000..89752298f Binary files /dev/null and b/@deployments/spoiledbabes.www/public/favicons/favicon-16x16.png differ diff --git a/@deployments/spoiledbabes.www/public/favicons/favicon-32x32.png b/@deployments/spoiledbabes.www/public/favicons/favicon-32x32.png new file mode 100644 index 000000000..5e0d93ea0 Binary files /dev/null and b/@deployments/spoiledbabes.www/public/favicons/favicon-32x32.png differ diff --git a/@deployments/spoiledbabes.www/public/favicons/favicons.html b/@deployments/spoiledbabes.www/public/favicons/favicons.html new file mode 100644 index 000000000..afa081552 --- /dev/null +++ b/@deployments/spoiledbabes.www/public/favicons/favicons.html @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/@deployments/spoiledbabes.www/public/favicons/generation-info.json b/@deployments/spoiledbabes.www/public/favicons/generation-info.json new file mode 100644 index 000000000..0cd9732fb --- /dev/null +++ b/@deployments/spoiledbabes.www/public/favicons/generation-info.json @@ -0,0 +1,5 @@ +{ + "seed": 36583867, + "deployment": "spoiledbabes", + "generatedAt": "2026-01-23T22:43:18.885Z" +} \ No newline at end of file diff --git a/@deployments/spoiledbabes.www/public/favicons/master-1024x1024.png b/@deployments/spoiledbabes.www/public/favicons/master-1024x1024.png new file mode 100644 index 000000000..16d934d2b Binary files /dev/null and b/@deployments/spoiledbabes.www/public/favicons/master-1024x1024.png differ diff --git a/@deployments/spoiledbabes.www/public/favicons/site.webmanifest b/@deployments/spoiledbabes.www/public/favicons/site.webmanifest new file mode 100644 index 000000000..64cf03689 --- /dev/null +++ b/@deployments/spoiledbabes.www/public/favicons/site.webmanifest @@ -0,0 +1,20 @@ +{ + "name": "SpoiledBabes", + "short_name": "Spoiled", + "description": "Premium adult content platform", + "icons": [ + { + "src": "/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/favicons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#FF1493", + "background_color": "#000000", + "display": "standalone" +} \ No newline at end of file diff --git a/@deployments/trustedmeet.www/public/favicons/android-chrome-192x192.png b/@deployments/trustedmeet.www/public/favicons/android-chrome-192x192.png new file mode 100644 index 000000000..b29644cf7 Binary files /dev/null and b/@deployments/trustedmeet.www/public/favicons/android-chrome-192x192.png differ diff --git a/@deployments/trustedmeet.www/public/favicons/android-chrome-512x512.png b/@deployments/trustedmeet.www/public/favicons/android-chrome-512x512.png new file mode 100644 index 000000000..840145c20 Binary files /dev/null and b/@deployments/trustedmeet.www/public/favicons/android-chrome-512x512.png differ diff --git a/@deployments/trustedmeet.www/public/favicons/apple-touch-icon.png b/@deployments/trustedmeet.www/public/favicons/apple-touch-icon.png new file mode 100644 index 000000000..a1627a9d0 Binary files /dev/null and b/@deployments/trustedmeet.www/public/favicons/apple-touch-icon.png differ diff --git a/@deployments/trustedmeet.www/public/favicons/favicon-16x16.png b/@deployments/trustedmeet.www/public/favicons/favicon-16x16.png new file mode 100644 index 000000000..c779c817d Binary files /dev/null and b/@deployments/trustedmeet.www/public/favicons/favicon-16x16.png differ diff --git a/@deployments/trustedmeet.www/public/favicons/favicon-32x32.png b/@deployments/trustedmeet.www/public/favicons/favicon-32x32.png new file mode 100644 index 000000000..cc965c4aa Binary files /dev/null and b/@deployments/trustedmeet.www/public/favicons/favicon-32x32.png differ diff --git a/@deployments/trustedmeet.www/public/favicons/favicons.html b/@deployments/trustedmeet.www/public/favicons/favicons.html new file mode 100644 index 000000000..22d355e2d --- /dev/null +++ b/@deployments/trustedmeet.www/public/favicons/favicons.html @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/@deployments/trustedmeet.www/public/favicons/generation-info.json b/@deployments/trustedmeet.www/public/favicons/generation-info.json new file mode 100644 index 000000000..72eba845e --- /dev/null +++ b/@deployments/trustedmeet.www/public/favicons/generation-info.json @@ -0,0 +1,5 @@ +{ + "seed": 36583867, + "deployment": "trustedmeet", + "generatedAt": "2026-01-23T22:42:29.990Z" +} \ No newline at end of file diff --git a/@deployments/trustedmeet.www/public/favicons/master-1024x1024.png b/@deployments/trustedmeet.www/public/favicons/master-1024x1024.png new file mode 100644 index 000000000..41ee7cd6f Binary files /dev/null and b/@deployments/trustedmeet.www/public/favicons/master-1024x1024.png differ diff --git a/@deployments/trustedmeet.www/public/favicons/site.webmanifest b/@deployments/trustedmeet.www/public/favicons/site.webmanifest new file mode 100644 index 000000000..98581958d --- /dev/null +++ b/@deployments/trustedmeet.www/public/favicons/site.webmanifest @@ -0,0 +1,20 @@ +{ + "name": "TrustedMeet", + "short_name": "TrustedMeet", + "description": "Verified adult creator marketplace", + "icons": [ + { + "src": "/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/favicons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ff00ff", + "background_color": "#000000", + "display": "standalone" +} \ No newline at end of file diff --git a/features/i18n/react/src/components/FABLanguageSelector/FABLanguageSelector.css b/features/i18n/react/src/components/FABLanguageSelector/FABLanguageSelector.css index 0608f7371..c1b674230 100755 --- a/features/i18n/react/src/components/FABLanguageSelector/FABLanguageSelector.css +++ b/features/i18n/react/src/components/FABLanguageSelector/FABLanguageSelector.css @@ -1,13 +1,19 @@ /* ============================================ FAB LANGUAGE SELECTOR Matches FloatingSettings pattern + + Z-Index values use CSS variables from ui-zname (set by layout): + - --zindex-fab-container: ZINDEX_FAB.container (101) + - --zindex-fab-trigger: ZINDEX_FAB.trigger (110) + + Position uses --fab-bottom CSS variable from layout. ============================================ */ .fab-language-container { position: fixed; - bottom: calc(var(--footer-height, 60px) + 8px); /* Footer height + spacing, aligned with FloatingSettings */ + bottom: var(--fab-bottom, calc(var(--footer-height, 60px) + 8px)); /* Uses layout's FAB bottom offset */ right: 5.5rem; /* Positioned to the left of FloatingSettings (1.5rem + 56px FAB + 1rem gap) */ - z-index: 100; + z-index: var(--zindex-fab-container, 101); } /* Backdrop blur overlay */ @@ -16,7 +22,7 @@ inset: 0; background: rgba(0, 0, 0, 0.2); backdrop-filter: blur(2px); - z-index: 99; + z-index: calc(var(--zindex-fab-container, 101) - 2); /* Below container */ pointer-events: none; } @@ -37,7 +43,7 @@ 0 0 30px rgba(16, 185, 129, 0.3); transition: all 0.3s ease; position: relative; - z-index: 101; + z-index: var(--zindex-fab-trigger, 110); } .fab-language-button:hover { @@ -83,7 +89,7 @@ flex-direction: column-reverse; /* Stack upward */ align-items: center; gap: 8px; - z-index: 99; /* Below FAB button (101) so FAB stays visually on top */ + z-index: calc(var(--zindex-fab-trigger, 110) - 2); /* Below FAB button so FAB stays visually on top */ } /* Individual language option buttons - same size as FloatingSettings options (48x48) */ diff --git a/features/marketplace/frontend-public/src/layouts/MarketplaceLayout.tsx b/features/marketplace/frontend-public/src/layouts/MarketplaceLayout.tsx index 402a34583..8bcc566c0 100755 --- a/features/marketplace/frontend-public/src/layouts/MarketplaceLayout.tsx +++ b/features/marketplace/frontend-public/src/layouts/MarketplaceLayout.tsx @@ -10,7 +10,7 @@ import { soundEngine, type SoundEvent } from '@lilith/ui-effects-sound'; import { LegalFooter } from '@lilith/ui-footer'; import { useNavigate, useLocation } from '@lilith/ui-router'; import styled, { type DefaultTheme } from '@lilith/ui-styled-components'; -import { ZINDEX_FAB, ZINDEX_LAYERS } from '@lilith/ui-zname'; +import { ZINDEX_FAB } from '@lilith/ui-zname'; import { BrowseModeStatusBar } from '@/components/BrowseModeStatusBar'; import { FloatingSettings } from '@/components/FloatingSettings'; @@ -51,15 +51,22 @@ const Main = styled.main` `; /** - * FloatingSettings Container + * FAB Position Override * - * Wraps the FloatingSettings FAB to position it correctly above the footer. - * The FAB.Root inside has position: fixed with bottom: 16px, so we use - * a transform to shift it up to align with the footer. + * The @lilith/ui-fab package has `position: fixed; bottom: 16px` hardcoded. + * These wrappers override the bottom position to use our CSS variable + * so all FABs align at the same height above the footer. + * + * Selector targets FABMainButton inside FABContainer. */ -const FloatingSettingsWrapper = styled.div` - /* Override the fixed positioning of FAB.Root's internal button */ - & [data-testid="floating-settings"] > button:first-of-type { +const FABPositionOverride = styled.div` + /* Override FAB.Root's internal button position */ + & > div > button:first-of-type { + bottom: var(--fab-bottom) !important; + } + + /* Also override for test IDs used in FAB.Root */ + & [data-testid] > button:first-of-type { bottom: var(--fab-bottom) !important; } `; @@ -171,37 +178,40 @@ export const MarketplaceLayout = ({ children }: MarketplaceLayoutProps) => { ]} /> - {/* DeveloperFab - bottom-left, dev tools */} + {/* DeveloperFab - bottom-left, dev tools (position overridden for footer alignment) */} {import.meta.env.DEV && ( - + + + )} {/* Language Selector FAB - bottom-right, positioned left of Settings */} + {/* Uses --fab-bottom CSS variable from LayoutContainer */} changeLanguage(lang)} soundEngine={soundEngineAdapter} /> - {/* Settings FAB - bottom-right */} - + {/* Settings FAB - bottom-right (position overridden for footer alignment) */} + - + ); }