<html><head><title>RUITL Component Composition Demo</title><style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.6;
margin: 0;
padding: 20px;
background: #f5f5f5;
}
.container {
max-width: 800px;
margin: 0 auto;
background: white;
padding: 40px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.button {
display: inline-block;
background: #007bff;
color: white;
padding: 12px 24px;
border: none;
border-radius: 6px;
cursor: pointer;
text-decoration: none;
font-weight: 500;
margin: 8px 8px 8px 0;
transition: background 0.2s;
}
.button:hover { background: #0056b3; }
.button.secondary { background: #6c757d; }
.button.secondary:hover { background: #545b62; }
.button.success { background: #28a745; }
.button.success:hover { background: #1e7e34; }
.card {
border: 1px solid #e9ecef;
padding: 24px;
margin: 20px 0;
border-radius: 8px;
background: #f8f9fa;
}
.user-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin: 20px 0;
}
.conditional-demo {
border: 2px dashed #007bff;
padding: 20px;
margin: 20px 0;
border-radius: 8px;
}
h1 { color: #343a40; margin-bottom: 10px; }
h2 { color: #495057; border-bottom: 2px solid #e9ecef; padding-bottom: 10px; }
.meta { color: #6c757d; font-style: italic; margin-bottom: 30px; }
code {
background: #f8f9fa;
padding: 2px 6px;
border-radius: 3px;
font-family: 'Monaco', 'Consolas', monospace;
color: #e83e8c;
}
</style></head><body><div class="container"><h1>RUITL Component Composition Demo</h1><p class="meta">This page demonstrates composing multiple RUITL components together</p><h2>Component Composition</h2><h3>Navigation Buttons</h3><a href="#home" class="button primary">🏠 Home</a><a href="#users" class="button secondary">👥 Users</a><a href="#settings" class="button secondary">⚙️ Settings</a><h3 id="users">Team Members</h3><div class="user-grid"><div class="card"><h3>👤 Dr. Sarah Chen</h3><p>📧 sarah.chen@ruitl.dev</p><p>🔖 Role: Lead Engineer</p><p><span style="color: #28a745; font-weight: bold;">● Status: Active</span></p></div><div class="card"><h3>👤 Marcus Rodriguez</h3><p>📧 marcus.r@ruitl.dev</p><p>🔖 Role: Frontend Developer</p><p><span style="color: #28a745; font-weight: bold;">● Status: Active</span></p></div><div class="card"><h3>👤 Emma Thompson</h3><p>📧 emma.t@ruitl.dev</p><p>🔖 Role: UI/UX Designer</p><p><span style="color: #6c757d; font-weight: bold;">● Status: Inactive</span></p></div><div class="card"><h3>👤 James Wilson</h3><p>📧 james.w@ruitl.dev</p><p>🔖 Role: DevOps Engineer</p><p><span style="color: #28a745; font-weight: bold;">● Status: Active</span></p></div></div><h3 id="settings">Actions</h3><button class="button success" type="button">✉️ Send Invites</button><button class="button primary" type="button">📊 Generate Report</button><button class="button secondary" type="button">🗑️ Archive Inactive</button><div class="conditional-demo">
<h3>🎯 Component Composition Benefits</h3>
<ul>
<li><strong>Reusability:</strong> Same Button and UserCard components used multiple times</li>
<li><strong>Type Safety:</strong> Each component validates its props at compile time</li>
<li><strong>Maintainability:</strong> Changes to components automatically update all usages</li>
<li><strong>Performance:</strong> Zero runtime overhead - all HTML pre-generated</li>
<li><strong>Consistency:</strong> Shared styling and behavior across all instances</li>
</ul>
</div></div></body></html>