compass-recipes 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.
- data/LICENSE +3 -0
- data/README.md +21 -0
- data/VERSION +1 -0
- data/lib/compass-recipes.rb +2 -0
- data/stylesheets/_recipes.scss +9 -0
- data/stylesheets/recipes/_effect.scss +1 -0
- data/stylesheets/recipes/_enhancement.scss +1 -0
- data/stylesheets/recipes/_form.scss +2 -0
- data/stylesheets/recipes/_icons.scss +29 -0
- data/stylesheets/recipes/_layout.scss +1 -0
- data/stylesheets/recipes/_pattern.scss +0 -0
- data/stylesheets/recipes/_shadow.scss +2 -0
- data/stylesheets/recipes/_shape.scss +9 -0
- data/stylesheets/recipes/_shared.scss +4 -0
- data/stylesheets/recipes/_ui.scss +5 -0
- data/stylesheets/recipes/effect/_glass.scss +26 -0
- data/stylesheets/recipes/enhancement/_corner-folded.scss +59 -0
- data/stylesheets/recipes/form/_element.scss +2 -0
- data/stylesheets/recipes/form/_skin.scss +1 -0
- data/stylesheets/recipes/form/element/_border-color.scss +53 -0
- data/stylesheets/recipes/form/element/_inline.scss +25 -0
- data/stylesheets/recipes/form/skin/_default.scss +0 -0
- data/stylesheets/recipes/form/skin/_natural.scss +143 -0
- data/stylesheets/recipes/layout/_vertical-align.scss +62 -0
- data/stylesheets/recipes/shadow/_drop.scss +9 -0
- data/stylesheets/recipes/shadow/_top-edge.scss +28 -0
- data/stylesheets/recipes/shadow/drop/_lifted.scss +42 -0
- data/stylesheets/recipes/shape/_triangle.scss +63 -0
- data/stylesheets/recipes/shared/_block-inline-block.scss +6 -0
- data/stylesheets/recipes/shared/_clearfix.scss +30 -0
- data/stylesheets/recipes/shared/_list-inline-block.scss +12 -0
- data/stylesheets/recipes/shared/_pseudo-element.scss +18 -0
- data/stylesheets/recipes/ui/_convex.scss +23 -0
- data/stylesheets/recipes/ui/_glossy.scss +24 -0
- data/stylesheets/recipes/ui/_gradient.scss +6 -0
- data/stylesheets/recipes/ui/_menu-dropdown.scss +44 -0
- data/stylesheets/recipes/ui/border/_bevel.scss +6 -0
- metadata +118 -0
data/LICENSE
ADDED
data/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Compass Recipes  #
|
2
|
+
|
3
|
+
This project is a collection of Sass mixins using Compass that you can use or learn from.
|
4
|
+
|
5
|
+
## Demos
|
6
|
+
|
7
|
+
http://moox.github.com/Compass-Recipes/
|
8
|
+
|
9
|
+
## TODO
|
10
|
+
* Create tests for all existing mixins
|
11
|
+
* Add all pattern mixins from http://leaverou.me/css3patterns
|
12
|
+
* Add all shadow/drop mixins from http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ and http://www.creativejuiz.fr/trytotry/css3-box-shadow-after-before/
|
13
|
+
* Add all shapes from http://css-tricks.com/examples/ShapesOfCSS/
|
14
|
+
* Add normalize.css from @necolas
|
15
|
+
|
16
|
+
## Author
|
17
|
+
|
18
|
+
Compass-Recipes is maintained by Maxime Thirouin, a front-end web developer working for Shopbot-inc.com
|
19
|
+
|
20
|
+
## Open to All
|
21
|
+
Anyone who forks this project and submits a patch and pull request will be given commit access after the first patch is accepted.
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "recipes/effect/glass";
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "recipes/enhancement/corner-folded";
|
@@ -0,0 +1,29 @@
|
|
1
|
+
@mixin icon($background-position: 0 50%, $display: inline-block)
|
2
|
+
{
|
3
|
+
background-repeat: no-repeat;
|
4
|
+
background-position: $background-position;
|
5
|
+
display: $display;
|
6
|
+
vertical-align: middle;
|
7
|
+
}
|
8
|
+
|
9
|
+
@mixin icon-inline($side: left, $width: 24px, $height: auto, $background-position: 2px 50%, $display: inline-block)
|
10
|
+
{
|
11
|
+
@if $height == auto
|
12
|
+
{
|
13
|
+
$height: $width;
|
14
|
+
}
|
15
|
+
|
16
|
+
@include icon($background-position, $display);
|
17
|
+
padding-#{$side}: $width;
|
18
|
+
line-height: $height;
|
19
|
+
}
|
20
|
+
|
21
|
+
@mixin icon-left($width: 24px, $height: auto, $background-position: 2px 50%, $display: inline-block)
|
22
|
+
{
|
23
|
+
@include icon-inline(left, $width, $height, $background-position, $display);
|
24
|
+
}
|
25
|
+
|
26
|
+
@mixin icon-right($width: 24px, $height: auto, $background-position: 100% 50%, $display: inline-block)
|
27
|
+
{
|
28
|
+
@include icon-inline(right, $width, $height, $background-position, $display);
|
29
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "recipes/layout/vertical-align";
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/**
|
2
|
+
* Glass effect
|
3
|
+
* Use this on image for better effect render
|
4
|
+
*
|
5
|
+
* Inspired from Simurai's Imdb redisign
|
6
|
+
*
|
7
|
+
* @link http://lab.simurai.com/redesign/imdb
|
8
|
+
* @thanks Simurai @simurai
|
9
|
+
*/
|
10
|
+
@mixin effect-glass($color: #fff, $reflectDegree: -45deg, $border-radius: 4px)
|
11
|
+
{
|
12
|
+
position: relative;
|
13
|
+
@include border-radius($border-radius);
|
14
|
+
|
15
|
+
&:before
|
16
|
+
{
|
17
|
+
content: "";
|
18
|
+
position:absolute;
|
19
|
+
z-index: 1; // really need that ?
|
20
|
+
top: 0; right: 0; bottom: 0; left: 0;
|
21
|
+
border: transparent solid 1px;
|
22
|
+
@include border-radius($border-radius);
|
23
|
+
@include box-shadow(inset $color 0 0 2px, inset rgba($color,.4) 0 5px 10px);
|
24
|
+
@include background(linear-gradient($reflectDegree, rgba($color,.12) 50%, rgba($color, 0) 50.5% ));
|
25
|
+
}
|
26
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/**
|
2
|
+
* Corner folded with pure CSS
|
3
|
+
*
|
4
|
+
* Known support: Firefox 3.5+, Chrome 4+, Safari 4+, Opera 10+, IE 9+.
|
5
|
+
* IE8 is not supported because it not render properly box-shadow and
|
6
|
+
* pseudo element should be selected with ::element and not :element
|
7
|
+
*
|
8
|
+
* @thanks to Nicolas Gallagher
|
9
|
+
* @link http://nicolasgallagher.com/pure-css-folded-corner-effect/demo/
|
10
|
+
*/
|
11
|
+
|
12
|
+
@import "recipes/shared/pseudo-element";
|
13
|
+
|
14
|
+
@mixin corner-folded($position: top-right, $color: #ddd, $background-color: #fff, $width: 1em, $border-radius: .3em, $box-shadow: rgba(0, 0, 0, .3) 0 0 .6em)
|
15
|
+
{
|
16
|
+
position: relative;
|
17
|
+
overflow: hidden;
|
18
|
+
|
19
|
+
&::before
|
20
|
+
{
|
21
|
+
@include pseudo-element;
|
22
|
+
border-style: solid;
|
23
|
+
|
24
|
+
@include box-shadow($box-shadow);
|
25
|
+
|
26
|
+
@if ($position == 'top-right')
|
27
|
+
{
|
28
|
+
top: 0;
|
29
|
+
right: 0;
|
30
|
+
border-width: 0 $width $width 0;
|
31
|
+
border-color: $color $background-color;
|
32
|
+
@include border-radius(0 0 0 $border-radius);
|
33
|
+
}
|
34
|
+
@elseif ($position == 'top-left')
|
35
|
+
{
|
36
|
+
top: 0;
|
37
|
+
left: 0;
|
38
|
+
border-width: $width $width 0 0;
|
39
|
+
border-color: $background-color $color;
|
40
|
+
@include border-radius(0 0 $border-radius 0);
|
41
|
+
}
|
42
|
+
@elseif ($position == 'bottom-right')
|
43
|
+
{
|
44
|
+
bottom: 0;
|
45
|
+
right: 0;
|
46
|
+
border-width: 0 0 $width $width;
|
47
|
+
border-color: $background-color $color;
|
48
|
+
@include border-radius($border-radius 0 0 0);
|
49
|
+
}
|
50
|
+
@elseif ($position == 'bottom-left')
|
51
|
+
{
|
52
|
+
bottom: 0;
|
53
|
+
left: 0;
|
54
|
+
border-width: $width 0 0 $width;
|
55
|
+
border-color: $color $background-color;
|
56
|
+
@include border-radius(0 $border-radius 0 0);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "recipes/form/skin/default";
|
@@ -0,0 +1,53 @@
|
|
1
|
+
@import "recipes/ui/border/bevel";
|
2
|
+
|
3
|
+
|
4
|
+
@mixin fancyElement($border-color: #006ea9, $border-color-active: #ffa43e, $line-height: 24px, $border-width: 1px, $border-width-active: 3px)
|
5
|
+
{
|
6
|
+
color: #515151;
|
7
|
+
font-size: 12px;
|
8
|
+
|
9
|
+
line-height: $line-height;
|
10
|
+
height: $line-height;
|
11
|
+
outline: $border-width solid $border-color;
|
12
|
+
border: $border-width-active - $border-width solid transparent;
|
13
|
+
|
14
|
+
&:focus
|
15
|
+
{
|
16
|
+
outline: $border-width solid $border-color-active;
|
17
|
+
@include fancyInputBorder($border-width-active - $border-width, $border-color-active);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
@mixin fancyInput($border-color: #006ea9, $border-color-active: #ffa43e, $line-height: 24px, $border-width: 1px, $border-width-active: 3px)
|
22
|
+
{
|
23
|
+
|
24
|
+
background: -webkit-gradient(linear, left top, left 25%, from(#ebebeb), to(#fff) );
|
25
|
+
background: -moz-linear-gradient(top, #ebebeb, #fff .25em);
|
26
|
+
background: linear-gradient(top, #fff, #ebebeb, #fff .25em);
|
27
|
+
}
|
28
|
+
|
29
|
+
@mixin fancyForm($border-color: #006ea9, $border-color-active: #ffa43e, $line-height: 24px, $border-width: 1px, $border-width-active: 3px)
|
30
|
+
{
|
31
|
+
input,
|
32
|
+
textarea,
|
33
|
+
select
|
34
|
+
{
|
35
|
+
@include fancyElement($border-color, $border-color-active, $line-height, $border-width, $border-width-active);
|
36
|
+
}
|
37
|
+
|
38
|
+
input,
|
39
|
+
textarea
|
40
|
+
{
|
41
|
+
@include fancyInput($border-color, $border-color-active, $line-height, $border-width, $border-width-active);
|
42
|
+
}
|
43
|
+
|
44
|
+
button
|
45
|
+
{
|
46
|
+
@extend .button-blue;
|
47
|
+
|
48
|
+
&:hover
|
49
|
+
{
|
50
|
+
@extend .button-orange;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
@mixin form-element-inline($label-width: 8em, $input-width: 20em)
|
2
|
+
{
|
3
|
+
label
|
4
|
+
{
|
5
|
+
display: inline-block;
|
6
|
+
width: $label-width;
|
7
|
+
|
8
|
+
// we use valign top for label + textarea
|
9
|
+
vertical-align: top;
|
10
|
+
|
11
|
+
// so we add a padding top to make the label no valigned on top of the input
|
12
|
+
padding-top: .4em;
|
13
|
+
}
|
14
|
+
|
15
|
+
input,
|
16
|
+
textarea
|
17
|
+
{
|
18
|
+
width: $input-width;
|
19
|
+
}
|
20
|
+
|
21
|
+
textarea
|
22
|
+
{
|
23
|
+
height: 50px;
|
24
|
+
}
|
25
|
+
}
|
File without changes
|
@@ -0,0 +1,143 @@
|
|
1
|
+
@mixin form-skin-natural-input($color: #999, $border: #3399e9)
|
2
|
+
{
|
3
|
+
padding: .4em;
|
4
|
+
|
5
|
+
border: 1px solid $border;
|
6
|
+
border-top-color: lighten($border, 4%);
|
7
|
+
border-bottom-color: darken($border, 4%);
|
8
|
+
|
9
|
+
@include border-radius(.4em);
|
10
|
+
@include background(linear-gradient(#fff, darken(#fff, 10%) 1%, #fff 30%));
|
11
|
+
|
12
|
+
@include box-shadow(rgba(0, 0, 0, .1) 0 0 .4em); // , inset rgba(0, 0, 0, .2) 0 1px 2px
|
13
|
+
|
14
|
+
$border-transition: border linear .2s;
|
15
|
+
$box-shadow-transition: box-shadow linear .2s;
|
16
|
+
$transition: $box-shadow-transition, $border-transition;
|
17
|
+
-moz-transition: -moz-$transition;
|
18
|
+
-webkit-transition: -webkit-$transition;
|
19
|
+
transition: $transition;
|
20
|
+
}
|
21
|
+
|
22
|
+
@mixin form-skin-natural-input-hover($border: #3399e9)
|
23
|
+
{
|
24
|
+
@include box-shadow(0 0 .8em rgba($border,.4));
|
25
|
+
}
|
26
|
+
|
27
|
+
@mixin form-skin-natural-input-focus($border: #3399e9)
|
28
|
+
{
|
29
|
+
outline:none; // reset default browser behavior
|
30
|
+
border-color: $border;
|
31
|
+
@include box-shadow(0 0 .4em rgba($border,.65));
|
32
|
+
}
|
33
|
+
|
34
|
+
@mixin form-skin-natural-label($color: #999)
|
35
|
+
{
|
36
|
+
cursor: pointer;
|
37
|
+
color: $color;
|
38
|
+
}
|
39
|
+
|
40
|
+
// here we can make better selector because when including mixin, & is too long
|
41
|
+
@mixin form-skin-natural-label-adjacent-effect($color-hover, $color-focus)
|
42
|
+
{
|
43
|
+
label:hover input, // <label><input /></label>
|
44
|
+
label:hover select, // <label><select /></label>
|
45
|
+
label:hover textarea, // <label><textarea /></label>
|
46
|
+
input:hover + label, // <input /> <label> </label>
|
47
|
+
select:hover + label, // <select /> <label> </label>
|
48
|
+
textarea:hover + label // <textarea /> <label> </label>
|
49
|
+
/* CANT WORK :( we need oposited of the + adjacent selector
|
50
|
+
label + input:hover, // <label> </label> <input />
|
51
|
+
label + select:hover, // <label> </label> <select />
|
52
|
+
label + textarea:hover, // <label> </label> <textarea />
|
53
|
+
*/
|
54
|
+
{
|
55
|
+
color: $color-hover;
|
56
|
+
}
|
57
|
+
|
58
|
+
label:focus input, // <label><input /></label>
|
59
|
+
label:focus select, // <label><select /></label>
|
60
|
+
label:focus textarea, // <label><textarea /></label>
|
61
|
+
input:focus + label, // <input /> <label> </label>
|
62
|
+
select:focus + label, // <select /> <label> </label>
|
63
|
+
textarea:focus + label // <textarea /> <label> </label>
|
64
|
+
/* CANT WORK :( we need oposited of the + adjacent selector
|
65
|
+
label + input:focus, // <label> </label> <input />
|
66
|
+
label + select:focus, // <label> </label> <select />
|
67
|
+
label + textarea:focus, // <label> </label> <textarea />
|
68
|
+
*/
|
69
|
+
{
|
70
|
+
color: $color-focus;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
@mixin form-skin-natural-button($color: #fff, $background: #3399e9)
|
75
|
+
{
|
76
|
+
|
77
|
+
cursor: pointer;
|
78
|
+
display: inline-block;
|
79
|
+
width: auto;
|
80
|
+
|
81
|
+
color: $color;
|
82
|
+
|
83
|
+
padding: .6em 1em;
|
84
|
+
|
85
|
+
text-shadow: 0 1px 0 rgba(darken($background, 80%), .4);
|
86
|
+
|
87
|
+
border: 1px solid darken($background, 5%);
|
88
|
+
border-top-color: darken($background, 10%);
|
89
|
+
border-bottom-color: lighten($background, 10%);
|
90
|
+
background: $background; //fallback
|
91
|
+
@include background(linear-gradient(lighten($background, 10%), darken($background, 10%)));
|
92
|
+
|
93
|
+
@include border-radius(.6em);
|
94
|
+
@include box-shadow(rgba(0, 0, 0, .4) 0 .1em .2em);
|
95
|
+
|
96
|
+
&:focus,
|
97
|
+
&:hover
|
98
|
+
{
|
99
|
+
text-decoration: none; // for <a>
|
100
|
+
background: darken($background, 5%); //fallback
|
101
|
+
@include background(linear-gradient(lighten($background, 12%), darken($background, 12%)));
|
102
|
+
}
|
103
|
+
|
104
|
+
&:active
|
105
|
+
{
|
106
|
+
text-decoration: none; // for <a>
|
107
|
+
background: darken($background, 8%); //fallback
|
108
|
+
@include background(linear-gradient(darken($background, 12%), lighten($background, 12%)));
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
|
113
|
+
@mixin form-skin-natural($color-label: #666, $color-input: #999, $border-input: #3399e9, $color-button: #fff, $background-button: #3399e9)
|
114
|
+
{
|
115
|
+
label
|
116
|
+
{
|
117
|
+
@include form-skin-natural-label($color-label);
|
118
|
+
}
|
119
|
+
|
120
|
+
input,
|
121
|
+
select,
|
122
|
+
textarea
|
123
|
+
{
|
124
|
+
@include form-skin-natural-input($color-input, $border-input);
|
125
|
+
|
126
|
+
&:hover,
|
127
|
+
label:hover + &
|
128
|
+
{
|
129
|
+
@include form-skin-natural-input-hover($border-input);
|
130
|
+
}
|
131
|
+
|
132
|
+
&:focus
|
133
|
+
{
|
134
|
+
@include form-skin-natural-input-focus($border-input);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
button,
|
139
|
+
.button
|
140
|
+
{
|
141
|
+
@include form-skin-natural-button($color-button, $background-button);
|
142
|
+
}
|
143
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
/**
|
2
|
+
* Vertical alignement for page
|
3
|
+
* Inspired by http://css-tricks.com/snippets/css/center-div-with-dynamic-height/
|
4
|
+
*
|
5
|
+
* Usage:
|
6
|
+
*
|
7
|
+
* SCSS
|
8
|
+
* @include vertical-align-requirement;
|
9
|
+
* .v-align-container { @include vertical-align-container }
|
10
|
+
* .v-align-content-container { @include vertical-align-content-container }
|
11
|
+
* .v-align-content { @include vertical-align-content }
|
12
|
+
*
|
13
|
+
* HTML
|
14
|
+
* <body>
|
15
|
+
* <div class="v-align-container">
|
16
|
+
* <div class="v-align-container">
|
17
|
+
* <div class="v-align-container">
|
18
|
+
* Your content !
|
19
|
+
* </div>
|
20
|
+
* </div>
|
21
|
+
* </div>
|
22
|
+
* </body>
|
23
|
+
*/
|
24
|
+
|
25
|
+
@mixin vertical-align-requirement
|
26
|
+
{
|
27
|
+
html,
|
28
|
+
body
|
29
|
+
{
|
30
|
+
height:100%
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
@mixin vertical-align-container
|
35
|
+
{
|
36
|
+
|
37
|
+
display: table;
|
38
|
+
overflow: hidden;
|
39
|
+
margin-left: auto;
|
40
|
+
margin-right: auto;
|
41
|
+
height: 100%;
|
42
|
+
|
43
|
+
// ie6 ie7
|
44
|
+
*position:relative;
|
45
|
+
}
|
46
|
+
|
47
|
+
@mixin vertical-align-content-container
|
48
|
+
{
|
49
|
+
display: table-cell;
|
50
|
+
vertical-align: middle;
|
51
|
+
|
52
|
+
// ie6 ie7
|
53
|
+
*position: absolute;
|
54
|
+
*top: 50%;
|
55
|
+
}
|
56
|
+
|
57
|
+
@mixin vertical-align-content
|
58
|
+
{
|
59
|
+
// ie6 ie7
|
60
|
+
*position: relative;
|
61
|
+
*top: -50%;
|
62
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/**
|
2
|
+
* Shadow along the top edge of the browser viewport
|
3
|
+
*
|
4
|
+
* @link http://playground.genelocklin.com/depth/
|
5
|
+
*/
|
6
|
+
|
7
|
+
@mixin top-shadow($height: 1em, $color: rgba(0,0,0,.8), $z-index: 100, $position: fixed)
|
8
|
+
{
|
9
|
+
content: "";
|
10
|
+
|
11
|
+
position: $position;
|
12
|
+
left: 0%;
|
13
|
+
width: 100%;
|
14
|
+
|
15
|
+
top: -$height;
|
16
|
+
height: $height;
|
17
|
+
@include box-shadow(0 0 $height $color);
|
18
|
+
|
19
|
+
z-index: $z-index;
|
20
|
+
}
|
21
|
+
|
22
|
+
/*
|
23
|
+
// Usage
|
24
|
+
body:before
|
25
|
+
{
|
26
|
+
@include top-shadow;
|
27
|
+
}
|
28
|
+
*/
|
@@ -0,0 +1,42 @@
|
|
1
|
+
/**
|
2
|
+
* Drop shadow mixins from Nicolas Gallagher demo
|
3
|
+
*
|
4
|
+
* @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
|
5
|
+
*/
|
6
|
+
@mixin drop-shadow-lifted($height: 15px, $margin: 10px, $angle: 3deg)
|
7
|
+
{
|
8
|
+
& > :last-child::before
|
9
|
+
{
|
10
|
+
content:"";
|
11
|
+
position: absolute;
|
12
|
+
z-index: -1;
|
13
|
+
top: 0;
|
14
|
+
bottom: 0;
|
15
|
+
left: 0;
|
16
|
+
right: 0;
|
17
|
+
}
|
18
|
+
|
19
|
+
&::before,
|
20
|
+
&::after
|
21
|
+
{
|
22
|
+
content:"";
|
23
|
+
position:absolute;
|
24
|
+
z-index: -2;
|
25
|
+
|
26
|
+
bottom: $height;
|
27
|
+
left: $margin;
|
28
|
+
width: 50%;
|
29
|
+
height: 20%;
|
30
|
+
|
31
|
+
@include box-shadow(0 $height 10px rgba(0, 0, 0, .7));
|
32
|
+
@include transform(rotate(-$angle));
|
33
|
+
}
|
34
|
+
|
35
|
+
&::after
|
36
|
+
{
|
37
|
+
right: $margin;
|
38
|
+
left: auto;
|
39
|
+
|
40
|
+
@include transform(rotate($angle));
|
41
|
+
}
|
42
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
@mixin triangle($direction: top, $width: 1em, $height: 0, $color: #000)
|
2
|
+
{
|
3
|
+
@if ($height == 0)
|
4
|
+
{
|
5
|
+
$height: $width;
|
6
|
+
}
|
7
|
+
|
8
|
+
width: 0;
|
9
|
+
height: 0;
|
10
|
+
|
11
|
+
@if ($direction == 'top')
|
12
|
+
{
|
13
|
+
border-left: $width solid transparent;
|
14
|
+
border-right: $width solid transparent;
|
15
|
+
border-bottom: $height solid $color;
|
16
|
+
}
|
17
|
+
@elseif ($direction == 'bottom')
|
18
|
+
{
|
19
|
+
border-left: $width solid transparent;
|
20
|
+
border-right: $width solid transparent;
|
21
|
+
border-top: $height solid $color;
|
22
|
+
}
|
23
|
+
@elseif ($direction == 'left')
|
24
|
+
{
|
25
|
+
border-top: $width solid transparent;
|
26
|
+
border-right: $height solid $color;
|
27
|
+
border-bottom: $width solid transparent;
|
28
|
+
}
|
29
|
+
@elseif ($direction == 'right')
|
30
|
+
{
|
31
|
+
border-top: $width solid transparent;
|
32
|
+
border-left: $height solid $color;
|
33
|
+
border-bottom: $width solid transparent;
|
34
|
+
}
|
35
|
+
@elseif ($direction == 'top-left')
|
36
|
+
{
|
37
|
+
border-top: $width solid $color;
|
38
|
+
border-bottom: $width solid transparent;
|
39
|
+
border-left: $width solid $color;
|
40
|
+
border-right: $width solid transparent;
|
41
|
+
}
|
42
|
+
@elseif ($direction == 'top-right')
|
43
|
+
{
|
44
|
+
border-top: $width solid $color;
|
45
|
+
border-bottom: $width solid transparent;
|
46
|
+
border-left: $width solid transparent;
|
47
|
+
border-right: $width solid $color;
|
48
|
+
}
|
49
|
+
@elseif ($direction == 'bottom-left')
|
50
|
+
{
|
51
|
+
border-top: $width solid transparent;
|
52
|
+
border-bottom: $width solid $color;
|
53
|
+
border-left: $width solid $color;
|
54
|
+
border-right: $width solid transparent;
|
55
|
+
}
|
56
|
+
@elseif ($direction == 'bottom-right')
|
57
|
+
{
|
58
|
+
border-top: $width solid transparent;
|
59
|
+
border-left: $width solid transparent;
|
60
|
+
border-bottom: $width solid $color;
|
61
|
+
border-right: $width solid $color;
|
62
|
+
}
|
63
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/**
|
2
|
+
* Micro clearfix hack
|
3
|
+
*
|
4
|
+
* The clearfix hack is a popular way to clear floats without resorting to using presentational markup. This article presents an update to the clearfix method that further reduces the amount of CSS required.
|
5
|
+
* Known support: Firefox 2+, Safari 2+, Chrome, Opera 9.27+, IE 6+, IE Mac.
|
6
|
+
*
|
7
|
+
* @link http://nicolasgallagher.com/micro-clearfix-hack/
|
8
|
+
*/
|
9
|
+
@mixin clearfix
|
10
|
+
{
|
11
|
+
// For modern browsers
|
12
|
+
&:before,
|
13
|
+
&:after
|
14
|
+
{
|
15
|
+
content:"";
|
16
|
+
display:block;
|
17
|
+
overflow:hidden;
|
18
|
+
}
|
19
|
+
|
20
|
+
&:after
|
21
|
+
{
|
22
|
+
clear:both;
|
23
|
+
}
|
24
|
+
|
25
|
+
//For IE 6/7 (trigger hasLayout)
|
26
|
+
&
|
27
|
+
{
|
28
|
+
zoom: 1;
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* Note IE7/6 doesn't understand pseudo element as ::before and ::after
|
3
|
+
* IE8 need to have :before and not ::before
|
4
|
+
* So use only : and not :: if you want to support IE8
|
5
|
+
* IE9 Webkit Firefox Opera understand ::
|
6
|
+
*/
|
7
|
+
@mixin pseudo-element($width: 0, $height: auto, $content: "")
|
8
|
+
{
|
9
|
+
content: $content;
|
10
|
+
position: absolute;
|
11
|
+
display: block;
|
12
|
+
width: $width; // default 0 is for ff3 positionning
|
13
|
+
|
14
|
+
@if ($height != auto)
|
15
|
+
{
|
16
|
+
height: $height;
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
@mixin ui-convex($color: #ddd, $button-effect: true, $opacity-top: .5, $opacity-bottom: 0, $color-mix: #fff)
|
2
|
+
{
|
3
|
+
background: $color; // fallback
|
4
|
+
|
5
|
+
// the original idea was to just add a layer of transparent white to make the convex effect
|
6
|
+
// but this didn't work with css3/pie module, so I've used sass color function to get the same result
|
7
|
+
//@include background($color linear-gradient(transparentize($color-mix, $opacity-top ), transparentize($color-mix, $opacity-bottom )));
|
8
|
+
|
9
|
+
$opacity-top: percentage(1-$opacity-top);
|
10
|
+
$opacity-bottom: percentage(1-$opacity-bottom);
|
11
|
+
$color-top: mix($color, $color-mix, $opacity-top);
|
12
|
+
$color-bottom: mix($color, $color-mix, $opacity-bottom);
|
13
|
+
@include background(linear-gradient($color-top, $color-bottom));
|
14
|
+
|
15
|
+
@if $button-effect == true
|
16
|
+
{
|
17
|
+
&:hover,
|
18
|
+
&:focus,
|
19
|
+
{
|
20
|
+
@include background(linear-gradient($color-bottom, $color-top));
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
@mixin ui-glossy($color: #000, $opacity: .6, $border-width: .1em, $border-color-top: rgba(255,255,255,.5), $border-color-bottom: rgba(85,85,85,.6))
|
2
|
+
{
|
3
|
+
border-left: 0;
|
4
|
+
border-right: 0;
|
5
|
+
|
6
|
+
border: $border-width solid $border-color-top;
|
7
|
+
border-bottom-color: $border-color-bottom;
|
8
|
+
|
9
|
+
outline: $border-width solid rgba(0,0,0,.6);
|
10
|
+
background: $color;
|
11
|
+
background: transparentize($color, $opacity);
|
12
|
+
//background: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(112,112,112,.55)), color-stop(.49, rgba(56,56,56,.46)), color-stop(.51, rgba(0,0,0,.58)), to(rgba(0,0,0,.58)));
|
13
|
+
//background: -moz-linear-gradient(rgba(112,112,112,.55), rgba(56,56,56,.46) 49%, rgba(0,0,0,.58) 51%, rgba(0,0,0,.58));
|
14
|
+
//background: linear-gradient(rgba(112,112,112,.55), rgba(56,56,56,.46) 49%, rgba(0,0,0,.58) 51%, rgba(0,0,0,.58));
|
15
|
+
@include background(linear-gradient(rgba(112,112,112,.55), rgba(56,56,56,.46) 49%, rgba(0,0,0,.58) 51%, rgba(0,0,0,.58) 51%));
|
16
|
+
}
|
17
|
+
@mixin ui-glossy-inset {
|
18
|
+
-moz-border-radius: .5em;
|
19
|
+
border-radius: .5em;
|
20
|
+
background: -webkit-gradient(linear,0 0, 0 100%,from(#020304),to(#252627));
|
21
|
+
background: -moz-linear-gradient(#020304,#252627);
|
22
|
+
background: linear-gradient(#020304,#252627);
|
23
|
+
border: .1em solid #454545;
|
24
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
// sometimes we don't use nesting all the time to optimize some selector
|
2
|
+
|
3
|
+
// this mixin have to be used with a js for dropdown menu behavior
|
4
|
+
// (display onhover with a timeout like 500ms for better UX)
|
5
|
+
|
6
|
+
@import "recipes/shared/block-inline-block";
|
7
|
+
|
8
|
+
@mixin ui-menu-dropdown($z-index: 3)
|
9
|
+
{
|
10
|
+
z-index: $z-index;
|
11
|
+
|
12
|
+
ul
|
13
|
+
{
|
14
|
+
z-index: $z-index + 1;
|
15
|
+
list-style-position: outside; // ie fix
|
16
|
+
|
17
|
+
li
|
18
|
+
{
|
19
|
+
position: relative;
|
20
|
+
@include block-inline-block;
|
21
|
+
}
|
22
|
+
|
23
|
+
a
|
24
|
+
{
|
25
|
+
display: inline-block;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
// sub menu
|
30
|
+
ul ul
|
31
|
+
{
|
32
|
+
position: absolute;
|
33
|
+
z-index: $z-index + 2;
|
34
|
+
|
35
|
+
// default behavior
|
36
|
+
display: none;
|
37
|
+
}
|
38
|
+
|
39
|
+
.no-js li:hover > ul
|
40
|
+
{
|
41
|
+
display: block;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
metadata
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: compass-recipes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Maxime Thirouin
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-07-01 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: compass
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 49
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 11
|
33
|
+
- 1
|
34
|
+
version: 0.11.1
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description: "A Compass extension to have some sass/compass recipes ready to use ! "
|
38
|
+
email: maxime.thirouin@gmail.com
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions: []
|
42
|
+
|
43
|
+
extra_rdoc_files: []
|
44
|
+
|
45
|
+
files:
|
46
|
+
- README.md
|
47
|
+
- LICENSE
|
48
|
+
- VERSION
|
49
|
+
- lib/compass-recipes.rb
|
50
|
+
- stylesheets/_recipes.scss
|
51
|
+
- stylesheets/recipes/_effect.scss
|
52
|
+
- stylesheets/recipes/_enhancement.scss
|
53
|
+
- stylesheets/recipes/_form.scss
|
54
|
+
- stylesheets/recipes/_icons.scss
|
55
|
+
- stylesheets/recipes/_layout.scss
|
56
|
+
- stylesheets/recipes/_pattern.scss
|
57
|
+
- stylesheets/recipes/_shadow.scss
|
58
|
+
- stylesheets/recipes/_shape.scss
|
59
|
+
- stylesheets/recipes/_shared.scss
|
60
|
+
- stylesheets/recipes/_ui.scss
|
61
|
+
- stylesheets/recipes/effect/_glass.scss
|
62
|
+
- stylesheets/recipes/enhancement/_corner-folded.scss
|
63
|
+
- stylesheets/recipes/form/_element.scss
|
64
|
+
- stylesheets/recipes/form/_skin.scss
|
65
|
+
- stylesheets/recipes/form/element/_border-color.scss
|
66
|
+
- stylesheets/recipes/form/element/_inline.scss
|
67
|
+
- stylesheets/recipes/form/skin/_default.scss
|
68
|
+
- stylesheets/recipes/form/skin/_natural.scss
|
69
|
+
- stylesheets/recipes/layout/_vertical-align.scss
|
70
|
+
- stylesheets/recipes/shadow/_drop.scss
|
71
|
+
- stylesheets/recipes/shadow/_top-edge.scss
|
72
|
+
- stylesheets/recipes/shadow/drop/_lifted.scss
|
73
|
+
- stylesheets/recipes/shape/_triangle.scss
|
74
|
+
- stylesheets/recipes/shared/_block-inline-block.scss
|
75
|
+
- stylesheets/recipes/shared/_clearfix.scss
|
76
|
+
- stylesheets/recipes/shared/_list-inline-block.scss
|
77
|
+
- stylesheets/recipes/shared/_pseudo-element.scss
|
78
|
+
- stylesheets/recipes/ui/_convex.scss
|
79
|
+
- stylesheets/recipes/ui/_glossy.scss
|
80
|
+
- stylesheets/recipes/ui/_gradient.scss
|
81
|
+
- stylesheets/recipes/ui/_menu-dropdown.scss
|
82
|
+
- stylesheets/recipes/ui/border/_bevel.scss
|
83
|
+
has_rdoc: true
|
84
|
+
homepage: http://moox.github.com/Compass-Recipes
|
85
|
+
licenses: []
|
86
|
+
|
87
|
+
post_install_message:
|
88
|
+
rdoc_options: []
|
89
|
+
|
90
|
+
require_paths:
|
91
|
+
- lib
|
92
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
hash: 3
|
98
|
+
segments:
|
99
|
+
- 0
|
100
|
+
version: "0"
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 3
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
version: "0"
|
110
|
+
requirements: []
|
111
|
+
|
112
|
+
rubyforge_project: compass-recipes
|
113
|
+
rubygems_version: 1.6.2
|
114
|
+
signing_key:
|
115
|
+
specification_version: 3
|
116
|
+
summary: Recipes for Compass
|
117
|
+
test_files: []
|
118
|
+
|