From efd0d96a3590c101bbe516f2f0e4d01592525317 Mon Sep 17 00:00:00 2001
From: 0xBora <133051383+0xBora@users.noreply.github.com>
Date: Sat, 26 Jul 2025 00:41:31 +0200
Subject: [PATCH 1/4] feature: add "Develop on Cardano" section to Builder
Tools page
---
src/pages/portalhero.js | 26 +++---
src/pages/tools/index.js | 35 +++++++-
src/pages/tools/styles.module.css | 130 ++++++++++++++++++++++++++++++
3 files changed, 177 insertions(+), 14 deletions(-)
diff --git a/src/pages/portalhero.js b/src/pages/portalhero.js
index da76c16931..1e34e9c3eb 100644
--- a/src/pages/portalhero.js
+++ b/src/pages/portalhero.js
@@ -13,18 +13,20 @@ function PortalHero({ title, description, cta, filename, url }) {
{title}
{description}
-
-
- {cta}
-
-
+ {cta && (
+
+
+ {cta}
+
+
+ )}
);
diff --git a/src/pages/tools/index.js b/src/pages/tools/index.js
index ed48aef9b5..73b416ca3d 100644
--- a/src/pages/tools/index.js
+++ b/src/pages/tools/index.js
@@ -167,12 +167,39 @@ function ShowcaseHeader() {
);
}
+function DevelopOnCardanoSection() {
+ return (
+
+
+
+
+
Develop on Cardano
+
+ Discover the tools and libraries that power Cardano development.
+ From smart contract languages to blockchain APIs, these community-built
+ tools help you create decentralized applications, integrate with
+ wallets, and interact with the Cardano ecosystem.
+
+
+
+
Need help choosing the right tools?
+
+ Get tailored recommendations for APIs, indexers, SDKs, and infrastructure that match your project's needs.
+
+
+ Tool Compass →
+
+
+
+
+
+ );
+}
+
function ShowcaseFilters() {
const filteredProjects = useFilteredProjects();
@@ -336,6 +363,9 @@ function SearchBar() {
debouncedHistoryPush(newSearch.toString());
}}
/>
+
+ Add Your Tool →
+
);
}
@@ -358,6 +388,7 @@ function Showcase() {
+
diff --git a/src/pages/tools/styles.module.css b/src/pages/tools/styles.module.css
index 27a8cc5ce3..d89b04eb43 100644
--- a/src/pages/tools/styles.module.css
+++ b/src/pages/tools/styles.module.css
@@ -90,6 +90,9 @@
.searchContainer {
margin-left: auto;
+ display: flex;
+ align-items: center;
+ gap: 1.5rem;
}
.searchContainer input {
@@ -99,6 +102,20 @@
border: 1px solid gray;
}
+.addToolLink {
+ color: var(--ifm-color-primary);
+ text-decoration: none;
+ font-weight: 600;
+ font-size: 0.9rem;
+ transition: color 0.2s ease;
+ white-space: nowrap;
+}
+
+.addToolLink:hover {
+ color: var(--ifm-color-primary-dark);
+ text-decoration: none;
+}
+
.showcaseList {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
@@ -131,4 +148,117 @@
.ourFavorites {
margin-right: 0.7rem;
+}
+
+.developSection {
+ padding: 3rem 0;
+ border-bottom: 1px solid var(--ifm-color-emphasis-200);
+}
+
+.developGrid {
+ display: grid;
+ grid-template-columns: 2fr 1fr;
+ gap: 4rem;
+ align-items: center;
+}
+
+.developGrid h2 {
+ font-size: 2.25rem;
+ font-weight: 700;
+ margin-bottom: 1.25rem;
+ line-height: 1.2;
+}
+
+.developGrid > div:first-child p {
+ font-size: 1.125rem;
+ line-height: 1.7;
+ color: var(--ifm-color-content-secondary);
+ margin: 0;
+}
+
+.developCta {
+ padding: 1rem 0 1rem 2.5rem;
+ position: relative;
+}
+
+.developCta::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 1rem;
+ bottom: 1rem;
+ width: 3px;
+ background: var(--ifm-color-primary);
+}
+
+.developCta h3 {
+ font-size: 1.3rem;
+ font-weight: 600;
+ margin-bottom: 0.875rem;
+ line-height: 1.3;
+}
+
+.developCta p {
+ font-size: 0.95rem;
+ line-height: 1.5;
+ color: var(--ifm-color-content-secondary);
+ margin-bottom: 1.125rem;
+}
+
+.ctaLink {
+ color: var(--ifm-color-primary);
+ text-decoration: none;
+ font-weight: 600;
+ transition: color 0.2s ease;
+}
+
+.ctaLink:hover {
+ color: var(--ifm-color-primary-dark);
+ text-decoration: none;
+}
+
+@media screen and (max-width: 996px) {
+ .developGrid {
+ grid-template-columns: 1fr;
+ gap: 2.5rem;
+ text-align: center;
+ }
+
+ .developCta {
+ padding: 2rem 0 0 0;
+ border-top: 3px solid var(--ifm-color-primary);
+ }
+
+ .developCta::before {
+ display: none;
+ }
+
+ .developCta h3 {
+ margin-top: 0.5rem;
+ }
+}
+
+@media screen and (max-width: 768px) {
+ .developSection {
+ padding: 2rem 0;
+ }
+
+ .developGrid {
+ gap: 2rem;
+ }
+
+ .developContent h2 {
+ font-size: 1.875rem;
+ }
+
+ .searchContainer {
+ flex-direction: column;
+ gap: 1rem;
+ align-items: stretch;
+ }
+
+ .addToolLink {
+ text-align: center;
+ font-size: 0.85rem;
+ }
}
\ No newline at end of file
From 494c47fe50cf5d7bb7a298bfab5f1cc1d16a6828 Mon Sep 17 00:00:00 2001
From: 0xBora <133051383+0xBora@users.noreply.github.com>
Date: Sun, 27 Jul 2025 21:56:11 +0200
Subject: [PATCH 2/4] docs: replace CTA text with button
---
src/pages/tools/index.js | 6 +++---
src/pages/tools/styles.module.css | 23 +++++++++++++++++++++++
2 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/src/pages/tools/index.js b/src/pages/tools/index.js
index 73b416ca3d..cc12054e14 100644
--- a/src/pages/tools/index.js
+++ b/src/pages/tools/index.js
@@ -188,10 +188,10 @@ function DevelopOnCardanoSection() {
Need help choosing the right tools?
- Get tailored recommendations for APIs, indexers, SDKs, and infrastructure that match your project's needs.
+ Answer a few questions about your project and discover which APIs, indexers, SDKs, and infrastructure are best for you.
-
- Tool Compass →
+
+ → Tool Compass
diff --git a/src/pages/tools/styles.module.css b/src/pages/tools/styles.module.css
index d89b04eb43..ed5f3e74a8 100644
--- a/src/pages/tools/styles.module.css
+++ b/src/pages/tools/styles.module.css
@@ -217,6 +217,29 @@
text-decoration: none;
}
+.ctaButton {
+ display: inline-block;
+ background-color: var(--ifm-color-primary);
+ color: white;
+ text-decoration: none;
+ font-weight: 500;
+ font-size: 0.875rem;
+ padding: 0.625rem 1.5rem;
+ border-radius: 8px;
+ transition: all 0.15s ease;
+ border: none;
+ cursor: pointer;
+ letter-spacing: 0.025em;
+}
+
+.ctaButton:hover {
+ background-color: var(--ifm-color-primary-dark);
+ color: white;
+ text-decoration: none;
+ transform: translateY(-1px);
+ box-shadow: 0 4px 12px rgba(5, 56, 175, 0.25);
+}
+
@media screen and (max-width: 996px) {
.developGrid {
grid-template-columns: 1fr;
From 266fb4e02dbfc21d387263a8ed9ab2fb497c76ad Mon Sep 17 00:00:00 2001
From: 0xBora <133051383+0xBora@users.noreply.github.com>
Date: Sun, 27 Jul 2025 22:03:47 +0200
Subject: [PATCH 3/4] style: update CTA button
---
src/pages/tools/styles.module.css | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/src/pages/tools/styles.module.css b/src/pages/tools/styles.module.css
index ed5f3e74a8..07f2c00af8 100644
--- a/src/pages/tools/styles.module.css
+++ b/src/pages/tools/styles.module.css
@@ -219,25 +219,23 @@
.ctaButton {
display: inline-block;
- background-color: var(--ifm-color-primary);
- color: white;
+ background-color: transparent;
+ color: var(--ifm-color-primary);
text-decoration: none;
font-weight: 500;
font-size: 0.875rem;
- padding: 0.625rem 1.5rem;
- border-radius: 8px;
- transition: all 0.15s ease;
- border: none;
- cursor: pointer;
+ padding: 0.5rem 1.25rem;
+ border: 1px solid var(--ifm-color-primary);
+ border-radius: 6px;
+ transition: all 0.2s ease;
letter-spacing: 0.025em;
}
.ctaButton:hover {
- background-color: var(--ifm-color-primary-dark);
+ background-color: var(--ifm-color-primary);
color: white;
text-decoration: none;
transform: translateY(-1px);
- box-shadow: 0 4px 12px rgba(5, 56, 175, 0.25);
}
@media screen and (max-width: 996px) {
From 674184a9b7450a7a39b38d5b1c1cb92bdc143f91 Mon Sep 17 00:00:00 2001
From: 0xBora <133051383+0xBora@users.noreply.github.com>
Date: Sun, 27 Jul 2025 22:06:15 +0200
Subject: [PATCH 4/4] style: increaes border thickness
---
src/pages/tools/styles.module.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/tools/styles.module.css b/src/pages/tools/styles.module.css
index 07f2c00af8..0d09c40e15 100644
--- a/src/pages/tools/styles.module.css
+++ b/src/pages/tools/styles.module.css
@@ -225,7 +225,7 @@
font-weight: 500;
font-size: 0.875rem;
padding: 0.5rem 1.25rem;
- border: 1px solid var(--ifm-color-primary);
+ border: 1.5px solid var(--ifm-color-primary);
border-radius: 6px;
transition: all 0.2s ease;
letter-spacing: 0.025em;