// Name: Grid // Description: Provides a responsive, fluid and nestable grid // // Component: `uk-grid` // `uk-width-*` // `uk-push-*` // `uk-pull-*` // // Modifiers: `uk-grid-collapse` // `uk-grid-small` // `uk-grid-medium` // `uk-grid-large` // `uk-grid-divider` // `uk-grid-margin` // `uk-grid-match` // `uk-grid-width-*` // // Uses: Panel: `uk-panel` // // Used by: Dropdown // // Markup: // // //
//
//
//
// // //
//
//
//
//
//
//
//
//
// // ======================================================================== // Variables // ======================================================================== $grid-gutter-horizontal: 25px !default; $grid-gutter-vertical: 25px !default; $grid-gutter-large-horizontal: 35px !default; $grid-gutter-large-vertical: 35px !default; $grid-gutter-xlarge-horizontal: 50px !default; $grid-gutter-xlarge-vertical: 50px !default; $grid-gutter-small-horizontal: 10px !default; $grid-gutter-small-vertical: 10px !default; $grid-divider-border: #ddd !default; $grid-divider-border-width: 1px !default; /* ======================================================================== Component: Grid ========================================================================== */ /* * 1. Makes grid more robust so that it can be used with other block elements like lists */ .uk-grid { display: -ms-flexbox; display: -webkit-flex; display: flex; -ms-flex-wrap: wrap; -webkit-flex-wrap: wrap; flex-wrap: wrap; /* 1 */ margin: 0; padding: 0; list-style: none; } /* * DEPRECATED * Micro clearfix * Can't use `table` because it creates a 1px gap when it becomes a flex item, only in Webkit */ .uk-grid:before, .uk-grid:after { content: ""; display: block; overflow: hidden; } .uk-grid:after { clear: both; } /* * Grid cell * 1. Space is allocated solely based on content dimensions * 2. Makes grid more robust so that it can be used with other block elements * 3. DEPRECATED Using `float` to support IE9 */ .uk-grid > * { /* 1 */ -ms-flex: none; -webkit-flex: none; flex: none; /* 2 */ margin: 0; /* 3 */ float: left; } /* * Remove margin from the last-child */ .uk-grid > * > :last-child { margin-bottom: 0; } /* Grid gutter ========================================================================== */ /* * Default gutter */ /* Horizontal */ .uk-grid { margin-left: -$grid-gutter-horizontal; } .uk-grid > * { padding-left: $grid-gutter-horizontal; } /* Vertical */ .uk-grid + .uk-grid, .uk-grid-margin, .uk-grid > * > .uk-panel + .uk-panel { margin-top: $grid-gutter-vertical; } /* Large screen and bigger */ @media (min-width: $breakpoint-xlarge) { /* Horizontal */ .uk-grid { margin-left: -$grid-gutter-large-horizontal; } .uk-grid > * { padding-left: $grid-gutter-large-horizontal; } /* Vertical */ .uk-grid + .uk-grid, .uk-grid-margin, .uk-grid > * > .uk-panel + .uk-panel { margin-top: $grid-gutter-large-vertical; } } /* * Collapse gutter */ /* Horizontal */ .uk-grid-collapse { margin-left: 0; } .uk-grid-collapse > * { padding-left: 0; } /* Vertical */ .uk-grid-collapse + .uk-grid-collapse, .uk-grid-collapse > .uk-grid-margin, .uk-grid-collapse > * > .uk-panel + .uk-panel { margin-top: 0; } /* * Small gutter */ /* Horizontal */ .uk-grid-small { margin-left: -$grid-gutter-small-horizontal; } .uk-grid-small > * { padding-left: $grid-gutter-small-horizontal; } /* Vertical */ .uk-grid-small + .uk-grid-small, .uk-grid-small > .uk-grid-margin, .uk-grid-small > * > .uk-panel + .uk-panel { margin-top: $grid-gutter-small-vertical; } /* * Medium gutter */ /* Horizontal */ .uk-grid-medium { margin-left: -$grid-gutter-horizontal; } .uk-grid-medium > * { padding-left: $grid-gutter-horizontal; } /* Vertical */ .uk-grid-medium + .uk-grid-medium, .uk-grid-medium > .uk-grid-margin, .uk-grid-medium > * > .uk-panel + .uk-panel { margin-top: $grid-gutter-vertical; } /* * Large gutter */ /* Large screen and bigger */ @media (min-width: $breakpoint-large) { /* Horizontal */ .uk-grid-large { margin-left: -$grid-gutter-large-horizontal; } .uk-grid-large > * { padding-left: $grid-gutter-large-horizontal; } /* Vertical */ .uk-grid-large + .uk-grid-large, .uk-grid-large-margin, .uk-grid-large > * > .uk-panel + .uk-panel { margin-top: $grid-gutter-large-vertical; } } /* Extra Large screens */ @media (min-width: $breakpoint-xlarge) { /* Horizontal */ .uk-grid-large { margin-left: -$grid-gutter-xlarge-horizontal; } .uk-grid-large > * { padding-left: $grid-gutter-xlarge-horizontal; } /* Vertical */ .uk-grid-large + .uk-grid-large, .uk-grid-large-margin, .uk-grid-large > * > .uk-panel + .uk-panel { margin-top: $grid-gutter-xlarge-vertical; } } /* Modifier: `uk-grid-divider` ========================================================================== */ /* * Horizontal divider * Only works with the default gutter. Does not work with gutter collapse, small or large. * Does not work with `uk-push-*`, `uk-pull-*` and not if the columns float into the next row. */ .uk-grid-divider:not(:empty) { margin-left: -$grid-gutter-horizontal; margin-right: -$grid-gutter-horizontal; } .uk-grid-divider > * { padding-left: $grid-gutter-horizontal; padding-right: $grid-gutter-horizontal; } .uk-grid-divider > [class*='uk-width-1-']:not(.uk-width-1-1):nth-child(n+2), .uk-grid-divider > [class*='uk-width-2-']:nth-child(n+2), .uk-grid-divider > [class*='uk-width-3-']:nth-child(n+2), .uk-grid-divider > [class*='uk-width-4-']:nth-child(n+2), .uk-grid-divider > [class*='uk-width-5-']:nth-child(n+2), .uk-grid-divider > [class*='uk-width-6-']:nth-child(n+2), .uk-grid-divider > [class*='uk-width-7-']:nth-child(n+2), .uk-grid-divider > [class*='uk-width-8-']:nth-child(n+2), .uk-grid-divider > [class*='uk-width-9-']:nth-child(n+2) { border-left: $grid-divider-border-width solid $grid-divider-border; } /* Tablet and bigger */ @media (min-width: $breakpoint-medium) { .uk-grid-divider > [class*='uk-width-medium-']:not(.uk-width-medium-1-1):nth-child(n+2) { border-left: $grid-divider-border-width solid $grid-divider-border; } } /* Desktop and bigger */ @media (min-width: $breakpoint-large) { .uk-grid-divider > [class*='uk-width-large-']:not(.uk-width-large-1-1):nth-child(n+2) { border-left: $grid-divider-border-width solid $grid-divider-border; } } /* Large screen and bigger */ @media (min-width: $breakpoint-xlarge) { /* * Large gutter */ .uk-grid-divider:not(:empty) { margin-left: -$grid-gutter-large-horizontal; margin-right: -$grid-gutter-large-horizontal; } .uk-grid-divider > * { padding-left: $grid-gutter-large-horizontal; padding-right: $grid-gutter-large-horizontal; } .uk-grid-divider:empty { margin-top: $grid-gutter-large-vertical; margin-bottom: $grid-gutter-large-vertical; } } /* * Vertical divider */ .uk-grid-divider:empty { margin-top: $grid-gutter-vertical; margin-bottom: $grid-gutter-vertical; border-top: $grid-divider-border-width solid $grid-divider-border; } /* Match panels in grids ========================================================================== */ /* * 1. Behave like a block element */ .uk-grid-match > * { display: -ms-flexbox; display: -webkit-flex; display: flex; /* 1 */ -ms-flex-wrap: wrap; -webkit-flex-wrap: wrap; flex-wrap: wrap; } .uk-grid-match > * > * { /* 1 */ -ms-flex: none; -webkit-flex: none; flex: none; box-sizing: border-box; width: 100%; } /* Even grid cell widths ========================================================================== */ [class*='uk-grid-width'] > * { box-sizing: border-box; width: 100%; } .uk-grid-width-1-2 > * { width: 50%; } .uk-grid-width-1-3 > * { width: 33.333%; } .uk-grid-width-1-4 > * { width: 25%; } .uk-grid-width-1-5 > * { width: 20%; } .uk-grid-width-1-6 > * { width: 16.666%; } .uk-grid-width-1-10 > * { width: 10%; } .uk-grid-width-auto > * { width: auto; } /* Phone landscape and bigger */ @media (min-width: $breakpoint-small) { .uk-grid-width-small-1-1 > * { width: 100%; } .uk-grid-width-small-1-2 > * { width: 50%; } .uk-grid-width-small-1-3 > * { width: 33.333%; } .uk-grid-width-small-1-4 > * { width: 25%; } .uk-grid-width-small-1-5 > * { width: 20%; } .uk-grid-width-small-1-6 > * { width: 16.666%; } .uk-grid-width-small-1-10 > * { width: 10%; } } /* Tablet and bigger */ @media (min-width: $breakpoint-medium) { .uk-grid-width-medium-1-1 > * { width: 100%; } .uk-grid-width-medium-1-2 > * { width: 50%; } .uk-grid-width-medium-1-3 > * { width: 33.333%; } .uk-grid-width-medium-1-4 > * { width: 25%; } .uk-grid-width-medium-1-5 > * { width: 20%; } .uk-grid-width-medium-1-6 > * { width: 16.666%; } .uk-grid-width-medium-1-10 > * { width: 10%; } } /* Desktop and bigger */ @media (min-width: $breakpoint-large) { .uk-grid-width-large-1-1 > * { width: 100%; } .uk-grid-width-large-1-2 > * { width: 50%; } .uk-grid-width-large-1-3 > * { width: 33.333%; } .uk-grid-width-large-1-4 > * { width: 25%; } .uk-grid-width-large-1-5 > * { width: 20%; } .uk-grid-width-large-1-6 > * { width: 16.666%; } .uk-grid-width-large-1-10 > * { width: 10%; } } /* Large screen and bigger */ @media (min-width: $breakpoint-xlarge) { .uk-grid-width-xlarge-1-1 > * { width: 100%; } .uk-grid-width-xlarge-1-2 > * { width: 50%; } .uk-grid-width-xlarge-1-3 > * { width: 33.333%; } .uk-grid-width-xlarge-1-4 > * { width: 25%; } .uk-grid-width-xlarge-1-5 > * { width: 20%; } .uk-grid-width-xlarge-1-6 > * { width: 16.666%; } .uk-grid-width-xlarge-1-10 > * { width: 10%; } } /* Sub-objects: `uk-width-*` ========================================================================== */ [class*='uk-width'] { box-sizing: border-box; width: 100%; } /* * Widths */ /* Whole */ .uk-width-1-1 { width: 100%; } /* Halves */ .uk-width-1-2, .uk-width-2-4, .uk-width-3-6, .uk-width-5-10 { width: 50%; } /* Thirds */ .uk-width-1-3, .uk-width-2-6 { width: 33.333%; } .uk-width-2-3, .uk-width-4-6 { width: 66.666%; } /* Quarters */ .uk-width-1-4 { width: 25%; } .uk-width-3-4 { width: 75%; } /* Fifths */ .uk-width-1-5, .uk-width-2-10 { width: 20%; } .uk-width-2-5, .uk-width-4-10 { width: 40%; } .uk-width-3-5, .uk-width-6-10 { width: 60%; } .uk-width-4-5, .uk-width-8-10 { width: 80%; } /* Sixths */ .uk-width-1-6 { width: 16.666%; } .uk-width-5-6 { width: 83.333%; } /* Tenths */ .uk-width-1-10 { width: 10%; } .uk-width-3-10 { width: 30%; } .uk-width-7-10 { width: 70%; } .uk-width-9-10 { width: 90%; } /* Phone landscape and bigger */ @media (min-width: $breakpoint-small) { /* Whole */ .uk-width-small-1-1 { width: 100%; } /* Halves */ .uk-width-small-1-2, .uk-width-small-2-4, .uk-width-small-3-6, .uk-width-small-5-10 { width: 50%; } /* Thirds */ .uk-width-small-1-3, .uk-width-small-2-6 { width: 33.333%; } .uk-width-small-2-3, .uk-width-small-4-6 { width: 66.666%; } /* Quarters */ .uk-width-small-1-4 { width: 25%; } .uk-width-small-3-4 { width: 75%; } /* Fifths */ .uk-width-small-1-5, .uk-width-small-2-10 { width: 20%; } .uk-width-small-2-5, .uk-width-small-4-10 { width: 40%; } .uk-width-small-3-5, .uk-width-small-6-10 { width: 60%; } .uk-width-small-4-5, .uk-width-small-8-10 { width: 80%; } /* Sixths */ .uk-width-small-1-6 { width: 16.666%; } .uk-width-small-5-6 { width: 83.333%; } /* Tenths */ .uk-width-small-1-10 { width: 10%; } .uk-width-small-3-10 { width: 30%; } .uk-width-small-7-10 { width: 70%; } .uk-width-small-9-10 { width: 90%; } } /* Tablet and bigger */ @media (min-width: $breakpoint-medium) { /* Whole */ .uk-width-medium-1-1 { width: 100%; } /* Halves */ .uk-width-medium-1-2, .uk-width-medium-2-4, .uk-width-medium-3-6, .uk-width-medium-5-10 { width: 50%; } /* Thirds */ .uk-width-medium-1-3, .uk-width-medium-2-6 { width: 33.333%; } .uk-width-medium-2-3, .uk-width-medium-4-6 { width: 66.666%; } /* Quarters */ .uk-width-medium-1-4 { width: 25%; } .uk-width-medium-3-4 { width: 75%; } /* Fifths */ .uk-width-medium-1-5, .uk-width-medium-2-10 { width: 20%; } .uk-width-medium-2-5, .uk-width-medium-4-10 { width: 40%; } .uk-width-medium-3-5, .uk-width-medium-6-10 { width: 60%; } .uk-width-medium-4-5, .uk-width-medium-8-10 { width: 80%; } /* Sixths */ .uk-width-medium-1-6 { width: 16.666%; } .uk-width-medium-5-6 { width: 83.333%; } /* Tenths */ .uk-width-medium-1-10 { width: 10%; } .uk-width-medium-3-10 { width: 30%; } .uk-width-medium-7-10 { width: 70%; } .uk-width-medium-9-10 { width: 90%; } } /* Desktop and bigger */ @media (min-width: $breakpoint-large) { /* Whole */ .uk-width-large-1-1 { width: 100%; } /* Halves */ .uk-width-large-1-2, .uk-width-large-2-4, .uk-width-large-3-6, .uk-width-large-5-10 { width: 50%; } /* Thirds */ .uk-width-large-1-3, .uk-width-large-2-6 { width: 33.333%; } .uk-width-large-2-3, .uk-width-large-4-6 { width: 66.666%; } /* Quarters */ .uk-width-large-1-4 { width: 25%; } .uk-width-large-3-4 { width: 75%; } /* Fifths */ .uk-width-large-1-5, .uk-width-large-2-10 { width: 20%; } .uk-width-large-2-5, .uk-width-large-4-10 { width: 40%; } .uk-width-large-3-5, .uk-width-large-6-10 { width: 60%; } .uk-width-large-4-5, .uk-width-large-8-10 { width: 80%; } /* Sixths */ .uk-width-large-1-6 { width: 16.666%; } .uk-width-large-5-6 { width: 83.333%; } /* Tenths */ .uk-width-large-1-10 { width: 10%; } .uk-width-large-3-10 { width: 30%; } .uk-width-large-7-10 { width: 70%; } .uk-width-large-9-10 { width: 90%; } } /* Large screen and bigger */ @media (min-width: $breakpoint-xlarge) { /* Whole */ .uk-width-xlarge-1-1 { width: 100%; } /* Halves */ .uk-width-xlarge-1-2, .uk-width-xlarge-2-4, .uk-width-xlarge-3-6, .uk-width-xlarge-5-10 { width: 50%; } /* Thirds */ .uk-width-xlarge-1-3, .uk-width-xlarge-2-6 { width: 33.333%; } .uk-width-xlarge-2-3, .uk-width-xlarge-4-6 { width: 66.666%; } /* Quarters */ .uk-width-xlarge-1-4 { width: 25%; } .uk-width-xlarge-3-4 { width: 75%; } /* Fifths */ .uk-width-xlarge-1-5, .uk-width-xlarge-2-10 { width: 20%; } .uk-width-xlarge-2-5, .uk-width-xlarge-4-10 { width: 40%; } .uk-width-xlarge-3-5, .uk-width-xlarge-6-10 { width: 60%; } .uk-width-xlarge-4-5, .uk-width-xlarge-8-10 { width: 80%; } /* Sixths */ .uk-width-xlarge-1-6 { width: 16.666%; } .uk-width-xlarge-5-6 { width: 83.333%; } /* Tenths */ .uk-width-xlarge-1-10 { width: 10%; } .uk-width-xlarge-3-10 { width: 30%; } .uk-width-xlarge-7-10 { width: 70%; } .uk-width-xlarge-9-10 { width: 90%; } } /* Sub-object: `uk-push-*` and `uk-pull-*` ========================================================================== */ /* * Source ordering * Works only with `uk-width-medium-*` */ /* Tablet and bigger */ @media (min-width: $breakpoint-medium) { [class*='uk-push-'], [class*='uk-pull-'] { position: relative; } /* * Push */ /* Halves */ .uk-push-1-2, .uk-push-2-4, .uk-push-3-6, .uk-push-5-10 { left: 50%; } /* Thirds */ .uk-push-1-3, .uk-push-2-6 { left: 33.333%; } .uk-push-2-3, .uk-push-4-6 { left: 66.666%; } /* Quarters */ .uk-push-1-4 { left: 25%; } .uk-push-3-4 { left: 75%; } /* Fifths */ .uk-push-1-5, .uk-push-2-10 { left: 20%; } .uk-push-2-5, .uk-push-4-10 { left: 40%; } .uk-push-3-5, .uk-push-6-10 { left: 60%; } .uk-push-4-5, .uk-push-8-10 { left: 80%; } /* Sixths */ .uk-push-1-6 { left: 16.666%; } .uk-push-5-6 { left: 83.333%; } /* Tenths */ .uk-push-1-10 { left: 10%; } .uk-push-3-10 { left: 30%; } .uk-push-7-10 { left: 70%; } .uk-push-9-10 { left: 90%; } /* * Pull */ /* Halves */ .uk-pull-1-2, .uk-pull-2-4, .uk-pull-3-6, .uk-pull-5-10 { left: -50%; } /* Thirds */ .uk-pull-1-3, .uk-pull-2-6 { left: -33.333%; } .uk-pull-2-3, .uk-pull-4-6 { left: -66.666%; } /* Quarters */ .uk-pull-1-4 { left: -25%; } .uk-pull-3-4 { left: -75%; } /* Fifths */ .uk-pull-1-5, .uk-pull-2-10 { left: -20%; } .uk-pull-2-5, .uk-pull-4-10 { left: -40%; } .uk-pull-3-5, .uk-pull-6-10 { left: -60%; } .uk-pull-4-5, .uk-pull-8-10 { left: -80%; } /* Sixths */ .uk-pull-1-6 { left: -16.666%; } .uk-pull-5-6 { left: -83.333%; } /* Tenths */ .uk-pull-1-10 { left: -10%; } .uk-pull-3-10 { left: -30%; } .uk-pull-7-10 { left: -70%; } .uk-pull-9-10 { left: -90%; } } // Hooks // ======================================================================== @include hook-grid-misc(); // @mixin hook-grid-misc(){}