archetype-utilities 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/archetype-utilities.rb +4 -0
- data/stylesheets/_archetype-utilities.scss +20 -0
- data/stylesheets/archetype-utilities/_accessibility.scss +110 -0
- data/stylesheets/archetype-utilities/_align.scss +32 -0
- data/stylesheets/archetype-utilities/_clearfix.scss +26 -0
- data/stylesheets/archetype-utilities/_helpers.scss +45 -0
- data/stylesheets/archetype-utilities/_ie.scss +32 -0
- data/stylesheets/archetype-utilities/_links.scss +13 -0
- data/stylesheets/archetype-utilities/_lists.scss +16 -0
- data/stylesheets/archetype-utilities/_media.scss +123 -0
- data/stylesheets/archetype-utilities/_normalize.scss +454 -0
- data/stylesheets/archetype-utilities/_pe.scss +135 -0
- data/stylesheets/archetype-utilities/_print.scss +12 -0
- data/stylesheets/archetype-utilities/_pseudo.scss +49 -0
- data/stylesheets/archetype-utilities/_sass-lists.scss +51 -0
- data/stylesheets/archetype-utilities/_triangles.scss +83 -0
- data/stylesheets/archetype-utilities/_typography.scss +62 -0
- data/stylesheets/archetype-utilities/_units.scss +46 -0
- metadata +89 -0
@@ -0,0 +1,135 @@
|
|
1
|
+
/**
|
2
|
+
* Progressive Enhancement
|
3
|
+
*
|
4
|
+
* https://github.com/Snugug/toolkit/blob/master/compass/stylesheets/toolkit/_pe.scss
|
5
|
+
* http://snugug.com/musings/progressive-enhancement-code-pattern-using-sass-and-modernizr
|
6
|
+
*/
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Enhance With
|
10
|
+
*
|
11
|
+
* $feature: Modernizr feature (base CSS class name)
|
12
|
+
*/
|
13
|
+
@mixin enhance-with($feature) {
|
14
|
+
.#{$feature} & {
|
15
|
+
@content;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Degrade From
|
21
|
+
*
|
22
|
+
* $feature: Modernizr feature (base CSS class name)
|
23
|
+
*/
|
24
|
+
@mixin degrade-from($feature, $no-js: true) {
|
25
|
+
@if $feature == 'js' or not $no-js {
|
26
|
+
.no-#{$feature} & {
|
27
|
+
@content;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
@else {
|
31
|
+
.no-#{$feature} &,
|
32
|
+
.no-js & {
|
33
|
+
@content;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
/**
|
39
|
+
* Progressive Enhancement Text Replace Mixin
|
40
|
+
*
|
41
|
+
* $png-path: The path to the pngs for the image sprite, including the *.png (just like normal image sprites)
|
42
|
+
* $sprite: The name of the sprite you want to use (this is the file name without extension)
|
43
|
+
* $inline-svg: Switches between a Base64 encoded SVG or a normal url() for the SVG. Default to true
|
44
|
+
* $with-dimensions: Switches between including dimensions (height/width for all and background-size for SVG) or not -
|
45
|
+
* defaults to true.
|
46
|
+
* $inline: Whether or not the containing selector is an inline element. Defaults to false.
|
47
|
+
*/
|
48
|
+
|
49
|
+
@mixin replace-text-pe($img-path, $sprite, $inline-svg: true, $with-dimensions: true, $inline-element: false) {
|
50
|
+
// Map Out the Sprite
|
51
|
+
$png-path: $img-path + '/*.png';
|
52
|
+
$sprite-map: sprite-map($png-path);
|
53
|
+
|
54
|
+
// Build SVG file name
|
55
|
+
// $svg-file: str-replace('*.png', '#{$sprite}.svg', $png-path);
|
56
|
+
$svg-file: $img-path + '/#{$sprite}.svg';
|
57
|
+
|
58
|
+
// Default Sprite File
|
59
|
+
$sprite-file: '' !default;
|
60
|
+
|
61
|
+
@if $with-dimensions {
|
62
|
+
// Get Sprite File for Height/Width
|
63
|
+
$sprite-file: sprite-file($sprite-map, $sprite);
|
64
|
+
|
65
|
+
// Put the height/width of the image in
|
66
|
+
width: image-width($sprite-file);
|
67
|
+
height: image-height($sprite-file);
|
68
|
+
}
|
69
|
+
|
70
|
+
// Hide text. Use squish-text() if the element is inline
|
71
|
+
@if $inline-element {
|
72
|
+
@extend %replace-text-pe-squish;
|
73
|
+
}
|
74
|
+
@else {
|
75
|
+
@extend %replace-text-pe-hide;
|
76
|
+
}
|
77
|
+
|
78
|
+
// Enhance with SVG
|
79
|
+
@include enhance-with('svg') {
|
80
|
+
// Inline the SVG so that advanced browsers and future tech doesn't need the extra HTTP requests for the SVG
|
81
|
+
@if $inline-svg {
|
82
|
+
background-image: inline-image($svg-file);
|
83
|
+
}
|
84
|
+
@else {
|
85
|
+
background-image: image-url($svg-file);
|
86
|
+
}
|
87
|
+
// No repeating backgrounds, please
|
88
|
+
background-repeat: no-repeat;
|
89
|
+
// Set background size to ensure that our SVG is the right size.
|
90
|
+
@if $with-dimensions {
|
91
|
+
background-size: image-width($sprite-file) image-height($sprite-file);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
// Degrade from SVG
|
96
|
+
@include degrade-from('svg') {
|
97
|
+
// Extend the Sprite Background
|
98
|
+
@extend %#{sprite-map-name($sprite-map)}-image-map;
|
99
|
+
// Call the Sprite'd image's position.
|
100
|
+
@include sprite($sprite-map, $sprite);
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
//////////////////////////////
|
105
|
+
/**
|
106
|
+
* Sprite Map Generator
|
107
|
+
*
|
108
|
+
* Need a custom mixin to create extendable classes classes for background image for sprites because dynamic mixin names don't work.
|
109
|
+
* $png-path: The path to the pngs for the image sprite, including the *.png (just like normal image sprites)
|
110
|
+
*/
|
111
|
+
@mixin sprite-map-generator($img-path) {
|
112
|
+
$png-path: $img-path + '/*.png';
|
113
|
+
$png-path: sprite-map($png-path);
|
114
|
+
%#{sprite-map-name($png-path)}-image-map {
|
115
|
+
background: {
|
116
|
+
image: $png-path;
|
117
|
+
repeat: no-repeat;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
/**
|
123
|
+
* Extendable Class for Squish Text mixin
|
124
|
+
*/
|
125
|
+
%replace-text-pe-squish {
|
126
|
+
@include squish-text();
|
127
|
+
}
|
128
|
+
|
129
|
+
/**
|
130
|
+
* Extendable Class for Hide Text mixin
|
131
|
+
*/
|
132
|
+
%replace-text-pe-hide {
|
133
|
+
@include hide-text();
|
134
|
+
}
|
135
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/**
|
2
|
+
* Pseudo Elements
|
3
|
+
*
|
4
|
+
* https://github.com/ericam/accoutrement/blob/master/stylesheets/accoutrement/_pseudo-elements.scss
|
5
|
+
*/
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Before
|
9
|
+
*
|
10
|
+
* Add content before an element
|
11
|
+
*
|
12
|
+
* @include before($content)
|
13
|
+
* $content: The string to add before
|
14
|
+
*/
|
15
|
+
@mixin before($content) {
|
16
|
+
&:before {
|
17
|
+
content: $content;
|
18
|
+
@content;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* After
|
24
|
+
*
|
25
|
+
* Add content after an element
|
26
|
+
* @include after($content)
|
27
|
+
* $content: The string to add after
|
28
|
+
*/
|
29
|
+
@mixin after($content) {
|
30
|
+
&:after {
|
31
|
+
content: $content;
|
32
|
+
@content;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Wrap
|
38
|
+
*
|
39
|
+
* Wrap content before and after an element
|
40
|
+
*
|
41
|
+
* @include wrap($content)
|
42
|
+
* $content: The strings to add before and after
|
43
|
+
*/
|
44
|
+
@mixin wrap-content($content: "“" "”") {
|
45
|
+
$content: if(length($content) < 2, $content $content, $content);
|
46
|
+
@include before(nth($content,1)) { @content; };
|
47
|
+
@include after(nth($content,2)) { @content; };
|
48
|
+
}
|
49
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
/**
|
2
|
+
* Sass List Utilities
|
3
|
+
*
|
4
|
+
* https://github.com/ericam/accoutrement/blob/master/stylesheets/accoutrement/_sass-lists.scss
|
5
|
+
*/
|
6
|
+
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Return a list with items in reverse order
|
10
|
+
*
|
11
|
+
* reverse($list)
|
12
|
+
* $list: The list to reverse.
|
13
|
+
*/
|
14
|
+
@function reverse($list) {
|
15
|
+
$l: length($list);
|
16
|
+
$reverse: compact();
|
17
|
+
@for $i from 0 to $l { $reverse: append($reverse,nth($list,$l - $i)); }
|
18
|
+
@return $reverse;
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Return a list with all duplicates removed
|
23
|
+
*
|
24
|
+
* remove-duplicates($list)
|
25
|
+
* $list: The list to clean up
|
26
|
+
*/
|
27
|
+
@function remove-duplicates($list) {
|
28
|
+
$clean: compact();
|
29
|
+
@each $item in $list {
|
30
|
+
@if not index($clean, $item) { $clean: append($clean, $item) }
|
31
|
+
}
|
32
|
+
@return $clean;
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Return a list with specific items removed
|
37
|
+
*
|
38
|
+
* filter($list, $target)
|
39
|
+
* $list: The list to filter
|
40
|
+
* $target: An item to be removed from the list
|
41
|
+
*/
|
42
|
+
@function filter($list, $target) {
|
43
|
+
$clean: compact();
|
44
|
+
@if index($list, $target) {
|
45
|
+
@each $item in $list {
|
46
|
+
$clean: if($item == $target, $clean, append($clean, $item));
|
47
|
+
}
|
48
|
+
} @else { $clean: $list; }
|
49
|
+
@return $clean;
|
50
|
+
}
|
51
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
/**
|
2
|
+
* CSS Triangles
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Simple Triangle
|
8
|
+
*
|
9
|
+
* .example { @include simple-triangle(5px, #fff, bottom); }
|
10
|
+
*/
|
11
|
+
@mixin simple-triangle($size, $color, $direction) {
|
12
|
+
content: "";
|
13
|
+
display: block;
|
14
|
+
width: 0;
|
15
|
+
height: 0;
|
16
|
+
border: solid $size;
|
17
|
+
@if ($direction == down) {
|
18
|
+
border-color: $color transparent transparent transparent;
|
19
|
+
}
|
20
|
+
@if ($direction == up) {
|
21
|
+
border-color: transparent transparent $color transparent;
|
22
|
+
}
|
23
|
+
@if ($direction == right) {
|
24
|
+
border-color: transparent transparent transparent $color;
|
25
|
+
}
|
26
|
+
@if ($direction == left) {
|
27
|
+
border-color: transparent $color transparent transparent;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Triangles
|
33
|
+
*
|
34
|
+
* https://github.com/Snugug/toolkit/blob/master/compass/stylesheets/toolkit/_triangle.scss
|
35
|
+
*/
|
36
|
+
@mixin triangle($color: #000, $height: 1em, $width: 1em, $angle: 0) {
|
37
|
+
@if unit($height) == "" or unit($height) == "%" {
|
38
|
+
@debug "in triangle #{$height} is not a compatable unit for height."
|
39
|
+
}
|
40
|
+
@if unit($width) == "" or unit($width) == "%" {
|
41
|
+
@debug "in triangle #{$width} is not a compatable unit for width."
|
42
|
+
}
|
43
|
+
|
44
|
+
// offset 45deg to make each side start at 0
|
45
|
+
$deg: $angle + 45;
|
46
|
+
// if units, remove units
|
47
|
+
@if unit($deg) == deg {
|
48
|
+
$deg: $deg / 1deg;
|
49
|
+
}
|
50
|
+
// shift to be on a scale from 0 to 90.
|
51
|
+
@while $deg > 90 {
|
52
|
+
$deg: $deg - 90;
|
53
|
+
}
|
54
|
+
@while $deg < 0 {
|
55
|
+
$deg: $deg + 90;
|
56
|
+
}
|
57
|
+
// Get a ratio of 90 to multiply by.
|
58
|
+
$deg: $deg / 90;
|
59
|
+
|
60
|
+
// make sure metrics are reset
|
61
|
+
display: block;
|
62
|
+
width: 0;
|
63
|
+
height: 0;
|
64
|
+
border: 0 solid transparent;
|
65
|
+
|
66
|
+
// run through sides
|
67
|
+
@if $angle <= 45 or $angle > 315 {
|
68
|
+
border-bottom-color: $color;
|
69
|
+
border-width: 0 ($width * abs($deg - 1)) $height ($width * $deg);
|
70
|
+
}
|
71
|
+
@if $angle > 45 and $angle <= 135 {
|
72
|
+
border-left-color: $color;
|
73
|
+
border-width: ($height * $deg) 0 ($height * abs($deg - 1)) $width;
|
74
|
+
}
|
75
|
+
@if $angle > 135 and $angle <= 225 {
|
76
|
+
border-top-color: $color;
|
77
|
+
border-width: $height ($width * $deg) 0 ($width * abs($deg - 1));
|
78
|
+
}
|
79
|
+
@if $angle > 225 and $angle <= 315 {
|
80
|
+
border-right-color: $color;
|
81
|
+
border-width: ($height * abs($deg - 1)) $width ($height * $deg) 0;
|
82
|
+
}
|
83
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
/**
|
2
|
+
* Font-Face
|
3
|
+
*
|
4
|
+
* base on:
|
5
|
+
* https://github.com/thoughtbot/bourbon/blob/master/app/assets/stylesheets/css3/_font-face.scss
|
6
|
+
*/
|
7
|
+
@mixin font-face($font-stack, $file-path, $weight: normal, $style: normal ) {
|
8
|
+
@font-face {
|
9
|
+
font-family: $font-stack;
|
10
|
+
src: url('#{$file-path}.eot');
|
11
|
+
src: url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
|
12
|
+
url('#{$file-path}.woff') format('woff'),
|
13
|
+
url('#{$file-path}.ttf') format('truetype'),
|
14
|
+
url('#{$file-path}.svg##{$font-family}') format('svg');
|
15
|
+
font-weight: $font-weight;
|
16
|
+
font-style: $font-style;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Box Emboss
|
22
|
+
*
|
23
|
+
* example: .box{ @include box-emboss(0.8, 0.05); }
|
24
|
+
*/
|
25
|
+
@mixin box-emboss($opacity, $opacity2){
|
26
|
+
box-shadow:white($opacity) 0 1px 0, inset black($opacity2) 0 1px 0;
|
27
|
+
}
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Text Emboss (letterpress)
|
31
|
+
*
|
32
|
+
* makes the text more readable by providing a sharper separation between letters and background
|
33
|
+
* example: .letterpress { @include text-emboss(0.7); }
|
34
|
+
*/
|
35
|
+
@mixin text-emboss($opacity){
|
36
|
+
text-shadow:white($opacity) 0 1px 0;
|
37
|
+
}
|
38
|
+
|
39
|
+
/**
|
40
|
+
* CSS Hyphens
|
41
|
+
*
|
42
|
+
* word wrapping for skinny boxes:
|
43
|
+
* http://trentwalton.com/2011/09/07/css-hyphenation
|
44
|
+
*
|
45
|
+
* $value: none | manual | auto
|
46
|
+
*/
|
47
|
+
@mixin hyphen($value) {
|
48
|
+
-moz-hyphens: auto;
|
49
|
+
-ms-hyphens: auto;
|
50
|
+
-webkit-hyphens: auto;
|
51
|
+
hyphens: auto;
|
52
|
+
}
|
53
|
+
|
54
|
+
// Compass Stich
|
55
|
+
// Nicer text rendering in webkit and gecko
|
56
|
+
// @see http://www.aestheticallyloyal.com/public/optimize-legibility/
|
57
|
+
// @see http://files.christophzillgens.com/webkit-font-smoothing.html
|
58
|
+
//
|
59
|
+
@mixin improve-text-rendering {
|
60
|
+
text-rendering:optimizeLegibility;
|
61
|
+
-webkit-font-smoothing:antialiased;
|
62
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/**
|
2
|
+
* Units
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Percentage
|
9
|
+
*
|
10
|
+
* calculate a percentage based on values independant of Susy
|
11
|
+
*/
|
12
|
+
@function calc-percent($target, $container) {
|
13
|
+
@return $target / $container * 100%;
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Ems
|
18
|
+
*
|
19
|
+
* calculate an em value based on values independant of Susy
|
20
|
+
*/
|
21
|
+
@function calc-em($target, $container) {
|
22
|
+
@return $target / $container * 1em;
|
23
|
+
}
|
24
|
+
|
25
|
+
/**
|
26
|
+
* Convert to Ems
|
27
|
+
*
|
28
|
+
* convert given value to em units
|
29
|
+
*/
|
30
|
+
@function convert-to-em($value) {
|
31
|
+
$unit: unit($value);
|
32
|
+
|
33
|
+
@if $unit == 'px' {
|
34
|
+
@return $value / $base-font-size * 1em;
|
35
|
+
}
|
36
|
+
@else if $unit == '%' {
|
37
|
+
@return $value / 100% * 1em;
|
38
|
+
}
|
39
|
+
@else if $unit == 'em' {
|
40
|
+
@return $value;
|
41
|
+
}
|
42
|
+
@else {
|
43
|
+
@return $value;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
metadata
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: archetype-utilities
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sam Ashley
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-08-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sass
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: compass
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.12.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.12.1
|
41
|
+
description: A collection of Sass mixins for Archetype
|
42
|
+
email:
|
43
|
+
- sam@kwaledesign.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- lib/archetype-utilities.rb
|
49
|
+
- stylesheets/_archetype-utilities.scss
|
50
|
+
- stylesheets/archetype-utilities/_accessibility.scss
|
51
|
+
- stylesheets/archetype-utilities/_align.scss
|
52
|
+
- stylesheets/archetype-utilities/_clearfix.scss
|
53
|
+
- stylesheets/archetype-utilities/_helpers.scss
|
54
|
+
- stylesheets/archetype-utilities/_ie.scss
|
55
|
+
- stylesheets/archetype-utilities/_links.scss
|
56
|
+
- stylesheets/archetype-utilities/_lists.scss
|
57
|
+
- stylesheets/archetype-utilities/_media.scss
|
58
|
+
- stylesheets/archetype-utilities/_normalize.scss
|
59
|
+
- stylesheets/archetype-utilities/_pe.scss
|
60
|
+
- stylesheets/archetype-utilities/_print.scss
|
61
|
+
- stylesheets/archetype-utilities/_pseudo.scss
|
62
|
+
- stylesheets/archetype-utilities/_sass-lists.scss
|
63
|
+
- stylesheets/archetype-utilities/_triangles.scss
|
64
|
+
- stylesheets/archetype-utilities/_typography.scss
|
65
|
+
- stylesheets/archetype-utilities/_units.scss
|
66
|
+
homepage: https://github.com/kwaledesign/archetype-utilities
|
67
|
+
licenses: []
|
68
|
+
metadata: {}
|
69
|
+
post_install_message:
|
70
|
+
rdoc_options: []
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.3.6
|
83
|
+
requirements: []
|
84
|
+
rubyforge_project:
|
85
|
+
rubygems_version: 2.0.3
|
86
|
+
signing_key:
|
87
|
+
specification_version: 4
|
88
|
+
summary: A collection of Sass mixins for Archetype
|
89
|
+
test_files: []
|