Skip to content

Commit d90200b

Browse files
committed
fix: Rework CTA button to match probabl website
1 parent d82b1c6 commit d90200b

5 files changed

Lines changed: 31 additions & 69 deletions

File tree

src/assets/css/components.css

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -974,31 +974,11 @@
974974
color: var(--text-inverse);
975975
}
976976

977-
/* "Open in JupyterLite" CTA — same pill geometry as other card actions. */
977+
/* "Open in JupyterLite" CTA — compact primary on use-case cards */
978978
.btn--open-lab {
979-
font-family: var(--brand-typography--texte);
980-
font-size: var(--brand-typography-size--body-s);
981-
font-weight: 500;
982-
letter-spacing: 0;
983979
height: 32px;
984980
padding: 0 14px;
985-
background: var(--color-orange);
986-
color: var(--color-near-black);
987-
border: none;
988-
border-radius: var(--radius-full);
989-
cursor: pointer;
990-
display: inline-flex;
991-
align-items: center;
992981
gap: 6px;
993-
text-decoration: none;
994-
transition: opacity var(--duration-sm) var(--ease-out);
995-
}
996-
/* Pin background + text on hover so the global `a:hover { color: orange }`
997-
rule doesn't make the label disappear into the orange background. */
998-
.btn--open-lab:hover {
999-
background: var(--color-orange);
1000-
color: var(--color-near-black);
1001-
opacity: 0.92;
1002982
}
1003983

1004984
/* Square GitHub link button — matches adjacent button height */
@@ -1422,32 +1402,13 @@
14221402
border-color: var(--text-inverse);
14231403
}
14241404

1425-
/* Orange CTA — used on both card types */
1405+
/* Orange CTA — release cards; colors/hover from .btn--primary */
14261406
.btn--cta {
1427-
background: var(--color-orange);
1428-
color: var(--color-near-black);
1429-
border: none;
14301407
font-family: var(--font-mono);
14311408
font-size: var(--text-xs);
14321409
font-weight: 700;
14331410
letter-spacing: 0.04em;
14341411
padding: var(--space-2) var(--space-4);
14351412
border-radius: var(--radius-sm);
1436-
cursor: pointer;
1437-
display: inline-flex;
1438-
align-items: center;
14391413
gap: var(--space-1);
1440-
text-decoration: none;
1441-
transition: opacity 0.15s;
1442-
}
1443-
1444-
.btn--cta,
1445-
.btn--cta:hover,
1446-
.btn--cta:visited {
1447-
color: var(--color-near-black);
1448-
}
1449-
1450-
.btn--cta:hover {
1451-
opacity: 0.88;
1452-
color: var(--color-near-black);
14531414
}

src/assets/css/design-system.css

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ a {
358358
transition: color var(--duration-sm) var(--ease);
359359
}
360360

361-
a:hover { color: var(--color-orange); }
361+
a:where(:not([class*='btn'])):hover { color: var(--color-orange); }
362362

363363
img, svg { display: block; max-width: 100%; }
364364

@@ -502,27 +502,31 @@ button, input, select, textarea {
502502
box-shadow: var(--focus-ring-sky-strong);
503503
}
504504

505-
.btn:hover { opacity: 0.92; }
505+
.btn:hover:not(.btn--primary) { opacity: 0.92; }
506506
/* Press feedback — makes the UI feel like it heard the click.
507507
transform: scale stays GPU-accelerated and runs in 160 ms. */
508508
.btn:active {
509509
opacity: 0.85;
510510
transform: scale(0.97);
511511
}
512512

513-
/* Primary — orange fill on midnight, dark fill on light */
513+
/* Primary — Probabl .button: orange fill, outline on hover */
514514
.btn--primary,
515-
.btn--primary:hover,
516-
.btn--primary:visited {
515+
.btn--primary:visited,
516+
a.btn--primary,
517+
a.btn--primary:visited {
517518
background: var(--color-orange);
518519
color: var(--color-near-black);
520+
border: 1px solid transparent;
519521
text-decoration: none;
520522
}
521523

522-
.btn--primary:hover {
523-
background: var(--color-orange);
524-
color: var(--color-near-black);
525-
opacity: 0.92;
524+
.btn--primary:hover,
525+
a.btn--primary:hover {
526+
background: transparent;
527+
border-color: var(--color-orange);
528+
color: var(--color-orange);
529+
opacity: 1;
526530
}
527531

528532
/* Ghost — transparent w/ hairline, used on dark headers */

src/components/ReleaseCard.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ const outlineClass = computed(() =>
176176
>
177177
RELEASE NOTES
178178
</a>
179-
<a :href="ctaLink" target="_blank" rel="noopener" class="btn btn--sm btn--cta">
179+
<a :href="ctaLink" target="_blank" rel="noopener" class="btn btn--primary btn--sm btn--cta">
180180
{{ ctaLabel }}
181181
</a>
182182
<a

src/components/SklearnHero.vue

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ const { copied, copyInstall } = useCopyPipInstall(() => props.core.pypi_name)
111111
:href="core.website"
112112
target="_blank"
113113
rel="noopener noreferrer"
114-
class="link filled"
114+
class="link btn btn--primary"
115115
>
116116
<i class="fas fa-house" aria-hidden="true"></i><span>Homepage</span>
117117
</a>
@@ -287,8 +287,6 @@ const { copied, copyInstall } = useCopyPipInstall(() => props.core.pypi_name)
287287
.link {
288288
padding: 9px 18px;
289289
border-radius: var(--radius-full);
290-
border: 1px solid var(--border-on-dark-strong);
291-
color: var(--text-inverse);
292290
font-family: var(--font-sans);
293291
font-size: 13px;
294292
font-weight: 500;
@@ -301,6 +299,18 @@ const { copied, copyInstall } = useCopyPipInstall(() => props.core.pypi_name)
301299
color var(--duration-md) var(--ease-out);
302300
}
303301
302+
.link:not(.btn--primary) {
303+
border: 1px solid var(--border-on-dark-strong);
304+
color: var(--text-inverse);
305+
}
306+
307+
a.link.btn--primary:hover {
308+
background: transparent;
309+
border-color: var(--color-orange);
310+
color: var(--color-orange);
311+
opacity: 1;
312+
}
313+
304314
button.link {
305315
font: inherit;
306316
cursor: pointer;
@@ -311,7 +321,7 @@ button.link {
311321
gap: var(--space-2);
312322
}
313323
314-
a.link:hover,
324+
a.link:hover:not(.btn--primary),
315325
button.link.link--pip:hover {
316326
background: var(--surface-on-dark-faint);
317327
border-color: var(--border-on-dark-stronger);
@@ -328,19 +338,6 @@ button.link.link--pip:hover {
328338
opacity: 1;
329339
}
330340
331-
.link.filled {
332-
background: var(--color-orange);
333-
border-color: var(--color-orange);
334-
color: var(--color-near-black);
335-
}
336-
337-
.link.filled:hover {
338-
background: var(--color-orange);
339-
border-color: var(--color-orange);
340-
color: var(--color-near-black);
341-
opacity: 0.92;
342-
}
343-
344341
button.link.link--pip {
345342
font-family: var(--font-mono);
346343
font-size: 13px;

src/components/UseCaseCard.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ async function copyLink(): Promise<void> {
139139
:href="jupyterliteUrl"
140140
target="_blank"
141141
rel="noopener"
142-
class="btn--open-lab"
142+
class="btn btn--primary btn--open-lab"
143143
title="Open this use case in JupyterLite (Pyodide kernel, runs in your browser)"
144144
>
145145
<i class="fas fa-flask"></i> Open in JupyterLite

0 commit comments

Comments
 (0)