Getting Started
Setup UIkit
<!-- UIkit CSS via CDN -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/css/uikit.min.css" />
<!-- UIkit JS via CDN -->
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit-icons.min.js"></script>
<!-- Alternatively, install via npm -->
npm install uikit
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/css/uikit.min.css" />
<!-- UIkit JS via CDN -->
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit-icons.min.js"></script>
<!-- Alternatively, install via npm -->
npm install uikit
Note: UIkit includes both CSS and JavaScript components. The icons package is optional but recommended.
Basic Template
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>UIkit Template</title>
<!-- UIkit CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/css/uikit.min.css" />
</head>
<body>
<h1>Hello, UIkit!</h1>
<!-- UIkit JS -->
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit-icons.min.js"></script>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>UIkit Template</title>
<!-- UIkit CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/css/uikit.min.css" />
</head>
<body>
<h1>Hello, UIkit!</h1>
<!-- UIkit JS -->
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/uikit@3.16.0/dist/js/uikit-icons.min.js"></script>
</body>
</html>
Grid System
Grid Basics
<!-- UIkit Grid Container -->
<div class="uk-container">
<!-- Fixed width container -->
</div>
<div class="uk-container uk-container-expand">
<!-- Full width container -->
</div>
<!-- Basic Grid -->
<div class="uk-grid" uk-grid>
<div class="uk-width-1-3">Column 1</div>
<div class="uk-width-1-3">Column 2</div>
<div class="uk-width-1-3">Column 3</div>
</div>
<!-- Grid with specified column widths -->
<div class="uk-grid" uk-grid>
<div class="uk-width-2-3">2/3 width</div>
<div class="uk-width-1-3">1/3 width</div>
</div>
<div class="uk-container">
<!-- Fixed width container -->
</div>
<div class="uk-container uk-container-expand">
<!-- Full width container -->
</div>
<!-- Basic Grid -->
<div class="uk-grid" uk-grid>
<div class="uk-width-1-3">Column 1</div>
<div class="uk-width-1-3">Column 2</div>
<div class="uk-width-1-3">Column 3</div>
</div>
<!-- Grid with specified column widths -->
<div class="uk-grid" uk-grid>
<div class="uk-width-2-3">2/3 width</div>
<div class="uk-width-1-3">1/3 width</div>
</div>
Note: UIkit's grid system uses a flexible fraction-based approach (1-2, 1-3, 2-3, etc.).
Responsive Grid
<!-- Responsive breakpoints: s, m, l, xl -->
<div class="uk-grid" uk-grid>
<div class="uk-width-1-1 uk-width-1-2@s uk-width-1-3@m uk-width-1-4@l">
<!-- Full width on mobile, 1/2 on small, 1/3 on medium, 1/4 on large -->
</div>
</div>
<!-- Grid with gutter -->
<div class="uk-grid-small" uk-grid>
<div class="uk-width-1-2">Small gutter</div>
<div class="uk-width-1-2">Small gutter</div>
</div>
<div class="uk-grid-medium" uk-grid>
<div class="uk-width-1-2">Medium gutter</div>
<div class="uk-width-1-2">Medium gutter</div>
</div>
<div class="uk-grid-large" uk-grid>
<div class="uk-width-1-2">Large gutter</div>
<div class="uk-width-1-2">Large gutter</div>
</div>
<div class="uk-grid" uk-grid>
<div class="uk-width-1-1 uk-width-1-2@s uk-width-1-3@m uk-width-1-4@l">
<!-- Full width on mobile, 1/2 on small, 1/3 on medium, 1/4 on large -->
</div>
</div>
<!-- Grid with gutter -->
<div class="uk-grid-small" uk-grid>
<div class="uk-width-1-2">Small gutter</div>
<div class="uk-width-1-2">Small gutter</div>
</div>
<div class="uk-grid-medium" uk-grid>
<div class="uk-width-1-2">Medium gutter</div>
<div class="uk-width-1-2">Medium gutter</div>
</div>
<div class="uk-grid-large" uk-grid>
<div class="uk-width-1-2">Large gutter</div>
<div class="uk-width-1-2">Large gutter</div>
</div>
Components
Buttons
<!-- Basic buttons -->
<button class="uk-button uk-button-default">Default</button>
<button class="uk-button uk-button-primary">Primary</button>
<button class="uk-button uk-button-secondary">Secondary</button>
<button class="uk-button uk-button-danger">Danger</button>
<button class="uk-button uk-button-text">Text</button>
<button class="uk-button uk-button-link">Link</button>
<!-- Button sizes -->
<button class="uk-button uk-button-small">Small</button>
<button class="uk-button uk-button-default">Default</button>
<button class="uk-button uk-button-large">Large</button>
<!-- Disabled button -->
<button class="uk-button uk-button-default" disabled>Disabled</button>
<!-- Button with icon -->
<button class="uk-button uk-button-default">
<span uk-icon="icon: heart"></span> Like
</button>
<button class="uk-button uk-button-default">Default</button>
<button class="uk-button uk-button-primary">Primary</button>
<button class="uk-button uk-button-secondary">Secondary</button>
<button class="uk-button uk-button-danger">Danger</button>
<button class="uk-button uk-button-text">Text</button>
<button class="uk-button uk-button-link">Link</button>
<!-- Button sizes -->
<button class="uk-button uk-button-small">Small</button>
<button class="uk-button uk-button-default">Default</button>
<button class="uk-button uk-button-large">Large</button>
<!-- Disabled button -->
<button class="uk-button uk-button-default" disabled>Disabled</button>
<!-- Button with icon -->
<button class="uk-button uk-button-default">
<span uk-icon="icon: heart"></span> Like
</button>
Cards
<!-- Basic card -->
<div class="uk-card uk-card-default">
<div class="uk-card-body">
<h3 class="uk-card-title">Card Title</h3>
<p>Lorem ipsum dolor sit amet.</p>
</div>
</div>
<!-- Card with image -->
<div class="uk-card uk-card-default">
<div class="uk-card-media-top">
<img src="image.jpg" alt="">
</div>
<div class="uk-card-body">
<h3 class="uk-card-title">Media Card</h3>
<p>Lorem ipsum dolor sit amet.</p>
</div>
</div>
<!-- Card with header and footer -->
<div class="uk-card uk-card-default">
<div class="uk-card-header">
<h3 class="uk-card-title">Header</h3>
</div>
<div class="uk-card-body">
<p>Lorem ipsum dolor sit amet.</p>
</div>
<div class="uk-card-footer">
<a href="#" class="uk-button uk-button-text">Read more</a>
</div>
</div>
<div class="uk-card uk-card-default">
<div class="uk-card-body">
<h3 class="uk-card-title">Card Title</h3>
<p>Lorem ipsum dolor sit amet.</p>
</div>
</div>
<!-- Card with image -->
<div class="uk-card uk-card-default">
<div class="uk-card-media-top">
<img src="image.jpg" alt="">
</div>
<div class="uk-card-body">
<h3 class="uk-card-title">Media Card</h3>
<p>Lorem ipsum dolor sit amet.</p>
</div>
</div>
<!-- Card with header and footer -->
<div class="uk-card uk-card-default">
<div class="uk-card-header">
<h3 class="uk-card-title">Header</h3>
</div>
<div class="uk-card-body">
<p>Lorem ipsum dolor sit amet.</p>
</div>
<div class="uk-card-footer">
<a href="#" class="uk-button uk-button-text">Read more</a>
</div>
</div>
JavaScript Components
Modal
<!-- Modal trigger -->
<a href="#modal" uk-toggle>Open Modal</a>
<!-- Modal container -->
<div id="modal" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<button class="uk-modal-close-default" type="button" uk-close></button>
<h2 class="uk-modal-title">Modal Title</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p class="uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<button class="uk-button uk-button-primary" type="button">Save</button>
</p>
</div>
</div>
<a href="#modal" uk-toggle>Open Modal</a>
<!-- Modal container -->
<div id="modal" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<button class="uk-modal-close-default" type="button" uk-close></button>
<h2 class="uk-modal-title">Modal Title</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p class="uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<button class="uk-button uk-button-primary" type="button">Save</button>
</p>
</div>
</div>
Dropdown
<!-- Dropdown trigger -->
<button class="uk-button uk-button-default" type="button">Hover</button>
<div uk-dropdown>
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Active</a></li>
<li><a href="#">Item</a></li>
<li class="uk-nav-header">Header</li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Item</a></li>
</ul>
</div>
<!-- Click dropdown -->
<button class="uk-button uk-button-default" type="button">Click</button>
<div uk-dropdown="mode: click">
<ul class="uk-nav uk-dropdown-nav">
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
</ul>
</div>
<button class="uk-button uk-button-default" type="button">Hover</button>
<div uk-dropdown>
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Active</a></li>
<li><a href="#">Item</a></li>
<li class="uk-nav-header">Header</li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Item</a></li>
</ul>
</div>
<!-- Click dropdown -->
<button class="uk-button uk-button-default" type="button">Click</button>
<div uk-dropdown="mode: click">
<ul class="uk-nav uk-dropdown-nav">
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
</ul>
</div>
Utilities
Spacing
<!-- Margin and padding utilities -->
<!-- Format: {property}{side}-{size} -->
<!-- Margin all sides -->
<div class="uk-margin">Default margin</div>
<div class="uk-margin-small">Small margin</div>
<div class="uk-margin-medium">Medium margin</div>
<div class="uk-margin-large">Large margin</div>
<div class="uk-margin-remove">Remove margin</div>
<!-- Margin specific sides -->
<div class="uk-margin-top">Margin top</div>
<div class="uk-margin-bottom">Margin bottom</div>
<div class="uk-margin-left">Margin left</div>
<div class="uk-margin-right">Margin right</div>
<!-- Padding -->
<div class="uk-padding">Default padding</div>
<div class="uk-padding-small">Small padding</div>
<div class="uk-padding-medium">Medium padding</div>
<div class="uk-padding-large">Large padding</div>
<div class="uk-padding-remove">Remove padding</div>
<!-- Format: {property}{side}-{size} -->
<!-- Margin all sides -->
<div class="uk-margin">Default margin</div>
<div class="uk-margin-small">Small margin</div>
<div class="uk-margin-medium">Medium margin</div>
<div class="uk-margin-large">Large margin</div>
<div class="uk-margin-remove">Remove margin</div>
<!-- Margin specific sides -->
<div class="uk-margin-top">Margin top</div>
<div class="uk-margin-bottom">Margin bottom</div>
<div class="uk-margin-left">Margin left</div>
<div class="uk-margin-right">Margin right</div>
<!-- Padding -->
<div class="uk-padding">Default padding</div>
<div class="uk-padding-small">Small padding</div>
<div class="uk-padding-medium">Medium padding</div>
<div class="uk-padding-large">Large padding</div>
<div class="uk-padding-remove">Remove padding</div>
Text Utilities
<!-- Text alignment -->
<p class="uk-text-left">Left aligned text</p>
<p class="uk-text-center">Center aligned text</p>
<p class="uk-text-right">Right aligned text</p>
<p class="uk-text-justify">Justified text</p>
<!-- Responsive text alignment -->
<p class="uk-text-left@m uk-text-center">
Center on mobile, left on medium and larger
</p>
<!-- Text wrapping -->
<div class="uk-text-nowrap">No wrap text</div>
<div class="uk-text-truncate">Truncated text if it overflows</div>
<!-- Text transformation -->
<p class="uk-text-capitalize">capitalized text</p>
<p class="uk-text-uppercase">uppercase text</p>
<p class="uk-text-lowercase">LOWERCASE TEXT</p>
<!-- Text styling -->
<p class="uk-text-lead">Lead text</p>
<p class="uk-text-meta">Meta text</p>
<p class="uk-text-primary">Primary colored text</p>
<p class="uk-text-success">Success colored text</p>
<p class="uk-text-warning">Warning colored text</p>
<p class="uk-text-danger">Danger colored text</p>
<p class="uk-text-left">Left aligned text</p>
<p class="uk-text-center">Center aligned text</p>
<p class="uk-text-right">Right aligned text</p>
<p class="uk-text-justify">Justified text</p>
<!-- Responsive text alignment -->
<p class="uk-text-left@m uk-text-center">
Center on mobile, left on medium and larger
</p>
<!-- Text wrapping -->
<div class="uk-text-nowrap">No wrap text</div>
<div class="uk-text-truncate">Truncated text if it overflows</div>
<!-- Text transformation -->
<p class="uk-text-capitalize">capitalized text</p>
<p class="uk-text-uppercase">uppercase text</p>
<p class="uk-text-lowercase">LOWERCASE TEXT</p>
<!-- Text styling -->
<p class="uk-text-lead">Lead text</p>
<p class="uk-text-meta">Meta text</p>
<p class="uk-text-primary">Primary colored text</p>
<p class="uk-text-success">Success colored text</p>
<p class="uk-text-warning">Warning colored text</p>
<p class="uk-text-danger">Danger colored text</p>
SEO Optimization
SEO Best Practices with UIkit
<!-- Semantic HTML structure -->
<header class="uk-section uk-section-primary">
<div class="uk-container">
<h1>Page Title</h1>
<p class="uk-text-lead">Page description</p>
</div>
</header>
<main class="uk-section">
<div class="uk-container">
<article>
<h2>Article Title</h2>
<p>Article content...</p>
<section>
<h3>Section Title</h3>
<p>Section content...</p>
</section>
</article>
</div>
</main>
<footer class="uk-section uk-section-secondary">
<div class="uk-container">
<p>Footer content</p>
</div>
</footer>
<!-- Schema markup example -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Page Title",
"description": "Page description",
"url": "https://example.com/page"
}
</script>
<header class="uk-section uk-section-primary">
<div class="uk-container">
<h1>Page Title</h1>
<p class="uk-text-lead">Page description</p>
</div>
</header>
<main class="uk-section">
<div class="uk-container">
<article>
<h2>Article Title</h2>
<p>Article content...</p>
<section>
<h3>Section Title</h3>
<p>Section content...</p>
</section>
</article>
</div>
</main>
<footer class="uk-section uk-section-secondary">
<div class="uk-container">
<p>Footer content</p>
</div>
</footer>
<!-- Schema markup example -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Page Title",
"description": "Page description",
"url": "https://example.com/page"
}
</script>
SEO Tips:
- Use semantic HTML5 elements (header, nav, main, article, section, footer)
- Include proper heading hierarchy (h1, h2, h3)
- Add schema markup for rich snippets
- Optimize images with alt attributes and proper dimensions
- Ensure fast loading by minimizing CSS and JavaScript
- Make your site mobile-friendly with responsive design