Layout
Layout components for creating consistent page structures and containers.
Container
Use containers to center and horizontally pad your content.
Container Example
This content is centered with max-width and horizontal padding.
<div class="container">
<!-- Your content here -->
</div>CSS Implementation:
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem;
}
@media (max-width: 768px) {
.container {
padding: 0 1rem;
}
}Grid System
Create responsive layouts using CSS Grid.
Column 1
Column 2
Column 3
<div style="
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
">
<div>Column 1</div>
<div>Column 2</div>
<div>Column 3</div>
</div>Flexbox Layouts
Use flexbox for one-dimensional layouts.
Flex Item
Flex Item (2x)
Flex Item
<div style="
display: flex;
gap: 1rem;
flex-wrap: wrap;
">
<div style="flex: 1;">Flex Item</div>
<div style="flex: 2;">Flex Item (2x)</div>
<div style="flex: 1;">Flex Item</div>
</div>Sidebar Layout
Common sidebar layout pattern.
<div style="display: flex; min-height: 100vh;">
<aside style="width: 250px; background: #f8f9fa;">
<!-- Sidebar content -->
</aside>
<main style="flex: 1;">
<!-- Main content -->
</main>
</div>Card Grid Layout
Responsive grid for card components.
Card 1
Card content with consistent spacing.
Card 2
Another card in the grid layout.
Card 3
Third card completing the grid.
<div style="
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
">
<div class="ethio-card">...</div>
<div class="ethio-card">...</div>
<div class="ethio-card">...</div>
</div>Responsive Breakpoints
EthioWDS uses common breakpoints for responsive design:
Mobile: < 640px
Tablet: 640px - 768px
Desktop: 768px - 1024px
Large: > 1024px
/* Responsive breakpoints */
@media (min-width: 640px) {
/* Tablet styles */
}
@media (min-width: 768px) {
/* Desktop styles */
}
@media (min-width: 1024px) {
/* Large desktop styles */
}