UCS2014 commited on
Commit
39ba465
·
verified ·
1 Parent(s): f7097fa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -17
app.py CHANGED
@@ -17,20 +17,21 @@ THEME: Dict[str, Any] = {
17
  "page": {
18
  "container_width": 1120, # max content width (px)
19
  "bg_radial": True, # faint radial background
20
- "section_gap": 48, # px between hero and cards section
21
  "footer_gap": 36, # px space before footer
22
  "top_padding": 40, # top padding of the page
23
  },
24
  "hero": {
25
  # Company logo in the middle
26
- "logo": ASSETS / "logo.png", # <— set your company logo file here
27
- "width": 340, # rendered pixel width of hero logo
28
  "tagline": "We Deliver AI-Based Solutions For O&G Industry",
29
- "tagline_size": 22, # px
30
- "tagline_weight": 800, # 600/700/800 etc.
 
31
  "tagline_color": "#0B1220",
32
- "logo_bottom": 18, # px space between logo and tagline
33
- "block_bottom": 28, # px space below the whole hero block
34
  },
35
  "grid": {
36
  "columns": 2, # number of cards per row (auto-wrap on narrow screens)
@@ -46,18 +47,21 @@ THEME: Dict[str, Any] = {
46
  "bg_bot": "#FBFCFE", # gradient bottom
47
  "pad_v": 24, # vertical padding inside card
48
  "pad_h": 22, # horizontal padding inside card
 
49
 
50
  # Title & paragraph
51
  "title_color": "#0B1220",
52
  "title_size": 26,
53
  "title_weight": 900,
 
54
  "blurb_color": "#566275",
55
  "blurb_size": 16,
 
56
 
57
  # Card logo controls (no frames/borders)
58
  "logo_max_w": 250, # max width of card logo (px)
59
  "logo_top": 6, # px space above card logo
60
- "logo_bottom": 4, # px space below card logo
61
  },
62
  "button": {
63
  "pad_v": 12, "pad_h": 20, "radius": 14,
@@ -68,13 +72,12 @@ THEME: Dict[str, Any] = {
68
  }
69
 
70
  # ========= CARDS (content + per-card overrides) =========
71
- # Supply your own icons in /assets and URLs below
72
  CARDS = [
73
  {
74
  "title": "Geomechanics",
75
  "blurb": "Predict Rock Mechanical Behaviour Using AI",
76
- "url": "https://smart-thinking-smw.hf.space", # example target
77
- "icon": ASSETS / "GeoMech_logo.png", # <— card logo file
78
  "style": {
79
  "bg_top": "#EEF7FF",
80
  "bg_bot": "#F7FBFF",
@@ -84,8 +87,8 @@ CARDS = [
84
  {
85
  "title": "Well Logging",
86
  "blurb": "Generate Synthetic Logging Profiles Using AI",
87
- "url": "https://smart-thinking-gr.hf.space", # example target
88
- "icon": ASSETS / "log_logo.png", # <— card logo file
89
  "style": {
90
  "bg_top": "#F8FFF4",
91
  "bg_bot": "#FBFFF8",
@@ -135,6 +138,7 @@ st.markdown(f"""
135
  --hero-block-mb: {hero["block_bottom"]}px;
136
  --hero-tag-fs: {hero["tagline_size"]}px;
137
  --hero-tag-weight: {hero["tagline_weight"]};
 
138
  --hero-tag-color: {hero["tagline_color"]};
139
 
140
  --grid-gap: {grid["gap"]}px;
@@ -149,11 +153,16 @@ st.markdown(f"""
149
  --card-bg-bot: {card["bg_bot"]};
150
  --card-pv: {card["pad_v"]}px;
151
  --card-ph: {card["pad_h"]}px;
 
 
152
  --card-title-color: {card["title_color"]};
153
  --card-title-size: {card["title_size"]}px;
154
  --card-title-weight: {card["title_weight"]};
 
 
155
  --card-blurb-color: {card["blurb_color"]};
156
  --card-blurb-size: {card["blurb_size"]}px;
 
157
 
158
  --logo-max-w: {card["logo_max_w"]}px;
159
  --logo-top: {card["logo_top"]}px;
@@ -182,7 +191,7 @@ st.markdown(f"""
182
  {bg_radial_css}
183
  }}
184
 
185
- /* ===== HERO (centered company logo + tagline) ===== */
186
  .hero {{ text-align:center; }}
187
  .hero img {{
188
  width: var(--hero-w); max-width: 92vw; height: auto;
@@ -192,6 +201,7 @@ st.markdown(f"""
192
  .hero .tagline {{
193
  font-size: var(--hero-tag-fs);
194
  font-weight: var(--hero-tag-weight);
 
195
  color: var(--hero-tag-color);
196
  letter-spacing:.2px;
197
  margin-bottom: var(--hero-block-mb);
@@ -218,7 +228,9 @@ st.markdown(f"""
218
  border: var(--c-bw, var(--card-bw)) solid var(--c-border, var(--card-border));
219
  box-shadow: 0 14px 32px rgba(2,20,35,.10), 0 1px 0 rgba(255,255,255,0.75) inset;
220
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
221
- text-align:center; display:flex; flex-direction:column; gap:16px; align-items:center;
 
 
222
  }}
223
  .card:hover {{
224
  transform: translateY(-6px) scale(1.01);
@@ -239,16 +251,20 @@ st.markdown(f"""
239
  }}
240
 
241
  .card h3 {{
242
- margin: 0;
243
  font-size: var(--card-title-size);
244
  font-weight: var(--card-title-weight);
245
  color: var(--c-title-color, var(--card-title-color));
246
  letter-spacing: .15px;
 
 
247
  }}
248
  .card p {{
249
  color: var(--c-blurb-color, var(--card-blurb-color));
250
  font-size: var(--card-blurb-size);
251
- margin: 0 6px;
 
 
252
  }}
253
 
254
  .btn {{
 
17
  "page": {
18
  "container_width": 1120, # max content width (px)
19
  "bg_radial": True, # faint radial background
20
+ "section_gap": 44, # px between hero and cards section
21
  "footer_gap": 36, # px space before footer
22
  "top_padding": 40, # top padding of the page
23
  },
24
  "hero": {
25
  # Company logo in the middle
26
+ "logo": ASSETS / "logo.png", # <— set your company logo file here
27
+ "width": 340, # rendered pixel width of hero logo
28
  "tagline": "We Deliver AI-Based Solutions For O&G Industry",
29
+ "tagline_size": 22, # px
30
+ "tagline_weight": 500, # 400–600 looks classy when italic
31
+ "tagline_italic": True, # <— italic tagline
32
  "tagline_color": "#0B1220",
33
+ "logo_bottom": 14, # px space between logo and tagline
34
+ "block_bottom": 22, # px space below the whole hero block
35
  },
36
  "grid": {
37
  "columns": 2, # number of cards per row (auto-wrap on narrow screens)
 
47
  "bg_bot": "#FBFCFE", # gradient bottom
48
  "pad_v": 24, # vertical padding inside card
49
  "pad_h": 22, # horizontal padding inside card
50
+ "gap": 12, # space between stacked elements inside the card
51
 
52
  # Title & paragraph
53
  "title_color": "#0B1220",
54
  "title_size": 26,
55
  "title_weight": 900,
56
+ "title_mb": 4, # <— spacing under the title (controls title→text gap)
57
  "blurb_color": "#566275",
58
  "blurb_size": 16,
59
+ "blurb_mt": 0, # <— spacing above the blurb
60
 
61
  # Card logo controls (no frames/borders)
62
  "logo_max_w": 250, # max width of card logo (px)
63
  "logo_top": 6, # px space above card logo
64
+ "logo_bottom": 2, # px space below card logo
65
  },
66
  "button": {
67
  "pad_v": 12, "pad_h": 20, "radius": 14,
 
72
  }
73
 
74
  # ========= CARDS (content + per-card overrides) =========
 
75
  CARDS = [
76
  {
77
  "title": "Geomechanics",
78
  "blurb": "Predict Rock Mechanical Behaviour Using AI",
79
+ "url": "https://smart-thinking-smw.hf.space",
80
+ "icon": ASSETS / "GeoMech_logo.png",
81
  "style": {
82
  "bg_top": "#EEF7FF",
83
  "bg_bot": "#F7FBFF",
 
87
  {
88
  "title": "Well Logging",
89
  "blurb": "Generate Synthetic Logging Profiles Using AI",
90
+ "url": "https://smart-thinking-gr.hf.space",
91
+ "icon": ASSETS / "log_logo.png",
92
  "style": {
93
  "bg_top": "#F8FFF4",
94
  "bg_bot": "#FBFFF8",
 
138
  --hero-block-mb: {hero["block_bottom"]}px;
139
  --hero-tag-fs: {hero["tagline_size"]}px;
140
  --hero-tag-weight: {hero["tagline_weight"]};
141
+ --hero-tag-style: {"italic" if hero.get("tagline_italic", True) else "normal"};
142
  --hero-tag-color: {hero["tagline_color"]};
143
 
144
  --grid-gap: {grid["gap"]}px;
 
153
  --card-bg-bot: {card["bg_bot"]};
154
  --card-pv: {card["pad_v"]}px;
155
  --card-ph: {card["pad_h"]}px;
156
+ --card-gap: {card["gap"]}px;
157
+
158
  --card-title-color: {card["title_color"]};
159
  --card-title-size: {card["title_size"]}px;
160
  --card-title-weight: {card["title_weight"]};
161
+ --card-title-mb: {card["title_mb"]}px;
162
+
163
  --card-blurb-color: {card["blurb_color"]};
164
  --card-blurb-size: {card["blurb_size"]}px;
165
+ --card-blurb-mt: {card["blurb_mt"]}px;
166
 
167
  --logo-max-w: {card["logo_max_w"]}px;
168
  --logo-top: {card["logo_top"]}px;
 
191
  {bg_radial_css}
192
  }}
193
 
194
+ /* ===== HERO (centered company logo + italic tagline) ===== */
195
  .hero {{ text-align:center; }}
196
  .hero img {{
197
  width: var(--hero-w); max-width: 92vw; height: auto;
 
201
  .hero .tagline {{
202
  font-size: var(--hero-tag-fs);
203
  font-weight: var(--hero-tag-weight);
204
+ font-style: var(--hero-tag-style);
205
  color: var(--hero-tag-color);
206
  letter-spacing:.2px;
207
  margin-bottom: var(--hero-block-mb);
 
228
  border: var(--c-bw, var(--card-bw)) solid var(--c-border, var(--card-border));
229
  box-shadow: 0 14px 32px rgba(2,20,35,.10), 0 1px 0 rgba(255,255,255,0.75) inset;
230
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
231
+ text-align:center; display:flex; flex-direction:column;
232
+ align-items:center; justify-content:flex-start;
233
+ gap: var(--card-gap);
234
  }}
235
  .card:hover {{
236
  transform: translateY(-6px) scale(1.01);
 
251
  }}
252
 
253
  .card h3 {{
254
+ margin: 0 0 var(--card-title-mb) 0; /* controls spacing below title */
255
  font-size: var(--card-title-size);
256
  font-weight: var(--card-title-weight);
257
  color: var(--c-title-color, var(--card-title-color));
258
  letter-spacing: .15px;
259
+ text-align:center;
260
+ width: 100%;
261
  }}
262
  .card p {{
263
  color: var(--c-blurb-color, var(--card-blurb-color));
264
  font-size: var(--card-blurb-size);
265
+ margin: var(--card-blurb-mt) 8px 0; /* controls spacing above blurb */
266
+ text-align:center;
267
+ width: 100%;
268
  }}
269
 
270
  .btn {{