uikit
Version:
UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.
186 lines (128 loc) • 6.07 kB
text/less
// Name: Container
// Description: Component to align and center your site and grid content
//
// Component: `uk-container`
//
// Modifier: `uk-container-small`
// `uk-container-large`
// `uk-container-expand`
// `uk-container-expand-left`
// `uk-container-expand-right`
// `uk-container-item-padding-remove-left`
// `uk-container-item-padding-remove-right`
//
// ========================================================================
// Variables
// ========================================================================
@container-max-width: 1200px;
@container-xsmall-max-width: 750px;
@container-small-max-width: 900px;
@container-large-max-width: 1400px;
@container-xlarge-max-width: 1600px;
@container-padding-horizontal: 15px;
@container-padding-horizontal-s: @global-gutter;
@container-padding-horizontal-m: @global-medium-gutter;
/* ========================================================================
Component: Container
========================================================================== */
/*
* 1. Box sizing has to be `content-box` so the max-width is always the same and
* unaffected by the padding on different breakpoints. It's important for the size modifiers.
*/
.uk-container {
display: flow-root;
/* 1 */
box-sizing: content-box;
max-width: @container-max-width;
margin-left: auto;
margin-right: auto;
padding-left: @container-padding-horizontal;
padding-right: @container-padding-horizontal;
}
/* Phone landscape and bigger */
@media (min-width: @breakpoint-small) {
.uk-container {
padding-left: @container-padding-horizontal-s;
padding-right: @container-padding-horizontal-s;
}
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-container {
padding-left: @container-padding-horizontal-m;
padding-right: @container-padding-horizontal-m;
}
}
/*
* Remove margin from the last-child
*/
.uk-container > :last-child { margin-bottom: 0; }
/*
* Remove padding from nested containers
*/
.uk-container .uk-container {
padding-left: 0;
padding-right: 0;
}
/* Size modifier
========================================================================== */
.uk-container-xsmall { max-width: @container-xsmall-max-width; }
.uk-container-small { max-width: @container-small-max-width; }
.uk-container-large { max-width: @container-large-max-width; }
.uk-container-xlarge { max-width: @container-xlarge-max-width; }
.uk-container-expand { max-width: none; }
/* Expand modifier
========================================================================== */
/*
* Expand one side only
*/
.uk-container-expand-left { margin-left: 0; }
.uk-container-expand-right { margin-right: 0; }
/* Phone landscape and bigger */
@media (min-width: @breakpoint-small) {
.uk-container-expand-left.uk-container-xsmall,
.uk-container-expand-right.uk-container-xsmall { max-width: ~'calc(50% + (@{container-xsmall-max-width} / 2) - @{container-padding-horizontal-s})'; }
.uk-container-expand-left.uk-container-small,
.uk-container-expand-right.uk-container-small { max-width: ~'calc(50% + (@{container-small-max-width} / 2) - @{container-padding-horizontal-s})'; }
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-container-expand-left,
.uk-container-expand-right { max-width: ~'calc(50% + (@{container-max-width} / 2) - @{container-padding-horizontal-m})'; }
.uk-container-expand-left.uk-container-xsmall,
.uk-container-expand-right.uk-container-xsmall { max-width: ~'calc(50% + (@{container-xsmall-max-width} / 2) - @{container-padding-horizontal-m})'; }
.uk-container-expand-left.uk-container-small,
.uk-container-expand-right.uk-container-small { max-width: ~'calc(50% + (@{container-small-max-width} / 2) - @{container-padding-horizontal-m})'; }
.uk-container-expand-left.uk-container-large,
.uk-container-expand-right.uk-container-large { max-width: ~'calc(50% + (@{container-large-max-width} / 2) - @{container-padding-horizontal-m})'; }
.uk-container-expand-left.uk-container-xlarge,
.uk-container-expand-right.uk-container-xlarge { max-width: ~'calc(50% + (@{container-xlarge-max-width} / 2) - @{container-padding-horizontal-m})'; }
}
/* Item
========================================================================== */
/*
* Utility classes to reset container padding on the left or right side
* Note: It has to be negative margin on the item, because it's specific to the item.
*/
.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal})'; }
.uk-container-item-padding-remove-left { margin-left: -@container-padding-horizontal; }
.uk-container-item-padding-remove-right { margin-right: -@container-padding-horizontal; }
/* Phone landscape and bigger */
@media (min-width: @breakpoint-small) {
.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal-s})'; }
.uk-container-item-padding-remove-left { margin-left: -@container-padding-horizontal-s; }
.uk-container-item-padding-remove-right { margin-right: -@container-padding-horizontal-s; }
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal-m})'; }
.uk-container-item-padding-remove-left { margin-left: -@container-padding-horizontal-m; }
.uk-container-item-padding-remove-right { margin-right: -@container-padding-horizontal-m; }
}
// Hooks
// ========================================================================
.hook-container-misc();
.hook-container-misc() {}