SucoCafe's picture
Deploy limpo
1b9d27c
# Flask
[![Build Status](https://api.travis-ci.org/jaradlight/flask.png?branch=master)](https://travis-ci.org/jaradlight/flask)
Helper files for fonts and colours in Sass projects.
## Installation
Install from your preferred package manager:
- **NPM**: `npm install flask`
- **Bower**: `bower install flask`
Import to your stylesheets:
``` scss
// Installed with NPM
@import '../node_modules/flask/sass/flask';
// Installed with Bower
@import '../bower_components/flask/sass/flask';
```
### Importing specific features
If you would like to use one or more features without importing everything, simply import the Flask core followed by the features you need.
``` scss
// Import Flask Core.
@import '../node_modules/flask/sass/flask/core/core';
// Import Flask Palette feature.
@import '../node_modules/flask/sass/flask/palette/palette';
```
## Palette
### Usage
``` scss
.teal-base {
color: palette(teal);
// color: #2ed399;
}
.teal-light {
color: palette(teal, light);
// color: #43d7a3;
}
.teal-alias {
color: palette(brand-primary);
// color: #2ed399;
}
.teal-alias-with-variant {
color: palette(brand-primary, light);
// color: #43d7a3;
}
.teal-aliased-variant {
color: palette(highlight);
// color: #43d7a3;
}
```
### Setup
[Example](https://github.com/jaradlight/flask/blob/master/test/setup/_palette.scss)
Begin by defining base colours. You can simply define these inside the palette map instead, but separate base variables make it easier to programmatically define variants.
``` scss
$flask-color-teal-base: #2ed399;
```
#### $palettes
Next create the palette map. This variable will contain all colours and their variants. A colour group is defined by a nested map within the main palette map. The colour group key and any variant keys can be anything you like. However, every colour group needs one colour with the `base` key. Variants are optional.
``` scss
$palettes: (
teal: ( // Colour group key
base: $flask-color-teal-base, // Base colour
dark: darken($flask-color-teal-base, 10), // Dark Variant
light: lighten($flask-color-teal-base, 10) // Light Variant
)
);
```
#### $palette-aliases
Optionally, a `$palette-aliases` map can assign aliases to colour groups. Aliases can be used in place of colour group keys as the first argument to `palette()`. Additionally, aliases for specific colours may be defined by assigning a map of palette function arguments to the alias key.
``` scss
$palette-aliases: (
brand-primary: teal,
highlight: (teal, light)
);
```
## Fonts
### Usage
``` scss
.font-family-function {
font-family: font-family(open-sans);
// font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.font-family-mixin {
@include font-family(open-sans);
// font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.font-name {
font-family: font-name(open-sans);
// font-family: "Open Sans";
}
.font-name-aliased {
font-family: font-name(primary-sans-serif);
// font-family: "Open Sans";
}
.font-name-aliased-with-variant {
font-family: font-name(primary-sans-serif, special);
// font-family: "Open Sans Special";
}
.font-name-aliased-variant {
content: font-name(heading);
// content: "Open Sans Special";
}
.font-type {
content: font-type(open-sans);
// content: sans-serif
}
.font-fallback {
content: font-fallback(open-sans);
// content: "Helvetica Neue", Helvetica, Arial, sans-serif
}
```
### Setup
[Example](https://github.com/jaradlight/flask/blob/master/test/setup/_font.scss)
#### $fonts
The fonts map contains all font names, variants, and fallbacks (if applicable).
Each font should have its own group. For example, if you are using 'Merriweather', you may define a font group under the key `merriweather`.
For each font group, required keys are:
* `font-type` The font family's type. ie: serif, sans-serif, glyph, etc
* `regular` The name of the basic version of the font.
Optional keys:
* `fallback` A map of fallback fonts for this font family. If set, will override the fallback used from `$font-fallbacks` which is based on `font-type`.
``` scss
$fonts: (
merriweather: (
font-type: serif,
regular: 'Merriweather',
fallback: (
'Georgia',
serif
)
)
);
```
#### $font-fallbacks
`$font-fallbacks` map variable:
``` scss
$font-fallbacks: (
serif: (
'Georgia',
serif
),
sans-serif: (
'Helvetica Neue',
Helvetica,
Arial,
sans-serif
)
);
```
#### $font-aliases
Optionally, a `$font-aliases` map can assign aliases to fonts. Aliases can be used in place of font group keys in `font` functions. Additionally, aliases for specific font variants may be defined by assigning a map of font-name function arguments to the alias key.
``` scss
$font-aliases: (
primary-serif: merriweather,
primary-sans-serif: open-sans,
heading: (open-sans, special)
);
```
#### Additional Functions
``` scss
.font-name {
content: font-name(open-sans);
// content: "Open Sans"
}
.font-type {
content: font-type(merriweather);
// content: serif
}
.font-fallback {
content: font-fallback(merriweather);
// content: "Georgia", serif
}
```