Improve contrast and add Gradio launcher entrypoint
Browse files- app.py +24 -9
- pyproject.toml +3 -0
app.py
CHANGED
|
@@ -91,6 +91,8 @@ body {
|
|
| 91 |
border: 1px solid rgba(249, 115, 22, 0.16);
|
| 92 |
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
|
| 93 |
font-size: 0.92rem;
|
|
|
|
|
|
|
| 94 |
animation: float-card 6s ease-in-out infinite;
|
| 95 |
}
|
| 96 |
.flag-pill:nth-child(2n) {
|
|
@@ -133,7 +135,8 @@ body {
|
|
| 133 |
font-size: clamp(2.4rem, 5vw, 3.65rem);
|
| 134 |
line-height: 1.02;
|
| 135 |
margin-bottom: 0.45rem;
|
| 136 |
-
color: #7c2d12;
|
|
|
|
| 137 |
}
|
| 138 |
.hero-copy p {
|
| 139 |
font-size: 1.02rem;
|
|
@@ -146,8 +149,8 @@ body {
|
|
| 146 |
padding: 0.45rem 0.75rem;
|
| 147 |
border-radius: 999px;
|
| 148 |
background: rgba(255, 237, 213, 0.94);
|
| 149 |
-
color: #9a3412;
|
| 150 |
-
font-weight:
|
| 151 |
letter-spacing: 0.02em;
|
| 152 |
text-transform: uppercase;
|
| 153 |
font-size: 0.78rem;
|
|
@@ -167,8 +170,8 @@ body {
|
|
| 167 |
background: rgba(255, 255, 255, 0.88);
|
| 168 |
border: 1px solid rgba(14, 165, 233, 0.14);
|
| 169 |
box-shadow: 0 12px 30px rgba(14, 165, 233, 0.08);
|
| 170 |
-
color: #0f172a;
|
| 171 |
-
font-weight:
|
| 172 |
}
|
| 173 |
.hero-sidecard {
|
| 174 |
position: relative;
|
|
@@ -214,6 +217,7 @@ body {
|
|
| 214 |
display: block;
|
| 215 |
font-size: 1.45rem;
|
| 216 |
margin-bottom: 0.15rem;
|
|
|
|
| 217 |
}
|
| 218 |
#practice-highlights {
|
| 219 |
margin-top: 0.2rem;
|
|
@@ -233,8 +237,9 @@ body {
|
|
| 233 |
.highlight-card strong {
|
| 234 |
display: block;
|
| 235 |
margin-bottom: 0.22rem;
|
| 236 |
-
color: #0f172a;
|
| 237 |
font-size: 1.02rem;
|
|
|
|
| 238 |
}
|
| 239 |
.highlight-card span {
|
| 240 |
font-size: 1.35rem;
|
|
@@ -263,6 +268,11 @@ body {
|
|
| 263 |
.hero-copy .prose strong {
|
| 264 |
color: #7c2d12 !important;
|
| 265 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 266 |
.hero-sidecard,
|
| 267 |
.hero-sidecard p,
|
| 268 |
.hero-sidecard span,
|
|
@@ -295,7 +305,8 @@ body {
|
|
| 295 |
}
|
| 296 |
.panel-heading strong {
|
| 297 |
font-size: 1.05rem;
|
| 298 |
-
color: #0f172a;
|
|
|
|
| 299 |
}
|
| 300 |
.panel-heading p {
|
| 301 |
margin: 0.2rem 0 0 0;
|
|
@@ -312,7 +323,7 @@ body {
|
|
| 312 |
}
|
| 313 |
.control-tip strong {
|
| 314 |
display: block;
|
| 315 |
-
color: #9a3412;
|
| 316 |
margin-bottom: 0.18rem;
|
| 317 |
}
|
| 318 |
.examples-note {
|
|
@@ -790,5 +801,9 @@ def build_app() -> gr.Blocks:
|
|
| 790 |
demo = build_app()
|
| 791 |
|
| 792 |
|
| 793 |
-
|
| 794 |
demo.launch(theme=APP_THEME, css=APP_CSS, server_port=resolve_server_port())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
border: 1px solid rgba(249, 115, 22, 0.16);
|
| 92 |
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
|
| 93 |
font-size: 0.92rem;
|
| 94 |
+
color: #334155 !important;
|
| 95 |
+
font-weight: 600;
|
| 96 |
animation: float-card 6s ease-in-out infinite;
|
| 97 |
}
|
| 98 |
.flag-pill:nth-child(2n) {
|
|
|
|
| 135 |
font-size: clamp(2.4rem, 5vw, 3.65rem);
|
| 136 |
line-height: 1.02;
|
| 137 |
margin-bottom: 0.45rem;
|
| 138 |
+
color: #7c2d12 !important;
|
| 139 |
+
font-weight: 800;
|
| 140 |
}
|
| 141 |
.hero-copy p {
|
| 142 |
font-size: 1.02rem;
|
|
|
|
| 149 |
padding: 0.45rem 0.75rem;
|
| 150 |
border-radius: 999px;
|
| 151 |
background: rgba(255, 237, 213, 0.94);
|
| 152 |
+
color: #9a3412 !important;
|
| 153 |
+
font-weight: 700;
|
| 154 |
letter-spacing: 0.02em;
|
| 155 |
text-transform: uppercase;
|
| 156 |
font-size: 0.78rem;
|
|
|
|
| 170 |
background: rgba(255, 255, 255, 0.88);
|
| 171 |
border: 1px solid rgba(14, 165, 233, 0.14);
|
| 172 |
box-shadow: 0 12px 30px rgba(14, 165, 233, 0.08);
|
| 173 |
+
color: #0f172a !important;
|
| 174 |
+
font-weight: 700;
|
| 175 |
}
|
| 176 |
.hero-sidecard {
|
| 177 |
position: relative;
|
|
|
|
| 217 |
display: block;
|
| 218 |
font-size: 1.45rem;
|
| 219 |
margin-bottom: 0.15rem;
|
| 220 |
+
color: #f8fafc !important;
|
| 221 |
}
|
| 222 |
#practice-highlights {
|
| 223 |
margin-top: 0.2rem;
|
|
|
|
| 237 |
.highlight-card strong {
|
| 238 |
display: block;
|
| 239 |
margin-bottom: 0.22rem;
|
| 240 |
+
color: #0f172a !important;
|
| 241 |
font-size: 1.02rem;
|
| 242 |
+
font-weight: 800;
|
| 243 |
}
|
| 244 |
.highlight-card span {
|
| 245 |
font-size: 1.35rem;
|
|
|
|
| 268 |
.hero-copy .prose strong {
|
| 269 |
color: #7c2d12 !important;
|
| 270 |
}
|
| 271 |
+
.hero-copy .prose h1,
|
| 272 |
+
.hero-copy .prose h2,
|
| 273 |
+
.hero-copy .prose h3 {
|
| 274 |
+
color: #7c2d12 !important;
|
| 275 |
+
}
|
| 276 |
.hero-sidecard,
|
| 277 |
.hero-sidecard p,
|
| 278 |
.hero-sidecard span,
|
|
|
|
| 305 |
}
|
| 306 |
.panel-heading strong {
|
| 307 |
font-size: 1.05rem;
|
| 308 |
+
color: #0f172a !important;
|
| 309 |
+
font-weight: 800;
|
| 310 |
}
|
| 311 |
.panel-heading p {
|
| 312 |
margin: 0.2rem 0 0 0;
|
|
|
|
| 323 |
}
|
| 324 |
.control-tip strong {
|
| 325 |
display: block;
|
| 326 |
+
color: #9a3412 !important;
|
| 327 |
margin-bottom: 0.18rem;
|
| 328 |
}
|
| 329 |
.examples-note {
|
|
|
|
| 801 |
demo = build_app()
|
| 802 |
|
| 803 |
|
| 804 |
+
def main() -> None:
|
| 805 |
demo.launch(theme=APP_THEME, css=APP_CSS, server_port=resolve_server_port())
|
| 806 |
+
|
| 807 |
+
|
| 808 |
+
if __name__ == "__main__":
|
| 809 |
+
main()
|
pyproject.toml
CHANGED
|
@@ -15,6 +15,9 @@ dependencies = [
|
|
| 15 |
"pytest==8.2.0",
|
| 16 |
]
|
| 17 |
|
|
|
|
|
|
|
|
|
|
| 18 |
[tool.pytest.ini_options]
|
| 19 |
testpaths = ["tests"]
|
| 20 |
|
|
|
|
| 15 |
"pytest==8.2.0",
|
| 16 |
]
|
| 17 |
|
| 18 |
+
[project.scripts]
|
| 19 |
+
"gradio.app" = "app:main"
|
| 20 |
+
|
| 21 |
[tool.pytest.ini_options]
|
| 22 |
testpaths = ["tests"]
|
| 23 |
|