root / cloudcms / static / cloudcms / less / mixins.less @ 1c8df218
History | View | Annotate | Download (7.9 kB)
1 | c1468bcc | Kostas Papadimitriou | /* Mixins.less |
---|---|---|---|
2 | c1468bcc | Kostas Papadimitriou | * Snippets of reusable CSS to develop faster and keep code readable |
3 | c1468bcc | Kostas Papadimitriou | * ----------------------------------------------------------------- */ |
4 | c1468bcc | Kostas Papadimitriou | |
5 | c1468bcc | Kostas Papadimitriou | |
6 | c1468bcc | Kostas Papadimitriou | // Clearfix for clearing floats like a boss h5bp.com/q |
7 | c1468bcc | Kostas Papadimitriou | .clearfix() { |
8 | c1468bcc | Kostas Papadimitriou | zoom: 1; |
9 | c1468bcc | Kostas Papadimitriou | &:before, |
10 | c1468bcc | Kostas Papadimitriou | &:after { |
11 | c1468bcc | Kostas Papadimitriou | display: table; |
12 | c1468bcc | Kostas Papadimitriou | content: ""; |
13 | c1468bcc | Kostas Papadimitriou | zoom: 1; |
14 | c1468bcc | Kostas Papadimitriou | } |
15 | c1468bcc | Kostas Papadimitriou | &:after { |
16 | c1468bcc | Kostas Papadimitriou | clear: both; |
17 | c1468bcc | Kostas Papadimitriou | } |
18 | c1468bcc | Kostas Papadimitriou | } |
19 | c1468bcc | Kostas Papadimitriou | |
20 | c1468bcc | Kostas Papadimitriou | // Center-align a block level element |
21 | c1468bcc | Kostas Papadimitriou | .center-block() { |
22 | c1468bcc | Kostas Papadimitriou | display: block; |
23 | c1468bcc | Kostas Papadimitriou | margin-left: auto; |
24 | c1468bcc | Kostas Papadimitriou | margin-right: auto; |
25 | c1468bcc | Kostas Papadimitriou | } |
26 | c1468bcc | Kostas Papadimitriou | |
27 | c1468bcc | Kostas Papadimitriou | // Sizing shortcuts |
28 | c1468bcc | Kostas Papadimitriou | .size(@height: 5px, @width: 5px) { |
29 | c1468bcc | Kostas Papadimitriou | height: @height; |
30 | c1468bcc | Kostas Papadimitriou | width: @width; |
31 | c1468bcc | Kostas Papadimitriou | } |
32 | c1468bcc | Kostas Papadimitriou | .square(@size: 5px) { |
33 | c1468bcc | Kostas Papadimitriou | .size(@size, @size); |
34 | c1468bcc | Kostas Papadimitriou | } |
35 | c1468bcc | Kostas Papadimitriou | |
36 | c1468bcc | Kostas Papadimitriou | // Input placeholder text |
37 | c1468bcc | Kostas Papadimitriou | .placeholder(@color: @grayLight) { |
38 | c1468bcc | Kostas Papadimitriou | :-moz-placeholder { |
39 | c1468bcc | Kostas Papadimitriou | color: @color; |
40 | c1468bcc | Kostas Papadimitriou | } |
41 | c1468bcc | Kostas Papadimitriou | ::-webkit-input-placeholder { |
42 | c1468bcc | Kostas Papadimitriou | color: @color; |
43 | c1468bcc | Kostas Papadimitriou | } |
44 | c1468bcc | Kostas Papadimitriou | } |
45 | c1468bcc | Kostas Papadimitriou | |
46 | c1468bcc | Kostas Papadimitriou | // Font Stacks |
47 | c1468bcc | Kostas Papadimitriou | #font { |
48 | c1468bcc | Kostas Papadimitriou | .shorthand(@weight: normal, @size: 14px, @lineHeight: 20px) { |
49 | c1468bcc | Kostas Papadimitriou | font-size: @size; |
50 | c1468bcc | Kostas Papadimitriou | font-weight: @weight; |
51 | c1468bcc | Kostas Papadimitriou | line-height: @lineHeight; |
52 | c1468bcc | Kostas Papadimitriou | } |
53 | c1468bcc | Kostas Papadimitriou | .sans-serif(@weight: normal, @size: 14px, @lineHeight: 20px) { |
54 | c1468bcc | Kostas Papadimitriou | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
55 | c1468bcc | Kostas Papadimitriou | font-size: @size; |
56 | c1468bcc | Kostas Papadimitriou | font-weight: @weight; |
57 | c1468bcc | Kostas Papadimitriou | line-height: @lineHeight; |
58 | c1468bcc | Kostas Papadimitriou | } |
59 | c1468bcc | Kostas Papadimitriou | .serif(@weight: normal, @size: 14px, @lineHeight: 20px) { |
60 | c1468bcc | Kostas Papadimitriou | font-family: "Georgia", Times New Roman, Times, serif; |
61 | c1468bcc | Kostas Papadimitriou | font-size: @size; |
62 | c1468bcc | Kostas Papadimitriou | font-weight: @weight; |
63 | c1468bcc | Kostas Papadimitriou | line-height: @lineHeight; |
64 | c1468bcc | Kostas Papadimitriou | } |
65 | c1468bcc | Kostas Papadimitriou | .monospace(@weight: normal, @size: 12px, @lineHeight: 20px) { |
66 | c1468bcc | Kostas Papadimitriou | font-family: "Monaco", Courier New, monospace; |
67 | c1468bcc | Kostas Papadimitriou | font-size: @size; |
68 | c1468bcc | Kostas Papadimitriou | font-weight: @weight; |
69 | c1468bcc | Kostas Papadimitriou | line-height: @lineHeight; |
70 | c1468bcc | Kostas Papadimitriou | } |
71 | c1468bcc | Kostas Papadimitriou | } |
72 | c1468bcc | Kostas Papadimitriou | |
73 | c1468bcc | Kostas Papadimitriou | // Grid System |
74 | c1468bcc | Kostas Papadimitriou | .fixed-container() { |
75 | c1468bcc | Kostas Papadimitriou | width: @siteWidth; |
76 | c1468bcc | Kostas Papadimitriou | margin-left: auto; |
77 | c1468bcc | Kostas Papadimitriou | margin-right: auto; |
78 | c1468bcc | Kostas Papadimitriou | .clearfix(); |
79 | c1468bcc | Kostas Papadimitriou | } |
80 | c1468bcc | Kostas Papadimitriou | .columns(@columnSpan: 1) { |
81 | c1468bcc | Kostas Papadimitriou | width: (@gridColumnWidth * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)); |
82 | c1468bcc | Kostas Papadimitriou | } |
83 | c1468bcc | Kostas Papadimitriou | .offset(@columnOffset: 1) { |
84 | c1468bcc | Kostas Papadimitriou | margin-left: (@gridColumnWidth * @columnOffset) + (@gridGutterWidth * (@columnOffset - 1)); |
85 | c1468bcc | Kostas Papadimitriou | } |
86 | c1468bcc | Kostas Papadimitriou | // Necessary grid styles for every column to make them appear next to each other horizontally |
87 | c1468bcc | Kostas Papadimitriou | .gridColumn() { |
88 | c1468bcc | Kostas Papadimitriou | display: inline; |
89 | c1468bcc | Kostas Papadimitriou | float: left; |
90 | c1468bcc | Kostas Papadimitriou | margin-left: @gridGutterWidth; |
91 | c1468bcc | Kostas Papadimitriou | } |
92 | c1468bcc | Kostas Papadimitriou | // makeColumn can be used to mark any element (e.g., .content-primary) as a column without changing markup to .span something |
93 | c1468bcc | Kostas Papadimitriou | .makeColumn(@columnSpan: 1) { |
94 | c1468bcc | Kostas Papadimitriou | .gridColumn(); |
95 | c1468bcc | Kostas Papadimitriou | .columns(@columnSpan); |
96 | c1468bcc | Kostas Papadimitriou | } |
97 | c1468bcc | Kostas Papadimitriou | |
98 | c1468bcc | Kostas Papadimitriou | // Border Radius |
99 | c1468bcc | Kostas Papadimitriou | .border-radius(@radius: 5px) { |
100 | c1468bcc | Kostas Papadimitriou | -webkit-border-radius: @radius; |
101 | c1468bcc | Kostas Papadimitriou | -moz-border-radius: @radius; |
102 | c1468bcc | Kostas Papadimitriou | border-radius: @radius; |
103 | c1468bcc | Kostas Papadimitriou | } |
104 | c1468bcc | Kostas Papadimitriou | |
105 | c1468bcc | Kostas Papadimitriou | // Drop shadows |
106 | c1468bcc | Kostas Papadimitriou | .box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) { |
107 | c1468bcc | Kostas Papadimitriou | -webkit-box-shadow: @shadow; |
108 | c1468bcc | Kostas Papadimitriou | -moz-box-shadow: @shadow; |
109 | c1468bcc | Kostas Papadimitriou | box-shadow: @shadow; |
110 | c1468bcc | Kostas Papadimitriou | } |
111 | c1468bcc | Kostas Papadimitriou | |
112 | c1468bcc | Kostas Papadimitriou | // Transitions |
113 | c1468bcc | Kostas Papadimitriou | .transition(@transition) { |
114 | c1468bcc | Kostas Papadimitriou | -webkit-transition: @transition; |
115 | c1468bcc | Kostas Papadimitriou | -moz-transition: @transition; |
116 | c1468bcc | Kostas Papadimitriou | -ms-transition: @transition; |
117 | c1468bcc | Kostas Papadimitriou | -o-transition: @transition; |
118 | c1468bcc | Kostas Papadimitriou | transition: @transition; |
119 | c1468bcc | Kostas Papadimitriou | } |
120 | c1468bcc | Kostas Papadimitriou | |
121 | c1468bcc | Kostas Papadimitriou | // Background clipping |
122 | c1468bcc | Kostas Papadimitriou | .background-clip(@clip) { |
123 | c1468bcc | Kostas Papadimitriou | -webkit-background-clip: @clip; |
124 | c1468bcc | Kostas Papadimitriou | -moz-background-clip: @clip; |
125 | c1468bcc | Kostas Papadimitriou | background-clip: @clip; |
126 | c1468bcc | Kostas Papadimitriou | } |
127 | c1468bcc | Kostas Papadimitriou | |
128 | c1468bcc | Kostas Papadimitriou | // CSS3 Content Columns |
129 | c1468bcc | Kostas Papadimitriou | .content-columns(@columnCount, @columnGap: 20px) { |
130 | c1468bcc | Kostas Papadimitriou | -webkit-column-count: @columnCount; |
131 | c1468bcc | Kostas Papadimitriou | -moz-column-count: @columnCount; |
132 | c1468bcc | Kostas Papadimitriou | column-count: @columnCount; |
133 | c1468bcc | Kostas Papadimitriou | -webkit-column-gap: @columnGap; |
134 | c1468bcc | Kostas Papadimitriou | -moz-column-gap: @columnGap; |
135 | c1468bcc | Kostas Papadimitriou | column-gap: @columnGap; |
136 | c1468bcc | Kostas Papadimitriou | } |
137 | c1468bcc | Kostas Papadimitriou | |
138 | c1468bcc | Kostas Papadimitriou | // Make any element resizable for prototyping |
139 | c1468bcc | Kostas Papadimitriou | .resizable(@direction: both) { |
140 | c1468bcc | Kostas Papadimitriou | resize: @direction; // Options are horizontal, vertical, both |
141 | c1468bcc | Kostas Papadimitriou | overflow: auto; // Safari fix |
142 | c1468bcc | Kostas Papadimitriou | } |
143 | c1468bcc | Kostas Papadimitriou | |
144 | c1468bcc | Kostas Papadimitriou | // Add an alphatransparency value to any background or border color (via Elyse Holladay) |
145 | c1468bcc | Kostas Papadimitriou | #translucent { |
146 | c1468bcc | Kostas Papadimitriou | .background(@color: @white, @alpha: 1) { |
147 | c1468bcc | Kostas Papadimitriou | background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); |
148 | c1468bcc | Kostas Papadimitriou | } |
149 | c1468bcc | Kostas Papadimitriou | .border(@color: @white, @alpha: 1) { |
150 | c1468bcc | Kostas Papadimitriou | border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); |
151 | c1468bcc | Kostas Papadimitriou | background-clip: padding-box; |
152 | c1468bcc | Kostas Papadimitriou | } |
153 | c1468bcc | Kostas Papadimitriou | } |
154 | c1468bcc | Kostas Papadimitriou | |
155 | c1468bcc | Kostas Papadimitriou | // Gradient Bar Colors for buttons and allerts |
156 | c1468bcc | Kostas Papadimitriou | .gradientBar(@primaryColor, @secondaryColor) { |
157 | c1468bcc | Kostas Papadimitriou | #gradient > .vertical(@primaryColor, @secondaryColor); |
158 | c1468bcc | Kostas Papadimitriou | text-shadow: 0 -1px 0 rgba(0,0,0,.25); |
159 | c1468bcc | Kostas Papadimitriou | border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%); |
160 | c1468bcc | Kostas Papadimitriou | border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%); |
161 | c1468bcc | Kostas Papadimitriou | } |
162 | c1468bcc | Kostas Papadimitriou | |
163 | c1468bcc | Kostas Papadimitriou | // Gradients |
164 | c1468bcc | Kostas Papadimitriou | #gradient { |
165 | c1468bcc | Kostas Papadimitriou | .horizontal (@startColor: #555, @endColor: #333) { |
166 | c1468bcc | Kostas Papadimitriou | background-color: @endColor; |
167 | c1468bcc | Kostas Papadimitriou | background-repeat: repeat-x; |
168 | c1468bcc | Kostas Papadimitriou | background-image: -khtml-gradient(linear, left top, right top, from(@startColor), to(@endColor)); // Konqueror |
169 | c1468bcc | Kostas Papadimitriou | background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+ |
170 | c1468bcc | Kostas Papadimitriou | background-image: -ms-linear-gradient(left, @startColor, @endColor); // IE10 |
171 | c1468bcc | Kostas Papadimitriou | background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+ |
172 | c1468bcc | Kostas Papadimitriou | background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+ |
173 | c1468bcc | Kostas Papadimitriou | background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10 |
174 | c1468bcc | Kostas Papadimitriou | background-image: linear-gradient(left, @startColor, @endColor); // Le standard |
175 | c1468bcc | Kostas Papadimitriou | filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",@startColor,@endColor)); // IE9 and down |
176 | c1468bcc | Kostas Papadimitriou | } |
177 | c1468bcc | Kostas Papadimitriou | .vertical (@startColor: #555, @endColor: #333) { |
178 | c1468bcc | Kostas Papadimitriou | background-color: @endColor; |
179 | c1468bcc | Kostas Papadimitriou | background-repeat: repeat-x; |
180 | c1468bcc | Kostas Papadimitriou | background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); // Konqueror |
181 | c1468bcc | Kostas Papadimitriou | background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ |
182 | c1468bcc | Kostas Papadimitriou | background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10 |
183 | c1468bcc | Kostas Papadimitriou | background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+ |
184 | c1468bcc | Kostas Papadimitriou | background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ |
185 | c1468bcc | Kostas Papadimitriou | background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 |
186 | c1468bcc | Kostas Papadimitriou | background-image: linear-gradient(top, @startColor, @endColor); // The standard |
187 | c1468bcc | Kostas Papadimitriou | filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down |
188 | c1468bcc | Kostas Papadimitriou | } |
189 | c1468bcc | Kostas Papadimitriou | .directional (@startColor: #555, @endColor: #333, @deg: 45deg) { |
190 | c1468bcc | Kostas Papadimitriou | background-color: @endColor; |
191 | c1468bcc | Kostas Papadimitriou | background-repeat: repeat-x; |
192 | c1468bcc | Kostas Papadimitriou | background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+ |
193 | c1468bcc | Kostas Papadimitriou | background-image: -ms-linear-gradient(@deg, @startColor, @endColor); // IE10 |
194 | c1468bcc | Kostas Papadimitriou | background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+ |
195 | c1468bcc | Kostas Papadimitriou | background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10 |
196 | c1468bcc | Kostas Papadimitriou | background-image: linear-gradient(@deg, @startColor, @endColor); // The standard |
197 | c1468bcc | Kostas Papadimitriou | } |
198 | c1468bcc | Kostas Papadimitriou | .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) { |
199 | c1468bcc | Kostas Papadimitriou | background-color: @endColor; |
200 | c1468bcc | Kostas Papadimitriou | background-repeat: no-repeat; |
201 | c1468bcc | Kostas Papadimitriou | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor)); |
202 | c1468bcc | Kostas Papadimitriou | background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor); |
203 | c1468bcc | Kostas Papadimitriou | background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor); |
204 | c1468bcc | Kostas Papadimitriou | background-image: -ms-linear-gradient(@startColor, @midColor @colorStop, @endColor); |
205 | c1468bcc | Kostas Papadimitriou | background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor); |
206 | c1468bcc | Kostas Papadimitriou | background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor); |
207 | c1468bcc | Kostas Papadimitriou | filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down, gets no color-stop at all for proper fallback |
208 | c1468bcc | Kostas Papadimitriou | } |
209 | c1468bcc | Kostas Papadimitriou | } |
210 | c1468bcc | Kostas Papadimitriou | |
211 | c1468bcc | Kostas Papadimitriou | // Reset filters for IE |
212 | c1468bcc | Kostas Papadimitriou | .reset-filter() { |
213 | c1468bcc | Kostas Papadimitriou | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); |
214 | c1468bcc | Kostas Papadimitriou | } |
215 | c1468bcc | Kostas Papadimitriou | |
216 | c1468bcc | Kostas Papadimitriou | // Opacity |
217 | c1468bcc | Kostas Papadimitriou | .opacity(@opacity: 100) { |
218 | c1468bcc | Kostas Papadimitriou | filter: e(%("alpha(opacity=%d)", @opacity)); |
219 | c1468bcc | Kostas Papadimitriou | -khtml-opacity: @opacity / 100; |
220 | c1468bcc | Kostas Papadimitriou | -moz-opacity: @opacity / 100; |
221 | c1468bcc | Kostas Papadimitriou | opacity: @opacity / 100; |
222 | c1468bcc | Kostas Papadimitriou | } |