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

Example Preview

Default Container

Centered container with max-width constraints. Perfect for most content sections.

Max-width: 1200px

Small Container

Narrow container for focused content like forms, articles, or documentation.

Max-width: 900px

Large Container

Wide container for content-heavy sections or full-width designs with constraints.

Max-width: 1600px

Expand Container

Full-width container that spans the entire viewport width. Use for banners, hero sections, or footers.

Width: 100% of viewport

2. Container with Responsive Behavior

Example Preview

Responsive Container

Extra small container on mobile, expands from left on medium screens and above.

Mobile: 100% width
Medium+: Expands from left with max-width

Center on Large Screens

Expands from right by default, centers on large screens and above.

Default: Expand from right
Large+: Centered container

Multiple Breakpoints

Container size changes at different breakpoints for optimal viewing.

X-Small: Mobile (default)
Small: ≥640px
Medium: ≥960px
Large: ≥1200px

3. Container Padding & Spacing

Example Preview

Default Padding

Container with standard UIKit padding (30px left/right on desktop).

Padding: 30px left/right on desktop, 15px on mobile

Padding Removed

Container with padding removed. Useful when you need custom spacing.

Padding: 0 (removed)

Responsive Padding

Left padding removed always, right padding removed on small screens and above.

Always: No left padding
Small+: No right padding

Large Padding

Container with large padding for spacious layouts.

Padding: Large (40px)

4. Nested Containers & Grids

Example Preview

Outer Container (Expand)

Full-width outer container with nested inner containers.

Inner Container 1 (Default)

Nested default container inside expand container.

Inner Container 2 (Small with Grid)

Grid item 1 inside nested container

Grid item 2 inside nested container

Complex Container Nesting

Left Column Container

Extra small container in grid column.

Deeply Nested Container

Expand container inside xsmall container.

Right Column Container

Default container in grid column.

Grid cell container 1

Grid cell container 2

5. Container Alignment & Positioning

Example Preview

Left-Aligned Container

Container expands from right, creating left-aligned content area.

Alignment: Left (expands from right)

Right-Aligned Container

Container expands from left, creating right-aligned content area.

Alignment: Right (expands from left)

Centered with Auto Margin

Container centered horizontally using auto margins.

Centered using: margin: 0 auto

Container with Large Margins

Container with large top and bottom margins for spacing between sections.

Margins: Large top and bottom
Centered with Flexbox

Container centered both horizontally and vertically using flexbox.

Container Classes Reference

Size Classes

ClassDescriptionMax Width
.uk-containerBase container class1200px (default)
.uk-container-defaultDefault container size1200px
.uk-container-xsmallExtra small container750px
.uk-container-smallSmall container900px
.uk-container-largeLarge container1600px
.uk-container-expandFull width container100% (no max-width)
.uk-container-expand-leftExpand from left side100% from left
.uk-container-expand-rightExpand from right side100% from right

Responsive Classes

ClassDescriptionBreakpoint
.uk-container-small@sSmall container on small screens+≥640px
.uk-container-medium@mMedium container on medium screens+≥960px
.uk-container-large@lLarge container on large screens+≥1200px
.uk-container-expand-left@mExpand from left on medium screens+≥960px
.uk-container-expand-right@sExpand from right on small screens+≥640px
.uk-container-center@lCenter container on large screens+≥1200px

Spacing & Padding Classes

ClassDescriptionEffect
.uk-paddingAdd standard padding30px left/right on desktop
.uk-padding-smallAdd small padding15px left/right
.uk-padding-largeAdd large padding40px left/right
.uk-padding-removeRemove all paddingpadding: 0
.uk-padding-remove-leftRemove left paddingpadding-left: 0
.uk-padding-remove-rightRemove right paddingpadding-right: 0
.uk-padding-remove-topRemove top paddingpadding-top: 0
.uk-padding-remove-bottomRemove bottom paddingpadding-bottom: 0
.uk-padding-remove-verticalRemove vertical paddingpadding-top/bottom: 0
.uk-padding-remove-horizontalRemove horizontal paddingpadding-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