Container Component
Container Component: Containers are fundamental layout elements that constrain content width, provide responsive padding, and center content horizontally. UIKit provides flexible container options for different layout needs.
Live Examples
1. Basic Container Types
Default Container
Centered container with max-width constraints. Perfect for most content sections.
Small Container
Narrow container for focused content like forms, articles, or documentation.
Large Container
Wide container for content-heavy sections or full-width designs with constraints.
2. Container with Responsive Behavior
Multiple Breakpoints
Container size changes at different breakpoints for optimal viewing.
Small: ≥640px
Medium: ≥960px
Large: ≥1200px
3. Container Padding & Spacing
Default Padding
Container with standard UIKit padding (30px left/right on desktop).
Padding Removed
Container with padding removed. Useful when you need custom spacing.
Responsive Padding
Left padding removed always, right padding removed on small screens and above.
Small+: No right padding
Large Padding
Container with large padding for spacious layouts.
4. Nested Containers & Grids
Complex Container Nesting
Left Column Container
Extra small container in grid column.
Right Column Container
Default container in grid column.
Grid cell container 1
Grid cell container 2
5. Container Alignment & Positioning
Centered with Auto Margin
Container centered horizontally using auto margins.
Container with Large Margins
Container with large top and bottom margins for spacing between sections.
Centered with Flexbox
Container centered both horizontally and vertically using flexbox.
Container Classes Reference
Size Classes
| Class | Description | Max Width |
|---|---|---|
.uk-container | Base container class | 1200px (default) |
.uk-container-default | Default container size | 1200px |
.uk-container-xsmall | Extra small container | 750px |
.uk-container-small | Small container | 900px |
.uk-container-large | Large container | 1600px |
.uk-container-expand | Full width container | 100% (no max-width) |
.uk-container-expand-left | Expand from left side | 100% from left |
.uk-container-expand-right | Expand from right side | 100% from right |
Responsive Classes
| Class | Description | Breakpoint |
|---|---|---|
.uk-container-small@s | Small container on small screens+ | ≥640px |
.uk-container-medium@m | Medium container on medium screens+ | ≥960px |
.uk-container-large@l | Large container on large screens+ | ≥1200px |
.uk-container-expand-left@m | Expand from left on medium screens+ | ≥960px |
.uk-container-expand-right@s | Expand from right on small screens+ | ≥640px |
.uk-container-center@l | Center container on large screens+ | ≥1200px |
Spacing & Padding Classes
| Class | Description | Effect |
|---|---|---|
.uk-padding | Add standard padding | 30px left/right on desktop |
.uk-padding-small | Add small padding | 15px left/right |
.uk-padding-large | Add large padding | 40px left/right |
.uk-padding-remove | Remove all padding | padding: 0 |
.uk-padding-remove-left | Remove left padding | padding-left: 0 |
.uk-padding-remove-right | Remove right padding | padding-right: 0 |
.uk-padding-remove-top | Remove top padding | padding-top: 0 |
.uk-padding-remove-bottom | Remove bottom padding | padding-bottom: 0 |
.uk-padding-remove-vertical | Remove vertical padding | padding-top/bottom: 0 |
.uk-padding-remove-horizontal | Remove horizontal padding | padding-left/right: 0 |
Complete Real-World Examples
Website Layout with Containers
<!-- Complete Website Layout -->
<!-- Header -->
<header class="uk-container uk-container-expand uk-background-primary uk-light">
<div class="uk-container uk-container-default">
<nav class="uk-navbar-container uk-navbar-transparent" uk-navbar>
<div class="uk-navbar-left">
<a class="uk-navbar-item uk-logo" href="#">Logo</a>
</div>
<div class="uk-navbar-right">
<ul class="uk-navbar-nav">
<li class="uk-active"><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</nav>
</div>
</header>
<!-- Hero Section -->
<section class="uk-container uk-container-expand uk-background-secondary uk-light uk-padding-large">
<div class="uk-container uk-container-default">
<div class="uk-grid-large uk-flex-middle" uk-grid>
<div class="uk-width-1-2@m">
<h1 class="uk-heading-primary">Welcome to Our Website</h1>
<p class="uk-text-lead">We create amazing web experiences using modern technologies and best practices.</p>
<button class="uk-button uk-button-default uk-button-large">Get Started</button>
</div>
<div class="uk-width-1-2@m">
<img src="hero-image.jpg" alt="Hero Image">
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section class="uk-container uk-container-expand uk-padding-large">
<div class="uk-container uk-container-default">
<h2 class="uk-text-center uk-heading-line"><span>Our Features</span></h2>
<div class="uk-grid-medium uk-child-width-1-3@m" uk-grid>
<div>
<div class="uk-card uk-card-default uk-card-body uk-text-center">
<span class="uk-icon uk-icon-image" style="font-size: 3em; color: #1e87f0;">⚡</span>
<h3 class="uk-card-title">Fast Performance</h3>
<p>Optimized for speed and efficiency.</p>
</div>
</div>
<div>
<div class="uk-card uk-card-default uk-card-body uk-text-center">
<span class="uk-icon uk-icon-image" style="font-size: 3em; color: #32d296;">📱</span>
<h3 class="uk-card-title">Responsive Design</h3>
<p>Works perfectly on all devices.</p>
</div>
</div>
<div>
<div class="uk-card uk-card-default uk-card-body uk-text-center">
<span class="uk-icon uk-icon-image" style="font-size: 3em; color: #f0506e;">🔧</span>
<h3 class="uk-card-title">Easy Customization</h3>
<p>Flexible and easy to customize.</p>
</div>
</div>
</div>
</div>
</section>
<!-- Content Section -->
<section class="uk-container uk-container-expand uk-background-muted uk-padding-large">
<div class="uk-container uk-container-small">
<article class="uk-article">
<h1 class="uk-article-title">About Our Company</h1>
<p class="uk-article-meta">Written by Admin on December 12, 2023</p>
<p class="uk-text-lead">We specialize in creating beautiful, functional websites that drive results.</p>
<p>Our team of experts combines design thinking with technical excellence to deliver outstanding web experiences. We believe in clean code, user-centered design, and performance optimization.</p>
<div class="uk-grid-small uk-child-width-auto" uk-grid>
<div>
<a class="uk-button uk-button-text" href="#">Read more</a>
</div>
<div>
<a class="uk-button uk-button-text" href="#">5 Comments</a>
</div>
</div>
</article>
</div>
</section>
<!-- Contact Form -->
<section class="uk-container uk-container-expand uk-padding-large">
<div class="uk-container uk-container-xsmall">
<h2 class="uk-text-center">Contact Us</h2>
<form class="uk-grid-small" uk-grid>
<div class="uk-width-1-2@s">
<input class="uk-input" type="text" placeholder="Name" required>
</div>
<div class="uk-width-1-2@s">
<input class="uk-input" type="email" placeholder="Email" required>
</div>
<div class="uk-width-1-1">
<input class="uk-input" type="text" placeholder="Subject">
</div>
<div class="uk-width-1-1">
<textarea class="uk-textarea" rows="5" placeholder="Message" required></textarea>
</div>
<div class="uk-width-1-1">
<button class="uk-button uk-button-primary uk-width-1-1" type="submit">Send Message</button>
</div>
</form>
</div>
</section>
<!-- Footer -->
<footer class="uk-container uk-container-expand uk-background-primary uk-light uk-padding">
<div class="uk-container uk-container-default">
<div class="uk-grid-medium" uk-grid>
<div class="uk-width-1-3@m">
<h3>Our Company</h3>
<p>Creating amazing web experiences since 2010.</p>
</div>
<div class="uk-width-1-3@m">
<h3>Quick Links</h3>
<ul class="uk-list">
<li><a href="#" class="uk-link-muted">Home</a></li>
<li><a href="#" class="uk-link-muted">About</a></li>
<li><a href="#" class="uk-link-muted">Services</a></li>
<li><a href="#" class="uk-link-muted">Contact</a></li>
</ul>
</div>
<div class="uk-width-1-3@m">
<h3>Contact Info</h3>
<p>123 Street Name<br>City, Country<br>Email: info@example.com</p>
</div>
</div>
<div class="uk-margin-top uk-text-center">
<p class="uk-text-small">© 2023 Our Company. All rights reserved.</p>
</div>
</div>
</footer>Dashboard Layout
<!-- Dashboard Layout -->
<div class="uk-container uk-container-expand uk-background-secondary uk-light" style="min-height: 100vh;">
<!-- Sidebar -->
<div class="uk-container uk-container-expand-right uk-background-primary uk-padding" style="width: 250px; position: fixed; left: 0; top: 0; bottom: 0;">
<h3 class="uk-margin-remove-top">Dashboard</h3>
<ul class="uk-nav uk-nav-default">
<li class="uk-active"><a href="#"><span uk-icon="icon: home" class="uk-margin-small-right"></span> Dashboard</a></li>
<li><a href="#"><span uk-icon="icon: users" class="uk-margin-small-right"></span> Users</a></li>
<li><a href="#"><span uk-icon="icon: settings" class="uk-margin-small-right"></span> Settings</a></li>
<li><a href="#"><span uk-icon="icon: credit-card" class="uk-margin-small-right"></span> Billing</a></li>
<li><a href="#"><span uk-icon="icon: sign-out" class="uk-margin-small-right"></span> Logout</a></li>
</ul>
</div>
<!-- Main Content -->
<div class="uk-container uk-container-expand-left" style="margin-left: 250px; padding: 20px;">
<!-- Header -->
<div class="uk-container uk-container-expand uk-background-default uk-padding uk-margin-bottom">
<div class="uk-flex uk-flex-between uk-flex-middle">
<div>
<h1 class="uk-margin-remove-bottom">Welcome back, Admin</h1>
<p class="uk-text-meta uk-margin-remove-top">Here's what's happening with your account today.</p>
</div>
<div>
<button class="uk-button uk-button-primary">
<span uk-icon="icon: plus" class="uk-margin-small-right"></span>
Add New
</button>
</div>
</div>
</div>
<!-- Stats Cards -->
<div class="uk-container uk-container-expand uk-margin-bottom">
<div class="uk-grid-small uk-child-width-1-2@s uk-child-width-1-4@m" uk-grid>
<div>
<div class="uk-card uk-card-primary uk-card-body">
<div class="uk-text-large uk-text-bold">1,254</div>
<div class="uk-text-small">Total Users</div>
</div>
</div>
<div>
<div class="uk-card uk-card-secondary uk-card-body">
<div class="uk-text-large uk-text-bold">$24,580</div>
<div class="uk-text-small">Revenue</div>
</div>
</div>
<div>
<div class="uk-card uk-card-danger uk-card-body">
<div class="uk-text-large uk-text-bold">42</div>
<div class="uk-text-small">Active Projects</div>
</div>
</div>
<div>
<div class="uk-card uk-card-success uk-card-body">
<div class="uk-text-large uk-text-bold">98%</div>
<div class="uk-text-small">Satisfaction</div>
</div>
</div>
</div>
</div>
<!-- Main Content Area -->
<div class="uk-grid-medium" uk-grid>
<!-- Left Column -->
<div class="uk-width-2-3@m">
<div class="uk-container uk-container-expand uk-background-default uk-padding uk-margin-bottom">
<h3 class="uk-margin-remove-top">Recent Activity</h3>
<div class="uk-overflow-auto">
<table class="uk-table uk-table-divider uk-table-small">
<thead>
<tr>
<th>User</th>
<th>Action</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>Created new project</td>
<td>2 minutes ago</td>
</tr>
<!-- More rows -->
</tbody>
</table>
</div>
</div>
</div>
<!-- Right Column -->
<div class="uk-width-1-3@m">
<div class="uk-container uk-container-expand uk-background-default uk-padding">
<h3 class="uk-margin-remove-top">Quick Actions</h3>
<div class="uk-grid-small" uk-grid>
<div class="uk-width-1-2">
<button class="uk-button uk-button-default uk-width-1-1">
<span uk-icon="icon: download"></span>
Export
</button>
</div>
<div class="uk-width-1-2">
<button class="uk-button uk-button-default uk-width-1-1">
<span uk-icon="icon: print"></span>
Print
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>Custom Container Styles
/* Custom Container Styles */
/* Glassmorphism Container */
.uk-container-glass {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 15px;
}
.uk-container-glass-light {
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
}
/* Gradient Container */
.uk-container-gradient {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.uk-container-gradient-reverse {
background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
color: white;
}
/* Container with Shadow */
.uk-container-shadow {
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
border-radius: 8px;
}
.uk-container-shadow-lg {
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
/* Bordered Container */
.uk-container-bordered {
border: 2px solid #e5e5e5;
border-radius: 10px;
}
.uk-container-bordered-primary {
border: 2px solid #1e87f0;
border-radius: 10px;
}
/* Animated Container */
.uk-container-animated {
transition: all 0.3s ease;
}
.uk-container-animated:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
/* Container with Background Pattern */
.uk-container-pattern {
background-image: url('data:image/svg+xml,<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h20v20H0z" fill="none"/><path d="M3 3h2v2H3zm6 0h2v2H9zm6 0h2v2h-2zM3 9h2v2H3zm6 0h2v2H9zm6 0h2v2h-2zM3 15h2v2H3zm6 0h2v2H9zm6 0h2v2h-2z" fill="rgba(0,0,0,0.05)"/></svg>');
background-size: 20px 20px;
}
/* Container with Overlay */
.uk-container-overlay {
position: relative;
}
.uk-container-overlay:before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 1;
}
.uk-container-overlay > * {
position: relative;
z-index: 2;
}
/* Container with Corner Accent */
.uk-container-accent {
position: relative;
overflow: hidden;
}
.uk-container-accent:before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 50px;
height: 50px;
background: #1e87f0;
clip-path: polygon(100% 0, 0 0, 100% 100%);
}
/* Responsive Container Heights */
.uk-container-height-auto {
height: auto;
}
.uk-container-height-small {
height: 200px;
}
.uk-container-height-medium {
height: 400px;
}
.uk-container-height-large {
height: 600px;
}
.uk-container-height-viewport {
height: 100vh;
}
/* Usage Examples */
<div class="uk-container uk-container-default uk-container-glass">
<!-- Glassmorphism container -->
</div>
<div class="uk-container uk-container-expand uk-container-gradient">
<!-- Gradient container -->
</div>
<div class="uk-container uk-container-small uk-container-shadow">
<!-- Container with shadow -->
</div>
<div class="uk-container uk-container-large uk-container-bordered-primary">
<!-- Bordered container -->
</div>
<div class="uk-container uk-container-default uk-container-animated">
<!-- Animated container -->
</div>
<div class="uk-container uk-container-expand uk-container-pattern">
<!-- Pattern background container -->
</div>
<div class="uk-container uk-container-default uk-container-overlay">
<!-- Container with overlay -->
</div>
<div class="uk-container uk-container-small uk-container-accent">
<!-- Container with corner accent -->
</div>
<div class="uk-container uk-container-default uk-container-height-viewport">
<!-- Full viewport height container -->
</div>
/* Custom Breakpoint Containers */
@media (min-width: 768px) {
.uk-container-custom-md {
max-width: 720px;
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
}
}
@media (min-width: 992px) {
.uk-container-custom-lg {
max-width: 960px;
}
}
@media (min-width: 1200px) {
.uk-container-custom-xl {
max-width: 1140px;
}
}
/* Fluid Container */
.uk-container-fluid {
width: 100%;
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
/* Container with Custom Grid */
.uk-container-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
}
/* Masonry Container */
.uk-container-masonry {
column-count: 3;
column-gap: 30px;
}
.uk-container-masonry > * {
break-inside: avoid;
margin-bottom: 30px;
}
/* Container with Flex Layout */
.uk-container-flex {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.uk-container-flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.uk-container-flex-between {
display: flex;
justify-content: space-between;
align-items: center;
}
/* Container with Scroll */
.uk-container-scroll {
overflow-y: auto;
max-height: 400px;
}
.uk-container-scroll-horizontal {
overflow-x: auto;
white-space: nowrap;
}Best Practices for Container Usage:
- Use appropriate container sizes based on content type
- Maintain consistent container widths throughout your site
- Use expand containers for full-width sections like headers/footers
- Implement responsive container behavior for different screen sizes
- Use nested containers for complex layouts with different constraints
- Apply appropriate padding and margins for visual hierarchy
- Use auto margins for centering containers when needed
- Consider accessibility with proper contrast and spacing
- Test container layouts on multiple devices and screen sizes
- Use semantic HTML structure with appropriate container nesting
- Implement container patterns for reusable layout components
- Optimize container performance by minimizing nesting depth
- Use CSS Grid or Flexbox inside containers for complex content layouts
- Consider using container components for consistent spacing and alignment
- Document container usage patterns for team consistency