Skip to content

Commit 4bc4299

Browse files
Cawlummclaude
andcommitted
polish(mobile): tighten login sheet, un-pin footer (Fable pass)
Footer flows 28px under 'Try demo account' instead of being bottom-pinned — removes the dead space the user flagged. Plus premium touches from the Fable polish: 55px inputs with cyan focus, 57px Sign in button with cyan glow, 22px divider rhythm, larger heading + wider tagline tracking. Dark palette unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ccq3rvfb9ArzS2DidghJm5
1 parent 8fecf7c commit 4bc4299

2 files changed

Lines changed: 35 additions & 16 deletions

File tree

mobile/src/components/AuthScaffold.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ export function AuthScaffold({
6565
</Text>
6666
<Text
6767
style={{
68-
fontFamily: 'PlusJakartaSans_700Bold',
69-
fontSize: 11,
70-
letterSpacing: 2.2,
71-
color: 'rgba(255,255,255,0.78)',
72-
marginTop: 3,
68+
fontFamily: 'PlusJakartaSans_800ExtraBold',
69+
fontSize: 10.5,
70+
letterSpacing: 3.2,
71+
color: 'rgba(255,255,255,0.82)',
72+
marginTop: 6,
7373
}}
7474
>
7575
TRAIN · TRACK · PROGRESS
@@ -80,10 +80,11 @@ export function AuthScaffold({
8080
<Text
8181
style={{
8282
fontFamily: 'Outfit_800ExtraBold',
83-
fontSize: 36,
84-
letterSpacing: -0.6,
83+
fontSize: 37,
84+
letterSpacing: -0.8,
8585
color: '#fff',
86-
marginTop: 28,
86+
marginTop: 34,
87+
lineHeight: 39,
8788
}}
8889
>
8990
{heading}

mobile/src/components/authui.tsx

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export function IconInput({
2929
const [hide, setHide] = useState(!!password)
3030
const Icon = icon === 'mail' ? Mail : Lock
3131
return (
32-
<View style={{ marginTop: 18 }}>
32+
<View style={{ marginTop: 19 }}>
3333
<Text
3434
style={{
3535
fontFamily: FONT.label,
@@ -46,15 +46,19 @@ export function IconInput({
4646
flexDirection: 'row',
4747
alignItems: 'center',
4848
gap: 11,
49-
height: 52,
49+
height: 55,
5050
paddingHorizontal: 16,
5151
borderRadius: 15,
5252
backgroundColor: '#111e35',
5353
borderWidth: 1.5,
54-
borderColor: focused ? '#8b5cf6' : '#1c2f50',
54+
borderColor: focused ? '#00b8d9' : '#1c2f50',
55+
shadowColor: focused ? '#00b8d9' : 'transparent',
56+
shadowOffset: { width: 0, height: 0 },
57+
shadowOpacity: focused ? 0.25 : 0,
58+
shadowRadius: 8,
5559
}}
5660
>
57-
<Icon size={17} color={focused ? '#8b5cf6' : '#94a3b8'} strokeWidth={2} />
61+
<Icon size={17} color={focused ? '#00b8d9' : '#94a3b8'} strokeWidth={2} />
5862
<TextInput
5963
style={{ flex: 1, fontFamily: FONT.body, fontSize: 15, color: '#f1f5f9' }}
6064
placeholderTextColor="#475569"
@@ -87,13 +91,25 @@ export function GradientButton({
8791
disabled?: boolean
8892
}) {
8993
return (
90-
<Pressable onPress={onPress} disabled={disabled || loading} style={{ marginTop: 24 }}>
94+
<Pressable
95+
onPress={onPress}
96+
disabled={disabled || loading}
97+
style={{
98+
marginTop: 26,
99+
borderRadius: 16,
100+
shadowColor: '#00b8d9',
101+
shadowOffset: { width: 0, height: 10 },
102+
shadowOpacity: 0.4,
103+
shadowRadius: 20,
104+
elevation: 8,
105+
}}
106+
>
91107
<LinearGradient
92108
colors={['#00b8d9', '#8b5cf6']}
93109
start={{ x: 0, y: 0 }}
94110
end={{ x: 1, y: 1 }}
95111
style={{
96-
height: 54,
112+
height: 57,
97113
borderRadius: 16,
98114
flexDirection: 'row',
99115
alignItems: 'center',
@@ -139,7 +155,7 @@ export function SecondaryButton({ title, onPress }: { title: string; onPress?: (
139155

140156
export function AuthDivider() {
141157
return (
142-
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 14, marginVertical: 20 }}>
158+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 14, marginVertical: 22 }}>
143159
<View style={{ flex: 1, height: 1, backgroundColor: '#1c2f50' }} />
144160
<Text style={{ fontFamily: FONT.label, fontSize: 11, letterSpacing: 1.8, color: '#475569' }}>OR</Text>
145161
<View style={{ flex: 1, height: 1, backgroundColor: '#1c2f50' }} />
@@ -252,8 +268,10 @@ export function ServerRow() {
252268
}
253269

254270
export function Footer({ children }: { children: ReactNode }) {
271+
// Flow right under the content (28px) instead of pinning to the bottom — kills the
272+
// dead space between "Try demo account" and this footer.
255273
return (
256-
<View style={{ marginTop: 'auto', paddingTop: 18, paddingBottom: 10, alignItems: 'center' }}>
274+
<View style={{ marginTop: 28, paddingBottom: 16, alignItems: 'center' }}>
257275
{children}
258276
</View>
259277
)

0 commit comments

Comments
 (0)