uikit
Version:
UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.
374 lines (288 loc) • 11.6 kB
text/less
// Name: Heading
// Description: Styles for headings
//
// Component: `uk-heading-primary`
// `uk-heading-hero`
// `uk-heading-divider`
// `uk-heading-bullet`
// `uk-heading-line`
//
// ========================================================================
// Variables
// ========================================================================
@heading-small-font-size: @heading-small-font-size-m * 0.8; // 38px 0.73
@heading-medium-font-size: @heading-medium-font-size-m * 0.825; // 40px 0.714
@heading-large-font-size: @heading-large-font-size-m * 0.85; // 50px 0.78
@heading-xlarge-font-size: @heading-large-font-size-m; // 4rem / 64px
@heading-2xlarge-font-size: @heading-xlarge-font-size-m; // 6rem / 96px
@heading-3xlarge-font-size: @heading-2xlarge-font-size-m; // 8rem / 128px
@heading-small-font-size-m: @heading-medium-font-size-l * 0.8125; // 3.25rem / 52px
@heading-medium-font-size-m: @heading-medium-font-size-l * 0.875; // 3.5rem / 56px
@heading-large-font-size-m: @heading-medium-font-size-l; // 4rem / 64px
@heading-xlarge-font-size-m: @heading-large-font-size-l; // 6rem / 96px
@heading-2xlarge-font-size-m: @heading-xlarge-font-size-l; // 8rem / 128px
@heading-3xlarge-font-size-m: @heading-2xlarge-font-size-l; // 11rem / 176px
@heading-medium-font-size-l: 4rem; // 64px
@heading-large-font-size-l: 6rem; // 96px
@heading-xlarge-font-size-l: 8rem; // 128px
@heading-2xlarge-font-size-l: 11rem; // 176px
@heading-3xlarge-font-size-l: 15rem; // 240px
@heading-small-line-height: 1.2;
@heading-medium-line-height: 1.1;
@heading-large-line-height: 1.1;
@heading-xlarge-line-height: 1;
@heading-2xlarge-line-height: 1;
@heading-3xlarge-line-height: 1;
@heading-divider-padding-bottom: ~'calc(5px + 0.1em)';
@heading-divider-border-width: ~'calc(0.2px + 0.05em)';
@heading-divider-border: @global-border;
@heading-bullet-top: ~'calc(-0.1 * 1em)';
@heading-bullet-height: ~'calc(4px + 0.7em)';
@heading-bullet-margin-right: ~'calc(5px + 0.2em)';
@heading-bullet-border-width: ~'calc(5px + 0.1em)';
@heading-bullet-border: @global-border;
@heading-line-top: 50%;
@heading-line-height: @heading-line-border-width;
@heading-line-width: 2000px;
@heading-line-border-width: ~'calc(0.2px + 0.05em)';
@heading-line-border: @global-border;
@heading-line-margin-horizontal: ~'calc(5px + 0.3em)';
/* ========================================================================
Component: Heading
========================================================================== */
.uk-heading-small {
font-size: @heading-small-font-size;
line-height: @heading-small-line-height;
.hook-heading-small();
}
.uk-heading-medium {
font-size: @heading-medium-font-size;
line-height: @heading-medium-line-height;
.hook-heading-medium();
}
.uk-heading-large {
font-size: @heading-large-font-size;
line-height: @heading-large-line-height;
.hook-heading-large();
}
.uk-heading-xlarge {
font-size: @heading-xlarge-font-size;
line-height: @heading-xlarge-line-height;
.hook-heading-xlarge();
}
.uk-heading-2xlarge {
font-size: @heading-2xlarge-font-size;
line-height: @heading-2xlarge-line-height;
.hook-heading-2xlarge();
}
.uk-heading-3xlarge {
font-size: @heading-3xlarge-font-size;
line-height: @heading-3xlarge-line-height;
.hook-heading-3xlarge();
}
/* Tablet Landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-heading-small { font-size: @heading-small-font-size-m; }
.uk-heading-medium { font-size: @heading-medium-font-size-m; }
.uk-heading-large { font-size: @heading-large-font-size-m; }
.uk-heading-xlarge { font-size: @heading-xlarge-font-size-m; }
.uk-heading-2xlarge { font-size: @heading-2xlarge-font-size-m; }
.uk-heading-3xlarge { font-size: @heading-3xlarge-font-size-m; }
}
/* Laptop and bigger */
@media (min-width: @breakpoint-large) {
.uk-heading-medium { font-size: @heading-medium-font-size-l; }
.uk-heading-large { font-size: @heading-large-font-size-l; }
.uk-heading-xlarge { font-size: @heading-xlarge-font-size-l; }
.uk-heading-2xlarge { font-size: @heading-2xlarge-font-size-l; }
.uk-heading-3xlarge { font-size: @heading-3xlarge-font-size-l; }
}
/* Primary
Deprecated: Use `uk-heading-medium` instead
========================================================================== */
@heading-primary-font-size-l: 3.75rem; // 60px
@heading-primary-line-height-l: 1.1;
@heading-primary-font-size-m: @heading-primary-font-size-l * 0.9; // 54px
@heading-primary-font-size: @heading-primary-font-size-l * 0.8; // 48px
@heading-primary-line-height: 1.2;
.uk-heading-primary when (@deprecated = true) {
font-size: @heading-primary-font-size;
line-height: @heading-primary-line-height;
.hook-heading-primary();
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-heading-primary when (@deprecated = true) { font-size: @heading-primary-font-size-m; }
}
/* Desktop and bigger */
@media (min-width: @breakpoint-large) {
.uk-heading-primary when (@deprecated = true) {
font-size: @heading-primary-font-size-l;
line-height: @heading-primary-line-height-l;
}
}
/* Hero
Deprecated: Use `uk-heading-xlarge` instead
========================================================================== */
@heading-hero-font-size-l: 8rem; // 128px
@heading-hero-line-height-l: 1;
@heading-hero-font-size-m: @heading-hero-font-size-l * 0.75; // 96px
@heading-hero-line-height-m: 1;
@heading-hero-font-size: @heading-hero-font-size-l * 0.5; // 64px
@heading-hero-line-height: 1.1;
.uk-heading-hero when (@deprecated = true) {
font-size: @heading-hero-font-size;
line-height: @heading-hero-line-height;
.hook-heading-hero();
}
/* Tablet landscape and bigger */
@media (min-width: @breakpoint-medium) {
.uk-heading-hero when (@deprecated = true) {
font-size: @heading-hero-font-size-m;
line-height: @heading-hero-line-height-m;
}
}
/* Desktop and bigger */
@media (min-width: @breakpoint-large) {
.uk-heading-hero when (@deprecated = true) {
font-size: @heading-hero-font-size-l;
line-height: @heading-hero-line-height-l;
}
}
/* Divider
========================================================================== */
.uk-heading-divider {
padding-bottom: @heading-divider-padding-bottom;
border-bottom: @heading-divider-border-width solid @heading-divider-border;
.hook-heading-divider();
}
/* Bullet
========================================================================== */
.uk-heading-bullet { position: relative; }
/*
* 1. Using `inline-block` to make it work with text alignment
* 2. Center vertically
* 3. Style
*/
.uk-heading-bullet::before {
content: "";
/* 1 */
display: inline-block;
/* 2 */
position: relative;
top: @heading-bullet-top;
vertical-align: middle;
/* 3 */
height: @heading-bullet-height;
margin-right: @heading-bullet-margin-right;
border-left: @heading-bullet-border-width solid @heading-bullet-border;
.hook-heading-bullet();
}
/* Line
========================================================================== */
/*
* Clip the child element
*/
.uk-heading-line { overflow: hidden; }
/*
* Extra markup is needed to make it work with text align
*/
.uk-heading-line > * {
display: inline-block;
position: relative;
}
/*
* 1. Center vertically
* 2. Make the element as large as possible. It's clipped by the container.
* 3. Style
*/
.uk-heading-line > ::before,
.uk-heading-line > ::after {
content: "";
/* 1 */
position: absolute;
top: ~'calc(@{heading-line-top} - (@{heading-line-height} / 2))';
/* 2 */
width: @heading-line-width;
/* 3 */
border-bottom: @heading-line-border-width solid @heading-line-border;
.hook-heading-line();
}
.uk-heading-line > ::before {
right: 100%;
margin-right: @heading-line-margin-horizontal;
}
.uk-heading-line > ::after {
left: 100%;
margin-left: @heading-line-margin-horizontal;
}
// Hooks
// ========================================================================
.hook-heading-misc();
.hook-heading-small() {}
.hook-heading-medium() {}
.hook-heading-large() {}
.hook-heading-xlarge() {}
.hook-heading-2xlarge() {}
.hook-heading-3xlarge() {}
.hook-heading-primary() {}
.hook-heading-hero() {}
.hook-heading-divider() {}
.hook-heading-bullet() {}
.hook-heading-line() {}
.hook-heading-misc() {}
// Inverse
// ========================================================================
@inverse-heading-divider-border: @inverse-global-border;
@inverse-heading-bullet-border: @inverse-global-border;
@inverse-heading-line-border: @inverse-global-border;
.hook-inverse() {
.uk-heading-small {
.hook-inverse-heading-small();
}
.uk-heading-medium {
.hook-inverse-heading-medium();
}
.uk-heading-large {
.hook-inverse-heading-large();
}
.uk-heading-xlarge {
.hook-inverse-heading-xlarge();
}
.uk-heading-2xlarge {
.hook-inverse-heading-2xlarge();
}
.uk-heading-3xlarge {
.hook-inverse-heading-3xlarge();
}
.uk-heading-primary when (@deprecated = true) {
.hook-inverse-heading-primary();
}
.uk-heading-hero when (@deprecated = true) {
.hook-inverse-heading-hero();
}
.uk-heading-divider {
border-bottom-color: @inverse-heading-divider-border;
.hook-inverse-heading-divider();
}
.uk-heading-bullet::before {
border-left-color: @inverse-heading-bullet-border;
.hook-inverse-heading-bullet();
}
.uk-heading-line > ::before,
.uk-heading-line > ::after {
border-bottom-color: @inverse-heading-line-border;
.hook-inverse-heading-line();
}
}
.hook-inverse-heading-small() {}
.hook-inverse-heading-medium() {}
.hook-inverse-heading-large() {}
.hook-inverse-heading-xlarge() {}
.hook-inverse-heading-2xlarge() {}
.hook-inverse-heading-3xlarge() {}
.hook-inverse-heading-primary() {}
.hook-inverse-heading-hero() {}
.hook-inverse-heading-divider() {}
.hook-inverse-heading-bullet() {}
.hook-inverse-heading-line() {}