-
-
Why Reqon?
-
+
+
Why Reqon?
+
Stop writing boilerplate. Start building data pipelines.
{FeatureList.map((props, idx) => (
-
+
))}
diff --git a/docusaurus/src/components/HomepageFeatures/styles.module.css b/docusaurus/src/components/HomepageFeatures/styles.module.css
index 452ac3e..2e2a970 100644
--- a/docusaurus/src/components/HomepageFeatures/styles.module.css
+++ b/docusaurus/src/components/HomepageFeatures/styles.module.css
@@ -1,12 +1,108 @@
.features {
display: flex;
align-items: center;
- padding: 4rem 0;
+ padding: 5rem 0 6rem;
width: 100%;
- background-color: var(--ifm-background-surface-color);
+ background: linear-gradient(180deg, var(--ifm-background-surface-color) 0%, var(--ifm-background-color) 100%);
+ position: relative;
+}
+
+.features::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: linear-gradient(90deg, transparent, var(--reqon-border-color), transparent);
+}
+
+.sectionTitle {
+ font-size: 2.25rem;
+ font-weight: 800;
+ margin-bottom: 0.75rem;
+ background: linear-gradient(135deg, var(--ifm-color-primary-dark), var(--reqon-gradient-end));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.sectionSubtitle {
+ font-size: 1.2rem;
+ color: var(--ifm-color-emphasis-700);
+ max-width: 500px;
+ margin: 0 auto 3rem;
+}
+
+.featureCard {
+ background: var(--reqon-surface-1);
+ border-radius: 16px;
+ padding: 2rem;
+ border: 1px solid var(--reqon-border-color);
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ height: 100%;
+ position: relative;
+ overflow: hidden;
+}
+
+.featureCard::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 3px;
+ background: linear-gradient(90deg, var(--reqon-gradient-start), var(--reqon-gradient-end));
+ opacity: 0;
+ transition: opacity 0.3s ease;
+}
+
+.featureCard:hover {
+ transform: translateY(-8px);
+ box-shadow: var(--reqon-shadow-lg), 0 0 40px rgba(99, 102, 241, 0.1);
+ border-color: var(--ifm-color-primary-lighter);
+}
+
+.featureCard:hover::before {
+ opacity: 1;
}
.featureIcon {
- font-size: 3rem;
- margin-bottom: 1rem;
+ font-size: 2.75rem;
+ margin-bottom: 1.25rem;
+ display: inline-block;
+ animation: float 3s ease-in-out infinite;
+ animation-delay: calc(var(--animation-order, 0) * 0.1s);
+}
+
+@keyframes float {
+ 0%, 100% {
+ transform: translateY(0);
+ }
+ 50% {
+ transform: translateY(-6px);
+ }
+}
+
+.featureTitle {
+ font-size: 1.25rem;
+ font-weight: 700;
+ margin-bottom: 0.75rem;
+ color: var(--ifm-heading-color);
+}
+
+.featureDescription {
+ color: var(--ifm-color-emphasis-700);
+ line-height: 1.65;
+ font-size: 0.95rem;
+}
+
+@media screen and (max-width: 996px) {
+ .features {
+ padding: 3rem 0 4rem;
+ }
+
+ .featureCard {
+ margin-bottom: 1.5rem;
+ }
}
diff --git a/docusaurus/src/css/custom.css b/docusaurus/src/css/custom.css
index d41b150..91ea6ac 100644
--- a/docusaurus/src/css/custom.css
+++ b/docusaurus/src/css/custom.css
@@ -1,12 +1,13 @@
/**
* Reqon Documentation Theme
- * Based on a modern purple/violet color palette
+ * Modern, polished design with purple/violet palette
*/
/* Font imports with display swap for better performance */
-@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');
:root {
+ /* Primary color palette - refined indigo/violet */
--ifm-color-primary: #6366f1;
--ifm-color-primary-dark: #4f46e5;
--ifm-color-primary-darker: #4338ca;
@@ -15,14 +16,39 @@
--ifm-color-primary-lighter: #a5b4fc;
--ifm-color-primary-lightest: #c7d2fe;
+ /* Accent colors for visual interest */
+ --reqon-accent-pink: #ec4899;
+ --reqon-accent-cyan: #06b6d4;
+ --reqon-accent-emerald: #10b981;
+ --reqon-gradient-start: #6366f1;
+ --reqon-gradient-end: #8b5cf6;
+
+ /* Typography */
--ifm-code-font-size: 95%;
--ifm-font-family-base: 'Inter', system-ui, -apple-system, sans-serif;
--ifm-font-family-monospace: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
+ --ifm-heading-font-weight: 700;
+ --ifm-font-weight-bold: 600;
+ --ifm-line-height-base: 1.65;
+
+ /* Spacing */
+ --ifm-spacing-horizontal: 1.5rem;
+ --ifm-global-radius: 0.75rem;
+
+ /* Shadows */
+ --reqon-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 4px rgba(0, 0, 0, 0.04);
+ --reqon-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.04), 0 2px 12px rgba(0, 0, 0, 0.06);
+ --reqon-shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.08);
+ --reqon-shadow-glow: 0 0 40px rgba(99, 102, 241, 0.15);
--docusaurus-highlighted-code-line-bg: rgba(99, 102, 241, 0.1);
+ --ifm-navbar-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
- --ifm-heading-font-weight: 600;
- --ifm-navbar-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ /* Surface colors */
+ --reqon-surface-1: #ffffff;
+ --reqon-surface-2: #f8fafc;
+ --reqon-surface-3: #f1f5f9;
+ --reqon-border-color: #e2e8f0;
}
[data-theme='dark'] {
@@ -34,29 +60,121 @@
--ifm-color-primary-lighter: #c7d2fe;
--ifm-color-primary-lightest: #e0e7ff;
+ --reqon-gradient-start: #818cf8;
+ --reqon-gradient-end: #a78bfa;
+
--docusaurus-highlighted-code-line-bg: rgba(129, 140, 248, 0.2);
- --ifm-background-color: #0f172a;
- --ifm-background-surface-color: #1e293b;
+ --ifm-background-color: #0a0f1c;
+ --ifm-background-surface-color: #111827;
+
+ /* Dark mode shadows */
+ --reqon-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 4px rgba(0, 0, 0, 0.15);
+ --reqon-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.2), 0 2px 12px rgba(0, 0, 0, 0.2);
+ --reqon-shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.25), 0 4px 16px rgba(0, 0, 0, 0.2);
+ --reqon-shadow-glow: 0 0 60px rgba(129, 140, 248, 0.2);
+
+ /* Dark surface colors */
+ --reqon-surface-1: #111827;
+ --reqon-surface-2: #1e293b;
+ --reqon-surface-3: #334155;
+ --reqon-border-color: #374151;
}
-/* Code blocks */
+/* ==========================================
+ Global Animations
+ ========================================== */
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+@keyframes float {
+ 0%, 100% {
+ transform: translateY(0);
+ }
+ 50% {
+ transform: translateY(-10px);
+ }
+}
+
+@keyframes shimmer {
+ 0% {
+ background-position: -200% 0;
+ }
+ 100% {
+ background-position: 200% 0;
+ }
+}
+
+/* ==========================================
+ Code Blocks
+ ========================================== */
+
.prism-code {
- border-radius: 8px;
+ border-radius: 12px;
+ box-shadow: var(--reqon-shadow-md);
+ border: 1px solid var(--reqon-border-color);
}
code {
- border-radius: 4px;
- padding: 2px 6px;
+ border-radius: 6px;
+ padding: 3px 8px;
+ font-weight: 500;
+ background: linear-gradient(135deg, var(--ifm-color-primary-lightest) 0%, rgba(99, 102, 241, 0.08) 100%);
+}
+
+[data-theme='dark'] code {
+ background: linear-gradient(135deg, rgba(129, 140, 248, 0.15) 0%, rgba(129, 140, 248, 0.08) 100%);
+}
+
+/* Code block title bar */
+.codeBlockTitle_node_modules-\@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module {
+ border-bottom: 1px solid var(--reqon-border-color);
+ background: var(--reqon-surface-2);
}
-/* Navbar styling */
+/* ==========================================
+ Navbar
+ ========================================== */
+
.navbar {
- -webkit-backdrop-filter: blur(8px);
- backdrop-filter: blur(8px);
+ -webkit-backdrop-filter: blur(12px);
+ backdrop-filter: blur(12px);
+ background: rgba(255, 255, 255, 0.85);
+ border-bottom: 1px solid var(--reqon-border-color);
+ transition: all 0.3s ease;
+}
+
+[data-theme='dark'] .navbar {
+ background: rgba(17, 24, 39, 0.9);
}
.navbar__title {
- font-weight: 700;
+ font-weight: 800;
+ background: linear-gradient(135deg, var(--reqon-gradient-start), var(--reqon-gradient-end));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.navbar__link {
+ font-weight: 500;
+ transition: color 0.2s ease, transform 0.2s ease;
+}
+
+.navbar__link:hover {
+ transform: translateY(-1px);
+}
+
+.navbar__link--active {
+ font-weight: 600;
}
/* Mobile hamburger menu fix - complete override for proper stacking */
@@ -104,115 +222,477 @@ code {
}
}
-/* Hero section on homepage */
+/* ==========================================
+ Hero Section
+ ========================================== */
+
.hero {
- background: linear-gradient(135deg, var(--ifm-color-primary-lightest) 0%, var(--ifm-background-color) 100%);
+ background:
+ radial-gradient(ellipse 80% 50% at 50% -20%, rgba(99, 102, 241, 0.15) 0%, transparent 60%),
+ linear-gradient(180deg, var(--ifm-color-primary-lightest) 0%, var(--ifm-background-color) 100%);
+ position: relative;
+ overflow: hidden;
+}
+
+.hero::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background:
+ radial-gradient(circle at 20% 80%, rgba(99, 102, 241, 0.1) 0%, transparent 40%),
+ radial-gradient(circle at 80% 20%, rgba(139, 92, 246, 0.1) 0%, transparent 40%);
+ pointer-events: none;
}
[data-theme='dark'] .hero {
- background: linear-gradient(135deg, var(--ifm-color-primary-darkest) 0%, var(--ifm-background-color) 100%);
+ background:
+ radial-gradient(ellipse 80% 50% at 50% -20%, rgba(129, 140, 248, 0.2) 0%, transparent 60%),
+ linear-gradient(180deg, rgba(99, 102, 241, 0.08) 0%, var(--ifm-background-color) 100%);
+}
+
+[data-theme='dark'] .hero::before {
+ background:
+ radial-gradient(circle at 20% 80%, rgba(129, 140, 248, 0.15) 0%, transparent 40%),
+ radial-gradient(circle at 80% 20%, rgba(167, 139, 250, 0.15) 0%, transparent 40%);
+}
+
+.hero__title {
+ font-size: 3.5rem;
+ font-weight: 800;
+ background: linear-gradient(135deg, var(--ifm-color-primary-dark) 0%, var(--reqon-gradient-end) 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ animation: fadeInUp 0.6s ease-out;
+}
+
+[data-theme='dark'] .hero__title {
+ background: linear-gradient(135deg, var(--ifm-color-primary-light) 0%, var(--reqon-gradient-end) 100%);
+ -webkit-background-clip: text;
+ background-clip: text;
}
-/* Sidebar improvements */
+.hero__subtitle {
+ font-size: 1.35rem;
+ opacity: 0.85;
+ animation: fadeInUp 0.6s ease-out 0.1s both;
+ max-width: 600px;
+ margin: 0 auto;
+ line-height: 1.6;
+}
+
+/* ==========================================
+ Buttons
+ ========================================== */
+
+.button {
+ font-weight: 600;
+ border-radius: 10px;
+ padding: 0.75rem 1.5rem;
+ transition: all 0.25s ease;
+ position: relative;
+ overflow: hidden;
+}
+
+.button--primary {
+ background: linear-gradient(135deg, var(--reqon-gradient-start), var(--reqon-gradient-end));
+ border: none;
+ box-shadow: var(--reqon-shadow-md), 0 0 20px rgba(99, 102, 241, 0.2);
+}
+
+.button--primary:hover {
+ transform: translateY(-2px);
+ box-shadow: var(--reqon-shadow-lg), 0 0 30px rgba(99, 102, 241, 0.3);
+}
+
+.button--secondary {
+ background: var(--reqon-surface-1);
+ border: 2px solid var(--reqon-border-color);
+ color: var(--ifm-color-primary);
+}
+
+.button--secondary:hover {
+ background: var(--ifm-color-primary);
+ border-color: var(--ifm-color-primary);
+ color: white;
+ transform: translateY(-2px);
+ box-shadow: var(--reqon-shadow-md);
+}
+
+.button--outline {
+ border-width: 2px;
+}
+
+.button--lg {
+ padding: 0.875rem 2rem;
+ font-size: 1.05rem;
+}
+
+/* ==========================================
+ Sidebar
+ ========================================== */
+
.menu__link {
- border-radius: 6px;
- transition: all 0.15s ease;
+ border-radius: 8px;
+ transition: all 0.2s ease;
+ padding: 0.5rem 0.75rem;
+ font-weight: 500;
}
.menu__link:hover {
background-color: var(--ifm-color-primary-lightest);
+ color: var(--ifm-color-primary-dark);
+ transform: translateX(2px);
}
[data-theme='dark'] .menu__link:hover {
- background-color: rgba(129, 140, 248, 0.1);
+ background-color: rgba(129, 140, 248, 0.12);
+ color: var(--ifm-color-primary-light);
}
.menu__link--active {
font-weight: 600;
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.08));
+ color: var(--ifm-color-primary);
}
-/* Card styling for category indexes */
+.menu__link--active:hover {
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(139, 92, 246, 0.12));
+}
+
+.menu__list-item-collapsible:hover {
+ background-color: transparent;
+}
+
+/* ==========================================
+ Cards
+ ========================================== */
+
.card {
- border-radius: 12px;
- border: 1px solid var(--ifm-color-emphasis-200);
- transition: all 0.2s ease;
+ border-radius: 16px;
+ border: 1px solid var(--reqon-border-color);
+ transition: all 0.3s ease;
+ background: var(--reqon-surface-1);
+ overflow: hidden;
}
.card:hover {
- border-color: var(--ifm-color-primary);
- box-shadow: 0 4px 12px rgba(99, 102, 241, 0.1);
+ border-color: var(--ifm-color-primary-light);
+ box-shadow: var(--reqon-shadow-lg), 0 0 0 1px var(--ifm-color-primary-lighter);
+ transform: translateY(-4px);
}
-/* Tables */
+.card__header {
+ padding: 1.25rem 1.5rem;
+}
+
+.card__body {
+ padding: 1rem 1.5rem;
+}
+
+/* ==========================================
+ Tables
+ ========================================== */
+
table {
- border-radius: 8px;
+ border-radius: 12px;
overflow: hidden;
+ border: 1px solid var(--reqon-border-color);
+ box-shadow: var(--reqon-shadow-sm);
}
th {
- background-color: var(--ifm-color-emphasis-100);
+ background: linear-gradient(180deg, var(--reqon-surface-2) 0%, var(--reqon-surface-3) 100%);
+ font-weight: 600;
+ text-transform: uppercase;
+ font-size: 0.8rem;
+ letter-spacing: 0.05em;
+}
+
+td {
+ border-color: var(--reqon-border-color);
+}
+
+tr:hover td {
+ background-color: var(--reqon-surface-2);
}
-/* Admonitions */
+/* ==========================================
+ Admonitions
+ ========================================== */
+
.admonition {
- border-radius: 8px;
+ border-radius: 12px;
+ border-left-width: 4px;
+ box-shadow: var(--reqon-shadow-sm);
}
-/* Footer */
+.admonition-heading {
+ font-weight: 600;
+}
+
+.admonition.admonition-tip {
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(16, 185, 129, 0.02) 100%);
+}
+
+.admonition.admonition-info {
+ background: linear-gradient(135deg, rgba(6, 182, 212, 0.08) 0%, rgba(6, 182, 212, 0.02) 100%);
+}
+
+.admonition.admonition-caution {
+ background: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(245, 158, 11, 0.02) 100%);
+}
+
+.admonition.admonition-danger {
+ background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.02) 100%);
+}
+
+/* ==========================================
+ Footer
+ ========================================== */
+
.footer {
- background-color: var(--ifm-background-surface-color);
+ background: linear-gradient(180deg, var(--ifm-background-surface-color) 0%, var(--ifm-background-color) 100%);
+ border-top: 1px solid var(--reqon-border-color);
+}
+
+.footer__title {
+ font-weight: 700;
+ color: var(--ifm-color-primary);
}
-/* Custom syntax highlighting for Reqon DSL */
+.footer__link-item {
+ transition: color 0.2s ease;
+}
+
+.footer__link-item:hover {
+ color: var(--ifm-color-primary);
+}
+
+/* ==========================================
+ Syntax Highlighting
+ ========================================== */
+
.token.keyword {
color: var(--ifm-color-primary);
- font-weight: 500;
+ font-weight: 600;
+}
+
+.token.function {
+ color: var(--reqon-accent-cyan);
}
-/* Feature cards on homepage */
+.token.string {
+ color: var(--reqon-accent-emerald);
+}
+
+.token.number {
+ color: var(--reqon-accent-pink);
+}
+
+/* ==========================================
+ Feature Cards (Homepage)
+ ========================================== */
+
.feature-card {
- background: var(--ifm-background-surface-color);
- border-radius: 12px;
- padding: 1.5rem;
- border: 1px solid var(--ifm-color-emphasis-200);
- transition: all 0.2s ease;
+ background: var(--reqon-surface-1);
+ border-radius: 16px;
+ padding: 2rem;
+ border: 1px solid var(--reqon-border-color);
+ transition: all 0.3s ease;
+ position: relative;
+ overflow: hidden;
+}
+
+.feature-card::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 3px;
+ background: linear-gradient(90deg, var(--reqon-gradient-start), var(--reqon-gradient-end));
+ opacity: 0;
+ transition: opacity 0.3s ease;
}
.feature-card:hover {
- transform: translateY(-2px);
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
+ transform: translateY(-6px);
+ box-shadow: var(--reqon-shadow-lg);
+ border-color: var(--ifm-color-primary-lighter);
+}
+
+.feature-card:hover::before {
+ opacity: 1;
+}
+
+/* ==========================================
+ Table of Contents
+ ========================================== */
+
+.table-of-contents {
+ border-left: 2px solid var(--reqon-border-color);
+}
+
+.table-of-contents__link {
+ transition: all 0.2s ease;
+ border-radius: 4px;
+ padding: 0.25rem 0.5rem;
+ margin-left: -0.5rem;
}
-/* TOC styling */
.table-of-contents__link:hover {
color: var(--ifm-color-primary);
+ background-color: var(--ifm-color-primary-lightest);
}
.table-of-contents__link--active {
color: var(--ifm-color-primary);
- font-weight: 500;
+ font-weight: 600;
+ background-color: rgba(99, 102, 241, 0.08);
+}
+
+/* ==========================================
+ Breadcrumbs
+ ========================================== */
+
+.breadcrumbs__item {
+ transition: all 0.2s ease;
}
-/* Breadcrumbs */
.breadcrumbs__link {
- border-radius: 4px;
+ border-radius: 6px;
+ padding: 0.25rem 0.5rem;
+ transition: all 0.2s ease;
+}
+
+.breadcrumbs__link:hover {
+ background-color: var(--ifm-color-primary-lightest);
+ color: var(--ifm-color-primary);
}
-/* Scrollbar styling */
+/* ==========================================
+ Pagination
+ ========================================== */
+
+.pagination-nav__link {
+ border-radius: 12px;
+ border: 1px solid var(--reqon-border-color);
+ transition: all 0.3s ease;
+ padding: 1.25rem;
+}
+
+.pagination-nav__link:hover {
+ border-color: var(--ifm-color-primary-light);
+ box-shadow: var(--reqon-shadow-md);
+ transform: translateY(-2px);
+}
+
+.pagination-nav__sublabel {
+ font-weight: 500;
+ color: var(--ifm-color-primary);
+}
+
+/* ==========================================
+ Scrollbar
+ ========================================== */
+
::-webkit-scrollbar {
- width: 8px;
- height: 8px;
+ width: 10px;
+ height: 10px;
}
::-webkit-scrollbar-track {
- background: transparent;
+ background: var(--reqon-surface-2);
+ border-radius: 5px;
}
::-webkit-scrollbar-thumb {
- background: var(--ifm-color-emphasis-300);
- border-radius: 4px;
+ background: linear-gradient(180deg, var(--ifm-color-emphasis-300), var(--ifm-color-emphasis-400));
+ border-radius: 5px;
+ border: 2px solid var(--reqon-surface-2);
}
::-webkit-scrollbar-thumb:hover {
- background: var(--ifm-color-emphasis-400);
+ background: linear-gradient(180deg, var(--ifm-color-emphasis-400), var(--ifm-color-emphasis-500));
+}
+
+/* ==========================================
+ Documentation Content Enhancements
+ ========================================== */
+
+.markdown h1 {
+ font-size: 2.5rem;
+ margin-bottom: 1.5rem;
+ background: linear-gradient(135deg, var(--ifm-color-primary-dark), var(--reqon-gradient-end));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.markdown h2 {
+ margin-top: 2.5rem;
+ padding-bottom: 0.5rem;
+ border-bottom: 2px solid var(--reqon-border-color);
+}
+
+.markdown h3 {
+ margin-top: 2rem;
+ color: var(--ifm-color-primary-dark);
+}
+
+[data-theme='dark'] .markdown h1 {
+ background: linear-gradient(135deg, var(--ifm-color-primary-light), var(--reqon-gradient-end));
+ -webkit-background-clip: text;
+ background-clip: text;
+}
+
+[data-theme='dark'] .markdown h3 {
+ color: var(--ifm-color-primary-light);
+}
+
+/* Block quotes */
+blockquote {
+ border-left-width: 4px;
+ border-left-color: var(--ifm-color-primary);
+ background: linear-gradient(90deg, var(--ifm-color-primary-lightest) 0%, transparent 100%);
+ border-radius: 0 8px 8px 0;
+ padding: 1rem 1.5rem;
+}
+
+[data-theme='dark'] blockquote {
+ background: linear-gradient(90deg, rgba(129, 140, 248, 0.1) 0%, transparent 100%);
+}
+
+/* Links */
+.markdown a {
+ text-decoration: none;
+ font-weight: 500;
+ background: linear-gradient(to right, var(--ifm-color-primary), var(--ifm-color-primary));
+ background-size: 0% 2px;
+ background-position: 0 100%;
+ background-repeat: no-repeat;
+ transition: background-size 0.3s ease;
+}
+
+.markdown a:hover {
+ background-size: 100% 2px;
+}
+
+/* ==========================================
+ Search
+ ========================================== */
+
+.DocSearch-Button {
+ border-radius: 10px !important;
+ border: 1px solid var(--reqon-border-color) !important;
+ transition: all 0.2s ease !important;
+}
+
+.DocSearch-Button:hover {
+ border-color: var(--ifm-color-primary-light) !important;
+ box-shadow: var(--reqon-shadow-sm) !important;
}
diff --git a/docusaurus/src/pages/index.module.css b/docusaurus/src/pages/index.module.css
index 51eb2d5..31599ec 100644
--- a/docusaurus/src/pages/index.module.css
+++ b/docusaurus/src/pages/index.module.css
@@ -1,13 +1,23 @@
.heroBanner {
- padding: 4rem 0;
+ padding: 6rem 0 5rem;
text-align: center;
position: relative;
overflow: hidden;
}
+.heroBanner::after {
+ content: '';
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: linear-gradient(90deg, transparent, var(--reqon-border-color), transparent);
+}
+
@media screen and (max-width: 996px) {
.heroBanner {
- padding: 2rem;
+ padding: 3rem 1.5rem;
}
}
@@ -17,27 +27,102 @@
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
+ margin-top: 2.5rem;
+ animation: fadeInUp 0.6s ease-out 0.2s both;
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
}
.codeExample {
- padding: 4rem 0;
- background-color: var(--ifm-background-color);
+ padding: 5rem 0 6rem;
+ background: linear-gradient(180deg, var(--ifm-background-color) 0%, var(--ifm-background-surface-color) 50%, var(--ifm-background-color) 100%);
+ position: relative;
+}
+
+.codeExample::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: linear-gradient(90deg, transparent, var(--reqon-border-color), transparent);
+}
+
+.codeExampleContent {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ height: 100%;
}
.codeExample h2 {
+ font-size: 2rem;
+ font-weight: 700;
margin-bottom: 1rem;
+ background: linear-gradient(135deg, var(--ifm-color-primary-dark), var(--reqon-gradient-end));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+[data-theme='dark'] .codeExample h2 {
+ background: linear-gradient(135deg, var(--ifm-color-primary-light), var(--reqon-gradient-end));
+ -webkit-background-clip: text;
+ background-clip: text;
+}
+
+.codeExample p {
+ font-size: 1.1rem;
+ color: var(--ifm-color-emphasis-700);
+ line-height: 1.7;
}
.codeExample ul {
- margin: 1.5rem 0;
- padding-left: 1.5rem;
+ margin: 1.5rem 0 2rem;
+ padding-left: 0;
+ list-style: none;
}
.codeExample li {
- margin-bottom: 0.5rem;
+ margin-bottom: 0.75rem;
+ padding-left: 1.75rem;
+ position: relative;
+ line-height: 1.6;
+}
+
+.codeExample li::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0.5em;
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: linear-gradient(135deg, var(--reqon-gradient-start), var(--reqon-gradient-end));
+}
+
+.codeBlockWrapper {
+ border-radius: 16px;
+ overflow: hidden;
+ box-shadow: var(--reqon-shadow-lg), var(--reqon-shadow-glow);
+ border: 1px solid var(--reqon-border-color);
}
@media screen and (max-width: 996px) {
+ .codeExample {
+ padding: 3rem 0 4rem;
+ }
+
.codeExample .row {
flex-direction: column-reverse;
}
@@ -45,4 +130,23 @@
.codeExample .col {
margin-bottom: 2rem;
}
+
+ .codeExample h2 {
+ font-size: 1.75rem;
+ text-align: center;
+ }
+
+ .codeExample p {
+ text-align: center;
+ }
+
+ .codeExample ul {
+ max-width: 400px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ .buttons {
+ flex-direction: column;
+ }
}
diff --git a/docusaurus/src/pages/index.tsx b/docusaurus/src/pages/index.tsx
index 3c7f87e..46032bb 100644
--- a/docusaurus/src/pages/index.tsx
+++ b/docusaurus/src/pages/index.tsx
@@ -44,13 +44,12 @@ function HomepageHeader() {
{siteConfig.tagline}
Get Started
View Examples
@@ -66,27 +65,33 @@ function CodeExample() {
-
Declarative Data Pipelines
-
- Define what you want to happen, not how. Reqon handles pagination,
- retries, rate limiting, and error handling automatically.
-
-
- - Automatic pagination with offset, page, or cursor strategies
- - Built-in retry with exponential backoff
- - Incremental sync with checkpoint tracking
- - Pattern matching for error handling
-
-
- Learn the Syntax
-
+
+
Declarative Data Pipelines
+
+ Define what you want to happen, not how. Reqon handles pagination,
+ retries, rate limiting, and error handling automatically.
+
+
+ - Automatic pagination with offset, page, or cursor strategies
+ - Built-in retry with exponential backoff
+ - Incremental sync with checkpoint tracking
+ - Pattern matching for error handling
+
+
+
+ Learn the Syntax
+
+
+
-
- {exampleCode}
-
+
+
+ {exampleCode}
+
+