uikit
Version:
UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.
248 lines (186 loc) • 6.32 kB
text/less
// Name: Tile
// Description: Component to create tiled boxes
//
// Component: `uk-tile`
//
// Modifiers: `uk-tile-xsmall`
// `uk-tile-small`
// `uk-tile-large`
// `uk-tile-xlarge`
// `uk-tile-default`
// `uk-tile-muted`
// `uk-tile-primary`
// `uk-tile-secondary`
//
// States: `uk-preserve-color`
//
// ========================================================================
// Variables
// ========================================================================
@tile-padding-horizontal: 15px;
@tile-padding-horizontal-s: @global-gutter;
@tile-padding-horizontal-m: @global-medium-gutter;
@tile-padding-vertical: @global-medium-margin;
@tile-padding-vertical-m: @global-large-margin;
@tile-xsmall-padding-vertical: @global-margin;
@tile-small-padding-vertical: @global-medium-margin;
@tile-large-padding-vertical: @global-large-margin;
@tile-large-padding-vertical-m: @global-xlarge-margin;
@tile-xlarge-padding-vertical: @global-xlarge-margin;
@tile-xlarge-padding-vertical-m: (@global-large-margin + @global-xlarge-margin);
@tile-default-background: @global-background;
@tile-default-color-mode: dark;
@tile-muted-background: @global-muted-background;
@tile-muted-color-mode: dark;
@tile-primary-background: @global-primary-background;
@tile-primary-color-mode: light;
@tile-secondary-background: @global-secondary-background;
@tile-secondary-color-mode: light;
/* ========================================================================
Component: Tile
========================================================================== */
.uk-tile {
display: flow-root;
position: relative;
box-sizing: border-box;
padding-left: @tile-padding-horizontal;
padding-right: @tile-padding-horizontal;
padding-top: @tile-padding-vertical;
padding-bottom: @tile-padding-vertical;
.hook-tile();
}
/* Phone landscape and bigger */
@media (min-width: @breakpoint-small) {
.uk-tile {
padding-left: @tile-padding-horizontal-s;
padding-right: @tile-padding-horizontal-s;
}
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-tile {
padding-left: @tile-padding-horizontal-m;
padding-right: @tile-padding-horizontal-m;
padding-top: @tile-padding-vertical-m;
padding-bottom: @tile-padding-vertical-m;
}
}
/*
* Remove margin from the last-child
*/
.uk-tile > :last-child { margin-bottom: 0; }
/* Size modifiers
========================================================================== */
/*
* XSmall
*/
.uk-tile-xsmall {
padding-top: @tile-xsmall-padding-vertical;
padding-bottom: @tile-xsmall-padding-vertical;
}
/*
* Small
*/
.uk-tile-small {
padding-top: @tile-small-padding-vertical;
padding-bottom: @tile-small-padding-vertical;
}
/*
* Large
*/
.uk-tile-large {
padding-top: @tile-large-padding-vertical;
padding-bottom: @tile-large-padding-vertical;
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-tile-large {
padding-top: @tile-large-padding-vertical-m;
padding-bottom: @tile-large-padding-vertical-m;
}
}
/*
* XLarge
*/
.uk-tile-xlarge {
padding-top: @tile-xlarge-padding-vertical;
padding-bottom: @tile-xlarge-padding-vertical;
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-tile-xlarge {
padding-top: @tile-xlarge-padding-vertical-m;
padding-bottom: @tile-xlarge-padding-vertical-m;
}
}
/* Style modifiers
========================================================================== */
/*
* Default
*/
.uk-tile-default {
--uk-inverse: @tile-default-color-mode;
background-color: @tile-default-background;
.hook-tile-default();
}
.uk-tile-default.uk-tile-hover:hover {
.hook-tile-default-hover();
}
// Color Mode
.uk-tile-default:not(.uk-preserve-color):extend(.uk-light all) when (@tile-default-color-mode = light) {}
.uk-tile-default:not(.uk-preserve-color):extend(.uk-dark all) when (@tile-default-color-mode = dark) {}
/*
* Muted
*/
.uk-tile-muted {
--uk-inverse: @tile-muted-color-mode;
background-color: @tile-muted-background;
.hook-tile-muted();
}
.uk-tile-muted.uk-tile-hover:hover {
.hook-tile-muted-hover();
}
// Color Mode
.uk-tile-muted:not(.uk-preserve-color):extend(.uk-light all) when (@tile-muted-color-mode = light) {}
.uk-tile-muted:not(.uk-preserve-color):extend(.uk-dark all) when (@tile-muted-color-mode = dark) {}
/*
* Primary
*/
.uk-tile-primary {
--uk-inverse: @tile-primary-color-mode;
background-color: @tile-primary-background;
.hook-tile-primary();
}
.uk-tile-primary.uk-tile-hover:hover {
.hook-tile-primary-hover();
}
// Color Mode
.uk-tile-primary:not(.uk-preserve-color):extend(.uk-light all) when (@tile-primary-color-mode = light) {}
.uk-tile-primary:not(.uk-preserve-color):extend(.uk-dark all) when (@tile-primary-color-mode = dark) {}
/*
* Secondary
*/
.uk-tile-secondary {
--uk-inverse: @tile-secondary-color-mode;
background-color: @tile-secondary-background;
.hook-tile-secondary();
}
.uk-tile-secondary.uk-tile-hover:hover {
.hook-tile-secondary-hover();
}
// Color Mode
.uk-tile-secondary:not(.uk-preserve-color):extend(.uk-light all) when (@tile-secondary-color-mode = light) {}
.uk-tile-secondary:not(.uk-preserve-color):extend(.uk-dark all) when (@tile-secondary-color-mode = dark) {}
// Hooks
// ========================================================================
.hook-tile-misc();
.hook-tile() {}
.hook-tile-default() {}
.hook-tile-default-hover() {}
.hook-tile-muted() {}
.hook-tile-muted-hover() {}
.hook-tile-primary() {}
.hook-tile-primary-hover() {}
.hook-tile-secondary() {}
.hook-tile-secondary-hover() {}
.hook-tile-misc() {}