syntaxis/assets/showcases/syntaxis-branding-showcase.html
Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
Merge _configs/ into config/ for single configuration directory.
Update all path references.

Changes:
- Move _configs/* to config/
- Update .gitignore for new patterns
- No code references to _configs/ found

Impact: -1 root directory (layout_conventions.md compliance)
2025-12-26 18:36:23 +00:00

1288 lines
45 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SYNTAXIS - Branding Showcase</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Sans+Pro:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/header-shared.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
/* Colors - Updated with Balanced Gray */
--syntaxis-blue: #2C5F8E;
--syntaxis-gray: #757773;
--syntaxis-gold: #D97706;
--syntaxis-green: #059669;
--syntaxis-purple: #7C3AED;
/* RGB & CMYK variants for display */
--blue-rgb: 44, 95, 142;
--gray-rgb: 117, 119, 115;
--gold-rgb: 217, 119, 6;
--green-rgb: 5, 150, 105;
--purple-rgb: 124, 58, 237;
/* Typography */
--font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-secondary: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
/* Spacing */
--space-xs: 0.25rem;
--space-sm: 0.5rem;
--space-md: 1rem;
--space-lg: 1.5rem;
--space-xl: 2rem;
--space-2xl: 3rem;
}
/* Light Mode (Default) */
body {
font-family: var(--font-secondary);
background: #ffffff;
color: #1F2937;
transition: background 0.3s ease, color 0.3s ease;
}
body.dark-mode {
background: #1a1a1a;
color: #F1F5F9;
}
/* Header */
header {
background: var(--syntaxis-blue);
color: white;
padding: var(--space-2xl) var(--space-xl);
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
position: sticky;
top: 0;
z-index: 100;
}
body.dark-mode header {
background: linear-gradient(135deg, var(--syntaxis-blue) 0%, #1E3A5F 100%);
}
header h1 {
font-family: var(--font-primary);
font-size: 2rem;
font-weight: 700;
margin-bottom: var(--space-sm);
letter-spacing: -0.01em;
}
header p {
font-size: 0.95rem;
opacity: 0.95;
margin-bottom: var(--space-lg);
}
.header-controls {
display: flex;
gap: var(--space-md);
flex-wrap: wrap;
align-items: center;
}
.select-group {
display: flex;
align-items: center;
gap: var(--space-sm);
background: rgba(255,255,255,0.15);
padding: var(--space-sm) var(--space-md);
border-radius: 6px;
}
.select-group label {
font-size: 0.85rem;
font-weight: 500;
white-space: nowrap;
}
.select-group select {
background: rgba(255,255,255,0.2);
color: white;
border: 1px solid rgba(255,255,255,0.3);
padding: 0.5rem 0.75rem;
border-radius: 4px;
font-family: var(--font-secondary);
font-size: 0.85rem;
cursor: pointer;
transition: all 0.2s;
}
.select-group select:hover,
.select-group select:focus {
background: rgba(255,255,255,0.25);
border-color: rgba(255,255,255,0.5);
outline: none;
}
.select-group select option {
background: var(--syntaxis-blue);
color: white;
}
.toggle-btn {
background: rgba(255,255,255,0.2);
color: white;
border: 1px solid rgba(255,255,255,0.3);
padding: 0.5rem 1rem;
border-radius: 6px;
cursor: pointer;
font-family: var(--font-secondary);
font-size: 0.85rem;
font-weight: 500;
transition: all 0.2s;
white-space: nowrap;
}
.toggle-btn:hover,
.toggle-btn.active {
background: rgba(255,255,255,0.3);
border-color: rgba(255,255,255,0.5);
}
.container {
max-width: 1400px;
margin: 0 auto;
padding: 0 var(--space-xl) var(--space-2xl) var(--space-xl);
}
/* Section */
.section {
margin-bottom: var(--space-2xl);
}
.section h2 {
font-family: var(--font-primary);
font-size: 1.75rem;
font-weight: 700;
color: var(--syntaxis-blue);
margin-bottom: var(--space-lg);
letter-spacing: -0.01em;
border-bottom: 3px solid var(--syntaxis-gold);
padding-bottom: var(--space-md);
}
body.dark-mode .section h2 {
color: #60A5FA;
}
/* Logo Variants Title - Styled like header */
#logoVariantsTitle {
font-size: 1.2rem !important;
color: #9CA3AF !important;
border-bottom: 2px solid #9CA3AF !important;
}
body.dark-mode #logoVariantsTitle {
color: #9CA3AF !important;
}
/* Logo Grid */
.logo-gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: var(--space-lg);
margin-top: var(--space-lg);
}
.logo-card {
background: white;
border: 2px solid #E5E7EB;
border-radius: 8px;
overflow: hidden;
transition: all 0.3s ease;
cursor: pointer;
display: flex;
flex-direction: column;
height: 100%;
}
body.dark-mode .logo-card {
background: #252525;
border-color: #404040;
}
.logo-card:hover {
box-shadow: 0 8px 16px rgba(44, 95, 142, 0.15);
transform: translateY(-4px);
border-color: var(--syntaxis-blue);
}
.logo-preview {
background: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%);
padding: var(--space-2xl);
height: 200px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
flex-shrink: 0;
}
body.dark-mode .logo-preview {
background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
}
.logo-preview.dark {
background: #1a1a1a;
}
.logo-preview img,
.logo-preview svg {
max-width: 90%;
height: auto;
max-height: 160px;
}
.logo-info {
padding: var(--space-lg);
border-top: 1px solid #E5E7EB;
display: flex;
flex-direction: column;
flex-grow: 1;
}
body.dark-mode .logo-info {
border-top-color: #334155;
}
.logo-name {
font-family: var(--font-primary);
font-size: 1rem;
font-weight: 600;
color: var(--syntaxis-blue);
margin-bottom: var(--space-sm);
}
body.dark-mode .logo-name {
color: #60A5FA;
}
.logo-description {
font-size: 0.85rem;
color: #6B7280;
margin-bottom: var(--space-md);
line-height: 1.4;
}
body.dark-mode .logo-description {
color: #9CA3AF;
}
.logo-meta {
font-family: var(--font-mono);
font-size: 0.75rem;
color: #9CA3AF;
margin-bottom: var(--space-md);
background: #F9FAFB;
padding: var(--space-sm);
border-radius: 4px;
word-break: break-all;
}
body.dark-mode .logo-meta {
background: #334155;
color: #CBD5E1;
}
.logo-action {
display: flex;
gap: var(--space-sm);
}
.btn {
flex: 1;
padding: 0.5rem 1rem;
border: none;
border-radius: 4px;
font-family: var(--font-secondary);
font-size: 0.85rem;
font-weight: 500;
cursor: pointer;
transition: all 0.2s;
text-align: center;
text-decoration: none;
display: inline-block;
}
.btn-primary {
background: #F3F4F6;
color: var(--syntaxis-blue);
border: 2px solid var(--syntaxis-blue);
}
.btn-primary:hover {
background: #E5E7EB;
box-shadow: 0 4px 8px rgba(44, 95, 142, 0.3);
}
body.dark-mode .btn-primary {
background: #3a4555;
color: #9ab8d9;
border-color: #9ab8d9;
}
body.dark-mode .btn-primary:hover {
background: #4a5a75;
color: #b0d0f0;
border-color: #b0d0f0;
}
.btn-secondary {
background: #F3F4F6;
color: var(--syntaxis-blue);
border: 1px solid #E5E7EB;
}
body.dark-mode .btn-secondary {
background: #334155;
color: #60A5FA;
border-color: #475569;
}
.btn-secondary:hover {
background: #E5E7EB;
}
body.dark-mode .btn-secondary:hover {
background: #475569;
}
/* Color Palette */
.color-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: var(--space-lg);
margin-top: var(--space-lg);
}
.color-card {
background: white;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
body.dark-mode .color-card {
background: #1E293B;
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.color-card:hover {
transform: translateY(-2px);
}
.color-swatch {
width: 100%;
height: 120px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: 600;
font-size: 0.9rem;
text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
}
.color-details {
padding: var(--space-lg);
}
.color-name {
font-family: var(--font-primary);
font-size: 1rem;
font-weight: 600;
color: var(--syntaxis-blue);
margin-bottom: var(--space-sm);
}
body.dark-mode .color-name {
color: #60A5FA;
}
.color-code {
font-family: var(--font-mono);
font-size: 0.85rem;
line-height: 1.6;
background: #F9FAFB;
padding: var(--space-md);
border-radius: 4px;
border-left: 3px solid var(--syntaxis-blue);
}
body.dark-mode .color-code {
background: #334155;
border-left-color: #60A5FA;
color: #E5E7EB;
}
.color-code-line {
display: flex;
justify-content: space-between;
margin-bottom: var(--space-sm);
}
.color-code-line:last-child {
margin-bottom: 0;
}
.color-label {
color: #6B7280;
font-weight: 500;
}
body.dark-mode .color-label {
color: #9CA3AF;
}
.color-value {
font-weight: 600;
color: var(--syntaxis-blue);
font-family: var(--font-mono);
}
body.dark-mode .color-value {
color: #60A5FA;
}
/* Typography */
.typography-showcase {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: var(--space-lg);
margin-top: var(--space-lg);
}
.typography-item {
background: white;
padding: var(--space-lg);
border-radius: 8px;
border: 1px solid #E5E7EB;
}
body.dark-mode .typography-item {
background: #252525;
border-color: #404040;
}
.typography-item h3 {
font-family: var(--font-primary);
font-size: 0.9rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--syntaxis-gold);
margin-bottom: var(--space-md);
padding-bottom: var(--space-md);
border-bottom: 2px solid #E5E7EB;
}
body.dark-mode .typography-item h3 {
border-bottom-color: #334155;
}
.typography-example {
margin-bottom: var(--space-md);
}
.typography-example.headline {
font-family: var(--font-primary);
font-size: 1.75rem;
font-weight: 700;
line-height: 1.2;
letter-spacing: -0.01em;
color: var(--syntaxis-blue);
}
body.dark-mode .typography-example.headline {
color: #60A5FA;
}
.typography-example.body {
font-family: var(--font-secondary);
font-size: 1rem;
font-weight: 400;
line-height: 1.6;
color: #4B5563;
}
body.dark-mode .typography-example.body {
color: #E5E7EB;
}
.typography-example.code {
font-family: var(--font-mono);
font-size: 0.875rem;
font-weight: 400;
color: #7C3AED;
background: #F9FAFB;
padding: 0.5rem;
border-radius: 4px;
}
body.dark-mode .typography-example.code {
background: #334155;
color: #A78BFA;
}
.font-stack {
font-family: var(--font-mono);
font-size: 0.75rem;
color: #6B7280;
margin-top: var(--space-sm);
padding: var(--space-sm);
background: #F9FAFB;
border-radius: 4px;
word-break: break-all;
}
body.dark-mode .font-stack {
background: #334155;
color: #9CA3AF;
}
/* Modal */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.5);
z-index: 1000;
align-items: center;
justify-content: center;
padding: var(--space-md);
}
.modal.active {
display: flex;
}
.modal-content {
background: white;
border-radius: 12px;
max-width: 600px;
max-height: 90vh;
overflow: auto;
padding: var(--space-2xl);
position: relative;
animation: slideIn 0.3s ease;
}
body.dark-mode .modal-content {
background: #1E293B;
color: #F1F5F9;
}
@keyframes slideIn {
from {
transform: translateY(-20px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.modal-close {
position: absolute;
top: var(--space-lg);
right: var(--space-lg);
background: #E5E7EB;
border: none;
width: 32px;
height: 32px;
border-radius: 50%;
cursor: pointer;
font-size: 1.2rem;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s;
}
body.dark-mode .modal-close {
background: #334155;
color: #E5E7EB;
}
.modal-close:hover {
background: #D1D5DB;
}
body.dark-mode .modal-close:hover {
background: #475569;
}
.modal h2 {
font-family: var(--font-primary);
font-size: 1.5rem;
font-weight: 700;
color: var(--syntaxis-blue);
margin-bottom: var(--space-lg);
margin-top: 0;
}
body.dark-mode .modal h2 {
color: #60A5FA;
}
/* Utilities */
.text-center {
text-align: center;
}
.mt-lg {
margin-top: var(--space-lg);
}
.hidden {
display: none;
}
/* Responsive */
@media (max-width: 768px) {
.container {
padding: var(--space-lg) var(--space-md);
}
header h1 {
font-size: 1.5rem;
}
.header-controls {
flex-direction: column;
align-items: stretch;
}
.select-group {
justify-content: space-between;
}
.logo-gallery {
grid-template-columns: 1fr;
}
.color-grid {
grid-template-columns: 1fr;
}
.typography-showcase {
grid-template-columns: 1fr;
}
}
/* Category Labels */
.category-label {
display: inline-block;
font-family: var(--font-mono);
font-size: 0.7rem;
text-transform: uppercase;
font-weight: 600;
letter-spacing: 0.05em;
background: transparent;
color: var(--syntaxis-gold);
padding: 0.25rem 0.5rem;
border-radius: 3px;
margin-bottom: var(--space-sm);
}
.category-label.static {
background: transparent;
color: var(--syntaxis-blue);
}
.category-label.animated {
background: transparent;
color: var(--syntaxis-purple);
}
/* Font Selection */
.font-selector {
margin-top: var(--space-lg);
padding: var(--space-lg);
background: #F9FAFB;
border-radius: 8px;
border: 1px solid #E5E7EB;
}
body.dark-mode .font-selector {
background: #252525;
border-color: #404040;
}
.font-selector h4 {
font-family: var(--font-primary);
font-size: 0.9rem;
font-weight: 600;
color: var(--syntaxis-blue);
margin-bottom: var(--space-md);
}
body.dark-mode .font-selector h4 {
color: #60A5FA;
}
.font-options {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: var(--space-md);
}
.font-option {
padding: var(--space-md);
background: white;
border: 2px solid #E5E7EB;
border-radius: 6px;
cursor: pointer;
transition: all 0.2s;
}
body.dark-mode .font-option {
background: #334155;
border-color: #475569;
}
.font-option:hover {
border-color: var(--syntaxis-blue);
}
.font-option.active {
background: var(--syntaxis-blue);
color: white;
border-color: var(--syntaxis-blue);
}
.font-option-name {
font-weight: 600;
font-size: 0.9rem;
margin-bottom: var(--space-sm);
}
.font-option-preview {
font-size: 0.8rem;
opacity: 0.8;
}
.font-option.active .font-option-preview {
opacity: 0.9;
}
/* Info Box */
.info-box {
background: transparent;
border-left: 4px solid var(--syntaxis-blue);
padding: var(--space-lg);
border-radius: 4px;
margin-bottom: var(--space-lg);
font-size: 0.9rem;
color: #6B7280;
}
body.dark-mode .info-box {
background: transparent;
color: #9CA3AF;
border-left-color: #60A5FA;
}
.info-box strong {
color: #6B7280;
}
body.dark-mode .info-box strong {
color: #9CA3AF;
}
/* Scalability Test */
.scalability-container {
background: transparent;
padding: 2rem;
border-radius: 8px;
margin-bottom: 2rem;
}
.scalability-item {
text-align: center;
background: transparent;
padding: 1rem;
border-radius: 6px;
}
.scalability-icon {
display: inline-block;
padding: 0.75rem;
background: white;
border: 2px solid #E5E7EB;
border-radius: 8px;
margin-bottom: 0.5rem;
}
body.dark-mode .scalability-icon {
background: #252525;
border-color: #404040;
}
/* Make SVG preview clickable */
.logo-preview,
.main-logo-preview {
cursor: pointer;
position: relative;
display: flex;
align-items: center;
justify-content: center;
text-decoration: none;
}
.logo-preview:hover,
.main-logo-preview:hover {
opacity: 0.85;
transition: opacity 0.2s;
}
</style>
</head>
<body>
<div class="shared-header">
<div class="header-content">
<div style="display: flex; flex-direction: column; align-items: center; gap: 0.5rem;">
<div style="display: flex; align-items: center; gap: 2rem; justify-content: center;">
<h1 class="header-title">
<div class="header-logo">
<object data="syntax_logo_a.svg" type="image/svg+xml"></object>
</div>
</h1>
<div style="text-align: left; border-left: 2px solid #9CA3AF; padding-left: 2rem;">
<h2 style="margin: 0; font-size: 1.2rem; font-weight: 600; color: #9CA3AF;">🎨 Static Logos</h2>
<p style="margin: 0.5rem 0 0 0; font-size: 0.8rem; color: #9CA3AF;">Branding & Guidelines</p>
</div>
</div>
<div style="text-align: center;">
<p style="margin: 0; font-size: 0.9rem; color: #9CA3AF;">Systematic Orchestration, Perfectly Arranged</p>
</div>
</div>
<div class="header-nav">
<a class="nav-btn active" data-nav-button="branding" href="syntaxis-branding-showcase.html">🎨 Static Gallery</a>
<a class="nav-btn" data-nav-button="animated" href="syntaxis-animated-showcase.html">🎬 Animated Gallery</a>
<button class="header-btn" data-toggle="dark-mode" onclick="toggleDarkMode()">🌙 Dark Mode</button>
<a href="syntaxis-palette-fonts.html" target="_blank" class="header-btn" style="text-decoration: none; display: inline-flex; align-items: center;">🎨 Palette & Fonts</a>
</div>
</div>
</div>
<!-- Main Content -->
<div class="container">
<div class="info-box">
<strong>💡 Branding Guidelines:</strong> Click any logo to open it in a new tab. All logos are available in multiple formats and sizes. For animated versions, visit the Animated Gallery. Maintain proper spacing and sizing for best results.
</div>
<!-- Main Logo Showcase Section -->
<section class="main-logo-showcase">
<h2>🎯 Main Logos - Quick Access</h2>
<!-- Primary Logo Variations -->
<h3 style="margin-top: 2rem; margin-bottom: 1rem; font-size: 1.2rem;">Primary Logo Variations</h3>
<div class="main-logo-grid" style="grid-template-columns: repeat(4, 1fr);">
<!-- Full Logo Static -->
<div class="main-logo-card">
<a href="syntax_logo.svg" target="_blank" class="main-logo-preview">
<object data="syntax_logo.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">STATIC</span>
<div class="main-logo-title">Horizontal Lockup</div>
<div class="main-logo-description">Complete logo with icon, wordmark, and tagline. Use for headers, documents, and marketing materials.</div>
<div class="main-logo-meta">syntax_logo.svg • 800×200px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntax_logo.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
<!-- Compact Logo Static -->
<div class="main-logo-card">
<a href="syntaxis_logo_c.svg" target="_blank" class="main-logo-preview">
<object data="syntaxis_logo_c.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">STATIC</span>
<div class="main-logo-title">Compact Horizontal</div>
<div class="main-logo-description">Horizontal logo without tagline for narrow spaces. Ideal for toolbars, navigation, and reduced-space contexts.</div>
<div class="main-logo-meta">syntaxis_logo_c.svg • 400×100px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntaxis_logo_c.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
<!-- Vertical Stack Static -->
<div class="main-logo-card">
<a href="syntax_logo_vertical.svg" target="_blank" class="main-logo-preview">
<object data="syntax_logo_vertical.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">STATIC</span>
<div class="main-logo-title">Vertical Stack</div>
<div class="main-logo-description">Icon stacked above text. Perfect for social media profiles, mobile apps, and square layouts.</div>
<div class="main-logo-meta">syntax_logo_vertical.svg • 250×380px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntax_logo_vertical.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
<!-- Compact Vertical Static -->
<div class="main-logo-card">
<a href="syntax_logo_vertical_c.svg" target="_blank" class="main-logo-preview">
<object data="syntax_logo_vertical_c.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">STATIC</span>
<div class="main-logo-title">Compact Vertical</div>
<div class="main-logo-description">Vertical logo without tagline for compact spaces. Ideal for icons, app headers, and minimal layouts.</div>
<div class="main-logo-meta">syntax_logo_vertical_c.svg • 200×280px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntax_logo_vertical_c.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
</div>
<!-- Icon & Monogram -->
<h3 style="margin-top: 2rem; margin-bottom: 1rem; font-size: 1.2rem;">Icon & Monogram</h3>
<div class="main-logo-grid" style="grid-template-columns: repeat(2, 1fr);">
<!-- Main Icon -->
<div class="main-logo-card">
<a href="syntax_icon.svg" target="_blank" class="main-logo-preview" style="background: transparent;">
<object data="syntax_icon.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">ICON</span>
<div class="main-logo-title">Main Icon</div>
<div class="main-logo-description">Primary geometric icon with accent color. Perfect for app icons and interface elements. Minimum 32px recommended.</div>
<div class="main-logo-meta">syntax_icon.svg • 200×200px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntax_icon.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
<!-- Favicon -->
<div class="main-logo-card">
<a href="syntax_favicon.svg" target="_blank" class="main-logo-preview" style="background: transparent;">
<object data="syntax_favicon.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">FAVICON</span>
<div class="main-logo-title">Favicon</div>
<div class="main-logo-description">Optimized icon for browser tabs and bookmarks. Available in SVG, and in ICO (32×32, 16×16) and PNG formats upon request.</div>
<div class="main-logo-meta">syntax_favicon.svg • 200×200px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntax_favicon.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
</div>
<!-- Monochrome Versions -->
<h3 style="margin-top: 2rem; margin-bottom: 1rem; font-size: 1.2rem;">Monochrome Versions</h3>
<div class="main-logo-grid">
<!-- Horizontal Lockup - Blanco y Negro -->
<div class="main-logo-card">
<a href="syntax_logo_bn.svg" target="_blank" class="main-logo-preview">
<object data="syntax_logo_bn.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">STATIC</span>
<div class="main-logo-title">Horizontal Lockup (B&W)</div>
<div class="main-logo-description">Complete logo in black and white. Perfect for print, high-contrast designs, and monochrome applications.</div>
<div class="main-logo-meta">syntax_logo_bn.svg • 800×200px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntax_logo_bn.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
<!-- Compact - Blanco y Negro -->
<div class="main-logo-card">
<a href="syntaxis_logo_bn_c.svg" target="_blank" class="main-logo-preview">
<object data="syntaxis_logo_bn_c.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">STATIC</span>
<div class="main-logo-title">Compact Horizontal (B&W)</div>
<div class="main-logo-description">Horizontal logo without tagline in black and white. Ideal for small spaces and monochrome contexts.</div>
<div class="main-logo-meta">syntaxis_logo_bn_c.svg • 400×100px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntaxis_logo_bn_c.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
<!-- Vertical Stack - Blanco y Negro -->
<div class="main-logo-card">
<a href="syntax_logo_vertical_bn.svg" target="_blank" class="main-logo-preview">
<object data="syntax_logo_vertical_bn.svg" type="image/svg+xml" style="width: 100%; max-height: 180px;"></object>
</a>
<div class="main-logo-info">
<span class="main-logo-badge">STATIC</span>
<div class="main-logo-title">Vertical Stack (B&W)</div>
<div class="main-logo-description">Stacked layout in black and white. Perfect for square spaces and monochrome layouts.</div>
<div class="main-logo-meta">syntax_logo_vertical_bn.svg • 250×380px</div>
<div class="main-logo-action">
<button class="main-logo-btn" onclick="window.open('syntax_logo_vertical_bn.svg', '_blank')">
🔗 Open SVG
</button>
</div>
</div>
</div>
</div>
<!-- Scalability Test -->
<h3 style="margin-top: 2rem; margin-bottom: 1rem; font-size: 1.2rem;">Scalability Test</h3>
<div class="scalability-container">
<p style="margin-bottom: 1.5rem; color: #9CA3AF;">The icon maintains clarity and proportions at various sizes. Recommended minimum size is 32px for interface elements.</p>
<div style="display: flex; gap: 2rem; align-items: flex-end; flex-wrap: wrap; justify-content: center;">
<div class="scalability-item">
<object data="syntax_icon_simple.svg" type="image/svg+xml" class="scalability-icon" style="width: 16px; height: 16px;"></object>
<div style="font-size: 0.75rem; color: #9CA3AF;">16×16px</div>
</div>
<div class="scalability-item">
<object data="syntax_icon_simple.svg" type="image/svg+xml" class="scalability-icon" style="width: 32px; height: 32px;"></object>
<div style="font-size: 0.75rem; color: #9CA3AF;">32×32px</div>
</div>
<div class="scalability-item">
<object data="syntax_icon_simple.svg" type="image/svg+xml" class="scalability-icon" style="width: 64px; height: 64px;"></object>
<div style="font-size: 0.75rem; color: #9CA3AF;">64×64px</div>
</div>
<div class="scalability-item">
<object data="syntax_icon_simple.svg" type="image/svg+xml" class="scalability-icon" style="width: 128px; height: 128px;"></object>
<div style="font-size: 0.75rem; color: #9CA3AF;">128×128px</div>
</div>
<div class="scalability-item">
<object data="syntax_icon_simple.svg" type="image/svg+xml" class="scalability-icon" style="width: 256px; height: 256px;"></object>
<div style="font-size: 0.75rem; color: #9CA3AF;">256×256px</div>
</div>
</div>
</div>
</section>
<!-- Logos Section -->
<section class="section">
<h2 id="logoVariantsTitle">Logos - Available Variants</h2>
<div class="logo-gallery" id="logoGallery">
<!-- Logos se cargarán dinámicamente -->
</div>
</section>
</div>
<script>
// Data
const LOGOS = {
static: [
{
name: 'syntaxis-logo-icon.svg',
category: 'Icon',
description: 'Main geometric icon - Favicon, app icon, profile',
dimensions: '200×200px',
uses: 'Minimum 32px, ideal for iconography',
type: 'static',
path: 'syntaxis_logo_static_files/'
},
{
name: 'syntaxis-logo-horizontal.svg',
category: 'Full Horizontal',
description: 'Complete logo with icon, wordmark and tagline',
dimensions: '500×120px',
uses: 'Web headers, business cards, marketing materials',
type: 'static',
path: 'syntaxis_logo_static_files/'
},
{
name: 'syntaxis-logo-compact.svg',
category: 'Compact Horizontal',
description: 'Horizontal logo without tagline',
dimensions: '400×100px',
uses: 'Toolbars, navigation, reduced spaces',
type: 'static',
path: 'syntaxis_logo_static_files/'
},
{
name: 'syntaxis-logo-vertical.svg',
category: 'Vertical',
description: 'Stacked layout with icon above text',
dimensions: '300×300px',
uses: 'Square spaces, mobile layouts, posters',
type: 'static',
path: 'syntaxis_logo_static_files/'
},
{
name: 'syntaxis-logo-monogram.svg',
category: 'Monogram',
description: 'Geometric construction of the letter "S"',
dimensions: '200×200px',
uses: 'Watermarks, very small sizes',
type: 'static',
path: 'syntaxis_logo_static_files/'
},
{
name: 'syntaxis-logo-mono-light.svg',
category: 'Monochromatic - Light',
description: 'Black shapes for light backgrounds',
dimensions: '200×200px',
uses: 'Print, high contrast, accessibility',
type: 'static',
path: 'syntaxis_logo_static_files/'
},
{
name: 'syntaxis-logo-mono-dark.svg',
category: 'Monochromatic - Dark',
description: 'White shapes for dark backgrounds',
dimensions: '200×200px',
uses: 'Dark themes, presentations, dark interface',
type: 'static',
path: 'syntaxis_logo_static_files/'
}
],
animated: [
{
name: 'syntaxis-logo-icon-animated.svg',
category: 'Entry - Assembly',
description: 'Pieces appear from the center, rotating to position',
duration: '~1.2s (one time)',
uses: 'Splash screens, hero sections, presentation intros',
type: 'animated',
path: 'syntax_logos_anim/'
},
{
name: 'syntaxis-logo-icon-construction.svg',
category: 'Entry - Construction',
description: 'Pieces slide from top, bottom, left and right',
duration: '~1.4s (one time)',
uses: 'Explainer videos, "How it works", onboarding',
type: 'animated',
path: 'syntax_logos_anim/'
},
{
name: 'syntaxis-logo-horizontal-animated.svg',
category: 'Full Animated Logo',
description: 'Icon assembles → text appears → tagline fade in',
duration: '~1.4s (one time)',
uses: 'Web headers, video intros, brand presentations',
type: 'animated',
path: 'syntax_logos_anim/'
},
{
name: 'syntaxis-logo-icon-pulse.svg',
category: 'Loop - Pulse',
description: 'Central triangle pulses and glows softly',
duration: '2s infinite loop',
uses: 'Active status indicators, CTAs, dashboard widgets',
type: 'animated',
path: 'syntax_logos_anim/'
},
{
name: 'syntaxis-logo-loading.svg',
category: 'Loop - Loading Spinner',
description: 'Diamonds orbit, squares rotate',
duration: '3s loop (orbit) + 2s (fade)',
uses: 'Loading indicators, "processing" states, work in progress',
type: 'animated',
path: 'syntax_logos_anim/'
},
{
name: 'syntaxis-logo-icon-ambient.svg',
category: 'Loop - Ambient',
description: 'Subtle expansion/contraction + floating',
duration: '4-6s infinite loop',
uses: 'Decorative elements, section headers, subtle backgrounds',
type: 'animated',
path: 'syntax_logos_anim/'
},
{
name: 'syntaxis-logo-icon-hover.svg',
category: 'Interactive - Hover',
description: 'Shapes grow and change color on hover',
duration: '0.3s transition',
uses: 'Clickable logos, buttons, interactive links',
type: 'animated',
path: 'syntax_logos_anim/'
}
]
};
// Helper Functions
function openLogoInNewTab(filename, path) {
const fullPath = `${path}${filename}`;
window.open(fullPath, '_blank');
}
// Render Functions
function renderLogos() {
const gallery = document.getElementById('logoGallery');
const logos = [...LOGOS.static, ...LOGOS.animated];
gallery.innerHTML = logos.map(logo => `
<div class="logo-card">
<div class="logo-preview ${logo.type === 'animated' ? 'dark' : ''}">
<img src="${logo.path}${logo.name}" alt="${logo.name}" onerror="this.style.display='none'">
</div>
<div class="logo-info">
<div class="category-label ${logo.type}">${logo.type.toUpperCase()}</div>
<div class="logo-name">${logo.category}</div>
<div class="logo-description">${logo.description}</div>
<div class="logo-meta">📄 ${logo.name}</div>
<div class="logo-meta">📐 ${logo.dimensions}</div>
<div class="logo-meta">💡 ${logo.uses}</div>
<div class="logo-action">
<button class="btn btn-primary" onclick="openLogoInNewTab('${logo.name}', '${logo.path}')">
Open in New Tab
</button>
</div>
</div>
</div>
`).join('');
}
// Initialize
document.addEventListener('DOMContentLoaded', function() {
renderLogos();
});
</script>
<script src="assets/header-shared.js"></script>
</body>
</html>