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