about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--android/app/src/main/res/mipmap-hdpi/ic_launcher.pngbin3056 -> 12264 bytes
-rw-r--r--android/app/src/main/res/mipmap-hdpi/ic_launcher_round.pngbin5024 -> 0 bytes
-rw-r--r--android/app/src/main/res/mipmap-mdpi/ic_launcher.pngbin2096 -> 5906 bytes
-rw-r--r--android/app/src/main/res/mipmap-mdpi/ic_launcher_round.pngbin2858 -> 0 bytes
-rw-r--r--android/app/src/main/res/mipmap-xhdpi/ic_launcher.pngbin4569 -> 20474 bytes
-rw-r--r--android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.pngbin7098 -> 0 bytes
-rw-r--r--android/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngbin6464 -> 41521 bytes
-rw-r--r--android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngbin10676 -> 0 bytes
-rw-r--r--android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngbin9250 -> 68616 bytes
-rw-r--r--android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngbin15523 -> 0 bytes
-rw-r--r--ios/LaunchScreen.storyboard (renamed from ios/app/LaunchScreen.storyboard)30
-rw-r--r--ios/app.xcodeproj/project.pbxproj8
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/100.pngbin0 -> 20585 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/1024.pngbin355651 -> 1172966 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/114.pngbin17085 -> 25930 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/120 1.pngbin17045 -> 0 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/120.pngbin17045 -> 28291 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/128.pngbin0 -> 31748 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/144.pngbin0 -> 39019 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/152.pngbin0 -> 42803 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/16.pngbin0 -> 853 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/167.pngbin0 -> 50264 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/172.pngbin0 -> 52873 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/180.pngbin30975 -> 57354 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/196.pngbin0 -> 66539 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/20.pngbin0 -> 1231 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/216.pngbin0 -> 78726 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/256.pngbin0 -> 106196 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/29.pngbin2922 -> 2306 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/32.pngbin0 -> 2765 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/40.pngbin4180 -> 4067 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/48.pngbin0 -> 5650 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/50.pngbin0 -> 6066 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/512.pngbin0 -> 359718 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/55.pngbin0 -> 7185 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/57.pngbin6896 -> 7636 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/58.pngbin7087 -> 7896 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/60.pngbin7116 -> 8368 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/64.pngbin0 -> 9416 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/66.pngbin0 -> 9932 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/72.pngbin0 -> 11592 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/76.pngbin0 -> 12757 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/80.pngbin10463 -> 13958 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/87.pngbin12579 -> 16124 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/88.pngbin0 -> 16541 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/92.pngbin0 -> 17827 bytes
-rw-r--r--ios/app/Images.xcassets/AppIcon.appiconset/Contents.json268
-rw-r--r--ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json6
-rw-r--r--ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash.pngbin0 -> 712345 bytes
-rw-r--r--ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@2x.pngbin0 -> 2360722 bytes
-rw-r--r--ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@3x.pngbin0 -> 4827311 bytes
-rw-r--r--ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpgbin94459 -> 0 bytes
-rw-r--r--ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpgbin262189 -> 0 bytes
-rw-r--r--ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpgbin539273 -> 0 bytes
-rw-r--r--public/img/cloud-splash.pngbin0 -> 712345 bytes
-rw-r--r--src/view/com/login/Logo.tsx38
-rw-r--r--src/view/lib/assets.native.ts1
-rw-r--r--src/view/lib/assets.ts1
-rw-r--r--src/view/screens/Login.tsx97
59 files changed, 329 insertions, 120 deletions
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index a2f590828..65dd9de36 100644
--- a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
+++ b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differdiff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index 1b5239980..000000000
--- a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
+++ /dev/null
Binary files differdiff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index ff10afd6e..2d4ed5510 100644
--- a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
+++ b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differdiff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index 115a4c768..000000000
--- a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
+++ /dev/null
Binary files differdiff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index dcd3cd808..9248ec7de 100644
--- a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
+++ b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differdiff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index 459ca609d..000000000
--- a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
+++ /dev/null
Binary files differdiff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 8ca12fe02..7c8290e49 100644
--- a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
+++ b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differdiff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index 8e19b410a..000000000
--- a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
+++ /dev/null
Binary files differdiff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index b824ebdd4..f1658a93a 100644
--- a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
+++ b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differdiff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index 4c19a13c2..000000000
--- a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
+++ /dev/null
Binary files differdiff --git a/ios/app/LaunchScreen.storyboard b/ios/LaunchScreen.storyboard
index e5542188d..700f1cfcc 100644
--- a/ios/app/LaunchScreen.storyboard
+++ b/ios/LaunchScreen.storyboard
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
-    <device id="retina4_7" orientation="portrait" appearance="light"/>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Y6W-OH-hqX">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
         <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
@@ -9,33 +9,33 @@
     </dependencies>
     <scenes>
         <!--View Controller-->
-        <scene sceneID="EHf-IW-A2E">
+        <scene sceneID="s0d-6b-0kx">
             <objects>
-                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
-                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                <viewController id="Y6W-OH-hqX" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc">
+                        <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" image="LaunchScreen" translatesAutoresizingMaskIntoConstraints="NO" id="3xW-LZ-8bI">
-                                <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" image="LaunchScreen" translatesAutoresizingMaskIntoConstraints="NO" id="Ppr-Vi-7AA">
+                                <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
                             </imageView>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstAttribute="bottom" secondItem="3xW-LZ-8bI" secondAttribute="bottom" id="Qjl-JH-apV"/>
-                            <constraint firstItem="3xW-LZ-8bI" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="c7a-bI-Hl7"/>
-                            <constraint firstAttribute="trailing" secondItem="3xW-LZ-8bI" secondAttribute="trailing" id="vM9-Qy-zds"/>
-                            <constraint firstItem="3xW-LZ-8bI" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="yhO-am-Ve0"/>
+                            <constraint firstAttribute="trailing" secondItem="Ppr-Vi-7AA" secondAttribute="trailing" id="8NR-sO-ZhN"/>
+                            <constraint firstItem="Ppr-Vi-7AA" firstAttribute="top" secondItem="5EZ-qb-Rvc" secondAttribute="top" id="Od5-pK-zM2"/>
+                            <constraint firstItem="Ppr-Vi-7AA" firstAttribute="leading" secondItem="5EZ-qb-Rvc" secondAttribute="leading" id="Ww6-nx-IYo"/>
+                            <constraint firstAttribute="bottom" secondItem="Ppr-Vi-7AA" secondAttribute="bottom" id="vTP-N3-Ihm"/>
                         </constraints>
                     </view>
                 </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="52.173913043478265" y="375"/>
+            <point key="canvasLocation" x="119.84732824427481" y="4.9295774647887329"/>
         </scene>
     </scenes>
     <resources>
-        <image name="LaunchScreen" width="500" height="750"/>
+        <image name="LaunchScreen" width="600" height="900"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>
diff --git a/ios/app.xcodeproj/project.pbxproj b/ios/app.xcodeproj/project.pbxproj
index 20e1657a7..c82cf898d 100644
--- a/ios/app.xcodeproj/project.pbxproj
+++ b/ios/app.xcodeproj/project.pbxproj
@@ -13,7 +13,7 @@
 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
 		5698CA584FD738B2091BD18F /* libPods-app-appTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C0C7BDE7769B84011D3747DC /* libPods-app-appTests.a */; };
 		67BF1AE6AABFC881715B2D6A /* libPods-app.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8789F612EDA2C48C6064ADD6 /* libPods-app.a */; };
-		81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
+		E46FE2C12981C0DB007C107C /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E46FE2C02981C0DB007C107C /* LaunchScreen.storyboard */; };
 		E4BBD590292C1F5200296224 /* app.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = E4437C9E28581FA7006DA9E7 /* app.entitlements */; };
 /* End PBXBuildFile section */
 
@@ -38,13 +38,13 @@
 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = app/Info.plist; sourceTree = "<group>"; };
 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = app/main.m; sourceTree = "<group>"; };
 		53DBA218C184B95B107AC33E /* Pods-app.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-app.release.xcconfig"; path = "Target Support Files/Pods-app/Pods-app.release.xcconfig"; sourceTree = "<group>"; };
-		81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = app/LaunchScreen.storyboard; sourceTree = "<group>"; };
 		8789F612EDA2C48C6064ADD6 /* libPods-app.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-app.a"; sourceTree = BUILT_PRODUCTS_DIR; };
 		8BB4EDB104E125B8A1913E74 /* Pods-app.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-app.debug.xcconfig"; path = "Target Support Files/Pods-app/Pods-app.debug.xcconfig"; sourceTree = "<group>"; };
 		A8E093A0B5DA947150924A68 /* Pods-app-appTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-app-appTests.release.xcconfig"; path = "Target Support Files/Pods-app-appTests/Pods-app-appTests.release.xcconfig"; sourceTree = "<group>"; };
 		C01FB6762BC17DADC0319338 /* Pods-app-appTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-app-appTests.debug.xcconfig"; path = "Target Support Files/Pods-app-appTests/Pods-app-appTests.debug.xcconfig"; sourceTree = "<group>"; };
 		C0C7BDE7769B84011D3747DC /* libPods-app-appTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-app-appTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
 		E4437C9E28581FA7006DA9E7 /* app.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = app.entitlements; path = app/app.entitlements; sourceTree = "<group>"; };
+		E46FE2C02981C0DB007C107C /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
 /* End PBXFileReference section */
 
@@ -93,8 +93,8 @@
 				13B07FB01A68108700A75B9A /* AppDelegate.mm */,
 				13B07FB51A68108700A75B9A /* Images.xcassets */,
 				13B07FB61A68108700A75B9A /* Info.plist */,
-				81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
 				13B07FB71A68108700A75B9A /* main.m */,
+				E46FE2C02981C0DB007C107C /* LaunchScreen.storyboard */,
 			);
 			name = app;
 			sourceTree = "<group>";
@@ -245,8 +245,8 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				E46FE2C12981C0DB007C107C /* LaunchScreen.storyboard in Resources */,
 				E4BBD590292C1F5200296224 /* app.entitlements in Resources */,
-				81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
 				13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
diff --git a/ios/app/Images.xcassets/AppIcon.appiconset/100.png b/ios/app/Images.xcassets/AppIcon.appiconset/100.png
new file mode 100644
index 000000000..2ab2cc191
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/100.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/1024.png b/ios/app/Images.xcassets/AppIcon.appiconset/1024.png
index a1bf0bcb5..1dda9a342 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/1024.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/1024.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/114.png b/ios/app/Images.xcassets/AppIcon.appiconset/114.png
index 008659b50..37ce4787a 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/114.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/114.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/120 1.png b/ios/app/Images.xcassets/AppIcon.appiconset/120 1.png
deleted file mode 100644
index c9fd30144..000000000
--- a/ios/app/Images.xcassets/AppIcon.appiconset/120 1.png
+++ /dev/null
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/120.png b/ios/app/Images.xcassets/AppIcon.appiconset/120.png
index c9fd30144..5288bd5bd 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/120.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/120.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/128.png b/ios/app/Images.xcassets/AppIcon.appiconset/128.png
new file mode 100644
index 000000000..ba401db8f
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/128.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/144.png b/ios/app/Images.xcassets/AppIcon.appiconset/144.png
new file mode 100644
index 000000000..ae573d2e6
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/144.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/152.png b/ios/app/Images.xcassets/AppIcon.appiconset/152.png
new file mode 100644
index 000000000..255663d59
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/152.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/16.png b/ios/app/Images.xcassets/AppIcon.appiconset/16.png
new file mode 100644
index 000000000..be4e2b0b3
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/16.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/167.png b/ios/app/Images.xcassets/AppIcon.appiconset/167.png
new file mode 100644
index 000000000..84f4bfa29
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/167.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/172.png b/ios/app/Images.xcassets/AppIcon.appiconset/172.png
new file mode 100644
index 000000000..3532bb966
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/172.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/180.png b/ios/app/Images.xcassets/AppIcon.appiconset/180.png
index 7d58a9ed6..114c2a4d7 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/180.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/180.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/196.png b/ios/app/Images.xcassets/AppIcon.appiconset/196.png
new file mode 100644
index 000000000..a71f3d298
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/196.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/20.png b/ios/app/Images.xcassets/AppIcon.appiconset/20.png
new file mode 100644
index 000000000..c6df8f017
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/20.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/216.png b/ios/app/Images.xcassets/AppIcon.appiconset/216.png
new file mode 100644
index 000000000..e2839dcc1
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/216.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/256.png b/ios/app/Images.xcassets/AppIcon.appiconset/256.png
new file mode 100644
index 000000000..16d647a91
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/256.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/29.png b/ios/app/Images.xcassets/AppIcon.appiconset/29.png
index 332cf9bc0..eb2ffd258 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/29.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/29.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/32.png b/ios/app/Images.xcassets/AppIcon.appiconset/32.png
new file mode 100644
index 000000000..ec90d9f23
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/32.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/40.png b/ios/app/Images.xcassets/AppIcon.appiconset/40.png
index b14a56a93..b9565b378 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/40.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/40.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/48.png b/ios/app/Images.xcassets/AppIcon.appiconset/48.png
new file mode 100644
index 000000000..d33d0b1f1
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/48.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/50.png b/ios/app/Images.xcassets/AppIcon.appiconset/50.png
new file mode 100644
index 000000000..f6bb30996
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/50.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/512.png b/ios/app/Images.xcassets/AppIcon.appiconset/512.png
new file mode 100644
index 000000000..d732c6d74
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/512.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/55.png b/ios/app/Images.xcassets/AppIcon.appiconset/55.png
new file mode 100644
index 000000000..f81097bde
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/55.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/57.png b/ios/app/Images.xcassets/AppIcon.appiconset/57.png
index 7a2680b7b..ec8574808 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/57.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/57.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/58.png b/ios/app/Images.xcassets/AppIcon.appiconset/58.png
index ceb9533e5..38bf21bf2 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/58.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/58.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/60.png b/ios/app/Images.xcassets/AppIcon.appiconset/60.png
index 46c004d32..51c0afaf7 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/60.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/60.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/64.png b/ios/app/Images.xcassets/AppIcon.appiconset/64.png
new file mode 100644
index 000000000..4aa33f782
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/64.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/66.png b/ios/app/Images.xcassets/AppIcon.appiconset/66.png
new file mode 100644
index 000000000..e2a77b362
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/66.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/72.png b/ios/app/Images.xcassets/AppIcon.appiconset/72.png
new file mode 100644
index 000000000..ec793ba83
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/72.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/76.png b/ios/app/Images.xcassets/AppIcon.appiconset/76.png
new file mode 100644
index 000000000..1f275d144
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/76.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/80.png b/ios/app/Images.xcassets/AppIcon.appiconset/80.png
index 162fac8de..9efd70e58 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/80.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/80.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/87.png b/ios/app/Images.xcassets/AppIcon.appiconset/87.png
index 8159b3fe6..4527df1de 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/87.png
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/87.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/88.png b/ios/app/Images.xcassets/AppIcon.appiconset/88.png
new file mode 100644
index 000000000..5223e3fad
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/88.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/92.png b/ios/app/Images.xcassets/AppIcon.appiconset/92.png
new file mode 100644
index 000000000..c9d526d7b
--- /dev/null
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/92.png
Binary files differdiff --git a/ios/app/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/app/Images.xcassets/AppIcon.appiconset/Contents.json
index 668004585..8e70699a7 100644
--- a/ios/app/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/ios/app/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -55,7 +55,7 @@
       "size" : "57x57"
     },
     {
-      "filename" : "120 1.png",
+      "filename" : "120.png",
       "idiom" : "iphone",
       "scale" : "2x",
       "size" : "60x60"
@@ -67,10 +67,276 @@
       "size" : "60x60"
     },
     {
+      "filename" : "20.png",
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "20x20"
+    },
+    {
+      "filename" : "40.png",
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "20x20"
+    },
+    {
+      "filename" : "29.png",
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "29x29"
+    },
+    {
+      "filename" : "58.png",
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "29x29"
+    },
+    {
+      "filename" : "40.png",
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "40x40"
+    },
+    {
+      "filename" : "80.png",
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "40x40"
+    },
+    {
+      "filename" : "50.png",
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "50x50"
+    },
+    {
+      "filename" : "100.png",
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "50x50"
+    },
+    {
+      "filename" : "72.png",
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "72x72"
+    },
+    {
+      "filename" : "144.png",
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "72x72"
+    },
+    {
+      "filename" : "76.png",
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "76x76"
+    },
+    {
+      "filename" : "152.png",
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "76x76"
+    },
+    {
+      "filename" : "167.png",
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "83.5x83.5"
+    },
+    {
       "filename" : "1024.png",
       "idiom" : "ios-marketing",
       "scale" : "1x",
       "size" : "1024x1024"
+    },
+    {
+      "filename" : "16.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "16x16"
+    },
+    {
+      "filename" : "32.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "16x16"
+    },
+    {
+      "filename" : "32.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "32x32"
+    },
+    {
+      "filename" : "64.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "32x32"
+    },
+    {
+      "filename" : "128.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "128x128"
+    },
+    {
+      "filename" : "256.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "128x128"
+    },
+    {
+      "filename" : "256.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "256x256"
+    },
+    {
+      "filename" : "512.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "256x256"
+    },
+    {
+      "filename" : "512.png",
+      "idiom" : "mac",
+      "scale" : "1x",
+      "size" : "512x512"
+    },
+    {
+      "filename" : "1024.png",
+      "idiom" : "mac",
+      "scale" : "2x",
+      "size" : "512x512"
+    },
+    {
+      "filename" : "48.png",
+      "idiom" : "watch",
+      "role" : "notificationCenter",
+      "scale" : "2x",
+      "size" : "24x24",
+      "subtype" : "38mm"
+    },
+    {
+      "filename" : "55.png",
+      "idiom" : "watch",
+      "role" : "notificationCenter",
+      "scale" : "2x",
+      "size" : "27.5x27.5",
+      "subtype" : "42mm"
+    },
+    {
+      "filename" : "58.png",
+      "idiom" : "watch",
+      "role" : "companionSettings",
+      "scale" : "2x",
+      "size" : "29x29"
+    },
+    {
+      "filename" : "87.png",
+      "idiom" : "watch",
+      "role" : "companionSettings",
+      "scale" : "3x",
+      "size" : "29x29"
+    },
+    {
+      "filename" : "66.png",
+      "idiom" : "watch",
+      "role" : "notificationCenter",
+      "scale" : "2x",
+      "size" : "33x33",
+      "subtype" : "45mm"
+    },
+    {
+      "filename" : "80.png",
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "40x40",
+      "subtype" : "38mm"
+    },
+    {
+      "filename" : "88.png",
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "44x44",
+      "subtype" : "40mm"
+    },
+    {
+      "filename" : "92.png",
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "46x46",
+      "subtype" : "41mm"
+    },
+    {
+      "filename" : "100.png",
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "50x50",
+      "subtype" : "44mm"
+    },
+    {
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "51x51",
+      "subtype" : "45mm"
+    },
+    {
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "54x54",
+      "subtype" : "49mm"
+    },
+    {
+      "filename" : "172.png",
+      "idiom" : "watch",
+      "role" : "quickLook",
+      "scale" : "2x",
+      "size" : "86x86",
+      "subtype" : "38mm"
+    },
+    {
+      "filename" : "196.png",
+      "idiom" : "watch",
+      "role" : "quickLook",
+      "scale" : "2x",
+      "size" : "98x98",
+      "subtype" : "42mm"
+    },
+    {
+      "filename" : "216.png",
+      "idiom" : "watch",
+      "role" : "quickLook",
+      "scale" : "2x",
+      "size" : "108x108",
+      "subtype" : "44mm"
+    },
+    {
+      "idiom" : "watch",
+      "role" : "quickLook",
+      "scale" : "2x",
+      "size" : "117x117",
+      "subtype" : "45mm"
+    },
+    {
+      "idiom" : "watch",
+      "role" : "quickLook",
+      "scale" : "2x",
+      "size" : "129x129",
+      "subtype" : "49mm"
+    },
+    {
+      "filename" : "1024.png",
+      "idiom" : "watch-marketing",
+      "scale" : "1x",
+      "size" : "1024x1024"
     }
   ],
   "info" : {
diff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json b/ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json
index f57e4f49c..6ed6bc6f1 100644
--- a/ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json
+++ b/ios/app/Images.xcassets/LaunchScreen.imageset/Contents.json
@@ -1,17 +1,17 @@
 {
   "images" : [
     {
-      "filename" : "splash.jpg",
+      "filename" : "bsky-app-splash.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
-      "filename" : "splash@2x.jpg",
+      "filename" : "bsky-app-splash@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "splash@3x.jpg",
+      "filename" : "bsky-app-splash@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash.png b/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash.png
new file mode 100644
index 000000000..188625331
--- /dev/null
+++ b/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash.png
Binary files differdiff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@2x.png b/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@2x.png
new file mode 100644
index 000000000..02e12c9ad
--- /dev/null
+++ b/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@2x.png
Binary files differdiff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@3x.png b/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@3x.png
new file mode 100644
index 000000000..12be9bc0c
--- /dev/null
+++ b/ios/app/Images.xcassets/LaunchScreen.imageset/bsky-app-splash@3x.png
Binary files differdiff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpg b/ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpg
deleted file mode 100644
index 9925cd70e..000000000
--- a/ios/app/Images.xcassets/LaunchScreen.imageset/splash.jpg
+++ /dev/null
Binary files differdiff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpg b/ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpg
deleted file mode 100644
index a42cd2ee5..000000000
--- a/ios/app/Images.xcassets/LaunchScreen.imageset/splash@2x.jpg
+++ /dev/null
Binary files differdiff --git a/ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpg b/ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpg
deleted file mode 100644
index 6382a9e62..000000000
--- a/ios/app/Images.xcassets/LaunchScreen.imageset/splash@3x.jpg
+++ /dev/null
Binary files differdiff --git a/public/img/cloud-splash.png b/public/img/cloud-splash.png
new file mode 100644
index 000000000..188625331
--- /dev/null
+++ b/public/img/cloud-splash.png
Binary files differdiff --git a/src/view/com/login/Logo.tsx b/src/view/com/login/Logo.tsx
index 7045e4152..ec53549b1 100644
--- a/src/view/com/login/Logo.tsx
+++ b/src/view/com/login/Logo.tsx
@@ -1,42 +1,9 @@
 import React from 'react'
-import {StyleSheet, View} from 'react-native'
+import {StyleSheet} from 'react-native'
 import LinearGradient from 'react-native-linear-gradient'
-import Svg, {Circle, Line, Text as SvgText} from 'react-native-svg'
 import {s, gradients} from '../../lib/styles'
 import {Text} from '../util/text/Text'
 
-export const Logo = ({color, size = 100}: {color: string; size?: number}) => {
-  return (
-    <View style={styles.logo}>
-      <Svg width={size} height={size} viewBox="0 0 100 100">
-        <Circle
-          cx="50"
-          cy="50"
-          r="46"
-          fill="none"
-          stroke={color}
-          strokeWidth={2}
-        />
-        <Line stroke={color} strokeWidth={1} x1="30" x2="30" y1="0" y2="100" />
-        <Line stroke={color} strokeWidth={1} x1="74" x2="74" y1="0" y2="100" />
-        <Line stroke={color} strokeWidth={1} x1="0" x2="100" y1="22" y2="22" />
-        <Line stroke={color} strokeWidth={1} x1="0" x2="100" y1="74" y2="74" />
-        <SvgText
-          fill="none"
-          stroke={color}
-          strokeWidth={2}
-          fontSize="60"
-          fontWeight="bold"
-          x="52"
-          y="70"
-          textAnchor="middle">
-          B
-        </SvgText>
-      </Svg>
-    </View>
-  )
-}
-
 export const LogoTextHero = () => {
   return (
     <LinearGradient
@@ -44,8 +11,7 @@ export const LogoTextHero = () => {
       start={{x: 0, y: 0}}
       end={{x: 1, y: 1}}
       style={[styles.textHero]}>
-      <Logo color="white" size={40} />
-      <Text type="title-lg" style={[s.white, s.pl10]}>
+      <Text type="title-lg" style={[s.white, s.bold]}>
         Bluesky
       </Text>
     </LinearGradient>
diff --git a/src/view/lib/assets.native.ts b/src/view/lib/assets.native.ts
index 609f8e019..a2db553e7 100644
--- a/src/view/lib/assets.native.ts
+++ b/src/view/lib/assets.native.ts
@@ -2,3 +2,4 @@ import {ImageSourcePropType} from 'react-native'
 
 export const DEF_AVATAR: ImageSourcePropType = require('../../../public/img/default-avatar.jpg')
 export const TABS_EXPLAINER: ImageSourcePropType = require('../../../public/img/tabs-explainer.jpg')
+export const CLOUD_SPLASH: ImageSourcePropType = require('../../../public/img/cloud-splash.png')
diff --git a/src/view/lib/assets.ts b/src/view/lib/assets.ts
index 9e937d4db..948f3a22f 100644
--- a/src/view/lib/assets.ts
+++ b/src/view/lib/assets.ts
@@ -4,3 +4,4 @@ export const DEF_AVATAR: ImageSourcePropType = {uri: '/img/default-avatar.jpg'}
 export const TABS_EXPLAINER: ImageSourcePropType = {
   uri: '/img/tabs-explainer.jpg',
 }
+export const CLOUD_SPLASH: ImageSourcePropType = {uri: '/img/cloud-splash.png'}
diff --git a/src/view/screens/Login.tsx b/src/view/screens/Login.tsx
index accd0f428..81a2c9e6b 100644
--- a/src/view/screens/Login.tsx
+++ b/src/view/screens/Login.tsx
@@ -1,21 +1,19 @@
 import React, {useState} from 'react'
 import {
+  Image,
   SafeAreaView,
   StyleSheet,
   TouchableOpacity,
   View,
-  useWindowDimensions,
 } from 'react-native'
-import Svg, {Line} from 'react-native-svg'
-import LinearGradient from 'react-native-linear-gradient'
 import {observer} from 'mobx-react-lite'
 import {Signin} from '../com/login/Signin'
-import {Logo} from '../com/login/Logo'
 import {CreateAccount} from '../com/login/CreateAccount'
 import {Text} from '../com/util/text/Text'
 import {ErrorBoundary} from '../com/util/ErrorBoundary'
-import {s, colors} from '../lib/styles'
+import {colors} from '../lib/styles'
 import {usePalette} from '../lib/hooks/usePalette'
+import {CLOUD_SPLASH} from '../lib/assets'
 
 enum ScreenState {
   S_SigninOrCreateAccount,
@@ -30,48 +28,27 @@ const SigninOrCreateAccount = ({
   onPressSignin: () => void
   onPressCreateAccount: () => void
 }) => {
-  const winDim = useWindowDimensions()
-  const halfWidth = winDim.width / 2
+  const pal = usePalette('default')
   return (
     <>
       <View style={styles.hero}>
-        <Logo color="white" />
-        <Text style={styles.title}>Bluesky</Text>
-        <Text style={styles.subtitle}>[ private beta ]</Text>
+        <View style={styles.heroText}>
+          <Text style={styles.title}>Bluesky</Text>
+          <Text style={styles.subtitle}>[ private beta ]</Text>
+        </View>
       </View>
-      <View testID="signinOrCreateAccount" style={s.flex1}>
+      <View testID="signinOrCreateAccount" style={styles.btns}>
         <TouchableOpacity
           testID="createAccountButton"
-          style={styles.btn}
+          style={[pal.view, styles.btn]}
           onPress={onPressCreateAccount}>
-          <Text style={styles.btnLabel}>Create a new account</Text>
+          <Text style={[pal.link, styles.btnLabel]}>Create a new account</Text>
         </TouchableOpacity>
-        <View style={styles.or}>
-          <Svg height="1" width={winDim.width} style={styles.orLine}>
-            <Line
-              x1="30"
-              y1="0"
-              x2={halfWidth - 20}
-              y2="0"
-              stroke="white"
-              strokeWidth="1"
-            />
-            <Line
-              x1={halfWidth + 20}
-              y1="0"
-              x2={winDim.width - 30}
-              y2="0"
-              stroke="white"
-              strokeWidth="1"
-            />
-          </Svg>
-          <Text style={styles.orLabel}>or</Text>
-        </View>
         <TouchableOpacity
           testID="signInButton"
-          style={styles.btn}
+          style={[pal.view, styles.btn]}
           onPress={onPressSignin}>
-          <Text style={styles.btnLabel}>Sign in</Text>
+          <Text style={[pal.link, styles.btnLabel]}>Sign in</Text>
         </TouchableOpacity>
       </View>
     </>
@@ -86,11 +63,8 @@ export const Login = observer(() => {
 
   if (screenState === ScreenState.S_SigninOrCreateAccount) {
     return (
-      <LinearGradient
-        colors={['#007CFF', '#00BCFF']}
-        start={{x: 0, y: 0.8}}
-        end={{x: 0, y: 1}}
-        style={styles.container}>
+      <View style={styles.container}>
+        <Image source={CLOUD_SPLASH} style={styles.bgImg} />
         <SafeAreaView testID="noSessionView" style={styles.container}>
           <ErrorBoundary>
             <SigninOrCreateAccount
@@ -101,7 +75,7 @@ export const Login = observer(() => {
             />
           </ErrorBoundary>
         </SafeAreaView>
-      </LinearGradient>
+      </View>
     )
   }
 
@@ -140,21 +114,34 @@ const styles = StyleSheet.create({
     flex: 2,
     justifyContent: 'center',
   },
+  bgImg: {
+    position: 'absolute',
+    top: 0,
+    left: 0,
+    width: '100%',
+    height: '100%',
+  },
+  heroText: {
+    backgroundColor: colors.white,
+    paddingTop: 10,
+    paddingBottom: 20,
+  },
+  btns: {
+    paddingBottom: 40,
+  },
   title: {
     textAlign: 'center',
-    color: colors.white,
+    color: colors.blue3,
     fontSize: 68,
     fontWeight: 'bold',
   },
   subtitle: {
     textAlign: 'center',
-    color: colors.white,
+    color: colors.blue3,
     fontSize: 18,
   },
   btn: {
-    borderWidth: 1,
-    borderColor: colors.white,
-    borderRadius: 10,
+    borderRadius: 4,
     paddingVertical: 16,
     marginBottom: 20,
     marginHorizontal: 20,
@@ -162,20 +149,8 @@ const styles = StyleSheet.create({
   },
   btnLabel: {
     textAlign: 'center',
+    fontSize: 21,
+    // fontWeight: '500',
     color: colors.white,
-    fontSize: 18,
-    fontWeight: 'bold',
-  },
-  or: {
-    marginBottom: 20,
-  },
-  orLine: {
-    position: 'absolute',
-    top: 10,
-  },
-  orLabel: {
-    textAlign: 'center',
-    color: colors.white,
-    fontSize: 16,
   },
 })