Skip to content

Commit edc07c2

Browse files
feat: integrate Font Awesome icons across multiple pages and enhance dashboard visuals with new image handling and styling adjustments
1 parent ab80fde commit edc07c2

6 files changed

Lines changed: 196 additions & 117 deletions

File tree

assets/css/style.css

Lines changed: 104 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,12 +1035,16 @@ main {
10351035
display: flex;
10361036
align-items: center;
10371037
justify-content: center;
1038-
font-size: 1.35rem;
1038+
font-size: 1.15rem;
10391039
margin-bottom: 1.1rem;
10401040
box-shadow: 0 8px 24px rgba(79, 70, 229, 0.15);
10411041
border: 1px solid rgba(99, 102, 241, 0.2);
10421042
}
10431043

1044+
.card-icon i {
1045+
line-height: 1;
1046+
}
1047+
10441048
.page-hero {
10451049
padding: 3.5rem 0 2.25rem;
10461050
position: relative;
@@ -1120,23 +1124,18 @@ main {
11201124
margin-top: 3rem;
11211125
}
11221126

1123-
.hero-brand-row {
1124-
margin-bottom: 1rem;
1125-
}
1126-
1127-
.hero-brand-img {
1128-
width: 48px;
1129-
height: 48px;
1130-
border-radius: 12px;
1131-
object-fit: cover;
1132-
border: 1px solid rgba(255, 255, 255, 0.22);
1133-
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
1134-
}
1135-
11361127
.hero-visual-app-icon {
1137-
border-radius: 6px;
1138-
object-fit: cover;
11391128
margin-left: 0.15rem;
1129+
width: 26px;
1130+
height: 26px;
1131+
border-radius: 7px;
1132+
display: inline-flex;
1133+
align-items: center;
1134+
justify-content: center;
1135+
background: rgba(255, 255, 255, 0.12);
1136+
border: 1px solid rgba(255, 255, 255, 0.16);
1137+
font-size: 0.72rem;
1138+
color: rgba(248, 250, 252, 0.95);
11401139
}
11411140

11421141
.hero-visual-top {
@@ -1180,52 +1179,84 @@ main {
11801179

11811180
.home-intro-list {
11821181
margin: 0;
1183-
padding-left: 1.2rem;
1182+
padding: 0;
1183+
list-style: none;
11841184
color: var(--muted);
11851185
line-height: 1.7;
11861186
}
11871187

11881188
.home-intro-list li {
1189-
margin-bottom: 0.5rem;
1189+
margin-bottom: 0.65rem;
1190+
display: flex;
1191+
align-items: flex-start;
1192+
gap: 0.65rem;
11901193
}
11911194

1192-
.home-intro-frame {
1195+
.home-intro-list-icon {
1196+
margin-top: 0.2rem;
1197+
color: var(--accent);
1198+
font-size: 0.85rem;
1199+
flex-shrink: 0;
1200+
}
1201+
1202+
.dashboard-preview {
1203+
position: relative;
1204+
margin: 0;
11931205
border-radius: 20px;
1194-
padding: 2rem 1.5rem;
1195-
background:
1196-
linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(238, 242, 255, 0.9));
1206+
overflow: hidden;
11971207
border: 1px solid var(--border);
11981208
box-shadow: var(--shadow-lg);
1199-
text-align: center;
1209+
background: linear-gradient(155deg, rgba(238, 242, 255, 0.95), rgba(224, 242, 254, 0.75));
1210+
min-height: min(280px, 52vw);
1211+
}
1212+
1213+
.dashboard-preview picture {
1214+
display: block;
1215+
line-height: 0;
1216+
}
1217+
1218+
.dashboard-preview__img {
1219+
display: block;
1220+
width: 100%;
1221+
height: auto;
12001222
position: relative;
1201-
overflow: hidden;
1223+
z-index: 2;
12021224
}
12031225

1204-
.home-intro-frame::before {
1205-
content: "";
1226+
.dashboard-preview--no-image .dashboard-preview__img {
1227+
display: none;
1228+
}
1229+
1230+
.dashboard-preview__fallback {
12061231
position: absolute;
1207-
inset: -40% -20%;
1208-
background: radial-gradient(circle at 50% 40%, rgba(99, 102, 241, 0.12), transparent 55%);
1209-
pointer-events: none;
1232+
inset: 0;
1233+
z-index: 1;
1234+
display: flex;
1235+
flex-direction: column;
1236+
align-items: center;
1237+
justify-content: center;
1238+
gap: 0.65rem;
1239+
padding: 1.5rem;
1240+
text-align: center;
1241+
background: linear-gradient(160deg, rgba(99, 102, 241, 0.12), rgba(14, 165, 233, 0.08));
12101242
}
12111243

1212-
.home-intro-mark {
1213-
position: relative;
1214-
width: min(200px, 70vw);
1215-
height: auto;
1216-
aspect-ratio: 1;
1217-
border-radius: 22px;
1218-
object-fit: cover;
1219-
box-shadow: 0 20px 50px rgba(79, 70, 229, 0.2);
1220-
border: 1px solid rgba(148, 163, 184, 0.35);
1244+
.dashboard-preview:not(.dashboard-preview--no-image) .dashboard-preview__fallback {
1245+
display: none;
12211246
}
12221247

1223-
.home-intro-caption {
1224-
position: relative;
1225-
margin: 1.25rem 0 0;
1226-
font-size: 0.9rem;
1248+
.dashboard-preview__fallback-icon {
1249+
font-size: 2.75rem;
1250+
color: var(--accent);
1251+
opacity: 0.9;
1252+
}
1253+
1254+
.dashboard-preview__fallback-label {
1255+
font-size: 0.8rem;
1256+
font-weight: 700;
1257+
letter-spacing: 0.08em;
1258+
text-transform: uppercase;
12271259
color: var(--muted);
1228-
line-height: 1.55;
12291260
}
12301261

12311262
.section-tint {
@@ -1289,39 +1320,32 @@ main {
12891320
height: 120px;
12901321
border-radius: var(--radius-sm);
12911322
margin-bottom: 1rem;
1292-
background-size: cover;
1293-
background-position: center;
12941323
border: 1px solid rgba(148, 163, 184, 0.25);
1324+
display: flex;
1325+
align-items: center;
1326+
justify-content: center;
1327+
position: relative;
1328+
overflow: hidden;
1329+
}
1330+
1331+
.pillar-card-media__icon {
1332+
position: relative;
1333+
z-index: 1;
1334+
font-size: 2rem;
1335+
color: var(--accent);
1336+
opacity: 0.95;
12951337
}
12961338

12971339
.pillar-card-media--a {
1298-
background-image:
1299-
linear-gradient(135deg, rgba(99, 102, 241, 0.35), rgba(6, 182, 212, 0.2)),
1300-
url("../img/brandmark.jpeg");
1301-
background-blend-mode: overlay, normal;
1302-
background-size: cover, 42% auto;
1303-
background-position: center, 92% 50%;
1304-
background-repeat: no-repeat, no-repeat;
1340+
background: linear-gradient(135deg, rgba(99, 102, 241, 0.22), rgba(6, 182, 212, 0.14));
13051341
}
13061342

13071343
.pillar-card-media--b {
1308-
background-image:
1309-
linear-gradient(135deg, rgba(6, 182, 212, 0.35), rgba(99, 102, 241, 0.2)),
1310-
url("../img/brandmark.jpeg");
1311-
background-blend-mode: soft-light, normal;
1312-
background-size: cover, 38% auto;
1313-
background-position: center, 8% 88%;
1314-
background-repeat: no-repeat, no-repeat;
1344+
background: linear-gradient(135deg, rgba(6, 182, 212, 0.22), rgba(99, 102, 241, 0.14));
13151345
}
13161346

13171347
.pillar-card-media--c {
1318-
background-image:
1319-
linear-gradient(135deg, rgba(79, 70, 229, 0.4), rgba(14, 116, 144, 0.25)),
1320-
url("../img/brandmark.jpeg");
1321-
background-blend-mode: overlay, normal;
1322-
background-size: cover, 45% auto;
1323-
background-position: center, 50% 18%;
1324-
background-repeat: no-repeat, no-repeat;
1348+
background: linear-gradient(135deg, rgba(79, 70, 229, 0.26), rgba(14, 165, 233, 0.12));
13251349
}
13261350

13271351
.home-cta {
@@ -1364,11 +1388,19 @@ main {
13641388
}
13651389
}
13661390

1367-
.home-cta-mark {
1391+
.home-cta-icon {
1392+
width: 56px;
1393+
height: 56px;
13681394
border-radius: 14px;
1369-
object-fit: cover;
1395+
display: inline-flex;
1396+
align-items: center;
1397+
justify-content: center;
1398+
flex-shrink: 0;
1399+
font-size: 1.35rem;
1400+
color: #e0e7ff;
1401+
background: rgba(255, 255, 255, 0.1);
13701402
border: 1px solid rgba(255, 255, 255, 0.18);
1371-
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
1403+
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
13721404
}
13731405

13741406
.home-cta h2 {
@@ -1412,9 +1444,9 @@ main {
14121444
}
14131445

14141446
.footer-mark {
1415-
border-radius: 6px;
1416-
object-fit: cover;
1417-
border: 1px solid rgba(148, 163, 184, 0.25);
1447+
font-size: 1rem;
1448+
color: #94a3b8;
1449+
opacity: 0.95;
14181450
}
14191451

14201452
.prose h2 {

assets/js/main.js

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,23 +145,20 @@
145145
var heroVisual = document.getElementById("hero-visual");
146146
if (heroCopy && heroVisual) {
147147
gsap.set(heroVisual, { opacity: 0, x: 36, scale: 0.96 });
148-
var brandRow = heroCopy.querySelector(".hero-brand-row");
149148
var badge = heroCopy.querySelector(".hero-badge");
150149
var title = heroCopy.querySelector("h1");
151150
var lead = heroCopy.querySelector(".hero-lead");
152151
var actions = heroCopy.querySelector(".hero-actions");
153-
if (brandRow) gsap.set(brandRow, { opacity: 0, scale: 0.92 });
154152
if (badge) gsap.set(badge, { opacity: 0, y: 20 });
155153
if (title) gsap.set(title, { opacity: 0, y: 24 });
156154
if (lead) gsap.set(lead, { opacity: 0, y: 20 });
157155
if (actions) gsap.set(actions, { opacity: 0, y: 16 });
158156

159157
var tl = gsap.timeline({ defaults: { ease: "power3.out" } });
160-
if (brandRow) tl.to(brandRow, { opacity: 1, scale: 1, duration: 0.55 }, 0);
161-
if (badge) tl.to(badge, { opacity: 1, y: 0, duration: 0.5 }, 0.06);
162-
if (title) tl.to(title, { opacity: 1, y: 0, duration: 0.65 }, 0.12);
163-
if (lead) tl.to(lead, { opacity: 1, y: 0, duration: 0.55 }, 0.22);
164-
if (actions) tl.to(actions, { opacity: 1, y: 0, duration: 0.5 }, 0.32);
158+
if (badge) tl.to(badge, { opacity: 1, y: 0, duration: 0.5 }, 0);
159+
if (title) tl.to(title, { opacity: 1, y: 0, duration: 0.65 }, 0.08);
160+
if (lead) tl.to(lead, { opacity: 1, y: 0, duration: 0.55 }, 0.18);
161+
if (actions) tl.to(actions, { opacity: 1, y: 0, duration: 0.5 }, 0.28);
165162
tl.to(heroVisual, { opacity: 1, x: 0, scale: 1, duration: 0.85 }, 0.12);
166163
}
167164

@@ -330,7 +327,27 @@
330327
el.addEventListener("pointerdown", reset, { passive: true });
331328
}
332329

330+
function wireDashboardPreview() {
331+
document.querySelectorAll("[data-dashboard-preview]").forEach(function (fig) {
332+
var img = fig.querySelector("[data-dashboard-preview-img]");
333+
if (!img) return;
334+
function showImage() {
335+
if (img.naturalWidth > 0) fig.classList.remove("dashboard-preview--no-image");
336+
}
337+
function showFallback() {
338+
fig.classList.add("dashboard-preview--no-image");
339+
}
340+
img.addEventListener("load", showImage);
341+
img.addEventListener("error", showFallback);
342+
if (img.complete) {
343+
if (img.naturalWidth > 0) fig.classList.remove("dashboard-preview--no-image");
344+
else showFallback();
345+
}
346+
});
347+
}
348+
333349
startMatrix(document.querySelector("[data-matrix]"));
334350
document.querySelectorAll("[data-tilt]").forEach(wireTilt);
351+
wireDashboardPreview();
335352
initGsapAnimations();
336353
})();

0 commit comments

Comments
 (0)