diff --git a/_index/index.html b/_index/index.html index 231d9a6..79c4a9a 100644 --- a/_index/index.html +++ b/_index/index.html @@ -30,19 +30,25 @@ padding:3px 8px; border-radius:6px; font-size:0.85rem; font-weight:600; border:1px solid #484f58; } - .section { width:100%; max-width:900px; margin-bottom:2.5rem; } + .section { width:100%; max-width:1200px; margin-bottom:2.5rem; } .section h2 { font-size:1.2rem; color:var(--muted); text-transform:uppercase; letter-spacing:1.5px; margin-bottom:1rem; border-bottom:1px solid var(--border); padding-bottom:0.4rem; } .grid { - display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); - gap:1.5rem; width:100%; + display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; width:100%; + } + @media (max-width: 1024px) { + .grid { grid-template-columns:repeat(2, 1fr); } + } + @media (max-width: 640px) { + .grid { grid-template-columns:1fr; } } .card { background:var(--card); border:1px solid var(--border); border-radius:12px; - padding:1.8rem; text-align:left; + padding:1.6rem; text-align:left; display:flex; flex-direction:column; + height:100%; min-height:200px; transition:transform 0.15s ease,box-shadow 0.15s ease; } .card:hover { @@ -51,11 +57,19 @@ } .card h3 { color:var(--accent); font-size:1.4rem; margin-bottom:0.4rem; } .card p { color:var(--muted); font-size:0.95rem; line-height:1.6; } - .card a { - color:var(--accent); text-decoration:none; display:inline-block; - margin-top:0.8rem; font-weight:500; + .card-actions { + margin-top:auto; padding-top:1.2rem; display:flex; flex-wrap:wrap; gap:0.6rem; + } + .card-actions a { + color:var(--accent); text-decoration:none; font-size:0.85rem; font-weight:600; + padding:0.45rem 0.9rem; border:1px solid var(--border); border-radius:999px; + background:rgba(45,212,191,0.06); + transition:border-color 0.15s ease,background 0.15s ease,color 0.15s ease; + } + .card-actions a:hover { + color:var(--accent-dim); border-color:var(--accent); + background:rgba(45,212,191,0.14); } - .card a:hover { color:var(--accent-dim); text-decoration:underline; } footer { margin-top:4rem; text-align:center; color:var(--muted); font-size:0.9rem; } @@ -65,86 +79,104 @@
Central documentation hub for Aetoskia projects
+A modular, async Blog API backend for FastAPI microservices. Provides streamlined CRUD operations for articles and authors.
+Step-by-step guide to the Media Manager architecture, ingestion pipeline, automation workflows, and integrations.
+Aetoskia authentication service. OpenAPI-driven, FastAPI backend for auth flows.
+Design-first API development toolkit enforcing OpenAPI contracts as the single source of truth.
- View Documentation → +Renderer-agnostic Python documentation compiler powering MkDocs and MCP generation across Aetoskia projects.
- View Documentation → +Deterministic pipeline framework for executing state transformations through a directed acyclic graph (DAG).
- View Documentation → +High-performance email ingestion and processing framework with pluggable adapters and automation workflows.
- View Documentation → +Unified ingestion and normalization layer for structured and unstructured data sources.
- View Documentation → +Lightweight, explicit JWT utilities for Python services with strong validation and minimal magic.
- View Documentation → +Aetoskia authentication service. OpenAPI-driven, FastAPI backend for auth flows.
- View Documentation → -A modular, async Blog API backend for FastAPI microservices. Provides streamlined CRUD operations for articles and authors.
- View Documentation → -Renderer-agnostic Python documentation compiler powering MkDocs and MCP generation across Aetoskia projects.
- View Documentation → +A modular, async MongoDB operations layer for FastAPI microservices. Simplifies CRUD, transactions, and model management.
- View Documentation → -Step-by-step guide to the Media Manager architecture, ingestion pipeline, automation workflows, and integrations.
- View Tutorial → +