HEADER
Browse files
src/App.svelte
CHANGED
@@ -143,7 +143,7 @@
|
|
143 |
flex: 1;
|
144 |
overflow: hidden;
|
145 |
position: relative;
|
146 |
-
padding-bottom: calc(
|
147 |
}
|
148 |
|
149 |
/* Ensure content scrolls properly on iOS */
|
|
|
143 |
flex: 1;
|
144 |
overflow: hidden;
|
145 |
position: relative;
|
146 |
+
padding-bottom: calc(70px + env(safe-area-inset-bottom, 0));
|
147 |
}
|
148 |
|
149 |
/* Ensure content scrolls properly on iOS */
|
src/lib/components/Layout/AppHeader.svelte
CHANGED
@@ -44,6 +44,7 @@
|
|
44 |
justify-content: space-between;
|
45 |
align-items: center;
|
46 |
padding: 1rem;
|
|
|
47 |
background: white;
|
48 |
border-bottom: 1px solid #eee;
|
49 |
position: sticky;
|
|
|
44 |
justify-content: space-between;
|
45 |
align-items: center;
|
46 |
padding: 1rem;
|
47 |
+
padding-top: calc(1rem + env(safe-area-inset-top, 0));
|
48 |
background: white;
|
49 |
border-bottom: 1px solid #eee;
|
50 |
position: sticky;
|
src/lib/components/Layout/TabBar.svelte
CHANGED
@@ -61,7 +61,7 @@
|
|
61 |
display: flex;
|
62 |
justify-content: space-around;
|
63 |
align-items: center;
|
64 |
-
height:
|
65 |
}
|
66 |
|
67 |
.tab-item {
|
@@ -78,12 +78,12 @@
|
|
78 |
|
79 |
.icon-wrapper {
|
80 |
position: relative;
|
81 |
-
width:
|
82 |
-
height:
|
83 |
display: flex;
|
84 |
align-items: center;
|
85 |
justify-content: center;
|
86 |
-
border-radius:
|
87 |
}
|
88 |
|
89 |
.tab-item.active .icon-wrapper {
|
@@ -91,8 +91,8 @@
|
|
91 |
}
|
92 |
|
93 |
.tab-icon {
|
94 |
-
width:
|
95 |
-
height:
|
96 |
object-fit: contain;
|
97 |
filter: grayscale(100%) brightness(0.5);
|
98 |
}
|
|
|
61 |
display: flex;
|
62 |
justify-content: space-around;
|
63 |
align-items: center;
|
64 |
+
height: 70px;
|
65 |
}
|
66 |
|
67 |
.tab-item {
|
|
|
78 |
|
79 |
.icon-wrapper {
|
80 |
position: relative;
|
81 |
+
width: 56px;
|
82 |
+
height: 56px;
|
83 |
display: flex;
|
84 |
align-items: center;
|
85 |
justify-content: center;
|
86 |
+
border-radius: 12px;
|
87 |
}
|
88 |
|
89 |
.tab-item.active .icon-wrapper {
|
|
|
91 |
}
|
92 |
|
93 |
.tab-icon {
|
94 |
+
width: 40px;
|
95 |
+
height: 40px;
|
96 |
object-fit: contain;
|
97 |
filter: grayscale(100%) brightness(0.5);
|
98 |
}
|
src/lib/components/MonsterGenerator/MonsterGenerator.svelte
CHANGED
@@ -272,7 +272,7 @@ Write your response within \`\`\`json\`\`\``;
|
|
272 |
|
273 |
try {
|
274 |
const output = await fluxClient.predict("/infer", [
|
275 |
-
`${state.imagePrompt}\nNow generate
|
276 |
0, // seed
|
277 |
true, // randomizeSeed
|
278 |
1024, // width
|
|
|
272 |
|
273 |
try {
|
274 |
const output = await fluxClient.predict("/infer", [
|
275 |
+
`${state.imagePrompt}\nNow generate a Pokémon-Anime-style image of the monster in an idle pose with a white background. The monster should not be attacking or in motion. The full monster must be visible within the frame.`,
|
276 |
0, // seed
|
277 |
true, // randomizeSeed
|
278 |
1024, // width
|