style(ui): remove uppercase text and refine typography

Remove text-transform: uppercase from headings, buttons, labels, and navigation. Reduce letter-spacing throughout for a cleaner look. Replace text-stroke outline effects with solid colors. Remove decorative hero background blocks and scanline animation. Simplify hover effects on logo and buttons.
This commit is contained in:
2026-05-19 21:56:11 +02:00
parent 4f1aa99570
commit 674f4e1cd4
3 changed files with 80 additions and 180 deletions
+27 -122
View File
@@ -1,6 +1,6 @@
/* ===== CSS Variables ===== */
:root {
/* Core Colors - High Contrast Terminal Aesthetic */
/* Core Colors */
--color-bg: #0f0f0f;
--color-bg-secondary: #151515;
--color-bg-elevated: #1a1a1a;
@@ -113,8 +113,8 @@ a {
}
.logo:hover .logo-image {
filter: drop-shadow(0 0 8px rgba(0, 221, 119, 0.4));
transform: scale(1.05);
filter: drop-shadow(0 0 4px rgba(0, 221, 119, 0.3));
transform: scale(1.03);
}
.logo-line-1,
@@ -131,9 +131,7 @@ a {
}
.logo-line-2 {
color: transparent;
-webkit-text-stroke: 1.5px var(--color-text);
text-stroke: 1.5px var(--color-text);
color: var(--color-text-secondary);
}
.logo:hover .logo-line-1 {
@@ -141,8 +139,7 @@ a {
}
.logo:hover .logo-line-2 {
-webkit-text-stroke: 1.5px var(--color-accent);
text-stroke: 1.5px var(--color-accent);
color: var(--color-accent);
}
.nav {
@@ -154,8 +151,7 @@ a {
color: var(--color-text-secondary);
font-weight: 600;
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.1em;
letter-spacing: 0.02em;
position: relative;
}
@@ -188,8 +184,7 @@ a {
font-family: var(--font-mono);
font-weight: 700 !important;
font-size: 0.85rem !important;
text-transform: uppercase !important;
letter-spacing: 0.08em !important;
letter-spacing: 0.02em !important;
transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
}
@@ -216,58 +211,7 @@ a {
}
.hero-bg-elements {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
z-index: 0;
}
.hero-block {
position: absolute;
background: linear-gradient(135deg, var(--color-accent) 0%, transparent 100%);
opacity: 0.05;
}
.hero-block-1 {
top: -20%;
right: -10%;
width: 60%;
height: 80%;
transform: rotate(15deg);
}
.hero-block-2 {
bottom: -30%;
left: -15%;
width: 50%;
height: 70%;
transform: rotate(-25deg);
background: linear-gradient(135deg, var(--color-accent-alt) 0%, transparent 100%);
}
.scanline {
display: none;
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
background: repeating-linear-gradient(
0deg,
rgba(0, 221, 119, 0.02) 0px,
transparent 2px,
transparent 4px
);
pointer-events: none;
animation: scanline 10s linear infinite;
}
@keyframes scanline {
0% { transform: translateY(0); }
100% { transform: translateY(20px); }
}
.hero-content {
@@ -280,9 +224,8 @@ a {
font-family: var(--font-mono);
font-size: 0.875rem;
color: var(--color-accent);
letter-spacing: 0.2em;
letter-spacing: 0.1em;
margin-bottom: var(--space-md);
text-transform: uppercase;
}
.hero-title {
@@ -296,7 +239,6 @@ a {
font-weight: 900;
line-height: 0.9;
letter-spacing: -0.03em;
text-transform: uppercase;
}
.title-line-1 {
@@ -304,9 +246,7 @@ a {
}
.title-line-2 {
color: transparent;
-webkit-text-stroke: 2px var(--color-text);
text-stroke: 2px var(--color-text);
color: var(--color-text-secondary);
}
.title-accent {
@@ -331,8 +271,7 @@ a {
font-family: var(--font-mono);
font-size: 0.75rem;
color: var(--color-text-secondary);
text-transform: uppercase;
letter-spacing: 0.1em;
letter-spacing: 0.05em;
padding: 0.4rem 0.8rem;
border: 1px solid var(--color-border);
background: var(--color-bg-secondary);
@@ -367,8 +306,7 @@ a {
font-family: var(--font-mono);
font-weight: 700;
font-size: 0.95rem;
text-transform: uppercase;
letter-spacing: 0.05em;
letter-spacing: 0.02em;
border: 2px solid var(--color-accent);
position: relative;
overflow: hidden;
@@ -414,8 +352,7 @@ a {
font-family: var(--font-mono);
font-weight: 700;
font-size: 0.95rem;
text-transform: uppercase;
letter-spacing: 0.05em;
letter-spacing: 0.02em;
border: 2px solid var(--color-border);
background: transparent;
transition: all 0.3s ease;
@@ -436,8 +373,7 @@ section {
font-family: var(--font-mono);
font-size: 0.75rem;
color: var(--color-accent);
letter-spacing: 0.2em;
text-transform: uppercase;
letter-spacing: 0.15em;
margin-bottom: var(--space-md);
}
@@ -445,7 +381,6 @@ section {
font-size: clamp(2.5rem, 6vw, 4rem);
font-weight: 900;
line-height: 1.1;
text-transform: uppercase;
letter-spacing: -0.02em;
}
@@ -465,8 +400,7 @@ section {
}
.showcase-card .feature-num {
-webkit-text-stroke: 1px var(--color-accent-blue);
text-stroke: 1px var(--color-accent-blue);
color: var(--color-accent-blue);
}
.showcase-card .feature-tag {
@@ -524,8 +458,7 @@ section {
padding: 0.75rem 1.5rem;
border: 2px solid var(--color-accent-blue);
background: rgba(0, 212, 255, 0.1);
text-transform: uppercase;
letter-spacing: 0.1em;
letter-spacing: 0.05em;
font-weight: 700;
}
@@ -703,9 +636,7 @@ section {
font-family: var(--font-mono);
font-size: 3rem;
font-weight: 900;
color: transparent;
-webkit-text-stroke: 1px var(--color-accent);
text-stroke: 1px var(--color-accent);
color: var(--color-text-tertiary);
line-height: 1;
margin-bottom: var(--space-md);
}
@@ -714,7 +645,6 @@ section {
font-size: 2rem;
font-weight: 800;
margin-bottom: var(--space-md);
text-transform: uppercase;
letter-spacing: -0.01em;
}
@@ -734,7 +664,7 @@ section {
background: var(--color-accent);
color: var(--color-bg);
font-weight: 700;
letter-spacing: 0.1em;
letter-spacing: 0.05em;
}
.feature-row {
@@ -780,8 +710,7 @@ section {
font-size: 1.25rem;
font-weight: 700;
margin-bottom: var(--space-sm);
text-transform: uppercase;
letter-spacing: 0.05em;
letter-spacing: 0;
}
.feature-item p {
@@ -795,8 +724,7 @@ section {
}
.feature-highlight .feature-num {
-webkit-text-stroke: 1px var(--color-accent-alt);
text-stroke: 1px var(--color-accent-alt);
color: var(--color-text-tertiary);
}
.feature-highlight::before {
@@ -827,8 +755,7 @@ section {
font-weight: 900;
color: var(--color-bg);
text-align: center;
letter-spacing: 0.1em;
text-transform: uppercase;
letter-spacing: 0.05em;
}
/* ===== Architecture Section ===== */
@@ -938,7 +865,6 @@ section {
font-size: 1.5rem;
font-weight: 800;
margin-bottom: var(--space-md);
text-transform: uppercase;
letter-spacing: 0.02em;
}
@@ -1020,7 +946,6 @@ section {
font-weight: 900;
line-height: 1;
margin-bottom: var(--space-xl);
text-transform: uppercase;
letter-spacing: -0.02em;
}
@@ -1058,8 +983,7 @@ section {
font-family: var(--font-mono);
font-size: 0.7rem;
color: var(--color-text-secondary);
letter-spacing: 0.15em;
text-transform: uppercase;
letter-spacing: 0.1em;
margin-bottom: var(--space-sm);
}
@@ -1089,8 +1013,7 @@ section {
background: var(--color-bg);
border: 1px solid var(--color-border);
color: var(--color-text-secondary);
text-transform: uppercase;
letter-spacing: 0.05em;
letter-spacing: 0.02em;
}
.pricing-action {
@@ -1104,8 +1027,7 @@ section {
font-family: var(--font-mono);
font-weight: 700;
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 0.05em;
letter-spacing: 0.02em;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
@@ -1167,7 +1089,6 @@ section {
font-size: clamp(2.5rem, 6vw, 4rem);
font-weight: 900;
line-height: 1.1;
text-transform: uppercase;
letter-spacing: -0.02em;
}
@@ -1231,7 +1152,6 @@ section {
.platform-name {
font-size: 1.75rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.02em;
margin-bottom: var(--space-xs);
}
@@ -1248,8 +1168,7 @@ section {
font-size: 0.7rem;
color: var(--color-text-tertiary);
margin-top: var(--space-xs);
text-transform: uppercase;
letter-spacing: 0.1em;
letter-spacing: 0.05em;
}
.platform-action {
@@ -1257,8 +1176,7 @@ section {
font-size: 0.85rem;
font-weight: 700;
color: var(--color-accent);
text-transform: uppercase;
letter-spacing: 0.1em;
letter-spacing: 0.05em;
transition: all 0.3s ease;
}
@@ -1322,8 +1240,7 @@ section {
font-family: var(--font-mono);
margin-bottom: var(--space-md);
color: var(--color-accent);
text-transform: uppercase;
letter-spacing: 0.1em;
letter-spacing: 0.05em;
}
.footer-section p {
@@ -1478,17 +1395,9 @@ section {
}
/* ===== Animations & Effects ===== */
@keyframes pulse-glow {
0%, 100% {
box-shadow: 0 0 15px rgba(0, 221, 119, 0.2);
}
50% {
box-shadow: 0 0 25px rgba(0, 221, 119, 0.4);
}
}
.feature-primary:hover {
animation: pulse-glow 2s infinite;
box-shadow: 0 0 20px rgba(0, 221, 119, 0.12);
}
/* Reduced motion support */
@@ -1500,8 +1409,4 @@ section {
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
.scanline {
animation: none;
}
}
+24 -27
View File
@@ -10,7 +10,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<div class="hero-content">
<div class="hero-label">User Guide</div>
<h1 class="hero-title">
<span class="title-line-1">DOCUMENTATION</span>
<span class="title-line-1">Documentation</span>
<span class="title-accent">Get Started</span>
</h1>
<p class="hero-description">
@@ -24,11 +24,11 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- The Concept Section -->
<section id="concept" class="docs-section">
<div class="container">
<div class="section-label">01 // The Concept</div>
<div class="section-label">The Concept</div>
<div class="concept-card">
<div class="concept-header">
<h2>AI-Native Editor</h2>
<div class="concept-tag">CORE_PRINCIPLE</div>
<div class="concept-tag">Core Principle</div>
</div>
<p class="concept-lead">
Zaguán Blade is not just a text editor with a chat sidebar. It is designed from the ground up to allow an AI agent to "live" inside your editor.
@@ -60,7 +60,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Getting Started Section -->
<section id="getting-started" class="docs-section section-alt">
<div class="container">
<div class="section-label">02 // Getting Started</div>
<div class="section-label">Getting Started</div>
<h2 class="section-title">Quick Start Guide</h2>
<div class="steps-grid">
@@ -98,7 +98,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Interface Section -->
<section id="interface" class="docs-section">
<div class="container">
<div class="section-label">03 // The Interface</div>
<div class="section-label">The Interface</div>
<h2 class="section-title">Interface Overview</h2>
<div class="interface-grid">
@@ -119,7 +119,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<div class="interface-header">
<span class="interface-icon">💻</span>
<h3>Center Stage</h3>
<span class="interface-tag">EDITOR</span>
<span class="interface-tag">Editor</span>
</div>
<p class="interface-desc">High-performance CodeMirror 6 editor with syntax highlighting. <strong>Diff Blocks</strong> appear inline when the AI proposes changes.</p>
</div>
@@ -128,7 +128,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<div class="interface-header">
<span class="interface-icon">🤖</span>
<h3>Right Panel</h3>
<span class="interface-tag">AI_ASSISTANT</span>
<span class="interface-tag">AI Assistant</span>
</div>
<ul class="interface-list">
<li><strong>Chat</strong> - Main communication channel</li>
@@ -141,7 +141,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<div class="interface-header">
<span class="interface-icon">⌨️</span>
<h3>Bottom Panel</h3>
<span class="interface-tag">TERMINAL</span>
<span class="interface-tag">Terminal</span>
</div>
<p class="interface-desc">Integrated terminal for running commands. The AI can see and interact with this terminal when executing commands.</p>
</div>
@@ -152,7 +152,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Keyboard Shortcuts Section -->
<section id="shortcuts" class="docs-section section-alt">
<div class="container">
<div class="section-label">04 // Keyboard Shortcuts</div>
<div class="section-label">Keyboard Shortcuts</div>
<h2 class="section-title">Keyboard Shortcuts</h2>
<div class="shortcuts-layout">
@@ -206,7 +206,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- At Commands Section -->
<section id="commands" class="docs-section">
<div class="container">
<div class="section-label">05 // @ Commands</div>
<div class="section-label">Commands</div>
<h2 class="section-title">Special Commands</h2>
<p class="section-desc">Type <code class="inline-code">@</code> in the chat input to access these special commands:</p>
@@ -226,7 +226,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Working with AI Section -->
<section id="ai" class="docs-section section-alt">
<div class="container">
<div class="section-label">06 // Working with AI</div>
<div class="section-label">Working with AI</div>
<h2 class="section-title">AI Collaboration</h2>
<div class="ai-content">
@@ -260,7 +260,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Chat Modes Section -->
<section id="chat-modes" class="docs-section section-alt">
<div class="container">
<div class="section-label">07 // Chat Modes</div>
<div class="section-label">Chat Modes</div>
<h2 class="section-title">Chat Modes</h2>
<p class="section-desc">Zaguán Blade supports two chat modes accessible from the <strong>Command Center</strong>:</p>
@@ -284,7 +284,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Settings Section -->
<section id="settings" class="docs-section">
<div class="container">
<div class="section-label">08 // Settings</div>
<div class="section-label">Settings</div>
<h2 class="section-title">Configuration</h2>
<div class="settings-grid">
@@ -342,7 +342,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<div class="setting-header">
<span class="setting-icon">🧠</span>
<h3>Context Tab</h3>
<span class="setting-tag">PER-PROJECT</span>
<span class="setting-tag">Per-project</span>
</div>
<ul>
<li><strong>Max Context Tokens</strong> - Control context sent to AI (2K-32K)</li>
@@ -370,7 +370,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Project Instructions Section -->
<section id="project-instructions" class="docs-section section-alt">
<div class="container">
<div class="section-label">09 // Project Instructions</div>
<div class="section-label">Project Instructions</div>
<h2 class="section-title">Teach the AI About Your Project</h2>
<div class="instructions-content">
@@ -403,7 +403,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Editor Features Section -->
<section id="features" class="docs-section">
<div class="container">
<div class="section-label">10 // Editor Features</div>
<div class="section-label">Editor Features</div>
<h2 class="section-title">Additional Features</h2>
<div class="features-list">
@@ -440,7 +440,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Screenshot Capture Section -->
<section id="screenshot" class="docs-section section-alt">
<div class="container">
<div class="section-label">11 // Screenshot Capture</div>
<div class="section-label">Screenshot Capture</div>
<h2 class="section-title">Screenshot Capture</h2>
<p class="section-desc">Attach screenshots to your chat messages to give the AI visual context. Access capture options from the <strong>Feature Menu</strong> (grid icon) in the Command Center.</p>
@@ -478,7 +478,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Privacy Section -->
<section id="privacy" class="docs-section">
<div class="container">
<div class="section-label">12 // Privacy & Data</div>
<div class="section-label">Privacy & Data</div>
<h2 class="section-title">Privacy</h2>
<div class="privacy-grid">
@@ -509,7 +509,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Local AI System Prompts Section -->
<section id="local-ai-prompts" class="docs-section">
<div class="container">
<div class="section-label">13 // Local AI System Prompts</div>
<div class="section-label">Local AI System Prompts</div>
<h2 class="section-title">Custom System Prompts</h2>
<div class="instructions-content">
@@ -586,7 +586,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Tool Calls Reference Section -->
<section id="tool-calls" class="docs-section section-alt">
<div class="container">
<div class="section-label">14 // Tool Calls Reference</div>
<div class="section-label">Tool Calls Reference</div>
<h2 class="section-title">Tool Calls Reference</h2>
<div class="instructions-content">
@@ -611,7 +611,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Known Bugs Section -->
<section id="known-bugs" class="docs-section section-alt">
<div class="container">
<div class="section-label">15 // Known Bugs</div>
<div class="section-label">Known Bugs</div>
<h2 class="section-title">Known Issues</h2>
<p class="section-desc">As an alpha release, there are some known limitations and bugs we're actively working on:</p>
@@ -650,11 +650,11 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<!-- Support Section -->
<section id="support" class="docs-section">
<div class="container">
<div class="section-label">16 // Support & Feedback</div>
<div class="section-label">Support & Feedback</div>
<div class="support-card">
<div class="support-header">
<h2>Alpha Release</h2>
<span class="status-badge">FEATURE_INCOMPLETE</span>
<span class="status-badge">Alpha</span>
</div>
<p class="support-lead">
We define "Alpha" as "Feature incomplete, but good enough to be useful."
@@ -740,7 +740,6 @@ import BaseLayout from '../layouts/BaseLayout.astro';
font-size: clamp(2rem, 5vw, 3rem);
font-weight: 900;
line-height: 1.1;
text-transform: uppercase;
letter-spacing: -0.02em;
margin-bottom: var(--space-xl);
}
@@ -867,9 +866,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';
font-family: var(--font-mono);
font-size: 3rem;
font-weight: 900;
color: transparent;
-webkit-text-stroke: 1px var(--color-accent);
text-stroke: 1px var(--color-accent);
color: var(--color-accent);
line-height: 1;
margin-bottom: var(--space-md);
}
+29 -31
View File
@@ -15,17 +15,17 @@ const version = pkg.version ?? "";
</div>
<div class="container">
<div class="hero-content">
<div class="hero-label">LOCAL-FIRST AI CODE EDITOR</div>
<div class="hero-label">Local-First AI Code Editor</div>
<h1 class="hero-title">
<span class="title-line-1">YOUR CODE STAYS YOURS.</span>
<span class="title-line-2">CLOUD WHEN YOU WANT IT.</span>
<span class="title-line-1">Your code stays yours.</span>
<span class="title-line-2">Cloud when you want it.</span>
</h1>
<div class="hero-meta">
<span class="meta-item">LOCAL-FIRST</span>
<span class="meta-item">Local-First</span>
<span class="meta-divider">/</span>
<span class="meta-item">NO API KEY REQUIRED</span>
<span class="meta-item">No API Key Required</span>
<span class="meta-divider">/</span>
<span class="meta-item">ANY MODEL PROVIDER</span>
<span class="meta-item">Any Model Provider</span>
</div>
<p class="hero-description">
Most AI editors ship your context to a server you don't control.
@@ -37,9 +37,9 @@ const version = pkg.version ?? "";
</p>
<div class="hero-actions">
<a href="#download" class="action-primary">
<span class="action-text">[ START WITH LOCAL AI → ]</span>
<span class="action-text">Get Started with Local AI</span>
</a>
<a href="/blog/measuring-token-savings" class="action-secondary">[ SEE BENCHMARK → ]</a>
<a href="/blog/measuring-token-savings" class="action-secondary">View Benchmarks</a>
</div>
</div>
</div>
@@ -58,7 +58,7 @@ const version = pkg.version ?? "";
<section id="philosophy" class="features" style="padding-top: var(--space-3xl);">
<div class="features-header">
<div class="container">
<div class="section-label">01 // Why Blade</div>
<div class="section-label">Why Blade</div>
<h2 class="section-title">Why Another Editor<br/>Exists</h2>
</div>
</div>
@@ -79,7 +79,7 @@ const version = pkg.version ?? "";
<div class="feature-row" style="margin-top: var(--space-xl);">
<div class="feature-item feature-highlight" style="display: flex; flex-direction: column; justify-content: center;">
<h3>THE LIGHTWEIGHT DIFFERENCE</h3>
<h3>The Lightweight Difference</h3>
<p>Engineers trust metrics. Here is what idle resource usage looks like:</p>
<table style="width: 100%; margin-top: var(--space-md); border-collapse: collapse; text-align: left;">
<thead>
@@ -106,7 +106,7 @@ const version = pkg.version ?? "";
</div>
<div class="feature-item">
<h3>NOT FOR EVERYONE</h3>
<h3>Not for Everyone</h3>
<ul style="list-style: none; padding: 0; margin-top: var(--space-md); display: flex; flex-direction: column; gap: var(--space-sm);">
<li style="padding-left: 1.5rem; position: relative;">
<span style="position: absolute; left: 0; color: var(--color-primary);">→</span>
@@ -130,15 +130,14 @@ const version = pkg.version ?? "";
<section id="workflow" class="features">
<div class="features-header">
<div class="container">
<div class="section-label">02 // Workflow</div>
<div class="section-label">Workflow</div>
<h2 class="section-title">What It's Actually<br/>Good At</h2>
</div>
</div>
<div class="features-layout">
<div class="feature-row">
<div class="feature-item">
<div class="feature-num">01</div>
<h3>WHAT IT'S ACTUALLY GOOD AT</h3>
<h3>What It's Actually Good At</h3>
<ul style="list-style: none; padding: 0; margin-top: var(--space-md); display: flex; flex-direction: column; gap: var(--space-sm);">
<li style="padding-left: 1.5rem; position: relative;"><span style="position: absolute; left: 0; color: var(--color-primary);">+</span> <strong>Refactoring</strong> across multiple files.</li>
<li style="padding-left: 1.5rem; position: relative;"><span style="position: absolute; left: 0; color: var(--color-primary);">+</span> <strong>Updating</strong> changelogs and build configs.</li>
@@ -147,8 +146,7 @@ const version = pkg.version ?? "";
</ul>
</div>
<div class="feature-item feature-highlight">
<div class="feature-num">02</div>
<h3>TYPICAL FLOW IN BLADE</h3>
<h3>Typical Flow in Blade</h3>
<ol style="padding-left: 1.5rem; margin-top: var(--space-md); display: flex; flex-direction: column; gap: var(--space-sm); font-family: var(--font-mono);">
<li>Ask for change.</li>
<li>AI calls project tools.</li>
@@ -162,7 +160,7 @@ const version = pkg.version ?? "";
<div class="feature-banner" style="display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-md);">
<div class="banner-content">
<div class="banner-text">ACTIVE DEVELOPMENT: PRE-V1.0</div>
<div class="banner-text">Active Development: Pre-v1.0</div>
</div>
<p style="color: var(--color-bg); font-weight: 500; max-width: 800px; margin: 0 auto; line-height: 1.6;">
Zaguán Blade is under heavy development. Expect rapid updates, occasional breaking changes, and a fast feedback loop as we build toward v1.0.0.
@@ -174,12 +172,12 @@ const version = pkg.version ?? "";
<!-- How It Works Section -->
<section class="architecture-section">
<div class="container">
<div class="section-label">03 // Architecture</div>
<div class="section-label">Architecture</div>
<div class="arch-grid">
<div class="arch-node">
<div class="node-header">
<div class="node-num">1</div>
<div class="node-status">ACTIVE</div>
<div class="node-status">Active</div>
</div>
<h3>Zaguán Blade (UI)</h3>
<p>Tauri v2 + Vite + React<br/>User interface only.<br/>Lightning fast.</p>
@@ -189,7 +187,7 @@ const version = pkg.version ?? "";
<div class="arch-node arch-node-center">
<div class="node-header">
<div class="node-num">2</div>
<div class="node-status">ACTIVE</div>
<div class="node-status">Active</div>
</div>
<h3>zcoderd (AI daemon)</h3>
<p>Go server<br/>State management<br/>Tool execution & AI</p>
@@ -199,7 +197,7 @@ const version = pkg.version ?? "";
<div class="arch-node">
<div class="node-header">
<div class="node-num">3</div>
<div class="node-status">ACTIVE</div>
<div class="node-status">Active</div>
</div>
<h3>Model Provider</h3>
<p>Local or remote.<br/>Ollama, Anthropic, OpenAI, etc.<br/>You choose.</p>
@@ -212,16 +210,16 @@ const version = pkg.version ?? "";
<section class="pricing">
<div class="pricing-container">
<div class="pricing-block">
<div class="section-label">04 // Subscription Model</div>
<h2 class="pricing-title">ZAGUÁN AI<br/>REQUIRED</h2>
<div class="section-label">Subscription Model</div>
<h2 class="pricing-title">Zaguán AI<br/>Required</h2>
<div class="pricing-grid">
<div class="pricing-item">
<div class="pricing-label">WITHOUT SUBSCRIPTION</div>
<div class="pricing-label">Without Subscription</div>
<div class="pricing-value">Manual edits, no AI features</div>
</div>
<div class="pricing-divider"></div>
<div class="pricing-item pricing-item-highlight">
<div class="pricing-label">WITH SUBSCRIPTION</div>
<div class="pricing-label">With Subscription</div>
<div class="pricing-value">AI tool calls, code review, multi-model access</div>
</div>
</div>
@@ -243,18 +241,18 @@ const version = pkg.version ?? "";
<section id="download" class="download">
<div class="download-layout">
<div class="download-header">
<div class="section-label">05 // Download Blade</div>
<div class="section-label">Download Blade</div>
<h2 class="download-title">Get Blade<br/>for Your OS</h2>
</div>
<div class="download-grid">
<a href="https://github.com/ZaguanLabs/ZaguanBlade/releases" class="platform-card platform-windows" target="_blank" rel="noopener">
<div class="platform-icon">🪟</div>
<div class="platform-info">
<div class="platform-name">WINDOWS</div>
<div class="platform-name">Windows</div>
<div class="platform-meta">v{version} / x64, arm64</div>
<div class="platform-formats">MSI, EXE</div>
</div>
<div class="platform-action">DOWNLOAD →</div>
<div class="platform-action">Download →</div>
</a>
<a href="https://github.com/ZaguanLabs/ZaguanBlade/releases" class="platform-card platform-mac" target="_blank" rel="noopener">
@@ -264,17 +262,17 @@ const version = pkg.version ?? "";
<div class="platform-meta">v{version} / arm64 (Apple Silicon)</div>
<div class="platform-formats">DMG, TAR.GZ</div>
</div>
<div class="platform-action">DOWNLOAD →</div>
<div class="platform-action">Download →</div>
</a>
<a href="https://github.com/ZaguanLabs/ZaguanBlade/releases" class="platform-card platform-linux" target="_blank" rel="noopener">
<div class="platform-icon">🐧</div>
<div class="platform-info">
<div class="platform-name">LINUX</div>
<div class="platform-name">Linux</div>
<div class="platform-meta">v{version} / amd64</div>
<div class="platform-formats">DEB, RPM, AppImage</div>
</div>
<div class="platform-action">DOWNLOAD →</div>
<div class="platform-action">Download →</div>
</a>
</div>
<div class="download-disclaimer">