Cleaning unused scss files

pull/91/head
Benoit Favreault 2015-04-10 15:37:00 -04:00 committed by Francis Lachapelle
parent a276ac366e
commit 46a262acfa
155 changed files with 457 additions and 6767 deletions

View File

@ -11,6 +11,7 @@
"grunt-contrib-sass": ">=0.8.0",
"grunt-contrib-watch": ">=0.5.3",
"grunt-postcss": "^0.3.0",
"kss": "^2.0.2",
"sassyjson": "^1.1.8"
}
}

View File

@ -1,23 +0,0 @@
/**
*
* Resources page
*
**/
.page--resources {
& .article-section__icon,
& .articles-count,
& .guides-list__item .secondary-content {
display: none;
}
& .primary-content {
padding-top: $lineHeight;
padding-bottom: $lineHeight*2;
p {
margin-top: 0;
}
}
}

View File

@ -1,82 +0,0 @@
/**
*
* Styleguide
*
**/
.page--styleguide {
.styleguide__module-title {
margin-bottom: $lineHeight;
}
section {
margin-bottom: $lineHeight*2;
border-bottom: 1px solid #ccc;
padding-bottom: $lineHeight*3 - 1;
}
.styleguide__color-list {
text-align: center;
li {
border-bottom: $lineHeight*2 solid;
margin-bottom: $lineHeight;
position: relative;
}
}
.styleguide__breadcrumb .breadcrumbs {
display: block;
}
.styleguide__lists {
ul,
ol {
margin-bottom: $lineHeight;
}
}
.styleguide__inverted-block {
background: #e8e8e8;
padding: 0 13px;
}
.styleguide__theme-block {
background: $colorLayouts;
padding: 0 13px;
}
}
.demo {
margin-bottom: $lineHeight;
margin-top: $lineHeight;
}
.demo {
[class*="g-"] {
background-color: $colorGrayLight;
position: relative;
margin-bottom: $lineHeight;
min-height: $lineHeight*6;
&::before,
&::after {
@include type--small;
display: block;
margin: 0 10px;
}
&::before {
content: 'HTML classes: ';
font-weight: 700;
}
&::after {
content: attr(class);
word-spacing: 15px;
}
}
}

View File

@ -1,3 +1,5 @@
/// _palette.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
/**
*
* Material design color palettes

View File

@ -1,8 +1,4 @@
/**
*
* Utils
*
**/
/// _utils.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
/*========== VARIABLES ==========*/

View File

@ -1,9 +1,4 @@
////
/// SOGo
/// Version: #{$Version}
/// Module: autoScrollList
/// Main definitions for autoScrollList
////
/// autoScrollList.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
// The only selector for vs-repeat lists is this id, we use attributes selector to
@ -96,4 +91,4 @@
@extend .md-tile-left;
margin-right: 0;
margin-left: 0;
}
}

View File

@ -1,3 +1,4 @@
/// backdrop.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
md-backdrop {

View File

@ -1,4 +1,4 @@
/// bottomSheet-theme.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
md-bottom-sheet.md-THEME_NAME-theme {
background-color: '{{background-50}}';
border-top-color: '{{background-300}}';

View File

@ -1,21 +0,0 @@
///
/// @filename _extends.scss
/// @project SOGo
/// @version 3.alpha
/// @module bottombar
///
/// botttombar extends
///
md-toolbar.sg-bottombar { // overclafied to compensate for the injected css
@extends md-toolbar;
background-color:$bottombar-color;
position: fixed;
bottom: 0px;
left: 0px;
// todo : implement a setting map and a getter for every z-index
// NiceToHave : implement init map and function
z-index: 100;
}

View File

@ -1,17 +0,0 @@
sg-bottombar.md-THEME_NAME-theme {
background-color: $bottombar-color;
color: '{{primary-contrast}}';
.md-button {
color: '{{primary-contrast}}';
}
&.md-accent {
background-color: '{{accent-color}}';
color: '{{accent-contrast}}';
}
&.md-warn {
background-color: '{{warn-color}}';
color: '{{warn-contrast}}';
}
}

View File

@ -1,15 +0,0 @@
///
///
/// @filename _bottombar.scss
/// @project SOGo
/// @version 3.alpha
///
/// Main botttombar module file define style for component bottombar, manly an extension of bottombar
///
///
@import 'components/toolbar/toolbar.scss'; // todo : remove when settings are done
@import "mixins";
@import "extends";
@import "bottombar-theme";
// -----------------------------------------

View File

@ -1,7 +0,0 @@
/*! test - *//**
* SOGo
* Version: 3.
*
*
*
*/

View File

@ -1,11 +1,4 @@
/*! _button.scss */
////
/// Project SOGo
/// Version 3.alpha
/// Component button
///
/// Definitions for buttons (based on md-buttons)
////
/// button.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
// sometimes fabs get squized
@ -218,4 +211,4 @@ md-toolbar .md-toolbar-tools .iconButton:last-child,
.sg-button-navicon.iconButton i[class|="md-icon"] {
padding: 0;
font-size: $iconButton-menu-size;
}
}

View File

@ -1,3 +1,4 @@
/// card.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
$card-margin: 8px !default;

View File

@ -1,3 +1,4 @@
/// checkbox.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
// Checkbox for the sidenav folders list

View File

@ -1,3 +1,4 @@
/// content.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
// angular-material is mobile first (is it ?) SOGo is not. We're inversing
@ -31,4 +32,4 @@ md-content {
md-content.md-padding {
padding: $mg;
}
}
}

View File

@ -1 +1,2 @@
@import 'extends';
/// dialog.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';

View File

@ -1,3 +1,4 @@
/// divider.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
md-divider {

View File

@ -1,12 +1,5 @@
///
///
/// @filename _icon.scss
/// @project SOGo
/// @version 3.alpha
///
/// Main icon module file extends Bower component
///
///
/// icon.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
/**

View File

@ -1,3 +1,4 @@
/// input.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
$input-container-padding: 2px !default;
$input-label-default-offset: 24px !default;

View File

@ -1,10 +1,4 @@
////
/// SOGo
/// Version: #{$Version}
/// Module: List
/// Main definitions for List
////
/// list.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
// List variables
// ----------------------------------------------------------------------------
@ -70,4 +64,4 @@ div.md-tile-left {
font-family: 'Material Design Iconic Font';
font-size: 40px;
color: rgba(0, 0, 0, 0.26);
}
}

View File

@ -1,3 +1,4 @@
/// ng-tags-input.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
tags-input {
display: block;
}

View File

@ -1 +1,2 @@
@import 'extends';
/// progressCircular.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';

View File

@ -1 +1,2 @@
@import 'extends';
/// progressLinear.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';

View File

@ -1,5 +1,4 @@
/*! pseudo-input.scss */
/// pseudo-input.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
/// Component: pseudo-input
/// This component mimics the presentation of form fields according to Google's

View File

@ -1,3 +1,4 @@
/// sidenav.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import "extends";
$sidenav-default-width: (4 * $pitch);
$sidenav-min-space: $pitch;

View File

@ -1,3 +1,4 @@
/// subheader.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
.sg-md-subheader {

View File

@ -1,3 +1,4 @@
/// toolbar.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
$toolbar-tools-height: 100%;
$toolbar-height: $pitch;
$toolbar-medium-tall-height: 88px !default;

View File

@ -1,10 +1,4 @@
// SOGo by Inverse
// sogo.nu
// version 3.alpha
//
//
// UTILITIES FUNCTIONS
//
/// _functions.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
// Strip Unit - From Foundation
// Removes the unit (e.g. px, em, rem) from a value, returning the number only.

View File

@ -1,13 +1,5 @@
/**
*
* @filename _base_styles.scss
* @project SOGo
* @version 3.alpha
*
* Define basic general styles for base elements
*
*
*/
/// _base_style.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
main {
background-color: $background-base-color;

View File

@ -0,0 +1 @@
/// _functions.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-

View File

@ -0,0 +1 @@
/// _mixins.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-

View File

@ -1,3 +1,5 @@
/// layout.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
// Import from sources for extends
// -------------------------------
@import "../../angular-material/src/core/style/layout";

View File

@ -1,3 +1,4 @@
/// mixins.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
@import '../angular-material/src/core/style/mixins.scss';
@mixin margin-selectors($before:1em, $after:1em, $start:0px, $end:0px) {

View File

@ -1,3 +1,5 @@
/// reset.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
/* Welcome to Compass.
* In this file you should write your main styles. (or centralize your imports)
* Import this file using the following HTML or equivalent:

View File

@ -1,4 +1,5 @@
/*! structure.scss - */
/// structure.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
// ngMaterial source for overrides
// ----------------------------------------------------------------------------
@import '../../angular-material/src/core/style/structure.scss';

View File

@ -1,3 +1,5 @@
/// typography.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
// Import from sources for extends
// -------------------------------
//@import "../../angular-material/src/core/style/typography";

View File

@ -1,3 +1,4 @@
/// variables.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
// Path variables for seamless imports
// ----------------------------------------------------------------------------

View File

@ -1,88 +0,0 @@
/**
*
* Article nav
*
**/
.article-nav {
overflow: hidden;
position: relative;
&::before {
content: '';
border-left: 2px solid $colorGrayKeyline;
height: 100%;
position: absolute;
top: 0;
left: 50%;
}
}
.article-nav-link {
padding: $lineHeight 32px;
float: left;
width: 50%;
position: relative;
&::before{
position: absolute;
top: 21px;
font-family: $fontHighlight;
font-size: $fontMedium;
font-weight: 400;
@include medium {
top: 25px;
font-size: $fontLarge;
display: block;
padding: 13px 10px;
color: #ffffff;
background: $colorBlue;
}
}
}
.article-nav p {
padding: 0;
margin: 0;
}
.article-nav-link--prev {
text-align: right;
// border-right-width: 1px;
&::before {
font-family: $fontIcon;
@extend .icon-chevron-left::before;
left: 32px;
}
p {
@include medium {
padding-left: 52px;
}
}
}
.article-nav-link--next {
// border-left-width: 1px;
&::before {
font-family: $fontIcon;
@extend .icon-chevron-right::before;
right: 32px;
}
p {
@include medium {
padding-right: 52px;
}
}
}
.article-nav-count {
@include type--large;
font-weight: 700;
@include medium {font-weight: 400;}
}

View File

@ -1,25 +0,0 @@
/**
*
* Articles section
*
**/
.articles-section {
background: $colorGrayBackground;
text-align: center;
padding: $lineHeight 0 $lineHeight*4;
}
.articles-count {
color: $colorBlue;
font-family: $fontHighlight;
font-weight: 400;
}
.article-section__icon {
top: -($lineHeight);
@include medium {
top: -($lineHeight + $lineHeight/2);
}
}

View File

@ -1,56 +0,0 @@
/**
*
* Text module
*
**/
.did-you-know {
ol {
@include medium {
padding-top: 0 !important;
}
}
.cta--primary {
margin-top: $lineHeight;
font-weight: 500;
}
&>.g--half {
position: relative;
padding-left: 0;
@include medium {padding-left: 32px}
}
}
.did-you-know__symbol {
padding-bottom: $lineHeight*12;
@include medium {padding-bottom: $lineHeight}
&::after {
content: $icon-question;
color: $colorBlue;
font-family: $fontIcon;
font-size: 300px;
top: 150px;
left: 30%;
position: relative;
display: block;
width: 0;
@include medium {
position: absolute;
font-size: 400px;
top: 200px;
left: 110%;
}
@include wide {
position: absolute;
font-size: 400px;
top: 200px;
left: 124%;
}
}
}

View File

@ -1,78 +0,0 @@
/**
*
* Editorial Header
*
**/
.editorial-header {
overflow: hidden;
.breadcrumbs {
color: $colorBlue;
a {
color: $colorBlue;
}
}
.container {
@include medium {
position: relative;
// Pseudo elements to add the background characters
&::before {
content: $icon-chevron-large;
font-family: $fontIcon;
font-size: 1000px;
line-height: 0;
display: block;
position: absolute;
top: 0;
right: 100%;
color: $colorGrayBackground;
margin: 168px -35px 0 0;
}
}
}
}
.editorial-header__excerpt {
@include type--medium(true);
font-family: $fontHighlight;
}
.editorial-header .tag{
padding-top: $lineHeight*2;
}
.editorial-header__subtitle {
@include type--xxlarge;
padding-top: 0;
@include medium {
padding-top: 0;
padding-bottom: $lineHeight;
}
color: $colorBlue;
}
.editorial-header__toc {
margin-top: $lineHeight;
ol {
padding-top: 0;
@include medium {
padding-top: 0;
}
}
}
.editorial-header__toc-title {
font-family: $fontHighlight;
border-bottom: 1px solid $colorGrayKeyline;
margin-bottom: 13px;
padding-bottom: 13px !important;
color: $colorBlue;
}

View File

@ -1,9 +0,0 @@
/**
*
* Editorial Header
*
**/
.featured-section {
background: $colorGrayBackground;
}

View File

@ -1,61 +0,0 @@
/**
*
* Editorial Header
*
**/
.featured-spotlight {
background: $colorGrayDark;
color: #ffffff;
overflow: hidden;
padding-bottom: $lineHeight * 3 - 1;
margin-top: $lineHeight * 2;
p {
padding-bottom: $lineHeight;
}
.cta--primary {
color: #ffffff;
&:hover {
color: #ffffff;
}
}
}
.featured-spotlight__container {
position: relative;
}
.featured-spotlight__img {
@include small-only {
padding-top: 58.4%;
padding-bottom: 0;
height: 0;
overflow: hidden;
position: relative;
width: 100%;
}
img {
margin: 0 auto;
display: block;
width: 100%;
position: absolute;
left: 0;
top: 0;
margin: 0;
@include medium {
width: auto;
max-width: none;
left: 100% + $mediumGutterWidth * 2;
}
@include wide {
left: 100% + $wideGutterWidth * 2;
}
}
}

View File

@ -1,5 +0,0 @@
.guides-section {
background: $colorGrayBackground;
text-align: center;
padding: $lineHeight 0 $lineHeight * 4;
}

View File

@ -1,269 +0,0 @@
/**
*
* Highlight
*
**/
.highlight-module {
overflow: hidden;
margin-top: $lineHeight * 2;
margin-bottom: $lineHeight;
position: relative;
&::after {
background: $colorGrayBackground;
content: '';
height: 100%;
position: absolute;
top: 0;
bottom: 0;
z-index: 0;
width: 100%;
right: 0;
left: 0;
}
ul,
ol {
padding-left: 0;
}
}
.highlight-module__container {
@include container;
padding-bottom: $lineHeight * 3;
z-index: 1;
@include highlight-symbol();
@include medium {
padding-bottom: $lineHeight * 2;
}
@include wide {
min-height: $lineHeight * 8;
}
}
.highlight-module__title {
@include type--huge;
padding-top: $lineHeight;
@include wide {
@include type--xxlarge;
}
}
.highlight-module__cta {
display: block;
}
/*========== LEARNING ==========*/
.highlight-module--learning {
color: #ffffff;
&::after {
background-color: $colorLearning;
}
a {
color: #ffffff;
text-decoration: underline;
}
}
/*========== REMEMBER ==========*/
.highlight-module--remember {
color: #ffffff;
&::after {
background-color: $colorRemember;
}
a {
color: #ffffff;
text-decoration: underline;
}
}
/*========== CODE ==========*/
.highlight-module--code {
overflow: visible;
margin-bottom: $lineHeight * 2;
pre {
margin: 0;
padding-top: $lineHeight;
font-size: $fontBase - 2;
line-height: $lineHeight;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
span {
margin: 0;
padding: 0;
display: inline-block;
}
}
code {
margin: 0;
padding: 0;
word-spacing: -2px;
display: block;
}
.highlight-module__container {
padding-bottom: 0;
}
.highlight-module__cta {
position: absolute;
bottom: -$lineHeight;
}
}
/*========== LEFT ==========*/
.highlight-module--left {
&::after {
@include wide {
width: 80%;
right: 20%;
}
}
}
/*========== RIGHT ==========*/
.highlight-module--right {
&::after {
@include wide {
width: 80%;
left: 20%;
}
}
&.highlight-module--code {
&::after {
@include wide {
width: 100%;
left: 0;
}
}
}
}
/*========== INLINE ==========*/
.highlight-module--inline {
color: $colorText;
overflow: visible;
margin: $lineHeight 0 0;
& .highlight-module__container {
padding-bottom: 0;
&::before {
display: none;
}
}
& .highlight-module__content {
border-color: $colorGrayKeyline;
border-style: solid;
border-width: 1px;
border-left-width: 0;
border-right-width: 0;
margin-bottom: -2px; // Offsetting 2px to considerate border top/bottom - baseline rules.
padding: 0 0 $lineHeight;
}
& .highlight-module__title {
@include type--large;
}
&.highlight-module--remember {
& .highlight-module__title,
& li::before {
color: $colorRemember;
}
}
&.highlight-module--learning {
& .highlight-module__title,
& li::before {
color: $colorLearning;
}
}
&::after {
display: none !important;
}
}
/*========== COLORS ==========*/
div.highlight > pre > code, code .highlight { background: transparent; }
div.highlight > pre > code .c, code .highlight .c { color: #999988; font-style: italic } /* Comment */
div.highlight > pre > code .err, code .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
div.highlight > pre > code .k, code .highlight .k { } /* Keyword */
div.highlight > pre > code .o, code .highlight .o { } /* Operator */
div.highlight > pre > code .cm, code .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
div.highlight > pre > code .cp, code .highlight .cp { color: $colorGray; } /* Comment.Preproc */
div.highlight > pre > code .c1, code .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
div.highlight > pre > code .cs, code .highlight .cs { color: $colorGray; font-style: italic } /* Comment.Special */
div.highlight > pre > code .gs, code .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
div.highlight > pre > code .gd .x, code .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
div.highlight > pre > code .ge, code .highlight .ge { font-style: italic } /* Generic.Emph */
div.highlight > pre > code .gr, code .highlight .gr { color: #aa0000 } /* Generic.Error */
div.highlight > pre > code .gh, code .highlight .gh { color: $colorGray } /* Generic.Heading */
div.highlight > pre > code .gi, code .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
div.highlight > pre > code .gi .x, code .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
div.highlight > pre > code .go, code .highlight .go { color: #888888 } /* Generic.Output */
div.highlight > pre > code .gp, code .highlight .gp { color: #555555 } /* Generic.Prompt */
div.highlight > pre > code .gs, code .highlight .gs { } /* Generic.Strong */
div.highlight > pre > code .gu, code .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
div.highlight > pre > code .gt, code .highlight .gt { color: #aa0000 } /* Generic.Traceback */
div.highlight > pre > code .kc, code .highlight .kc { } /* Keyword.Constant */
div.highlight > pre > code .kd, code .highlight .kd { } /* Keyword.Declaration */
div.highlight > pre > code .kp, code .highlight .kp { } /* Keyword.Pseudo */
div.highlight > pre > code .kr, code .highlight .kr { } /* Keyword.Reserved */
div.highlight > pre > code .kt, code .highlight .kt { color: #445588; } /* Keyword.Type */
div.highlight > pre > code .m, code .highlight .m { color: #009999 } /* Literal.Number */
div.highlight > pre > code .s, code .highlight .s { color: $colorLearning } /* Literal.String */
div.highlight > pre > code .na, code .highlight .na { color: #008080 } /* Name.Attribute */
div.highlight > pre > code .nb, code .highlight .nb { color: #0086B3 } /* Name.Builtin */
div.highlight > pre > code .nc, code .highlight .nc { color: #445588; } /* Name.Class */
div.highlight > pre > code .no, code .highlight .no { color: #008080 } /* Name.Constant */
div.highlight > pre > code .ni, code .highlight .ni { color: #800080 } /* Name.Entity */
div.highlight > pre > code .ne, code .highlight .ne { color: #990000; } /* Name.Exception */
div.highlight > pre > code .nf, code .highlight .nf { color: #990000; } /* Name.Function */
div.highlight > pre > code .nn, code .highlight .nn { color: #555555 } /* Name.Namespace */
div.highlight > pre > code .nt, code .highlight .nt { color: $colorRemember } /* Name.Tag */
div.highlight > pre > code .nv, code .highlight .nv { color: #008080 } /* Name.Variable */
div.highlight > pre > code .ow, code .highlight .ow { } /* Operator.Word */
div.highlight > pre > code .w, code .highlight .w { color: #bbbbbb } /* Text.Whitespace */
div.highlight > pre > code .mf, code .highlight .mf { color: #009999 } /* Literal.Number.Float */
div.highlight > pre > code .mh, code .highlight .mh { color: #009999 } /* Literal.Number.Hex */
div.highlight > pre > code .mi, code .highlight .mi { color: #009999 } /* Literal.Number.Integer */
div.highlight > pre > code .mo, code .highlight .mo { color: #009999 } /* Literal.Number.Oct */
div.highlight > pre > code .sb, code .highlight .sb { color: $colorLearning } /* Literal.String.Backtick */
div.highlight > pre > code .sc, code .highlight .sc { color: $colorLearning } /* Literal.String.Char */
div.highlight > pre > code .sd, code .highlight .sd { color: $colorLearning } /* Literal.String.Doc */
div.highlight > pre > code .s2, code .highlight .s2 { color: $colorLearning } /* Literal.String.Double */
div.highlight > pre > code .se, code .highlight .se { color: $colorLearning } /* Literal.String.Escape */
div.highlight > pre > code .sh, code .highlight .sh { color: $colorLearning } /* Literal.String.Heredoc */
div.highlight > pre > code .si, code .highlight .si { color: $colorLearning } /* Literal.String.Interpol */
div.highlight > pre > code .sx, code .highlight .sx { color: $colorLearning } /* Literal.String.Other */
div.highlight > pre > code .sr, code .highlight .sr { color: #009926 } /* Literal.String.Regex */
div.highlight > pre > code .s1, code .highlight .s1 { color: $colorLearning } /* Literal.String.Single */
div.highlight > pre > code .ss, code .highlight .ss { color: #990073 } /* Literal.String.Symbol */
div.highlight > pre > code .bp, code .highlight .bp { color: $colorGray } /* Name.Builtin.Pseudo */
div.highlight > pre > code .vc, code .highlight .vc { color: #008080 } /* Name.Variable.Class */
div.highlight > pre > code .vg, code .highlight .vg { color: #008080 } /* Name.Variable.Global */
div.highlight > pre > code .vi, code .highlight .vi { color: #008080 } /* Name.Variable.Instance */
div.highlight > pre > code .il, code .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */

View File

@ -1,15 +0,0 @@
/**
*
* In this guide
*
**/
.in-this-guide {
margin-top: - $lineHeight * 3;
}
.in-this-guide__title {
@include type--medium(true);
font-family: $fontHighlight;
margin-bottom: $lineHeight;
}

View File

@ -1,79 +0,0 @@
/**
*
* Next Lessons
*
**/
.next-lessons {
background: $colorGrayDark;
padding: $lineHeight $lineHeight $lineHeight * 2;
margin-top: $lineHeight;
color: #ffffff;
position: relative;
h3 {
i {
@include medium {
display: none;
}
}
}
&::before,
&::after {
color: rgba(255, 255, 255, 0.5);
position: absolute;
display: none;
@include medium {
display: inline-block;
}
}
&::before {
@include medium {
content: attr(data-current-lesson);
font-family: $fontHighlight;
font-size: $fontBase;
font-weight: 400;
line-height: 1;
background: $colorGrayDark;
display: inline-block;
padding: 5px 7px;
right: 127px;
top: 143px;
z-index: 1;
color: rgba(255, 255, 255, 0.5);
}
@include wide {
font-size: $fontMedium;
padding-left: 15px;
padding-right: 15px;
top: 126px;
right: 230px;
}
}
&::after {
@include medium {
content: $icon-lessons;
font-family: $fontIcon;
font-size: 150px;
right: 40px;
top: 185px;
}
@include wide {
font-size: 210px;
right: 120px;
}
}
}

View File

@ -1,32 +0,0 @@
/**
*
* Page header
*
**/
.page-header {
text-align: center;
.breadcrumbs {
text-align: left;
color: $colorBlue;
a {
color: $colorBlue;
}
}
h3 {
color: $colorGrayDark;
padding-top: $lineHeight * 2;
}
}
.page-header__excerpt {
position: relative;
padding-top: 0;
&:last-child {
padding-bottom: $lineHeight * 3;
}
}

View File

@ -1,44 +0,0 @@
/**
*
* Quote
*
**/
.quote__content {
position: relative;
font-family: $fontHighlight;
@include type--medium;
padding-top: $lineHeight * 4;
padding-left: $lineHeight;
@include medium {
padding-top: $lineHeight * 2;
padding-left: 0;
}
p {
border-top: 1px solid $colorGrayKeyline;
text-align: right;
font-weight: 500;
margin-top: $lineHeight/2 - 1;
padding-top: $lineHeight/2;
}
&::before {
content: open-quote;
display: block;
position: absolute;
font-family: $fontHighlight;
font-weight: 700;
color: $colorGrayBackground;
top: 90px;
left: $lineHeight;
font-size: 260px;
@include medium {
top: 225px;
left: -210px;
font-size: 540px;
}
}
}

View File

@ -1,41 +0,0 @@
/**
*
* Related items
*
**/
.related-guides {
margin-top: $lineHeight*3;
padding-bottom: ($lineHeight*2) - 2;
border-top: 2px solid $colorGrayKeyline;
padding-top: ($lineHeight*2) - 2;
}
.related-guides__list {
.list-links {
padding-top: 0;
}
a {
display: block;
}
}
.related-guides__title {
@include type--xlarge;
padding-top: 0;
@include medium {
padding-top: 0;
}
}
.related-guides__main-link {
text-transform: uppercase;
&::before {
content: '#';
display: inline-block;
padding-right: 2px;
}
}

View File

@ -1,19 +0,0 @@
/**
*
* Related items
*
**/
.related-items {
background-color: $colorGrayDark;
color: #ffffff;
padding-bottom: $lineHeight * 2;
margin-top: $lineHeight * 2;
.list-links {
a {
color: #ffffff;
}
}
}

View File

@ -1,29 +0,0 @@
/**
*
* Editorial Header
*
**/
.summary-header {
background-color: $colorBlue;
padding-bottom: $lineHeight * 3;
color: #ffffff;
margin-bottom: $lineHeight;
box-shadow: inset 0 2px 0 0 #fff;
.breadcrumbs__link {
color: #ffffff;
}
}
.summary-header__anchor-list {
margin-top: $lineHeight * 2;
}
.summary-header__anchors-item {
& a {
color: #ffffff;
}
}

View File

@ -1,34 +0,0 @@
/**
*
* Table of contents
*
**/
.toc__title {
@include type--medium;
font-family: $fontHighlight;
padding-bottom: $lineHeight/2;
margin-bottom: ($lineHeight/2) - 1;
border-bottom: 1px solid $colorGrayKeyline;
@include medium {
padding-bottom: $lineHeight/2;
margin-bottom: $lineHeight/2;
}
}
.toc__list {
padding-top: 0;
border-bottom: 1px solid $colorGrayKeyline;
padding-bottom: ($lineHeight/2) - 1;
margin-bottom: $lineHeight/2;
a {
display: block;
}
}
.toc__sublist {
padding-top: 0;
}

View File

@ -1,11 +1,4 @@
/**
*
* Main Stylesheet SOGo
* Based on Angular Material Design
* IMPORTANT : This scss file might interfere with actual Angular-Material grunt-build
* and will generate a (too)) long css file because of the overrides
*
**/
/// styles.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*-
// Compass extension imports - comment-out if needed
// ------------------------------------------------------------------------------
@ -41,7 +34,7 @@
@import 'components/bottomSheet/bottomSheet';
@import 'components/button/button';
@import 'components/card/card';
@import 'components/checkbox/checkbox';
//@import 'components/checkbox/checkbox';
@import 'components/content/content';
@import 'components/dialog/dialog';
@import 'components/divider/divider';
@ -50,18 +43,18 @@
@import 'components/input/input';
@import 'components/list/list';
@import 'components/autoScrollList/autoScrollList';
@import 'components/progressCircular/progressCircular';
@import 'components/progressLinear/progressLinear';
@import 'components/radioButton/radio-button';
//@import 'components/progressCircular/progressCircular';
//@import 'components/progressLinear/progressLinear';
//@import 'components/radioButton/radio-button';
@import 'components/select/select';
@import 'components/sidenav/sidenav';
@import 'components/slider/slider';
@import 'components/sticky/sticky';
//@import 'components/sticky/sticky';
@import 'components/subheader/subheader';
@import 'components/switch/switch';
//@import 'components/switch/switch';
@import 'components/tabs/tabs';
@import 'components/textField/textField';
@import 'components/toast/toast';
//@import 'components/toast/toast';
@import 'components/toolbar/toolbar';
// @import 'components/bottombar/bottombar';
@import 'components/tooltip/tooltip';
@ -109,4 +102,4 @@
// dev-tools - NOT FOR PRODUCTION
// ------------------------------------------------------------------------------
@import 'devtools';
@import 'devtools';

View File

@ -1,508 +0,0 @@
$color-red: (
'50': #ffebee,
'100': #ffcdd2,
'200': #ef9a9a,
'300': #e57373,
'400': #ef5350,
'500': #f44336,
'600': #e53935,
'700': #d32f2f,
'800': #c62828,
'900': #b71c1c,
'A100': #ff8a80,
'A200': #ff5252,
'A400': #ff1744,
'A700': #d50000,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200 300 400 A100
);
// Pink
// ----------------------------
$color-pink: (
'50': #fce4ec,
'100': #f8bbd0,
'200': #f48fb1,
'300': #f06292,
'400': #ec407a,
'500': #e91e63,
'600': #d81b60,
'700': #c2185b,
'800': #ad1457,
'900': #880E4F,
'A100': #ff80ab,
'A200': #ff4081,
'A400': #f50057,
'A700': #c51162,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200 300 400 A100
);
// Purple
// ----------------------------
$color-purple: (
'50': #f3e5f5,
'100': #e1bee7,
'200': #ce93d8,
'300': #ba68c8,
'400': #ab47bc,
'500': #9c27b0,
'600': #8e24aa,
'700': #7b1fa2,
'800': #6a1b9a,
'900': #4a148c,
'A100': #ea80fc,
'A200': #e040fb,
'A400': #d500f9,
'A700': #aa00ff,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200 A100
);
// Deep Purple
// ----------------------------
$color-deep-purple: (
'50': #ede7f6,
'100': #d1c4e9,
'200': #b39ddb,
'300': #9575cd,
'400': #7e57c2,
'500': #673ab7,
'600': #5e35b1,
'700': #512da8,
'800': #4527a0,
'900': #311b92,
'A100': #b388ff,
'A200': #7c4dff,
'A400': #651fff,
'A700': #6200ea,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200 A100
);
// Indigo
// ----------------------------
$color-indigo: (
'50': #e8eaf6,
'100': #c5cae9,
'200': #9fa8da,
'300': #7986cb,
'400': #5c6bc0,
'500': #3f51b5,
'600': #3949ab,
'700': #303f9f,
'800': #283593,
'900': #1a237e,
'A100': #8c9eff,
'A200': #536dfe,
'A400': #3d5afe,
'A700': #304ffe,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200 A100
);
// Blue
// ----------------------------
$color-blue: (
'50': #e3f2fd,
'100': #bbdefb,
'200': #90caf9,
'300': #64b5f6,
'400': #42a5f5,
'500': #2196f3,
'600': #1e88e5,
'700': #1976d2,
'800': #1565c0,
'900': #0d47a1,
'A100': #82b1ff,
'A200': #448aff,
'A400': #2979ff,
'A700': #2962ff,
'contrastDefaultColor': light,
'contrastDarkColors': 100 200 300 400 A100
);
// Light Blue
// ----------------------------
$color-light-blue: (
'50': #e1f5fe,
'100': #b3e5fc,
'200': #81d4fa,
'300': #4fc3f7,
'400': #29b6f6,
'500': #03a9f4,
'600': #039be5,
'700': #0288d1,
'800': #0277bd,
'900': #01579b,
'A100': #80d8ff,
'A200': #40c4ff,
'A400': #00b0ff,
'A700': #0091ea,
'contrastDefaultColor': dark,
'contrastLightColors': 500 600 700 800 900 A700
);
// Cyan
// ----------------------------
$color-cyan: (
'50': #e0f7fa,
'100': #b2ebf2,
'200': #80deea,
'300': #4dd0e1,
'400': #26c6da,
'500': #00bcd4,
'600': #00acc1,
'700': #0097a7,
'800': #00838f,
'900': #006064,
'A100': #84ffff,
'A200': #18ffff,
'A400': #00e5ff,
'A700': #00b8d4,
'contrastDefaultColor': dark,
'contrastLightColors': 500 600 700 800 900
);
// Teal
// ----------------------------
$color-teal: (
'50': #e0f2f1,
'100': #b2dfdb,
'200': #80cbc4,
'300': #4db6ac,
'400': #26a69a,
'500': #009688,
'600': #00897b,
'700': #00796b,
'800': #00695c,
'900': #004d40,
'A100': #a7ffeb,
'A200': #64ffda,
'A400': #1de9b6,
'A700': #00bfa5,
'contrastDefaultColor': dark,
'contrastLightColors': 500 600 700 800 900
);
// Green
// ----------------------------
$color-green: (
'50': #e8f5e9,
'100': #c8e6c9,
'200': #a5d6a7,
'300': #81c784,
'400': #66bb6a,
'500': #4caf50,
'600': #43a047,
'700': #388e3c,
'800': #2e7d32,
'900': #1b5e20,
'A100': #b9f6ca,
'A200': #69f0ae,
'A400': #00e676,
'A700': #00c853,
'contrastDefaultColor': dark,
'contrastLightColors': 500 600 700 800 900
);
// Light Green
// ----------------------------
$color-light-green: (
'50': #f1f8e9,
'100': #dcedc8,
'200': #c5e1a5,
'300': #aed581,
'400': #9ccc65,
'500': #8bc34a,
'600': #7cb342,
'700': #689f38,
'800': #558b2f,
'900': #33691e,
'A100': #ccff90,
'A200': #b2ff59,
'A400': #76ff03,
'A700': #64dd17,
'contrastDefaultColor': dark,
'contrastLightColors': 800 900
);
// Lime
// ----------------------------
$color-lime: (
'50': #f9fbe7,
'100': #f0f4c3,
'200': #e6ee9c,
'300': #dce775,
'400': #d4e157,
'500': #cddc39,
'600': #c0ca33,
'700': #afb42b,
'800': #9e9d24,
'900': #827717,
'A100': #f4ff81,
'A200': #eeff41,
'A400': #c6ff00,
'A700': #aeea00,
'contrastDefaultColor': dark,
'contrastLightColors': 900
);
// Yellow
// ----------------------------
$color-yellow: (
'50': #fffde7,
'100': #fff9c4,
'200': #fff59d,
'300': #fff176,
'400': #ffee58,
'500': #ffeb3b,
'600': #fdd835,
'700': #fbc02d,
'800': #f9a825,
'900': #f57f17,
'A100': #ffff8d,
'A200': #ffff00,
'A400': #ffea00,
'A700': #ffd600,
'contrastDefaultColor': dark
);
// Amber
// ----------------------------
$color-amber: (
'50': #fff8e1,
'100': #ffecb3,
'200': #ffe082,
'300': #ffd54f,
'400': #ffca28,
'500': #ffc107,
'600': #ffb300,
'700': #ffa000,
'800': #ff8f00,
'900': #ff6f00,
'A100': #ffe57f,
'A200': #ffd740,
'A400': #ffc400,
'A700': #ffab00,
'contrastDefaultColor': dark
);
// Orange
// ----------------------------
$color-orange: (
'50': #fff3e0,
'100': #ffe0b2,
'200': #ffcc80,
'300': #ffb74d,
'400': #ffa726,
'500': #ff9800,
'600': #fb8c00,
'700': #f57c00,
'800': #ef6c00,
'900': #e65100,
'A100': #ffd180,
'A200': #ffab40,
'A400': #ff9100,
'A700': #ff6d00,
'contrastDefaultColor': dark,
'contrastLightColors': 800 900
);
// Deep Orange
// ----------------------------
$color-deep-orange: (
'50': #fbe9e7,
'100': #ffccbc,
'200': #ffab91,
'300': #ff8a65,
'400': #ff7043,
'500': #ff5722,
'600': #f4511e,
'700': #e64a19,
'800': #d84315,
'900': #bf360c,
'A100': #ff9e80,
'A200': #ff6e40,
'A400': #ff3d00,
'A700': #dd2c00,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200 300 400 A100 A200
);
// Brown
// ----------------------------
$color-brown: (
'50': #efebe9,
'100': #d7ccc8,
'200': #bcaaa4,
'300': #a1887f,
'400': #8d6e63,
'500': #795548,
'600': #6d4c41,
'700': #5d4037,
'800': #4e342e,
'900': #3e2723,
'A100': #d7ccc8,
'A200': #bcaaa4,
'A400': #8d6e63,
'A700': #5d4037,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200
);
// Grey
// ----------------------------
$color-grey: (
'0': #ffffff,
'50': #fafafa,
'100': #f5f5f5,
'200': #eeeeee,
'300': #e0e0e0,
'400': #bdbdbd,
'500': #9e9e9e,
'600': #757575,
'700': #616161,
'800': #424242,
'900': #212121,
'1000': #000000,
'A100': #ffffff,
'A200': #eeeeee,
'A400': #bdbdbd,
'A700': #616161,
'contrastDefaultColor': dark,
'contrastLightColors': 600 700 800 900
);
// Blue Grey
// ----------------------------
$color-blue-grey: (
'50': #eceff1,
'100': #cfd8dc,
'200': #b0bec5,
'300': #90a4ae,
'400': #78909c,
'500': #607d8b,
'600': #546e7a,
'700': #455a64,
'800': #37474f,
'900': #263238,
'A100': #cfd8dc,
'A200': #b0bec5,
'A400': #78909c,
'A700': #455a64,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200 300
);
// SOGo Green
// ----------------------------
$color-sogo-green: (
'50': #eaf5e9,
'100': #cbe5c8,
'200': #aad6a5,
'300': #88c781,
'400': #66b86a,
'500': #56b04c,
'600': #4da143,
'700': #388e3c,
'800': #367d2e,
'900': #225e1b,
'A100': #b9f6ca,
'A200': #69f0ae,
'A400': #00e676,
'A700': #00c853,
'contrastDefaultColor': dark,
'contrastLightColors': 500 600 700 800 900
);
$color-vintage-blue: (
'50': #f0faf9,
'100': #e1f5f3,
'200': #ceebe8,
'300': #bfe0dd,
'400': #b2d6d3,
'500': #a1ccc8,
'600': #8ebfbb,
'700': #7db3b0,
'800': #639997,
'900': #4d8080,
'A100': #d4f7fa,
'A200': #c3f5fa,
'A400': #53e3f0,
'A700': #00b0c0,
'contrastDefaultColor': light,
'contrastDarkColors': 50 100 200,
'contrastLightColors': 300 400 500 600 700 800 900 A100 A200 A400 A700
);
$color-paper: (
'50': #fcf7f8,
'100': #f7f1dc,
'200': #ede5ca,
'300': #e6d8ba,
'400': #e2d2a3,
'500': #d6c48d,
'600': #baa870,
'700': #857545,
'800': #524517,
'900': #433809,
'contrastDefaultColor': dark,
'contrastLightColors': 500 600 700 800 900
);
$colors: (
'red': $color-red,
'pink': $color-pink,
'purple': $color-purple,
'deep-purple': $color-deep-purple,
'indigo': $color-indigo,
'blue': $color-blue,
'light-blue': $color-light-blue,
'cyan': $color-cyan,
'teal': $color-teal,
//'green': $color-green,
'light-green': $color-light-green,
'lime': $color-lime,
'yellow': $color-yellow,
'amber': $color-amber,
'orange': $color-orange,
'deep-orange': $color-deep-orange,
'brown': $color-brown,
'grey': $color-grey,
'blue-grey': $color-blue-grey,
'paper': $color-paper,
'vintage-blue': $color-vintage-blue,
// redefine green with sogo-green
'green': $color-sogo-green
);

View File

@ -1,3 +0,0 @@
@import "compass/utilities";
@import "compass/typography";
@import "compass/css3";

View File

@ -1,54 +0,0 @@
$project-path: null !default;
$debug-configuration: false !default;
$compass-initialized: false !default;
$compass-configured: false !default;
@mixin debug-compass-configuration {
@if $debug-configuration {
/* Compass Configuration: */
@each $setting, $value in compass-configuration() {
/* #{$setting}: #{inspect($value)} */
}
}
}
// This mixin resets the compass configuration
// and then initializes it with the sass options
// set in the environment. It is immediately called during import.
// It's unlikely you'll need to call this mixin yourself.
@mixin compass-initializer($project-path: $project-path) {
@if not $compass-initialized and not using-compass-compiler() {
$default-configuration: reset-configuration();
$default-configuration: add-sass-configuration($project-path);
}
$compass-initialized: true !global;
@include debug-compass-configuration;
}
@include compass-initializer;
// `$options`:
// A map of compass configuration options.
// E.g. @include compass-configuration((asset-host:
// Keywords style ar
// `$reconfigure`:
// When unset, if compass-configuration is called more than once, a warning will
// be issued and all calls after the first will be ignored.
// When set to `false`, all subsequent calls will be ignored without a warning.
// When set to `true`, the configuration will be added to any existing configuration.
@mixin compass-configuration($options: (), $reconfigure: null, $arguments...) {
@if not at-stylesheet-root() {
// this should be @error once that exists.
@warn "include compass-configuration from the root level of your stylesheet."
}
@if not $compass-configured or $reconfigure {
$options: map-merge($options, keywords($arguments));
@if length($arguments) > 0 {
@warn "compass-configuration accepts keyword arguments or a single map of options. Got: #{inspect($arguments)}."
}
$invoke: add-configuration($options);
@include debug-compass-configuration;
$compass-configured: true !global;
} @else if $reconfigure == null {
@warn "Compass was already configured for this stylesheet."
}
}

View File

@ -1,21 +0,0 @@
@import "css3/border-radius";
@import "css3/inline-block";
@import "css3/opacity";
@import "css3/box-shadow";
@import "css3/text-shadow";
@import "css3/columns";
@import "css3/box-sizing";
@import "css3/flexbox";
@import "css3/images";
@import "css3/background-clip";
@import "css3/background-origin";
@import "css3/background-size";
@import "css3/font-face";
@import "css3/transform";
@import "css3/transition";
@import "css3/appearance";
@import "css3/animation";
@import "css3/regions";
@import "css3/hyphenation";
@import "css3/filter";
@import "css3/user-interface";

View File

@ -1,3 +0,0 @@
@import "layout/grid-background";
@import "layout/sticky-footer";
@import "layout/stretching";

View File

@ -1,3 +0,0 @@
@import "reset/utilities-legacy";
@include global-reset;

View File

@ -1,3 +0,0 @@
@import "reset/utilities";
@include global-reset;

View File

@ -1,447 +0,0 @@
// Map of compass extensions that are loaded. The value will either be
// the version of the extension or `true` if the version is unknown.
$compass-extensions: compass-extensions() !default;
// The list of browsers you want to support.
// Defaults to all.
$supported-browsers: browsers() !default;
// The browser usage threshold for features that gracefully degrade
// Defaults to 1 user in 1,000.
$graceful-usage-threshold: 0.1 !default;
// The browser usage threshold for features that cannot degrade gracefully
// Defaults to 1 user in 10,000.
$critical-usage-threshold: 0.01 !default;
// Set this to true to generate comments that will explain why a prefix was included or omitted.
$debug-browser-support: false !default;
// Minimum browser versions that must be supported.
// The keys of this map are any valid browser according to `browsers()`.
// The values of this map are the min version that is valid for that browser
// according to `browser-versions($browser)`
$browser-minimum-versions: (
'chrome': null,
'firefox': null,
'ie': null,
'safari': null,
'opera': null
) !default;
// @private
$default-capability-options: (
(full-support: true),
(partial-support: true)
);
// When a prefix in in context, but there is no current prefix
// That context is recorded here so other prefixes can be avoided.
$prefix-context: null;
// When a prefix is in a selector or directive scope, this is set to the
// current prefix value. When `null`, either there is no prefix in scope
// or the official prefix is being rendered. The `$prefix-context`
// variable can be used to make that distinction.
$current-prefix: null;
// When in a context that only exists in a particular version
// this variable is set to those versions.
$current-browser-versions: ();
// The legacy support CSS 2.1 Selectors.
// Defaults to the $critical-usage-threshold.
$css-sel2-support-threshold: $critical-usage-threshold !default;
// Check if the browser is in scope given the browser support and current prefix minimums.
@function browser-out-of-scope($browser, $version: null) {
@if not index($supported-browsers, $browser) {
@if $debug-browser-support {
@return "#{$browser} is not listed as a supported browser."
} @else {
@return true;
}
} @else if not ($current-prefix == null or $current-prefix == browser-prefix($browser)) {
@if $debug-browser-support {
@return "#{$browser} #{$version} is incompatible with #{$current-prefix}."
} @else {
@return true;
}
}
$current-range: map-get($current-browser-versions, $browser);
$current-min: if($current-range, nth($current-range, 1), null);
$current-max: if($current-range, nth($current-range, 2), null);
@if not ($version and $current-max) {
// We don't have any versions to compare
@return false;
} @else {
// If the version is less than the current min, it is not supported
$too-old: compare-browser-versions($browser, $version, $current-min) < 0;
$too-new: compare-browser-versions($browser, $version, $current-max) > 0;
@if $too-old or $too-new {
@if $debug-browser-support {
@return "The current scope only works with #{display-browser-range($browser, $current-min, $current-max)}.";
} @else {
@return true;
}
} @else {
@return false;
}
}
}
// Check whether the browser is supported according to the supported browsers,
// declared minimum support and usage thresholds.
@function support-legacy-browser($browser, $min-version, $max-version: null, $threshold: $critical-usage-threshold) {
@if not index($supported-browsers, $browser) {
@return false;
}
// Check agaist usage stats and declared minimums
$min-required-version: map-get($browser-minimum-versions, $browser);
$usage: if($max-version,
omitted-usage($browser, $min-version, $max-version),
omitted-usage($browser, $min-version));
@return $usage > $threshold or
($min-required-version and
compare-browser-versions($browser, $max-version or $min-version, $min-required-version) >= 0);
}
// Include content for a legacy browser
// Version can be a single version string or a list of versions ordered from oldest to newest.
@mixin for-legacy-browser($browser, $min-version, $max-version: $min-version,
$threshold: $critical-usage-threshold,
$ranges: ($browser: $min-version $max-version)) {
@if not browser-out-of-scope($browser, $max-version) and
support-legacy-browser($browser, $min-version, $max-version, $threshold)
{
@if $debug-browser-support {
/* Content for #{display-browser-range($browser, $min-version, $max-version)}.
Min version: #{map-get($browser-minimum-versions, $browser) or unspecified}.
User threshold to keep: #{$threshold}%. If #{display-browser-range($browser, $min-version, $max-version)} are omitted: #{omitted-usage($browser, $min-version, $max-version)}%. */
}
@include with-browser-ranges(intersect-browser-ranges($current-browser-versions, $ranges)) {
@content;
}
} @else if $debug-browser-support and browser-out-of-scope($browser, $max-version) {
/* Content for #{display-browser-range($browser, $min-version, $max-version)} omitted.
Not allowed in the current scope: #{browser-out-of-scope($browser, $max-version)} */
} @else if $debug-browser-support and not
support-legacy-browser($browser, $min-version, $max-version, $threshold) {
@if omitted-usage($browser, $min-version, $max-version) > $threshold {
/* Content for #{display-browser-range($browser, $min-version, $max-version)} omitted.
User threshold to keep: #{$threshold}%. If #{display-browser-range($browser, $min-version, $max-version)} and below are omitted: #{omitted-usage($browser, $min-version, $max-version)}%. */
} @else {
/* Content for #{display-browser-range($browser, $min-version, $max-version)} omitted.
Minimum support is #{map-get($browser-minimum-versions, $browser)}. */
}
}
}
@function display-browser-range($browser, $min-version, $max-version: $min-version) {
@return "#{unquote($browser)} #{unquote($min-version)}#{if($max-version != $min-version, unquote(' -') unquote($max-version), null)}";
}
// Renders the content once if any of the legacy browsers are supported.
// $browsers is a map of browser name to version ranges
@mixin for-legacy-browsers($browsers, $threshold: $critical-usage-threshold) {
$rendered: false;
@each $browser, $range in $browsers {
@if not $rendered {
@include for-legacy-browser($browser, $range..., $threshold: $threshold, $ranges: $browsers) {
$rendered: true;
@content;
}
}
}
}
// If there's a prefix context in scope, this will only output the content if the prefix matches.
// Otherwise, sets the current prefix scope and outputs the content.
@mixin with-prefix($prefix) {
@if $current-prefix or $prefix-context {
@if $current-prefix == $prefix or $prefix-context == $prefix {
@if $debug-browser-support {
@if $prefix {
/* content for #{$prefix} because #{$current-prefix or $prefix-context} is already in scope. */
} @else {
/* unprefixed content. #{$current-prefix or $prefix-context} is already in scope. */
}
}
$old-prefix-context: $prefix-context;
$old-prefix: $current-prefix;
$prefix-context: $prefix-context or $current-prefix !global;
$current-prefix: $prefix !global;
@content;
$prefix-context: $old-prefix-context !global;
$current-prefix: $old-prefix !global;
} @else if $prefix == null {
$old-prefix-context: $prefix-context;
$prefix-context: $prefix-context or $current-prefix !global;
$current-prefix: null !global;
@if $debug-browser-support {
/* Content for official syntax. Prefix context is still #{$prefix-context}. */
}
@content;
$current-prefix: $prefix-context !global;
$prefix-context: $old-prefix-context !global;
} @else if $debug-browser-support {
/* Omitting content for #{$prefix} because #{$current-prefix} is already in scope. */
}
} @else {
@if $debug-browser-support and $prefix {
/* Creating new #{$prefix} context. */
}
$prefix-context: $prefix !global;
$current-prefix: $prefix !global;
@content;
$current-prefix: null !global;
$prefix-context: null !global;
}
}
@function prefixes-for-capability($capability, $threshold, $capability-options: $default-capability-options) {
$result: ();
@each $prefix in browser-prefixes($supported-browsers) {
$result: map-merge($result,
($prefix: use-prefix($prefix, $capability, $threshold, $capability-options)));
}
@return $result;
}
// Yields to the mixin content once for each prefix required.
// The current prefix is set to the $current-prefix global for use by the included content.
// Also yields to the content once with $current-prefix set to null for the official version
// as long as there's not already a prefix in scope.
@mixin with-each-prefix($capability, $threshold, $capability-options: $default-capability-options) {
@each $prefix, $should-use-prefix in prefixes-for-capability($capability, $threshold, $capability-options) {
@if $should-use-prefix {
@if $debug-browser-support and type-of($should-use-prefix) == list {
/* Capability #{$capability} is prefixed with #{$prefix} because #{$should-use-prefix} is required. */
} @else if $debug-browser-support and type-of($should-use-prefix) == number {
/* Capability #{$capability} is prefixed with #{$prefix} because #{$should-use-prefix}% of users need it which is more than the threshold of #{$threshold}%. */
}
@include with-prefix($prefix) {
@include with-browser-ranges($capability) {
@content;
}
}
} @else if $debug-browser-support {
/* Capability #{$capability} is not prefixed with #{$prefix} because #{prefix-usage($prefix, $capability, $capability-options)}% of users are affected which is less than the threshold of #{$threshold}. */
}
}
@include with-prefix(null) {
@include with-browser-ranges($capability) {
@content;
}
}
}
// Returns true if at least one browser-version pair in $subset-ranges
// is a higher (or same) version than the browser-version pairs in
// $ranges.
@function has-browser-subset($ranges, $subset-ranges) {
$found-mismatch: false;
@each $browser, $subset-range in $subset-ranges {
$range: map-get($ranges, $browser);
@if $range {
$min-1: nth($subset-range, 1);
$max-1: nth($subset-range, 2);
$min-2: nth($range, 1);
$max-2: nth($range, 2);
@if (compare-browser-versions($browser, $min-2, $min-1) <= 0 and
compare-browser-versions($browser, $min-1, $max-2) <= 0) or
(compare-browser-versions($browser, $min-2, $max-1) <= 0 and
compare-browser-versions($browser, $max-1, $max-2) <= 0) or
(compare-browser-versions($browser, $min-1, $min-2) <= 0 and
compare-browser-versions($browser, $max-1, $max-2) >= 0) or
(compare-browser-versions($browser, $min-1, $min-2) >= 0 and
compare-browser-versions($browser, $max-1, $max-2) <= 0) {
@return true;
} @else {
$found-mismatch: true
}
}
}
@return not $found-mismatch;
}
// When the same browser is in both maps, then the minimum will be set
// to the maximum of the two minimum versions, and the maximum will be
// set to the minmum of the two maximum versions.
@function intersect-browser-ranges($ranges, $new-ranges) {
@each $browser, $new-range in $new-ranges {
$old-range: map-get($ranges, $browser);
@if $old-range {
$old-min: nth($old-range, 1);
$old-max: if(length($old-range) == 1, $old-min, nth($old-range, 2));
$new-min: nth($new-range, 1);
$new-max: if(length($new-range) == 1, $new-min, nth($new-range, 2));
$maximin: if(compare-browser-versions($browser, $old-min, $new-min) > 0,
$old-min, $new-min);
$minimax: if(compare-browser-versions($browser, $old-max, $new-max) < 0,
$old-max, $new-max);
$ranges: map-merge($ranges, ($browser: $maximin $minimax));
} @else {
$ranges: map-merge($ranges, ($browser: $new-range));
}
}
@return $ranges;
}
// If passed a map, that will be the new browser ranges.
// Otherwise a range map will be created based on the given capability and prefix
// using the `browser-ranges($capability, $prefix)` function.
//
// If there are current ranges in scope and the new ranges have some overlap
// with the current,
//
// If there is no overlap, then the content will not be rendered.
@mixin with-browser-ranges($capability, $prefix: $current-prefix) {
$new-ranges: null;
@if type-of($capability) == map {
$new-ranges: $capability;
} @else {
$new-ranges: browser-ranges($capability, $prefix);
}
@if has-browser-subset($current-browser-versions, $new-ranges) {
$old-ranges: $current-browser-versions;
$current-browser-versions: intersect-browser-ranges($old-ranges, $new-ranges) !global;
@content;
$current-browser-versions: $old-ranges !global;
} @else if $debug-browser-support {
/* Excluding content because #{inspect($new-ranges)} is not included within
#{inspect($current-browser-versions)} */
}
}
// Returns true if the prefixed usage stats for the capability exceed the threshold
// or if the minimum version for a supported browser would require a prefix for the capability.
@function use-prefix($prefix, $capability, $threshold, $capability-options: $default-capability-options) {
$usage: prefix-usage($prefix, $capability, $capability-options);
@if $usage > $threshold {
@return $usage;
} @else {
@each $browser in browsers($prefix) {
@if index($supported-browsers, $browser) {
$min-version: map-get($browser-minimum-versions, $browser);
@if $min-version {
$actual-prefix: browser-requires-prefix($browser, $min-version, $capability, $capability-options);
@if $actual-prefix and $prefix == $actual-prefix {
@return $browser $min-version;
}
}
}
}
}
@return false;
}
@function prefix-identifier($ident, $prefix: $current-prefix) {
@return unquote("#{$prefix}#{if($prefix, '-', null)}#{$ident}");
}
// Output a property and value using the current prefix.
// It will be unprefixed if $current-prefix is null.
@mixin prefix-prop($property, $value, $prefix: $current-prefix) {
#{prefix-identifier($property, $prefix)}: $value;
}
// Emit a set of properties with the prefix governed by the capability and usage threshold given.
//
// Example:
//
// @include prefixed-properties(css-animation, $animation-support-threshold,
// (animation-name: foo, animation-duration: 2s)
// );
@mixin prefixed-properties($capability, $threshold, $properties, $capability-options: $default-capability-options) {
@include with-each-prefix($capability, $threshold, $capability-options) {
@each $prop, $value in $properties {
@include prefix-prop($prop, $value);
}
}
}
// @private
@function warn-about-old-variables() {
$old-variables-in-use: ();
@each $old-variable-name in
(legacy-support-for-ie, legacy-support-for-ie6, legacy-support-for-ie7,
legacy-support-for-ie8, legacy-support-for-mozilla, legacy-support-for-webkit,
experimental-support-for-mozilla, experimental-support-for-webkit,
experimental-support-for-opera, experimental-support-for-microsoft,
experimental-support-for-khtml, experimental-support-for-svg)
{
@if global-variable-exists($old-variable-name) {
$old-variables-in-use: append($old-variables-in-use,
unquote("$#{$old-variable-name}"), comma);
}
}
@if length($old-variables-in-use) > 0 {
@warn "Compass has changed how browser support is configured. " +
"The following configuration variables " +
"are no longer supported: #{$old-variables-in-use}." +
"Details: http://compass-style.org/help/documentation/tuning-vendor-prefixes/"
}
@return $old-variables-in-use;
}
// @private
@function warn-about-pie-removal() {
@if global-variable-exists(experimental-support-for-pie) {
@warn "Compass no longer supports css3pie.";
}
@return true;
}
// Enable browser support debugging within the content block.
// Or you can enable it for the whole stylesheet by setting `$debug-browser-support` to true.
@mixin with-browser-support-debugging {
$current-status: $debug-browser-support;
$debug-browser-support: true !global;
@content;
$debug-browser-support: $current-status !global;
}
// Set a default value if the given arglist is empty
@function set-arglist-default($arglist, $default) {
$default-index: index($arglist, default);
@if $default-index {
$arglist: set-nth($arglist, $default-index, $default)
}
@return if(length($arglist) > 0, $arglist, $default);
}
// @private
$old-variable-warnings-issued: warn-about-old-variables() !default;
// @private
$pie-removal-warning-issued: warn-about-pie-removal() !default;
// @private
@function warn-about-useless-prefix-arguments($moz: null, $webkit: null, $o: null, $khtml: null, $official: null) {
@if $moz != null or $webkit != null or $o != null or $khtml != null or $official != null {
@warn "Browser prefix arguments to this mixin are no longer used and " +
"will be removed in the next release.";
}
@return true;
}
// coerce a list to be comma delimited or make a new, empty comma delimited list.
@function comma-list($list: ()) {
@return join((), $list, comma);
}
// @private Returns the legacy value for a given box-model
// - Used by background-clip and -origin.
@function legacy-box($box) {
$box: unquote($box);
@if $box == padding-box { $box: padding; }
@if $box == border-box { $box: border; }
@if $box == content-box { $box: content; }
@return $box;
}

View File

@ -1,4 +0,0 @@
@import "typography/links";
@import "typography/lists";
@import "typography/text";
@import "typography/vertical_rhythm";

View File

@ -1,9 +0,0 @@
@import "utilities/color";
@import "utilities/general";
@import "utilities/sprites";
@import "utilities/tables";
// deprecated
@import "typography/links";
@import "typography/lists";
@import "typography/text";

View File

@ -1,122 +0,0 @@
@import "compass/support";
// The prefixed support threshold for animation.
// Defaults to the $graceful-usage-threshold.
$animation-support-threshold: $graceful-usage-threshold !default;
// Name of any animation as a string.
$default-animation-name : null !default;
// Duration of the entire animation in seconds.
$default-animation-duration : null !default;
// Delay for start of animation in seconds.
$default-animation-delay : null !default;
// The timing function(s) to be used between keyframes. [ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier($number, $number, $number, $number)]
$default-animation-timing-function : null !default;
// The number of times an animation cycle is played. [infinite | $number]
$default-animation-iteration-count : null !default;
// Whether or not the animation should play in reverse on alternate cycles. [normal | alternate]
$default-animation-direction : null !default;
// What values are applied by the animation outside the time it is executing. [none | forwards | backwards | both]
$default-animation-fill-mode : null !default;
// Whether the animation is running or paused. [running | paused]
$default-animation-play-state : null !default;
// Create a named animation sequence that can be applied to elements later.
//
// $name - The name of your animation.
// @content - The keyframes of the animation.
@mixin keyframes($name, $deprecated-prefixes...) {
$warned: warn-about-useless-prefix-arguments($deprecated-prefixes...);
@include with-each-prefix(css-animation, $animation-support-threshold) {
// It would be nice if we could dynamically construct directive names.
@if $current-prefix == -moz { @-moz-keyframes #{$name} { @content; } }
@if $current-prefix == -webkit { @-webkit-keyframes #{$name} { @content; } }
@if $current-prefix == -o { @-o-keyframes #{$name} { @content; } }
@if $current-prefix == -ms { @-ms-keyframes #{$name} { @content; } }
@if $current-prefix == null { @keyframes #{$name} { @content; } }
}
}
// @private
@mixin animation-properties($properties) {
@include prefixed-properties(css-animation, $animation-support-threshold, $properties);
}
// Apply any number of animation names.
@mixin animation-name($name...) {
$name: set-arglist-default($name, $default-animation-name);
@include animation-properties((animation-name: $name));
}
// Apply any number of animation durations.
@mixin animation-duration($duration...) {
$duration: set-arglist-default($duration, $default-animation-duration);
@include animation-properties((animation-duration: $duration));
}
// Apply any number of animation delays.
@mixin animation-delay($delay...) {
$delay: set-arglist-default($delay, $default-animation-delay);
@include animation-properties((animation-delay: $delay));
}
// Apply any number of animation timing functions.
@mixin animation-timing-function($function...) {
$function: set-arglist-default($function, $default-animation-timing-function);
@include animation-properties((animation-timing-function: $function));
}
// Apply any number of animation iteration counts.
@mixin animation-iteration-count($count...) {
$count: set-arglist-default($count, $default-animation-iteration-count);
@include animation-properties((animation-iteration-count: $count));
}
// Apply any number of animation directions.
@mixin animation-direction($direction...) {
$direction: set-arglist-default($direction, $default-animation-direction);
@include animation-properties((animation-direction: $direction));
}
// Apply any number of animation fill modes.
@mixin animation-fill-mode($mode...) {
$mode: set-arglist-default($mode, $default-animation-fill-mode);
@include animation-properties((animation-fill-mode: $mode));
}
// Apply any number of animation play states.
@mixin animation-play-state($state...) {
$state: set-arglist-default($state, $default-animation-play-state);
@include animation-properties((animation-play-state: $state));
}
// @private
@function default-animation() {
@return compact($default-animation-name
$default-animation-duration
$default-animation-timing-function
$default-animation-delay
$default-animation-iteration-count
$default-animation-direction
$default-animation-fill-mode
$default-animation-play-state);
}
// Shortcut to apply any number of animations to an element, with all the settings.
//
// $animation... : Name and settings. [<values> | default]
@mixin animation($animation...) {
$animation: if(length($animation) > 0, $animation, default-animation());
@include animation-properties((animation: $animation));
}

View File

@ -1,17 +0,0 @@
// Appearance
@import "compass/support";
// Change the appearance for Mozilla, Webkit and possibly the future.
// The appearance property is currently not present in any newer CSS specification.
//
// There is no official list of accepted values, but you might check these source:
//
// * [Mozilla](https://developer.mozilla.org/en/CSS/-moz-appearance)
// * [Webkit](http://code.google.com/p/webkit-mirror/source/browse/Source/WebCore/css/CSSValueKeywords.in?spec=svnf1aea559dcd025a8946aa7da6e4e8306f5c1b604&r=63c7d1af44430b314233fea342c3ddb2a052e365)
// (search for 'appearance' within the page)
@mixin appearance($appearance) {
// There is no caniuse tracking for appearance.
$appearance: unquote($appearance);
@include with-prefix(-moz) { -moz-appearance: $appearance; }
@include with-prefix(-webkit) { -webkit-appearance: $appearance; }
}

View File

@ -1,35 +0,0 @@
// Background Clip
@import "compass/support";
// The the user threshold for background-clip support. Defaults to `$critical-usage-threshold`
$background-clip-support-threshold: $critical-usage-threshold !default;
// The default border-box model: [border-box | padding-box | content-box]
$default-background-clip: padding-box !default;
// Clip the background (image and color) at the edge of the padding, border, or content.
// $clip... : [padding-box | border-box | content-box]
@mixin background-clip($clip...) {
$output: ();
$deprecated: ();
@if (length($clip) > 0) {
@each $layer in $clip {
$output: append($output, unquote($layer), comma);
$deprecated: append($deprecated, legacy-box($layer), comma);
}
} @else {
$output: $default-background-clip;
$deprecated: legacy-box($default-background-clip);
}
@include with-each-prefix(background-img-opts, $background-clip-support-threshold) {
@if $current-prefix == -moz or $current-prefix == -webkit {
// Legacy versions of Mozilla support a different syntax, prefixed.
@include prefix-prop(background-clip, $deprecated);
} @else {
@include prefix-prop(background-clip, $output);
}
}
}

View File

@ -1,37 +0,0 @@
// Background Origin
@import "compass/support";
// The the user threshold for background-origin support. Defaults to `$critical-usage-threshold`
$background-origin-threshold: $critical-usage-threshold !default;
// The default background-origin: [border-box | padding-box | content-box]
$default-background-origin: content-box !default;
// Set the origin of the background (image and color) at the edge of the padding, border, or content.
//
// $origin... : [padding-box | border-box | content-box]
@mixin background-origin($origin...) {
$output: ();
$deprecated: ();
@if (length($origin) > 0) {
@each $layer in $origin {
$output: append($output, unquote($layer), comma);
$deprecated: append($deprecated, legacy-box($layer), comma);
}
} @else {
$output: $default-background-origin;
$deprecated: legacy-box($default-background-origin);
}
@include with-each-prefix(background-img-opts, $background-origin-threshold) {
@if $current-prefix == -moz or $current-prefix == -webkit {
// Legacy versions of Mozilla support a different syntax, prefixed.
@include prefix-prop(background-origin, $deprecated)
} @else {
@include prefix-prop(background-origin, $output)
}
}
}

View File

@ -1,19 +0,0 @@
// Background Size
@import "compass/support";
// The the user threshold for background-clip support. Defaults to `$critical-usage-threshold`
$background-size-threshold: $critical-usage-threshold !default;
// override to change the default
$default-background-size: 100% auto !default;
// Set the size of background images using px, width and height, or percentages.
// Currently supported in: Opera, Gecko, Webkit.
//
// * percentages are relative to the background-origin (default = padding-box)
// * mixin defaults to: `$default-background-size`
@mixin background-size($size...) {
$size: set-arglist-default($size, $default-background-size);
@include prefixed-properties(background-img-opts, $background-size-threshold, (background-size: $size));
}

View File

@ -1,107 +0,0 @@
// Border Radius
@import "compass/support";
// The the user threshold for border-radius support. Defaults to `$graceful-usage-threshold`
$border-radius-threshold: $graceful-usage-threshold !default;
// The length of a border-radius to be used by default.
$default-border-radius: 5px !default;
// Round all corners by a specific amount, defaults to value of `$default-border-radius`.
//
// When two values are passed, the first is the horizontal radius
// and the second is the vertical radius.
//
// Note: webkit does not support shorthand syntax for several corners at once.
// So in the case where you pass several values only the first will be passed to webkit.
//
// Examples:
//
// .simple { @include border-radius(4px, 4px); }
// .compound { @include border-radius(2px 5px, 3px 6px); }
// .crazy { @include border-radius(1px 3px 5px 7px, 2px 4px 6px 8px)}
//
// Which generates:
//
// .simple {
// -moz-border-radius: 4px / 4px;
// -webkit-border-radius: 4px 4px;
// border-radius: 4px / 4px; }
//
// .compound {
// -moz-border-radius: 2px 5px / 3px 6px;
// -webkit-border-radius: 2px 3px;
// border-radius: 2px 5px / 3px 6px; }
//
// .crazy {
// -moz-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
// -webkit-border-radius: 1px 2px;
// border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px; }
@mixin border-radius($radius: $default-border-radius, $vertical-radius: false) {
@include with-each-prefix(border-radius, $border-radius-threshold) {
@if $current-prefix == -webkit {
// Legacy Webkit didn't understand the official shorthand syntax for specifying a vertical radius.
$legacy-webkit-radius: first-value-of($radius);
@if $vertical-radius { $legacy-webkit-radius: append($legacy-webkit-radius, first-value-of($vertical-radius)); }
@include prefix-prop(border-radius, $legacy-webkit-radius);
} @else {
// Official syntax for everyone else
@include prefix-prop(border-radius, if($vertical-radius, #{$radius} / #{$vertical-radius}, $radius));
}
}
}
// Round radius at position by amount.
//
// * legal values for `$vert`: `top`, `bottom`
// * legal values for `$horz`: `left`, `right`
@mixin border-corner-radius($vert, $horz, $radius: $default-border-radius) {
@include with-each-prefix(border-radius, $border-radius-threshold) {
@if $current-prefix == -moz {
// Support for mozilla's syntax for specifying a corner
@include prefix-prop("border-radius-#{$vert}#{$horz}", $radius);
} @else {
// Official syntax for everyone else
@include prefix-prop("border-#{$vert}-#{$horz}-radius", $radius);
}
}
}
// Round top-left corner only
@mixin border-top-left-radius($radius: $default-border-radius) {
@include border-corner-radius(top, left, $radius); }
// Round top-right corner only
@mixin border-top-right-radius($radius: $default-border-radius) {
@include border-corner-radius(top, right, $radius); }
// Round bottom-left corner only
@mixin border-bottom-left-radius($radius: $default-border-radius) {
@include border-corner-radius(bottom, left, $radius); }
// Round bottom-right corner only
@mixin border-bottom-right-radius($radius: $default-border-radius) {
@include border-corner-radius(bottom, right, $radius); }
// Round both top corners by amount
@mixin border-top-radius($radius: $default-border-radius) {
@include border-top-left-radius($radius);
@include border-top-right-radius($radius); }
// Round both right corners by amount
@mixin border-right-radius($radius: $default-border-radius) {
@include border-top-right-radius($radius);
@include border-bottom-right-radius($radius); }
// Round both bottom corners by amount
@mixin border-bottom-radius($radius: $default-border-radius) {
@include border-bottom-left-radius($radius);
@include border-bottom-right-radius($radius); }
// Round both left corners by amount
@mixin border-left-radius($radius: $default-border-radius) {
@include border-top-left-radius($radius);
@include border-bottom-left-radius($radius); }

View File

@ -1,88 +0,0 @@
// Box Shadow
@import "compass/support";
// The prefixed support threshold for box-shadow.
// Defaults to the $graceful-usage-threshold.
$box-shadow-support-threshold: $graceful-usage-threshold !default;
// The default color for box shadows
$default-box-shadow-color: #333333 !default;
// The default horizontal offset. Positive is to the right.
$default-box-shadow-h-offset: 0px !default;
// The default vertical offset. Positive is down.
$default-box-shadow-v-offset: 0px !default;
// The default blur length.
$default-box-shadow-blur: 5px !default;
// The default spread length.
$default-box-shadow-spread: null !default;
// The default shadow inset: inset or null (for standard shadow).
$default-box-shadow-inset: null !default;
@function default-box-shadow() {
@return compact(if($default-box-shadow-inset, inset, null)
$default-box-shadow-h-offset
$default-box-shadow-v-offset
$default-box-shadow-blur
$default-box-shadow-spread
$default-box-shadow-color);
}
// Provides cross-browser for Webkit, Gecko, and CSS3 box shadows
// when one or more box shadows are needed.
// Each shadow argument should adhere to the standard css3 syntax
// for the box-shadow property.
@mixin box-shadow($shadow...) {
$shadow: set-arglist-default($shadow, default-box-shadow());
@include prefixed-properties(css-boxshadow, $box-shadow-support-threshold, (box-shadow: $shadow));
}
// Provides a single cross-browser CSS box shadow for Webkit, Gecko, and CSS3.
// Includes default arguments for color, horizontal offset, vertical offset, blur length, spread length, and inset.
@mixin single-box-shadow(
$hoff : null,
$voff : null,
$blur : null,
$spread : null,
$color : null,
$inset : $default-box-shadow-inset
) {
// Handle legacy argument order
@if not ($hoff == none or $hoff == null) and type-of($hoff) != number {
@warn "The $color argument for single-box-shadow is now the 5th argument instead of the 1st.";
$tmp-color: $color;
$color: $hoff;
$hoff: $voff;
$voff: $blur;
$blur: $spread;
$spread: $tmp-color
}
// Need to set these defaults here instead of the arglist to support the above backwards compat handling
@if $hoff == null { $hoff: $default-box-shadow-h-offset; }
@if $voff == null { $hoff: $default-box-shadow-v-offset; }
@if $blur == null { $blur: $default-box-shadow-blur; }
@if $spread == null { $spread: $default-box-shadow-spread; }
@if $color == null { $color: $default-box-shadow-color; }
@if not ($inset == true or $inset == false or $inset == null or $inset == inset) {
@warn "$inset expected to be true or the inset keyword. Got #{$inset} instead. Using: inset";
}
@if $hoff == none {
@include box-shadow(none);
} @else {
$full : $hoff $voff;
@if $blur { $full: $full $blur; }
@if $spread { $full: $full $spread; }
@if $color { $full: $full $color; }
@if $inset { $full: inset $full; }
@include box-shadow($full);
}
}

View File

@ -1,21 +0,0 @@
// Box Sizing
@import "compass/support";
// The prefixed support threshold for box-sizing.
// Defaults to the $graceful-usage-threshold.
$box-sizing-support-threshold: $critical-usage-threshold !default;
// The default box-sizing model when no argument is provided to the box-sizing mixin: [ content-box | border-box | padding-box ]
//
// The browser default is content-box, compass defaults to border-box.
$default-box-sizing: border-box !default;
// Change the box model for Mozilla, Webkit, IE8 and the future
//
// $box-model: [ content-box | border-box | padding-box ]
@mixin box-sizing($box-model: $default-box-sizing) {
$box-model: unquote($box-model);
@include prefixed-properties(css3-boxsizing, $box-sizing-support-threshold, (box-sizing: $box-model));
}

View File

@ -1,85 +0,0 @@
// Flexible Box
@import "deprecated-support";
@warn "The compass/css3/box module is DEPRECATED and will be removed in the next release. Please use compass/css3/flexbox instead.";
// @private css3-feature-support variables must always include a list of five boolean values
$legacy-box-support: -moz, -webkit, not -o, -ms, not -khtml;
// Default box orientation, assuming that the user wants something less block-like
$default-box-orient : horizontal !default;
// Default box-align
$default-box-align : stretch !default;
// Default box flex
$default-box-flex : 0 !default;
// Default flex group
$default-box-flex-group : 1 !default;
// Box direction default value
$default-box-direction : normal !default;
// Default ordinal group
$default-box-ordinal-group : 1 !default;
// Default box lines
$default-box-lines : single !default;
// Default box pack
$default-box-pack : start !default;
// Apply 'display:box;' to an element.
// - must be used for any of the other flexbox mixins to work properly
@mixin display-box {
@include experimental-value(display, box, $legacy-box-support...);
}
// Box orientation [ horizontal | vertical | inline-axis | block-axis | inherit ]
@mixin box-orient($orientation: $default-box-orient) {
$orientation : unquote($orientation);
@include experimental(box-orient, $orientation, $legacy-box-support...);
}
// Box align [ start | end | center | baseline | stretch ]
@mixin box-align($alignment: $default-box-align) {
$alignment : unquote($alignment);
@include experimental(box-align, $alignment, $legacy-box-support...);
}
// Takes an int argument for box flex. Apply this to the children inside the box.
//
// For example: "div.display-box > div.child-box" would get the box flex mixin.
@mixin box-flex($flex: $default-box-flex) {
@include experimental(box-flex, $flex, $legacy-box-support...);
}
// Takes an int argument for flexible grouping
@mixin box-flex-group($group: $default-box-flex-group) {
@include experimental(box-flex-group, $group, $legacy-box-support...);
}
// Takes an int argument for ordinal grouping and rearranging the order
@mixin box-ordinal-group($group: $default-box-ordinal-group) {
@include experimental(box-ordinal-group, $group, $legacy-box-support...);
}
// Box direction [ normal | reverse | inherit ]
@mixin box-direction($direction: $default-box-direction) {
$direction: unquote($direction);
@include experimental(box-direction, $direction, $legacy-box-support...);
}
// Box lines [ single | multiple ]
@mixin box-lines($lines: $default-box-lines) {
$lines: unquote($lines);
@include experimental(box-lines, $lines, $legacy-box-support...);
}
// Box pack [ start | end | center | justify ]
@mixin box-pack($pack: $default-box-pack) {
$pack: unquote($pack);
@include experimental(box-pack, $pack, $legacy-box-support...);
}

View File

@ -1,212 +0,0 @@
// Columns
@import "compass/support";
// The prefixed support threshold for columns.
// Defaults to the $critical-usage-threshold.
$multicolumn-support-threshold: $critical-usage-threshold !default;
// Specify the shorthand `columns` property.
//
// Example:
//
// @include columns(20em 2);
@mixin columns($width-and-count) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
columns: $width-and-count
));
}
// Specify the number of columns
@mixin column-count($count) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
column-count: $count
));
}
// Specify the gap between columns e.g. `20px`
@mixin column-gap($width) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
column-gap: $width
));
}
// Specify the width of columns e.g. `100px`
@mixin column-width($width) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
column-width: $width
));
}
// Specify how many columns an element should span across.
//
// * legal values are 1, all
@mixin column-span($columns) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
column-span: $columns
));
}
// Specify the width of the rule between columns e.g. `1px`
@mixin column-rule-width($width) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
rule-width: $width
));
}
// Specify the style of the rule between columns e.g. `dotted`.
// This works like border-style.
@mixin column-rule-style($style) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
rule-style: $style
));
}
// Specify the color of the rule between columns e.g. `blue`.
// This works like border-color.
@mixin column-rule-color($color) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
rule-color: $color
));
}
// Mixin encompassing all column rule properties
// For example:
//
// @include column-rule(1px, solid, #c00)
//
// Or the values can be space separated:
//
// @include column-rule(1px solid #c00)
@mixin column-rule($width, $style: null, $color: null) {
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
column-rule: $width $style $color
));
}
// All-purpose mixin for setting column breaks.
//
// * legal values for $type : before, after, inside
// * legal values for '$value' are dependent on $type
// * when $type = before, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
// * when $type = after, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
// * when $type = inside, legal values are auto, avoid, avoid-page, avoid-column
//
// Examples:
// h2.before {@include column-break(before, always);}
// h2.after {@include column-break(after, always); }
// h2.inside {@include column-break(inside); }
//
// Which generates:
// h2.before {
// -webkit-column-break-before: always;
// break-before: always;}
//
// h2.after {
// -webkit-column-break-after: always;
// break-after: always; }
//
// h2.inside {
// -webkit-column-break-inside: auto;
// break-inside: auto;}
@mixin column-break($type: before, $value: auto){
@include with-each-prefix(multicolumn, $multicolumn-support-threshold) {
@if $current-prefix == -webkit {
// Webkit uses non-standard syntax
-webkit-column-break-#{$type}: $value;
} @else if $current-prefix == -moz {
// Moz uses a different non-standard syntax
-moz-page-break-#{$type}: $value;
} @else {
@include prefix-prop(break-#{$type}, $value);
}
}
}
// Mixin for setting break-before
//
// * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
//
// Example:
// h2.before {@include break-before(always);}
//
// Which generates:
//
// h2.before {
// -webkit-column-break-before: always;
// break-before: always;}
@mixin break-before($value: auto){
@include column-break(before, $value);
}
@mixin column-break-before($value: auto){
@include column-break(before, $value);
@warn '"column-break-before" has been deprecated in favor of the official syntax: "break-before".';
}
// Mixin for setting break-after
//
// * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
//
// Example:
// h2.after {@include break-after(always); }
//
// Which generates:
//
// h2.after {
// -webkit-column-break-after: always;
// break-after: always; }
@mixin break-after($value: auto){
@include column-break(after, $value);
}
@mixin column-break-after($value: auto){
@include column-break(after, $value);
@warn '"column-break-after" has been deprecated in favor of the official syntax: "break-after".';
}
// Mixin for setting break-inside
//
// * legal values are auto, avoid, avoid-page, avoid-column
//
// Example:
// h2.inside {@include break-inside();}
//
// Which generates:
//
// h2.inside {
// -webkit-column-break-inside: auto;
// break-inside: auto;}
@mixin break-inside($value: auto){
@include column-break(inside, $value);
}
@mixin column-break-inside($value: auto){
@include column-break(inside, $value);
@warn '"column-break-inside" has been deprecated in favor of the official syntax: "break-inside".';
}
// Mixin for setting column-span
//
// * legal values: none, all
//
// Example:
// h2.span {@include column-span();}
@mixin column-span($span: all){
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
column-span: $span
));
}
// Mixin for setting column-fill
//
// * legal values: auto, balance
//
// Example:
// h2.fill {@include column-fill();}
@mixin column-fill($fill: balance){
@include prefixed-properties(multicolumn, $multicolumn-support-threshold,(
column-fill: $fill
));
}

View File

@ -1,272 +0,0 @@
@import "compass/support";
// XXX Remove these
$experimental-support-for-mozilla: true !default;
$experimental-support-for-webkit: true !default;
$experimental-support-for-opera: true !default;
$experimental-support-for-microsoft: true !default;
$experimental-support-for-khtml: false !default;
$experimental-support-for-svg: false !default;
$legacy-support-for-ie6: true !default;
$legacy-support-for-ie7: true !default;
$legacy-support-for-ie8: true !default;
$legacy-support-for-mozilla: true !default;
$legacy-support-for-webkit: true !default;
// This mixin provides basic support for CSS3 properties and
// their corresponding experimental CSS2 properties when
// the implementations are identical except for the property
// prefix.
@mixin experimental($property, $value,
$moz : $experimental-support-for-mozilla,
$webkit : $experimental-support-for-webkit,
$o : $experimental-support-for-opera,
$ms : $experimental-support-for-microsoft,
$khtml : $experimental-support-for-khtml,
$official : true
) {
@if $webkit and $experimental-support-for-webkit { -webkit-#{$property} : $value; }
@if $khtml and $experimental-support-for-khtml { -khtml-#{$property} : $value; }
@if $moz and $experimental-support-for-mozilla { -moz-#{$property} : $value; }
@if $ms and $experimental-support-for-microsoft { -ms-#{$property} : $value; }
@if $o and $experimental-support-for-opera { -o-#{$property} : $value; }
@if $official { #{$property} : $value; }
}
// This mixin is a shortcut for applying only a single experimental value
@mixin experimental-only-for($property, $value,
$moz : false,
$webkit : false,
$o : false,
$ms : false,
$khtml : false,
$official : false
) {
@include experimental($property, $value, $moz, $webkit, $o, $ms, $khtml, $official);
}
// Same as experimental(), but for cases when the property is the same and the value is vendorized
@mixin experimental-value($property, $value,
$moz : $experimental-support-for-mozilla,
$webkit : $experimental-support-for-webkit,
$o : $experimental-support-for-opera,
$ms : $experimental-support-for-microsoft,
$khtml : $experimental-support-for-khtml,
$official : true
) {
@if $webkit and $experimental-support-for-webkit { #{$property} : -webkit-#{$value}; }
@if $khtml and $experimental-support-for-khtml { #{$property} : -khtml-#{$value}; }
@if $moz and $experimental-support-for-mozilla { #{$property} : -moz-#{$value}; }
@if $ms and $experimental-support-for-microsoft { #{$property} : -ms-#{$value}; }
@if $o and $experimental-support-for-opera { #{$property} : -o-#{$value}; }
@if $official { #{$property} : #{$value}; }
}
// @private
// Check a given support list for support of a particular browser
@function supported(
$prefix,
$support-list
) {
$keys: moz, webkit, o, ms, khtml, official;
$index: index($keys, $prefix);
@if $index {
@if $index == 6 and length($support-list) == 5 {
@return official;
} @else {
@return nth($support-list, $index);
}
} @else {
@warn 'Please pass a valid browser for $prefix: moz, webkit, o, ms, khtml, or official.';
}
}
// A debug tool for checking browser support
@mixin debug-support-matrix($experimental: true, $ie: true) {
@debug #{'$moz-'}$experimental-support-for-mozilla
#{'$webkit-'}$experimental-support-for-webkit
#{'$opera-'}$experimental-support-for-opera
#{'$microsoft-'}$experimental-support-for-microsoft
#{'$khtml-'}$experimental-support-for-khtml;
@debug #{'$ie6-'}$legacy-support-for-ie6
#{'$ie7-'}$legacy-support-for-ie7
#{'$ie8-'}$legacy-support-for-ie8;
}
// Capture the current exerimental support settings
@function capture-experimental-matrix() {
@return $experimental-support-for-mozilla
$experimental-support-for-webkit
$experimental-support-for-opera
$experimental-support-for-microsoft
$experimental-support-for-khtml;
}
// Capture the current legacy-ie support settings
@function capture-legacy-ie-matrix() {
@return $legacy-support-for-ie6
$legacy-support-for-ie7
$legacy-support-for-ie8;
}
// Capture and store support
$experimental-matrix: capture-experimental-matrix();
$legacy-ie-matrix: capture-legacy-ie-matrix();
@mixin capture-experimental-matrix {
$experimental-matrix: capture-experimental-matrix();
}
@mixin capture-legacy-ie-matrix {
$legacy-ie-matrix: capture-legacy-ie-matrix();
}
@mixin capture-support-matrix {
@include capture-experimental-matrix;
@include capture-legacy-ie-matrix;
}
// Change the experimental-support settings in specific contexts.
@mixin set-experimental-support(
$moz : false,
$webkit : false,
$o : false,
$ms : false,
$khtml : false
) {
$experimental-support-for-mozilla : $moz;
$experimental-support-for-webkit : $webkit;
$experimental-support-for-opera : $o;
$experimental-support-for-microsoft : $ms;
$experimental-support-for-khtml : $khtml;
}
@mixin capture-and-set-experimental(
$moz : false,
$webkit : false,
$o : false,
$ms : false,
$khtml : false
) {
@include capture-experimental-matrix;
@include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
}
@mixin capture-and-adjust-experimental(
$moz : $experimental-support-for-mozilla,
$webkit : $experimental-support-for-webkit,
$o : $experimental-support-for-opera,
$ms : $experimental-support-for-microsoft,
$khtml : $experimental-support-for-khtml
) {
@include capture-experimental-matrix;
@include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
}
// Change the legacy-support-for-ie* settings in specific contexts.
@mixin set-legacy-ie-support(
$ie6: false,
$ie7: false,
$ie8: false
) {
$legacy-support-for-ie6: $ie6;
$legacy-support-for-ie7: $ie7;
$legacy-support-for-ie8: $ie8;
}
@mixin capture-and-set-legacy-ie(
$ie6: false,
$ie7: false,
$ie8: false
) {
@include capture-legacy-ie-matrix;
@include set-legacy-ie-support($ie6, $ie7, $ie8);
}
@mixin capture-and-adjust-legacy-ie(
$ie6: $legacy-support-for-ie6,
$ie7: $legacy-support-for-ie7,
$ie8: $legacy-support-for-ie8
) {
@include capture-and-set-legacy-ie($ie6, $ie7, $ie8);
}
// Capture current browser support matrix, and set a new matrix of support.
@mixin capture-and-set-support(
$moz : false,
$webkit : false,
$o : false,
$ms : false,
$khtml : false,
$ie6 : false,
$ie7 : false,
$ie8 : false
) {
// Capture the current state
@include capture-support-matrix;
// Change support settings
@include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
@include set-legacy-ie-support($ie6, $ie7, $ie8);
}
// Capture current browser support matrix, and set a new matrix of support.
@mixin capture-and-adjust-support(
$moz : $experimental-support-for-mozilla,
$webkit : $experimental-support-for-webkit,
$o : $experimental-support-for-opera,
$ms : $experimental-support-for-microsoft,
$khtml : $experimental-support-for-khtml,
$ie6 : $legacy-support-for-ie6,
$ie7 : $legacy-support-for-ie7,
$ie8 : $legacy-support-for-ie8
) {
@include capture-and-set-support($moz, $webkit, $o, $ms, $khtml, $ie6, $ie7, $ie8);
}
// This mixin allows you to change the experimental support settings for
// child (@content) styles.
@mixin with-only-support-for(
$moz : false,
$webkit : false,
$o : false,
$ms : false,
$khtml : false,
$ie6 : false,
$ie7 : false,
$ie8 : false
) {
// Capture current state
$wo-experimental-matrix : capture-experimental-matrix();
$wo-legacy-ie-matrix : capture-legacy-ie-matrix();
// Set new states
@include set-experimental-support($moz, $webkit, $o, $ms, $khtml);
@include set-legacy-ie-support($ie6, $ie7, $ie8);
// Apply styles
@content;
// Return to original support settings
@include set-experimental-support($wo-experimental-matrix...);
@include set-legacy-ie-support($wo-legacy-ie-matrix...);
}
// This mixin is a shortcut for making slight adjustments to browser support
// for child (@content) styles
@mixin adjust-support-for(
$moz : $experimental-support-for-mozilla,
$webkit : $experimental-support-for-webkit,
$o : $experimental-support-for-opera,
$ms : $experimental-support-for-microsoft,
$khtml : $experimental-support-for-khtml,
$ie6 : $legacy-support-for-ie6,
$ie7 : $legacy-support-for-ie7,
$ie8 : $legacy-support-for-ie8
) {
@include with-only-support-for($moz, $webkit, $o, $ms, $khtml, $ie6, $ie7, $ie8) {
@content;
}
}

View File

@ -1,50 +0,0 @@
// Filter
@import "compass/support";
// The prefixed support threshold for css filter effects.
// Defaults to the $graceful-usage-threshold.
$filter-support-threshold: $graceful-usage-threshold !default;
// Provides cross-browser support for the upcoming (?) css3 filter property.
//
// The filter argument should adhere to the standard css3 syntax
// for the filter property.
@mixin filter($filters) {
@include prefixed-properties(css-filters, $filter-support-threshold,(
filter: $filters
));
}
// @private Apply filter-margins
@mixin apply-filter-margin($position, $width) {
@include prefixed-properties(css-filters, $filter-support-threshold,(
filter-margin-#{$position}: $width
));
}
// filter-margin-top
@mixin filter-margin-top($width) { @include apply-filter-margin(top, $width); }
// filter-margin-right
@mixin filter-margin-right($width) { @include apply-filter-margin(right, $width); }
// filter-margin-bottom
@mixin filter-margin-bottom($width) { @include apply-filter-margin(bottom, $width); }
// filter-margin-left
@mixin filter-margin-left($width) { @include apply-filter-margin(left, $width); }
// filter-margin
@mixin filter-margin($widths) {
@include prefixed-properties(css-filters, $filter-support-threshold,(
filter-margin: $widths
));
}
// color-interpolation-filters (auto | sRGB | linearRGB )
@mixin color-interpolation-filters($value) {
@include prefixed-properties(css-filters, $filter-support-threshold,(
color-interpolation-filters: $value
));
}

View File

@ -1,156 +0,0 @@
// There are two ways to use the flexbox module.
// If you're using the final version of the spec,
// you can use the property mixins as elsewhere in
// the css3 module.
//
// You can also use the flexbox prefixing mixin `flexbox`.
// This mixin takes an optional `$version` argument which
// allows you to specify which spec version the properties
// are using so that they will be prefixed correctly.
//
// Example:
//
// .flex-column {
// /* For flexbox spec v1 */
// @include flexbox((
// display: box,
// box-orient: vertical,
// ), $version: 1);
//
// /* For flexbox spec v2 */
// @include flexbox((
// display: flexbox,
// flex-direction: column,
// ), $version: 2);
//
// /* Latest Spec */
// @include flexbox((
// display: flex,
// flex-direction: column,
// ));
// }
//
// Which compiles to:
//
// .flex-row {
// /* For flexbox spec v1 */
// display: -moz-box;
// -moz-box-orient: vertical;
// display: -webkit-box;
// -webkit-box-orient: vertical;
//
// /* For flexbox spec v2 */
// display: -ms-flexbox;
// -ms-flex-direction: column;
//
// /* Latest Spec */
// display: -webkit-flex;
// -webkit-flex-direction: column;
// display: flex;
// flex-direction: column;
// }
@import "compass/support";
$flexbox-support-threshold: $critical-usage-threshold !default;
// @private
$flexbox-capability-options: (
(full-support: true),
(partial-support: true, spec-versions: 3)
);
// This is the underlying implementation for all the other mixins in this module.
// It is the only way to access prefix support for older versions of the spec.
//
// `$properties`: map of property-value pairs that should be prefixed
// `$version1: the version of the spec to use when considering what prefix
// to appply. Defaults to the most recent (spec version 3). Only the most
// recent version of the spec outputs an unprefixed version.
@mixin flexbox($properties, $version: null) {
$capability-options: $flexbox-capability-options;
@if $version {
$capability-options: (partial-support: true, spec-versions: $version);
}
@include with-each-prefix(flexbox, $flexbox-support-threshold, $capability-options) {
// Don't output unprefixed versions when the spec version is not the final version
@if $version and $current-prefix or not $version or $version == 3 {
@each $prop, $value in $properties {
@if $prop == display {
display: prefix-identifier($value);
} @else {
@include prefix-prop($prop, $value);
}
}
}
}
}
// Values for $display are: flex (default), inline-flex
@mixin display-flex($display: flex) {
@include flexbox((display: $display));
}
// Values: row | row-reverse | column | column-reverse
@mixin flex-direction($direction) {
@include flexbox((flex-direction: $direction));
}
// Values: nowrap | wrap | wrap-reverse
@mixin flex-wrap($wrap) {
@include flexbox((flex-wrap: $wrap));
}
// Shorthand for flex-direction and flex-wrap.
@mixin flex-flow($flow) {
@include flexbox((flex-flow: $flow));
}
// Accepts an integer
@mixin order($order) {
@include flexbox((order: $order));
}
// Shorthand for flex-grow, flex-shrink and optionally flex-basis.
// Space separated, in that order.
@mixin flex($flex) {
@include flexbox((flex: $flex));
}
// Accepts a number.
@mixin flex-grow($flex-grow) {
@include flexbox((flex-grow: $flex-grow));
}
// Accepts a number.
@mixin flex-shrink($flex-shrink) {
@include flexbox((flex-shrink: $flex-shrink));
}
// Accepts any legal value for the width property.
@mixin flex-basis($flex-basis) {
@include flexbox((flex-basis: $flex-basis));
}
// Legal values: flex-start | flex-end | center | space-between | space-around
@mixin justify-content($justify-content) {
@include flexbox((justify-content: $justify-content));
}
// Legal values: flex-start | flex-end | center | baseline | stretch
@mixin align-items($align-items) {
@include flexbox((align-items: $align-items));
}
// Legal values: auto | flex-start | flex-end | center | baseline | stretch
@mixin align-self($align-self) {
@include flexbox((align-self: $align-self));
}
// Legal values: flex-start | flex-end | center | space-between | space-around | stretch
@mixin align-content($align-content) {
@include flexbox((align-content: $align-content));
}

View File

@ -1,48 +0,0 @@
@import "compass/support";
// Cross-browser support for @font-face. Supports IE, Gecko, Webkit, Opera.
//
// * $name is required, arbitrary, and what you will use in font stacks.
// * $font-files is required using font-files('relative/location', 'format').
// for best results use this order: woff, opentype/truetype, svg
// * $eot is required by IE, and is a relative location of the eot file.
// * $weight shows if the font is bold, defaults to normal
// * $style defaults to normal, might be also italic
// * For android 2.2 Compatiblity, please ensure that your web page has
// a meta viewport tag.
// * To support iOS < 4.2, an SVG file must be provided
//
// If you need to generate other formats check out the Font Squirrel
// [font generator](http://www.fontsquirrel.com/fontface/generator)
//
// In order to refer to a specific style of the font in your stylesheets as
// e.g. "font-style: italic;", you may add a couple of @font-face includes
// containing the respective font files for each style and specying
// respective the $style parameter.
// Order of the includes matters, and it is: normal, bold, italic, bold+italic.
@mixin font-face(
$name,
$font-files,
$eot: false,
$weight: false,
$style: false
) {
$iefont: unquote("#{$eot}?#iefix");
@font-face {
font-family: quote($name);
@if $eot {
src: font-url($eot);
$font-files: font-url($iefont) unquote("format('embedded-opentype')"), $font-files;
}
src: $font-files;
@if $weight {
font-weight: $weight;
}
@if $style {
font-style: $style;
}
}
}

View File

@ -1,71 +0,0 @@
// Mixins to support specific CSS Text Level 3 elements
@import "compass/support";
// The the user threshold for hyphens support.
// Defaults to `$graceful-usage-threshold`.
$hyphens-support-threshold: $graceful-usage-threshold !default;
// Mixin for word-break properties
// http://www.w3.org/css3-text/#word-break
// * legal values for $type : normal, keep-all, break-all
//
// Example:
// p.wordBreak {@include word-break(break-all);}
//
// Which generates:
// p.wordBreak {
// word-break: break-all;
// word-break: break-word;}
//
@mixin word-break($value: normal){
word-break: $value;
@if $value == break-all {
//Webkit handles break-all differently... as break-word
@include with-prefix(-webkit) {
word-break: break-word;
}
}
}
// Mixin for the hyphens property
//
// W3C specification: http://www.w3.org/TR/css3-text/#hyphens
// * legal values for $type : auto, manual, none
//
// Example:
// p {
// @include hyphens(auto);}
// Which generates:
// p {
// -moz-hyphens: auto;
// -webkit-hyphens: auto;
// hyphens: auto;}
//
@mixin hyphens($value: auto){
@include prefixed-properties(css-hyphens, $hyphens-support-threshold, (
hyphens: $value
));
}
// Mixin for x-browser hyphenation based on @auchenberg's post:
// Removes the need for the <wbr/> HTML tag
// http://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/
//
// Example:
// div {@include hyphenation;}
//
// Which generates:
// div {
// -ms-word-break: break-all;
// word-break: break-all;
// word-break: break-word;
// -moz-hyphens: auto;
// -webkit-hyphens: auto;
// hyphens: auto;}
//
@mixin hyphenation {
@include word-break(break-all);
@include hyphens;
}

View File

@ -1,152 +0,0 @@
@import "compass/support";
@import "compass/utilities/general/hacks";
$gradient-support-threshold: $graceful-usage-threshold !default;
$svg-gradient-shim-threshold: $graceful-usage-threshold !default;
$border-image-support-threshold: $graceful-usage-threshold !default;
$owg-threshold: $graceful-usage-threshold !default;
// Compass assumes you will use the official gradient syntax,
// unless otherwise instructed.
$use-legacy-gradient-syntax: false !default;
// Create a linear gradient using standard official or legacy syntax.
// This function must be included in one of the following
// image module mixins to work properly.
@function linear-gradient($angle, $details...) {
$legacy-syntax: $use-legacy-gradient-syntax;
@if type-of($angle) != 'number' {
$angle: compact($angle);
$legacy-syntax: if(index($angle, 'to'), false, true);
}
@if $legacy-syntax {
@return _linear-gradient_legacy($angle, $details...);
} @else {
@return _linear-gradient($angle, $details...);
}
}
// These browsers support svg but not gradients
// so we can shim the gradient with an inline svg file.
$browsers-supporting-svg-but-not-gradients: (ie: "9", opera: "9.5-9.6");
// These browsers require the old webkit gradient syntax
$browsers-supporting-old-webkit-gradients: (android: ("2.1", "3"));
@mixin each-gradient-prefix($values) {
@if prefixed(-svg, $values) {
@include for-legacy-browsers($browsers-supporting-svg-but-not-gradients,
$svg-gradient-shim-threshold)
{
@include with-prefix(-svg) {
@content;
}
}
}
@if prefixed(-owg, $values) {
@include for-legacy-browsers($browsers-supporting-old-webkit-gradients,
$owg-threshold)
{
@include with-prefix(-owg) {
@content;
}
}
}
@include with-each-prefix(css-gradients, $gradient-support-threshold) {
@if $current-prefix {
@if prefixed($current-prefix, $values) {
@content;
} @else if $debug-browser-support {
/* There is not a value that needs to be prefixed with #{$current-prefix} in: #{$values} */
}
} @else {
@content;
}
}
}
@mixin image-property($property, $values...) {
@include each-gradient-prefix($values) {
@if $current-prefix {
#{$property}: prefix($current-prefix, $values);
} @else {
#{$property}: $values;
}
@content;
}
}
// Background property support for vendor prefixing within values.
@mixin background($backgrounds...) {
@include image-property(background, $backgrounds...);
}
// Set any number of background layers, along with a fallback.
// The final argument will be output separately, first, as a css2 fallback.
@mixin background-with-css2-fallback($backgrounds...) {
@if length($backgrounds) > 1 or prefixed(-css2, $backgrounds) {
background: -css2(nth($backgrounds, -1));
}
@include background($backgrounds...);
}
// Background image property support for vendor prefixing within values.
@mixin background-image($images...) {
@include image-property(background-image, $images...) {
@if $current-prefix == -svg {
background-size: 100%;
}
}
}
// Emit a IE-Specific filters that renders a simple linear gradient.
// For use in IE 6 - 8. Best practice would have you apply this via a
// conditional IE stylesheet, but if you must, you should place this before
// any background-image properties that you have specified.
//
// For the `$orientation` parameter, you can pass `vertical` or `horizontal`.
@mixin filter-gradient(
$start-color,
$end-color,
$orientation: vertical
) {
@include for-legacy-browsers((ie: "8"), $gradient-support-threshold) {
@include has-layout;
$gradient-type: if($orientation == vertical, 0, 1);
filter: progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}');
}
}
// Border image property support for vendor prefixing properties and values.
@mixin border-image($value) {
@include with-each-prefix(border-image, $border-image-support-threshold) {
$border-prefix: $current-prefix;
@include each-gradient-prefix($value) {
@if $current-prefix and prefixed($current-prefix, $value) {
$legacy-value: reject($value, fill);
@include prefix-prop(border-image, prefix($current-prefix, $legacy-value), $prefix: $border-prefix);
} @else {
@include prefix-prop(border-image, $value, $prefix: $border-prefix);
}
}
}
}
// List style image property support for vendor prefixing within values.
@mixin list-style-image($image) {
@include image-property(list-style-image, $image);
}
// List style property support for vendor prefixing within values.
@mixin list-style($value) {
@include image-property(list-style, $value);
}
// content property support for vendor prefixing within values.
@mixin content($value) {
@include image-property(content, $value);
}

View File

@ -1,31 +0,0 @@
@import "compass/support";
// The legacy support for inline-block.
// Defaults to the $graceful-usage-threshold.
$inline-block-support-threshold: $graceful-usage-threshold !default;
// Set `$inline-block-alignment` to `none` or `false` to disable the output
// of a vertical-align property in the inline-block mixin.
// Or set it to a legal value for `vertical-align` to change the default.
$inline-block-alignment: middle !default;
// Provides a cross-browser method to implement `display: inline-block;`
@mixin inline-block($alignment: $inline-block-alignment, $ie-alignment: auto) {
// legacy support for VERY old firefox
@if support-legacy-browser("firefox", "2", $threshold: $inline-block-support-threshold) {
display: -moz-inline-stack;
}
// standard
display: inline-block;
@if $alignment and $alignment != none {
vertical-align: $alignment;
}
// legacy IE support
@if support-legacy-browser("ie", "7", $threshold: $inline-block-support-threshold) {
@if $ie-alignment and $ie-alignment != none {
*vertical-align: $ie-alignment;
}
*zoom: 1;
*display: inline;
}
}

View File

@ -1,27 +0,0 @@
@import "compass/support";
// The support usage threshold for opacity. Defaults to the global
// threshold for graceful degradation.
$opacity-usage-threshold: $graceful-usage-threshold !default;
// Provides cross-browser CSS opacity. Takes a number between 0 and 1 as the argument, e.g. 0.5 for 50% opacity.
//
// @param $opacity
// A number between 0 and 1, where 0 is transparent and 1 is opaque.
@mixin opacity($opacity) {
@include for-legacy-browser("ie", "8", $threshold: $opacity-usage-threshold) {
@if $opacity == 1 {
filter: unquote("progid:DXImageTransform.Microsoft.Alpha(enabled=false)");
} @else {
filter: unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=#{round($opacity * 100)})");
}
}
opacity: $opacity;
}
// Make an element completely transparent.
@mixin transparent { @include opacity(0); }
// Make an element completely opaque.
@mixin opaque { @include opacity(1); }

View File

@ -1 +0,0 @@
@warn "Support for CSS3Pie has been removed.";

View File

@ -1,27 +0,0 @@
// Regions
@import "compass/support";
// The prefixed support threshold for css regions.
// Defaults to the $graceful-usage-threshold.
$regions-support-threshold: $graceful-usage-threshold !default;
// Webkit, IE10 and future support for [CSS Regions](http://dev.w3.org/csswg/css3-regions/)
//
// $target is a value you use to link two regions of your css.
// Give the source of your content the flow-into property,
// and give your target container the flow-from property.
//
// For a visual explanation, see the diagrams at Chris Coyier's
// [CSS-Tricks](http://css-tricks.com/content-folding/)
@mixin flow-into($target) {
$target: unquote($target);
@include prefixed-properties(css-regions, $regions-support-threshold, (flow-into: $target));
}
@mixin flow-from($target) {
$target: unquote($target);
@include prefixed-properties(css-regions, $regions-support-threshold, (flow-from: $target));
}

View File

@ -1,59 +0,0 @@
@import "compass/support";
@import "compass/utilities/color";
// The prefixed support threshold for ::selection.
// Defaults to the $graceful-usage-threshold.
$selection-support-threshold: $graceful-usage-threshold !default;
// Style selected text.
//
// At this time, only two CSS properties are supported in most browsers
// during selection: color and background-color. Firefox supports the
// text-shadow property.
//
// At the stylesheet root, include the mixin within the * selector.
//
// * {
// @include selection(#fe57a1, #fff)
// }
//
// If a specific element or selector's selection is being styled
// you can use that selector instead. For example:
//
// .hot-pink {
// @include selection(#fe57a1, #fff)
// }
//
// These properties can be passed as arguments or you can set them via mixin
// content.
//
// For future-forward compatibility with other properties and aesthetic freedom,
// a mixin content block can be passed to this mixin in addition to or in place of
// passing arguments.
//
// .hot-pink {
// @include selection {
// background: #fe57a1;
// color: #fff;
// }
// }
//
// When `$background-color` is specified, but `$color` is not, this mixin
// styles the foreground color like the [contrasted
// mixin](/reference/compass/utilities/color/contrast/#mixin-contrasted). To
// specify only the background-color, you should pass an explicit `null` value
// for `$color` or use mixin content.
@mixin selection($background-color: null, $color: contrast-color($background-color)) {
@include with-each-prefix(css-selection, $selection-support-threshold) {
$selector: '';
@if $current-prefix != null {
$selector: $current-prefix + '-';
}
$selector: "&::#{$selector}selection";
#{$selector} {
color: $color;
background-color: $background-color;
@content;
}
}
}

View File

@ -1,5 +0,0 @@
@warn "The compass/css3/shared module has been deprecated.
You can silence this warning by importing compass/css3/deprecated-support instead.
Please be aware that module will be removed in the next release.";
@import "deprecated-support";

View File

@ -1,82 +0,0 @@
// Text Shadow
@import "compass/support";
// These defaults make the arguments optional for this mixin
// If you like, set different defaults in your project
$default-text-shadow-color : #aaaaaa !default;
$default-text-shadow-h-offset : 0px !default;
$default-text-shadow-v-offset : 0px !default;
$default-text-shadow-blur : 1px !default;
$default-text-shadow-spread : false !default;
// Provides cross-browser text shadows when one or more shadows are needed.
// Each shadow argument should adhere to the standard css3 syntax for the
// text-shadow property.
//
// Note: if any shadow has a spread parameter, this will cause the mixin
// to emit the shadow declaration twice, first without the spread,
// then with the spread included. This allows you to progressively
// enhance the browsers that do support the spread parameter.
@mixin text-shadow(
$shadow...
) {
$shadow: if(length($shadow) > 0, $shadow, default);
$default: -compass-space-list(compact($default-text-shadow-h-offset $default-text-shadow-v-offset $default-text-shadow-blur $default-text-shadow-spread $default-text-shadow-color));
$shadows-without-spread: join((),(),comma);
$shadows: join((),(),comma);
$has-spread: false;
@each $layer in $shadow {
$layer: if($layer == 'default', $default, $layer);
@if length($layer) > 4 {
$has-spread: true;
$shadows-without-spread: append($shadows-without-spread, nth($layer,1) nth($layer,2) nth($layer,3) nth($layer,5));
$shadows: append($shadows, $layer);
} @else {
$shadows-without-spread: append($shadows-without-spread, $layer);
$shadows: append($shadows, $layer);
}
}
@if $has-spread {
text-shadow: $shadows-without-spread;
}
text-shadow: $shadows;
}
// Provides a single cross-browser CSS text shadow.
//
// Provides sensible defaults for the color, horizontal offset, vertical offset, blur, and spread
// according to the configuration defaults above.
@mixin single-text-shadow(
$hoff: false,
$voff: false,
$blur: false,
$spread: false,
$color: false
) {
// A lot of people think the color comes first. It doesn't.
@if type-of($hoff) == color {
$temp-color: $hoff;
$hoff: $voff;
$voff: $blur;
$blur: $spread;
$spread: $color;
$color: $temp-color;
}
// Can't rely on default assignment with multiple supported argument orders.
$hoff: if($hoff, $hoff, $default-text-shadow-h-offset);
$voff: if($voff, $voff, $default-text-shadow-v-offset);
$blur: if($blur, $blur, $default-text-shadow-blur );
$spread: if($spread, $spread, $default-text-shadow-spread );
$color: if($color, $color, $default-text-shadow-color );
// We don't need experimental support for this property.
@if $color == none or $hoff == none {
@include text-shadow(none);
} @else {
@include text-shadow(compact($hoff $voff $blur $spread $color));
}
}

View File

@ -1,590 +0,0 @@
@import "compass/support";
// The the user threshold for transform support. Defaults to `$graceful-usage-threshold`
$transform-support-threshold: $graceful-usage-threshold !default;
// @doc off
// Note ----------------------------------------------------------------------
// Safari, Chrome, and Firefox all support 3D transforms. However,
// only in the most recent builds. You should also provide fallback 2d support for
// Opera and IE. IE10 is slated to have 3d enabled, but is currently unreleased.
// To make that easy, all 2D transforms include an browser-targeting toggle ($only3d)
// to switch between the two support lists. The toggle defaults to 'false' (2D),
// and also accepts 'true' (3D). Currently the lists are as follows:
// 2D: Mozilla, Webkit, Opera, Official
// 3D: Webkit, Firefox.
// Available Transforms ------------------------------------------------------
// - Scale (2d and 3d)
// - Rotate (2d and 3d)
// - Translate (2d and 3d)
// - Skew (2d only)
// Transform Parameters ------------------------------------------------------
// - Transform Origin (2d and 3d)
// - Perspective (3d)
// - Perspective Origin (3d)
// - Transform Style (3d)
// - Backface Visibility (3d)
// Mixins --------------------------------------------------------------------
// transform-origin
// - shortcuts: transform-origin2d, transform-origin3d
// - helpers: apply-origin
// transform
// - shortcuts: transform2d, transform3d
// - helpers: simple-transform, create-transform
// perspective
// - helpers: perspective-origin
// transform-style
// backface-visibility
// scale
// - shortcuts: scaleX, scaleY, scaleZ, scale3d
// rotate
// - shortcuts: rotateX, rotateY, rotate3d
// translate
// - shortcuts: translateX, translateY, translateZ, translate3d
// skew
// - shortcuts: skewX, skewY
// Defaults ------------------------------------------------------------------
// @doc on
// The default x-origin for transforms
$default-origin-x : 50% !default;
// The default y-origin for transforms
$default-origin-y : 50% !default;
// The default z-origin for transforms
$default-origin-z : 50% !default;
// The default x-multiplier for scaling
$default-scale-x : 1.25 !default;
// The default y-multiplier for scaling
$default-scale-y : $default-scale-x !default;
// The default z-multiplier for scaling
$default-scale-z : $default-scale-x !default;
// The default angle for rotations
$default-rotate : 45deg !default;
// The default x-vector for the axis of 3d rotations
$default-vector-x : 1 !default;
// The default y-vector for the axis of 3d rotations
$default-vector-y : 1 !default;
// The default z-vector for the axis of 3d rotations
$default-vector-z : 1 !default;
// The default x-length for translations
$default-translate-x : 1em !default;
// The default y-length for translations
$default-translate-y : $default-translate-x !default;
// The default z-length for translations
$default-translate-z : $default-translate-x !default;
// The default x-angle for skewing
$default-skew-x : 5deg !default;
// The default y-angle for skewing
$default-skew-y : 5deg !default;
// **Transform-origin**
// Transform-origin sent as a complete string
//
// @include apply-origin( origin [, 3D-only ] )
//
// where 'origin' is a space separated list containing 1-3 (x/y/z) coordinates
// in percentages, absolute (px, cm, in, em etc..) or relative
// (left, top, right, bottom, center) units
//
// @param only3d Set this to true to only apply this
// mixin where browsers have 3D support.
@mixin apply-origin($origin, $only3d) {
$capability: if($only3d or length($origin) > 2, transforms3d, transforms2d);
@include prefixed-properties($capability, $transform-support-threshold, (
transform-origin: $origin
));
}
// Transform-origin sent as individual arguments:
//
// @include transform-origin( [ origin-x, origin-y, origin-z, 3D-only ] )
//
// where the 3 'origin-' arguments represent x/y/z coordinates.
//
// **NOTE:** setting z coordinates triggers 3D support list, leave false for 2D support
@mixin transform-origin(
$origin-x: $default-origin-x,
$origin-y: $default-origin-y,
$origin-z: false,
$only3d: if($origin-z, true, false)
) {
$origin: unquote('');
@if $origin-x or $origin-y or $origin-z {
@if $origin-x { $origin: $origin-x; } @else { $origin: 50%; }
@if $origin-y { $origin: $origin $origin-y; } @else { @if $origin-z { $origin: $origin 50%; }}
@if $origin-z { $origin: $origin $origin-z; }
@include apply-origin($origin, $only3d);
}
}
// Transform sent as a complete string:
//
// @include transform( transforms [, 3D-only ] )
//
// where 'transforms' is a space separated list of all the transforms to be applied.
@mixin transform(
$transform,
$only3d: false
) {
$capability: if($only3d, transforms3d, transforms2d);
@include prefixed-properties($capability, $transform-support-threshold, (
transform: $transform
));
}
// Shortcut to target all browsers with 2D transform support
@mixin transform2d($trans) {
@include transform($trans, false);
}
// Shortcut to target only browsers with 3D transform support
@mixin transform3d($trans) {
@include transform($trans, true);
}
// @doc off
// 3D Parameters -------------------------------------------------------------
// @doc on
// Set the perspective of 3D transforms on the children of an element:
//
// @include perspective( perspective )
//
// where 'perspective' is a unitless number representing the depth of the
// z-axis. The higher the perspective, the more exaggerated the foreshortening.
// values from 500 to 1000 are more-or-less "normal" - a good starting-point.
@mixin perspective($p) {
@include prefixed-properties(transforms3d, $transform-support-threshold, (
perspective: $p
));
}
// Set the origin position for the perspective
//
// @include perspective-origin(origin-x [origin-y])
//
// where the two arguments represent x/y coordinates
@mixin perspective-origin($origin: 50%) {
@include prefixed-properties(transforms3d, $transform-support-threshold, (
perspective-origin: $origin
));
}
// Determine whether a 3D objects children also live in the given 3D space
//
// @include transform-style( [ style ] )
//
// where `style` can be either `flat` or `preserve-3d`.
// Browsers default to `flat`, mixin defaults to `preserve-3d`.
@mixin transform-style($style: preserve-3d) {
@include prefixed-properties(transforms3d, $transform-support-threshold, (
transform-style: $style
));
}
// Determine the visibility of an element when it's back is turned
//
// @include backface-visibility( [ visibility ] )
//
// where `visibility` can be either `visible` or `hidden`.
// Browsers default to visible, mixin defaults to hidden
@mixin backface-visibility($visibility: hidden) {
@include prefixed-properties(transforms3d, $transform-support-threshold, (
backface-visibility: $visibility
));
}
// @doc off
// Transform Partials --------------------------------------------------------
// These work well on their own, but they don't add to each other, they override.
// Use along with transform parameter mixins to adjust origin, perspective and style
// ---------------------------------------------------------------------------
// Scale ---------------------------------------------------------------------
// @doc on
// Scale an object along the x and y axis:
//
// @include scale( [ scale-x, scale-y, perspective, 3D-only ] )
//
// where the 'scale-' arguments are unitless multipliers of the x and y dimensions
// and perspective, which works the same as the stand-alone perspective property/mixin
// but applies to the individual element (multiplied with any parent perspective)
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin scale(
$scale-x: $default-scale-x,
$scale-y: $scale-x,
$perspective: false,
$only3d: false
) {
$trans: scale($scale-x, $scale-y);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform($trans, $only3d);
}
// Scale an object along the x axis
// @include scaleX( [ scale-x, perspective, 3D-only ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin scaleX(
$scale: $default-scale-x,
$perspective: false,
$only3d: false
) {
$trans: scaleX($scale);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform($trans, $only3d);
}
// Scale an object along the y axis
// @include scaleY( [ scale-y, perspective, 3D-only ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin scaleY(
$scale: $default-scale-y,
$perspective: false,
$only3d: false
) {
$trans: scaleY($scale);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform($trans, $only3d);
}
// Scale an object along the z axis
// @include scaleZ( [ scale-z, perspective ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin scaleZ(
$scale: $default-scale-z,
$perspective: false
) {
$trans: scaleZ($scale);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform3d($trans);
}
// Scale and object along all three axis
// @include scale3d( [ scale-x, scale-y, scale-z, perspective ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin scale3d(
$scale-x: $default-scale-x,
$scale-y: $default-scale-y,
$scale-z: $default-scale-z,
$perspective: false
) {
$trans: scale3d($scale-x, $scale-y, $scale-z);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform3d($trans);
}
// @doc off
// Rotate --------------------------------------------------------------------
// @doc on
// Rotate an object around the z axis (2D)
// @include rotate( [ rotation, perspective, 3D-only ] )
// where 'rotation' is an angle set in degrees (deg) or radian (rad) units
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin rotate(
$rotate: $default-rotate,
$perspective: false,
$only3d: false
) {
$trans: rotate($rotate);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform($trans, $only3d);
}
// A longcut for 'rotate' in case you forget that 'z' is implied
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin rotateZ(
$rotate: $default-rotate,
$perspective: false,
$only3d: false
) {
@include rotate($rotate, $perspective, $only3d);
}
// Rotate an object around the x axis (3D)
// @include rotateX( [ rotation, perspective ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin rotateX(
$rotate: $default-rotate,
$perspective: false
) {
$trans: rotateX($rotate);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform3d($trans);
}
// Rotate an object around the y axis (3D)
// @include rotate( [ rotation, perspective ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin rotateY(
$rotate: $default-rotate,
$perspective: false
) {
$trans: rotateY($rotate);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform3d($trans);
}
// Rotate an object around an arbitrary axis (3D)
// @include rotate( [ vector-x, vector-y, vector-z, rotation, perspective ] )
// where the 'vector-' arguments accept unitless numbers.
// These numbers are not important on their own, but in relation to one another
// creating an axis from your transform-origin, along the axis of Xx = Yy = Zz.
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin rotate3d(
$vector-x: $default-vector-x,
$vector-y: $default-vector-y,
$vector-z: $default-vector-z,
$rotate: $default-rotate,
$perspective: false
) {
$trans: rotate3d($vector-x, $vector-y, $vector-z, $rotate);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform3d($trans);
}
// @doc off
// Translate -----------------------------------------------------------------
// @doc on
// Move an object along the x or y axis (2D)
// @include translate( [ translate-x, translate-y, perspective, 3D-only ] )
// where the 'translate-' arguments accept any distance in percentages or absolute (px, cm, in, em etc..) units.
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin translate(
$translate-x: $default-translate-x,
$translate-y: $default-translate-y,
$perspective: false,
$only3d: false
) {
$trans: translate($translate-x, $translate-y);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform($trans, $only3d);
}
// Move an object along the x axis (2D)
// @include translate( [ translate-x, perspective, 3D-only ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin translateX(
$trans-x: $default-translate-x,
$perspective: false,
$only3d: false
) {
$trans: translateX($trans-x);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform($trans, $only3d);
}
// Move an object along the y axis (2D)
// @include translate( [ translate-y, perspective, 3D-only ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin translateY(
$trans-y: $default-translate-y,
$perspective: false,
$only3d: false
) {
$trans: translateY($trans-y);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform($trans, $only3d);
}
// Move an object along the z axis (3D)
// @include translate( [ translate-z, perspective ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin translateZ(
$trans-z: $default-translate-z,
$perspective: false
) {
$trans: translateZ($trans-z);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform3d($trans);
}
// Move an object along the x, y and z axis (3D)
// @include translate( [ translate-x, translate-y, translate-z, perspective ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin translate3d(
$translate-x: $default-translate-x,
$translate-y: $default-translate-y,
$translate-z: $default-translate-z,
$perspective: false
) {
$trans: translate3d($translate-x, $translate-y, $translate-z);
@if $perspective { $trans: perspective($perspective) $trans; }
@include transform3d($trans);
}
// @doc off
// Skew ----------------------------------------------------------------------
// @doc on
// Skew an element:
//
// @include skew( [ skew-x, skew-y, 3D-only ] )
//
// where the 'skew-' arguments accept css angles in degrees (deg) or radian (rad) units.
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin skew(
$skew-x: $default-skew-x,
$skew-y: $default-skew-y,
$only3d: false
) {
$trans: skew($skew-x, $skew-y);
@include transform($trans, $only3d);
}
// Skew an element along the x axiz
//
// @include skew( [ skew-x, 3D-only ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin skewX(
$skew-x: $default-skew-x,
$only3d: false
) {
$trans: skewX($skew-x);
@include transform($trans, $only3d);
}
// Skew an element along the y axis
//
// @include skew( [ skew-y, 3D-only ] )
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin skewY(
$skew-y: $default-skew-y,
$only3d: false
) {
$trans: skewY($skew-y);
@include transform($trans, $only3d);
}
// Full transform mixins
// For settings any combination of transforms as arguments
// These are complex and not highly recommended for daily use. They are mainly
// here for backward-compatibility purposes.
//
// * they include origin adjustments
// * scale takes a multiplier (unitless), rotate and skew take degrees (deg)
//
// **Note** This mixin cannot be combined with other transform mixins.
@mixin create-transform(
$perspective: false,
$scale-x: false,
$scale-y: false,
$scale-z: false,
$rotate-x: false,
$rotate-y: false,
$rotate-z: false,
$rotate3d: false,
$trans-x: false,
$trans-y: false,
$trans-z: false,
$skew-x: false,
$skew-y: false,
$origin-x: false,
$origin-y: false,
$origin-z: false,
$only3d: false
) {
$trans: unquote("");
// perspective
@if $perspective { $trans: perspective($perspective) ; }
// scale
@if $scale-x and $scale-y {
@if $scale-z { $trans: $trans scale3d($scale-x, $scale-y, $scale-z); }
@else { $trans: $trans scale($scale-x, $scale-y); }
} @else {
@if $scale-x { $trans: $trans scaleX($scale-x); }
@if $scale-y { $trans: $trans scaleY($scale-y); }
@if $scale-z { $trans: $trans scaleZ($scale-z); }
}
// rotate
@if $rotate-x { $trans: $trans rotateX($rotate-x); }
@if $rotate-y { $trans: $trans rotateY($rotate-y); }
@if $rotate-z { $trans: $trans rotateZ($rotate-z); }
@if $rotate3d { $trans: $trans rotate3d($rotate3d); }
// translate
@if $trans-x and $trans-y {
@if $trans-z { $trans: $trans translate3d($trans-x, $trans-y, $trans-z); }
@else { $trans: $trans translate($trans-x, $trans-y); }
} @else {
@if $trans-x { $trans: $trans translateX($trans-x); }
@if $trans-y { $trans: $trans translateY($trans-y); }
@if $trans-z { $trans: $trans translateZ($trans-z); }
}
// skew
@if $skew-x and $skew-y { $trans: $trans skew($skew-x, $skew-y); }
@else {
@if $skew-x { $trans: $trans skewX($skew-x); }
@if $skew-y { $trans: $trans skewY($skew-y); }
}
// apply it!
@include transform($trans, $only3d);
@include transform-origin($origin-x, $origin-y, $origin-z, $only3d);
}
// A simplified set of options
// backwards-compatible with the previous version of the 'transform' mixin
@mixin simple-transform(
$scale: false,
$rotate: false,
$trans-x: false,
$trans-y: false,
$skew-x: false,
$skew-y: false,
$origin-x: false,
$origin-y: false
) {
@include create-transform(
false,
$scale, $scale, false,
false, false, $rotate, false,
$trans-x, $trans-y, false,
$skew-x, $skew-y,
$origin-x, $origin-y, false,
false
);
}

View File

@ -1,190 +0,0 @@
@import "compass/support";
// The the user threshold for transition support. Defaults to `$graceful-usage-threshold`
$transition-support-threshold: $graceful-usage-threshold !default;
// CSS Transitions
// Currently only works in Webkit.
//
// * expected in CSS3, FireFox 3.6/7 and Opera Presto 2.3
// * We'll be prepared.
//
// Including this submodule sets following defaults for the mixins:
//
// $default-transition-property : all
// $default-transition-duration : 1s
// $default-transition-function : false
// $default-transition-delay : false
//
// Override them if you like. Timing-function and delay are set to false for browser defaults (ease, 0s).
$default-transition-property: all !default;
$default-transition-duration: 1s !default;
$default-transition-function: null !default;
$default-transition-delay: null !default;
$transitionable-prefixed-values: transform, transform-origin !default;
// Checks if the value given is a unit of time.
@function is-time($value) {
@return if(type-of($value) == number, not not index(s ms, unit($value)), false);
}
// Returns `$property` with the given prefix if it is found in `$transitionable-prefixed-values`.
@function prefixed-for-transition($prefix, $property) {
@if not $prefix {
@return $property;
}
@if type-of($property) == list or type-of($property) == arglist {
$new-list: comma-list();
@each $v in $property {
$new-list: append($new-list, prefixed-for-transition($prefix, $v));
}
@return $new-list;
} @else {
@if index($transitionable-prefixed-values, $property) {
@return #{$prefix}-#{$property};
} @else {
@return $property;
}
}
}
// Returns $transition-map which includes key and values that map to a transition declaration
@function transition-map($transition) {
$transition-map: ();
@each $item in $transition {
@if is-time($item) {
@if map-has-key($transition-map, duration) {
$transition-map: map-merge($transition-map, (delay: $item));
} @else {
$transition-map: map-merge($transition-map, (duration: $item));
}
} @else if map-has-key($transition-map, property) {
$transition-map: map-merge($transition-map, (timing-function: $item));
} @else {
$transition-map: map-merge($transition-map, (property: $item));
}
}
@return $transition-map;
}
// One or more properties to transition
//
// * for multiple, use a comma-delimited list
// * also accepts "all" or "none"
@mixin transition-property($properties...) {
$properties: set-arglist-default($properties, $default-transition-property);
@include with-each-prefix(css-transitions, $transition-support-threshold) {
$props: if($current-prefix, prefixed-for-transition($current-prefix, $properties), $properties);
@include prefix-prop(transition-property, $props);
}
}
// One or more durations in seconds
//
// * for multiple, use a comma-delimited list
// * these durations will affect the properties in the same list position
@mixin transition-duration($durations...) {
$durations: set-arglist-default($durations, $default-transition-duration);
@include prefixed-properties(css-transitions, $transition-support-threshold, (
transition-duration: $durations
));
}
// One or more timing functions
//
// * [ ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(x1, y1, x2, y2)]
// * For multiple, use a comma-delimited list
// * These functions will effect the properties in the same list position
@mixin transition-timing-function($functions...) {
$functions: set-arglist-default($functions, $default-transition-function);
@include prefixed-properties(css-transitions, $transition-support-threshold, (
transition-timing-function: $functions
));
}
// One or more transition-delays in seconds
//
// * for multiple, use a comma-delimited list
// * these delays will effect the properties in the same list position
@mixin transition-delay($delays...) {
$delays: set-arglist-default($delays, $default-transition-delay);
@include prefixed-properties(css-transitions, $transition-support-threshold, (
transition-delay: $delays
));
}
// Transition all-in-one shorthand
@mixin single-transition(
$property: $default-transition-property,
$duration: $default-transition-duration,
$function: $default-transition-function,
$delay: $default-transition-delay
) {
@include transition(compact($property $duration $function $delay));
}
@mixin transition($transitions...) {
$default: (compact($default-transition-property $default-transition-duration $default-transition-function $default-transition-delay),);
$transitions: if(length($transitions) == 1 and type-of(nth($transitions, 1)) == list and list-separator(nth($transitions, 1)) == comma, nth($transitions, 1), $transitions);
$transitions: set-arglist-default($transitions, $default);
@include with-each-prefix(css-transitions, $transition-support-threshold) {
$delays: comma-list();
$transitions-without-delays: comma-list();
$transitions-with-delays: comma-list();
$has-delays: false;
// This block can be made considerably simpler at the point in time that
// we no longer need to deal with the differences in how delays are treated.
@each $transition in $transitions {
// Declare initial values for transition
$transition: transition-map($transition);
$property: map-get($transition, property);
$duration: map-get($transition, duration);
$timing-function: map-get($transition, timing-function);
$delay: map-get($transition, delay);
// Parse transition string to assign values into correct variables
$has-delays: $has-delays or $delay;
@if $current-prefix == -webkit {
// Keep a list of delays in case one is specified
$delays: append($delays, if($delay, $delay, 0s));
$transitions-without-delays: append($transitions-without-delays,
prefixed-for-transition($current-prefix, $property) $duration $timing-function);
} @else {
$transitions-with-delays: append($transitions-with-delays,
prefixed-for-transition($current-prefix, $property) $duration $timing-function $delay);
}
}
@if $current-prefix == -webkit {
@include prefix-prop(transition, $transitions-without-delays);
@if $has-delays {
@include prefix-prop(transition-delay, $delays);
}
} @else if $current-prefix {
@include prefix-prop(transition, $transitions-with-delays);
} @else {
transition: $transitions-with-delays;
}
}
}

View File

@ -1,71 +0,0 @@
// User Interface
// This file can be expanded to handle all the user interface properties as
// they become available in browsers:
// http://www.w3.org/TR/2000/WD-css3-userint-20000216
@import "compass/support";
// The prefixed support threshold for user-select.
// Defaults to the $graceful-usage-threshold.
$userselect-support-threshold: $graceful-usage-threshold !default;
// This property controls the selection model and granularity of an element.
//
// @param $select
// [ none | text | toggle | element | elements | all | inherit ]
@mixin user-select($select) {
$select: unquote($select);
@include with-each-prefix(user-select-none, $userselect-support-threshold) {
// old Firefox used a proprietary `-moz-none` value, starting with Firefox 21 `none` behaves like `-moz-none`
// @link https://developer.mozilla.org/en-US/docs/Web/CSS/user-select
@include prefix-prop(user-select, if($current-prefix == -moz and $select == 'none', -moz-none, $select));
}
}
// The prefixed support threshold for input-placeholder.
// Defaults to the $graceful-usage-threshold.
$input-placeholder-support-threshold: $graceful-usage-threshold !default;
// Style the html5 input placeholder in browsers that support it.
//
// The styles for the input placeholder are passed as mixin content
// and the selector comes from the mixin's context.
//
// For example:
//
// #{elements-of-type(text-input)} {
// @include input-placeholder {
// color: #bfbfbf;
// font-style: italic;
// }
// }
//
// if you want to apply the placeholder styles to all elements supporting
// the `input-placeholder` pseudo class (beware of performance impacts):
//
// * {
// @include input-placeholder {
// color: #bfbfbf;
// font-style: italic;
// }
// }
@mixin input-placeholder {
@include with-each-prefix(css-placeholder, $input-placeholder-support-threshold) {
@if $current-prefix == -webkit {
&::-webkit-input-placeholder { @content; }
}
@elseif $current-prefix == -moz {
// for Firefox 19 and below
@if support-legacy-browser("firefox", "4", "19", $threshold: $input-placeholder-support-threshold) {
&:-moz-placeholder { @content; }
}
// for Firefox 20 and above
&::-moz-placeholder { @content; }
}
@elseif $current-prefix == -ms {
&:-ms-input-placeholder { @content; }
}
}
// This is not standardized yet so no official selector is generated.
}

View File

@ -1,178 +0,0 @@
@import "compass/css3/images";
@import "compass/css3/background-size";
// Set the color of your columns
$grid-background-column-color : rgba(100, 100, 225, 0.25) !default;
// Set the color of your gutters
$grid-background-gutter-color : rgba(0, 0, 0, 0) !default;
// Set the total number of columns in your grid
$grid-background-total-columns : 24 !default;
// Set the width of your columns
$grid-background-column-width : 30px !default;
// Set the width of your gutters
$grid-background-gutter-width : 10px !default;
// Set the offset, if your columns are padded in from the container edge
$grid-background-offset : 0px !default;
// Set the color of your baseline
$grid-background-baseline-color : rgba(0, 0, 0, 0.5) !default;
// Set the height of your baseline grid
$grid-background-baseline-height : 1.5em !default;
// toggle your columns grids on and off
$show-column-grid-backgrounds : true !default;
// toggle your vertical grids on and off
$show-baseline-grid-backgrounds : true !default;
// toggle all your grids on and off
$show-grid-backgrounds : true !default;
// optionally force your grid-image to remain fluid
// no matter what units you used to declared your grid.
$grid-background-force-fluid : false !default;
// Create the gradient needed for baseline grids
@function get-baseline-gradient(
$color : $grid-background-baseline-color
) {
$gradient: linear-gradient(to top, $color 5%, rgba($color,0) 5%);
@return $gradient;
}
// Create the color-stops needed for horizontal grids
@function build-grid-background(
$total : $grid-background-total-columns,
$column : $grid-background-column-width,
$gutter : $grid-background-gutter-width,
$offset : $grid-background-offset,
$column-color : $grid-background-column-color,
$gutter-color : $grid-background-gutter-color
) {
$grid: compact();
$grid: append($grid, $gutter-color $offset, comma);
@for $i from 0 to $total {
// $a represents the start of this column, initially equal to the offset
$a: $offset;
@if $i > 0 { $a: $a + (($column + $gutter) * $i); }
// $g represents the start of this gutter, equal to $a plus one column-width
$g: $a + $column;
// $z represents the end of a gutter, equal to $g plus one gutter-width
$z: $g + $gutter;
@if (unit($a) == "%") and ($i == ($total - 1)) {
$z: 100%;
}
// and we add this column/gutter pair to our grid
$grid: join($grid, (lighten($column-color, 5%) $a, darken($column-color, 5%) $g, $gutter-color $g, $gutter-color $z));
}
@return $grid;
}
// Return the gradient needed for horizontal grids
@function get-column-gradient(
$total : $grid-background-total-columns,
$column : $grid-background-column-width,
$gutter : $grid-background-gutter-width,
$offset : $grid-background-offset,
$column-color : $grid-background-column-color,
$gutter-color : $grid-background-gutter-color,
$force-fluid : $grid-background-force-fluid
) {
$grid: unquote("");
// don't force fluid grids when they are already fluid.
@if unit($column) == "%" { $force-fluid: false; }
@if $force-fluid {
$grid: get-column-fluid-grid($total,$column,$gutter,$offset,$column-color,$gutter-color);
} @else {
$grid: build-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color);
}
// return the horizontal grid as a gradient
$gradient: linear-gradient(left, $grid);
@return $gradient;
}
// Convert a grid from fixed units into percentages.
@function get-column-fluid-grid(
$total : $grid-background-total-columns,
$column : $grid-background-column-width,
$gutter : $grid-background-gutter-width,
$offset : $grid-background-offset,
$column-color : $grid-background-column-color,
$gutter-color : $grid-background-gutter-color
) {
$context: ($column * $total) + ($gutter * ($total - 1) + ($offset * 2));
$offset: $offset / $context * 100%;
$column: $column / $context * 100%;
$gutter: $gutter / $context * 100%;
// return the horizontal grid as a set of color-stops
$grid: build-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color);
@return $grid;
}
// Add just the baseline grid to an element's background
@mixin baseline-grid-background(
$baseline : $grid-background-baseline-height,
$color : $grid-background-baseline-color
) {
@if $show-grid-backgrounds and $show-baseline-grid-backgrounds {
@include background-image(get-baseline-gradient($color));
@include background-size(100% $baseline);
background-position: left top;
}
}
// Add just the horizontal grid to an element's background
@mixin column-grid-background(
$total : $grid-background-total-columns,
$column : $grid-background-column-width,
$gutter : $grid-background-gutter-width,
$offset : $grid-background-offset,
$column-color : $grid-background-column-color,
$gutter-color : $grid-background-gutter-color,
$force-fluid : $grid-background-force-fluid
) {
@if $show-grid-backgrounds and $show-column-grid-backgrounds {
@include background-image(
get-column-gradient($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid)
);
background-position: left top;
}
}
// Add both horizontal and baseline grids to an element's background
@mixin grid-background(
$total : $grid-background-total-columns,
$column : $grid-background-column-width,
$gutter : $grid-background-gutter-width,
$baseline : $grid-background-baseline-height,
$offset : $grid-background-offset,
$column-color : $grid-background-column-color,
$gutter-color : $grid-background-gutter-color,
$baseline-color : $grid-background-baseline-color,
$force-fluid : $grid-background-force-fluid
) {
@if $show-grid-backgrounds {
@if $show-baseline-grid-backgrounds and $show-column-grid-backgrounds {
@include background-image(
get-baseline-gradient($baseline-color),
get-column-gradient($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid)
);
@include background-size(100% $baseline, auto);
background-position: left top;
} @else {
@include baseline-grid-background($baseline, $baseline-color);
@include column-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid);
}
}
}

View File

@ -1,23 +0,0 @@
// Based on a [blog post by Ryan Fait](http://ryanfait.com/resources/footer-stick-to-bottom-of-page/).
//
// Must be mixed into the top level of your stylesheet.
//
// Footer element must be outside of root wrapper element.
//
// Footer must be a fixed height.
@mixin sticky-footer($footer-height, $root-selector: unquote("#root"), $root-footer-selector: unquote("#root_footer"), $footer-selector: unquote("#footer")) {
html, body {
height: 100%; }
#{$root-selector} {
clear: both;
min-height: 100%;
height: auto !important;
height: 100%;
margin-bottom: -$footer-height;
#{$root-footer-selector} {
height: $footer-height; } }
#{$footer-selector} {
clear: both;
position: relative;
height: $footer-height; } }

View File

@ -1,24 +0,0 @@
// stretch element height to specified top and bottom position
@mixin stretch-y($offset-top:0, $offset-bottom:0) {
@include stretch($offset-top, false, $offset-bottom, false);
}
// stretch element width to specified left and right position
@mixin stretch-x($offset-left:0, $offset-right:0) {
@include stretch(false, $offset-right, false, $offset-left);
}
// shorthand to stretch element height and width
@mixin stretch($offset-top:0, $offset-right:0, $offset-bottom:0, $offset-left:0) {
position: absolute;
@if $offset-top { top: $offset-top; }
@if $offset-bottom { bottom: $offset-bottom; }
@if $offset-left { left: $offset-left; }
@if $offset-right { right: $offset-right; }
}

View File

@ -1,135 +0,0 @@
// Based on [Eric Meyer's reset](http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/)
// Global reset rules.
// For more specific resets, use the reset mixins provided below
//
// *Please Note*: tables still need `cellspacing="0"` in the markup.
@mixin global-reset {
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
@include reset-box-model;
@include reset-font; }
body {
@include reset-body; }
ol, ul {
@include reset-list-style; }
table {
@include reset-table; }
caption, th, td {
@include reset-table-cell; }
q, blockquote {
@include reset-quotation; }
a img {
@include reset-image-anchor-border; } }
// Reset all elements within some selector scope. To reset the selector itself,
// mixin the appropriate reset mixin for that element type as well. This could be
// useful if you want to style a part of your page in a dramatically different way.
//
// *Please Note*: tables still need `cellspacing="0"` in the markup.
@mixin nested-reset {
div, span, object, iframe, h1, h2, h3, h4, h5, h6, p,
pre, a, abbr, acronym, address, code, del, dfn, em, img,
dl, dt, dd, ol, ul, li, fieldset, form, label, legend, caption, tbody, tfoot, thead, tr {
@include reset-box-model;
@include reset-font; }
table {
@include reset-table; }
caption, th, td {
@include reset-table-cell; }
q, blockquote {
@include reset-quotation; }
a img {
@include reset-image-anchor-border; } }
// Reset the box model measurements.
@mixin reset-box-model {
margin: 0;
padding: 0;
border: 0;
outline: 0; }
// Reset the font and vertical alignment.
@mixin reset-font {
font: {
weight: inherit;
style: inherit;
size: 100%;
family: inherit; };
vertical-align: baseline; }
// Resets the outline when focus.
// For accessibility you need to apply some styling in its place.
@mixin reset-focus {
outline: 0; }
// Reset a body element.
@mixin reset-body {
line-height: 1;
color: black;
background: white; }
// Reset the list style of an element.
@mixin reset-list-style {
list-style: none; }
// Reset a table
@mixin reset-table {
border-collapse: separate;
border-spacing: 0;
vertical-align: middle; }
// Reset a table cell (`th`, `td`)
@mixin reset-table-cell {
text-align: left;
font-weight: normal;
vertical-align: middle; }
// Reset a quotation (`q`, `blockquote`)
@mixin reset-quotation {
quotes: "" "";
&:before, &:after {
content: ""; } }
// Resets the border.
@mixin reset-image-anchor-border {
border: none; }
// Unrecognized elements are displayed inline.
// This reset provides a basic reset for html5 elements
// so they are rendered correctly in browsers that don't recognize them
// and reset in browsers that have default styles for them.
@mixin reset-html5 {
#{elements-of-type(html5-block)} {
@include reset-box-model;
display: block; } }
// Resets the display of inline and block elements to their default display
// according to their tag type. Elements that have a default display that varies across
// versions of html or browser are not handled here, but this covers the 90% use case.
// Usage Example:
//
// // Turn off the display for both of these classes
// .unregistered-only, .registered-only
// display: none
// // Now turn only one of them back on depending on some other context.
// body.registered
// +reset-display(".registered-only")
// body.unregistered
// +reset-display(".unregistered-only")
@mixin reset-display($selector: "", $important: false) {
#{append-selector(elements-of-type("inline"), $selector)} {
@if $important {
display: inline !important; }
@else {
display: inline; } }
#{append-selector(elements-of-type("block"), $selector)} {
@if $important {
display: block !important; }
@else {
display: block; } } }

View File

@ -1,142 +0,0 @@
// Based on [Eric Meyer's reset 2.0](http://meyerweb.com/eric/tools/css/reset/index.html)
// Global reset rules.
// For more specific resets, use the reset mixins provided below
@mixin global-reset {
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
@include reset-box-model;
@include reset-font; }
// Unlike Eric's original reset, we reset the html element to be compatible
// with the vertical rhythm mixins.
html {
@include reset-body; }
ol, ul {
@include reset-list-style; }
table {
@include reset-table; }
caption, th, td {
@include reset-table-cell; }
q, blockquote {
@include reset-quotation; }
a img {
@include reset-image-anchor-border; }
@include reset-html5; }
// Reset all elements within some selector scope. To reset the selector itself,
// mixin the appropriate reset mixin for that element type as well. This could be
// useful if you want to style a part of your page in a dramatically different way.
@mixin nested-reset {
div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
@include reset-box-model;
@include reset-font; }
table {
@include reset-table; }
caption, th, td {
@include reset-table-cell; }
q, blockquote {
@include reset-quotation; }
a img {
@include reset-image-anchor-border; } }
// Reset the box model measurements.
@mixin reset-box-model {
margin: 0;
padding: 0;
border: 0; }
// Reset the font and vertical alignment.
@mixin reset-font {
font: inherit;
font-size: 100%;
vertical-align: baseline; }
// Resets the outline when focus.
// For accessibility you need to apply some styling in its place.
@mixin reset-focus {
outline: 0; }
// Reset a body element.
@mixin reset-body {
line-height: 1; }
// Reset the list style of an element.
@mixin reset-list-style {
list-style: none; }
// Reset a table
@mixin reset-table {
border-collapse: collapse;
border-spacing: 0; }
// Reset a table cell (`th`, `td`)
@mixin reset-table-cell {
text-align: left;
font-weight: normal;
vertical-align: middle; }
// Reset a quotation (`q`, `blockquote`)
@mixin reset-quotation {
quotes: none;
&:before, &:after {
content: "";
content: none; } }
// Resets the border.
@mixin reset-image-anchor-border {
border: none; }
// Unrecognized elements are displayed inline.
// This reset provides a basic reset for block html5 elements
// so they are rendered correctly in browsers that don't recognize them
// and reset in browsers that have default styles for them.
@mixin reset-html5 {
#{elements-of-type(html5-block)} {
display: block; } }
// Resets the display of inline and block elements to their default display
// according to their tag type. Elements that have a default display that varies across
// versions of html or browser are not handled here, but this covers the 90% use case.
// Usage Example:
//
// // Turn off the display for both of these classes
// .unregistered-only, .registered-only
// display: none
// // Now turn only one of them back on depending on some other context.
// body.registered
// +reset-display(".registered-only")
// body.unregistered
// +reset-display(".unregistered-only")
@mixin reset-display($selector: "", $important: false) {
#{append-selector(elements-of-type("inline"), $selector)} {
@if $important {
display: inline !important; }
@else {
display: inline; } }
#{append-selector(elements-of-type("block"), $selector)} {
@if $important {
display: block !important; }
@else {
display: block; } } }

View File

@ -1,3 +0,0 @@
@import "links/hover-link";
@import "links/link-colors";
@import "links/unstyled-link";

View File

@ -1,4 +0,0 @@
@import "lists/horizontal-list";
@import "lists/inline-list";
@import "lists/inline-block-list";
@import "lists/bullets";

View File

@ -1,4 +0,0 @@
@import "text/ellipsis";
@import "text/nowrap";
@import "text/replacement";
@import "text/force-wrap";

Some files were not shown because too many files have changed in this diff Show More