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
|