edge_framework 2.0.0 → 2.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 +8 -8
- data/README.md +16 -2
- data/assets/kitchensink.html +8 -9
- data/assets/sass/_edge.scss +3 -2
- data/assets/sass/_edgemail.scss +1 -1
- data/assets/sass/edge/_base.scss +71 -280
- data/assets/sass/edge/_component.scss +12 -0
- data/assets/sass/edge/_helpers.scss +1 -7
- data/assets/sass/edge/_user.scss +5 -0
- data/assets/sass/edge/_utility.scss +7 -0
- data/assets/sass/edge/{components → component}/_animate.scss +0 -0
- data/assets/sass/edge/{components → component}/_button.scss +0 -0
- data/assets/sass/edge/{components → component}/_code.scss +0 -0
- data/assets/sass/edge/{components → component}/_form.scss +0 -0
- data/assets/sass/edge/{components → component}/_grid.scss +26 -34
- data/assets/sass/edge/{components → component}/_normalize.scss +0 -11
- data/assets/sass/edge/{components → component}/_print.scss +26 -12
- data/assets/sass/edge/{components → component}/_tile.scss +6 -6
- data/assets/sass/edge/component/_typography.scss +98 -0
- data/assets/sass/edge/utility/_em.scss +35 -0
- data/assets/sass/edge/utility/_media.scss +70 -0
- data/assets/sass/edge/utility/_other.scss +44 -0
- data/assets/sass/edge/{helpers → utility}/_sprites.scss +3 -3
- data/assets/sass/edge/{helpers → utility}/_sticky-footer.scss +0 -0
- data/assets/sass/edge/utility/_triangle.scss +83 -0
- data/assets/sass/edgemail/_base.scss +5 -5
- data/assets/sass/edgemail/_component.scss +2 -0
- data/assets/sass/edgemail/{_helpers.scss → _user.scss} +0 -0
- data/assets/sass/edgemail/{components → component}/_generic.scss +0 -0
- data/assets/sass/edgemail/{components → component}/_normalize.scss +0 -0
- data/assets/test/kitchensink-email.scss +1 -1
- data/assets/test/kitchensink.scss +1 -2
- data/lib/edge/message.rb +17 -7
- data/lib/edge/version.rb +1 -1
- data/template/base/assets/js/vendor/edge.js +1 -1
- data/template/base/assets/sass/_setting.scss +19 -17
- data/template/base/assets/sass/app.scss +1 -1
- data/template/base/config.rb +1 -1
- data/template/email/assets/sass/app.scss +1 -1
- data/template/wordpress/views/layout.twig +1 -0
- metadata +24 -18
- data/assets/sass/edge/_components.scss +0 -12
- data/assets/sass/edge/components/_typography.scss +0 -171
- data/assets/sass/edgemail/_components.scss +0 -2
@@ -0,0 +1,12 @@
|
|
1
|
+
@import "component/normalize";
|
2
|
+
@import "component/typography";
|
3
|
+
|
4
|
+
@import "component/grid";
|
5
|
+
@import "component/tile";
|
6
|
+
|
7
|
+
@import "component/button";
|
8
|
+
@import "component/form";
|
9
|
+
@import "component/animate";
|
10
|
+
|
11
|
+
@import "component/print";
|
12
|
+
@import "component/code";
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -2,12 +2,6 @@
|
|
2
2
|
// EDGE GRID
|
3
3
|
// =============
|
4
4
|
|
5
|
-
$row-max-width : $medium-screen !default;
|
6
|
-
$total-columns : 12 !default;
|
7
|
-
$column-gutter : 20px !default;
|
8
|
-
|
9
|
-
$adaptive-breakpoints : $medium-screen, $small-screen !default;
|
10
|
-
|
11
5
|
// Calculate percentages for grid
|
12
6
|
@function gridCalc($colNumber, $totalColumns) {
|
13
7
|
// If column specified is not fraction
|
@@ -226,15 +220,21 @@ $adaptive-breakpoints : $medium-screen, $small-screen !default;
|
|
226
220
|
|
227
221
|
// Sizing
|
228
222
|
@if $size > 0 {
|
229
|
-
@include base-column($size, $total:$total);
|
223
|
+
@include base-column($size, $offset:$offset, $total:$total);
|
224
|
+
|
225
|
+
// Reset offset if more than 0
|
226
|
+
$reset-offset: $offset;
|
227
|
+
@if $offset {
|
228
|
+
$reset-offset: 0;
|
229
|
+
}
|
230
230
|
|
231
231
|
@if $small > 0 {
|
232
232
|
@include below(small) {
|
233
|
-
@include base-column($small, $total:$total);
|
233
|
+
@include base-column($small, $offset:$reset-offset, $total:$total);
|
234
234
|
}
|
235
|
-
} @else if
|
235
|
+
} @else if not $in-media { // else, become 100% width on small screen
|
236
236
|
@include below(small) {
|
237
|
-
@include base-column($total, $total:$total);
|
237
|
+
@include base-column($total, $offset:$reset-offset, $total:$total);
|
238
238
|
}
|
239
239
|
}
|
240
240
|
|
@@ -252,16 +252,6 @@ $adaptive-breakpoints : $medium-screen, $small-screen !default;
|
|
252
252
|
$gutter: $gutter,
|
253
253
|
$total: $total
|
254
254
|
);
|
255
|
-
|
256
|
-
// Source Ordering, follow base column
|
257
|
-
@if $responsive and not $in-media {
|
258
|
-
// make Offset not inherited in small screen
|
259
|
-
@include above(small) {
|
260
|
-
@include base-column($offset:$offset, $total:$total);
|
261
|
-
}
|
262
|
-
} @else {
|
263
|
-
@include base-column($offset:$offset, $total:$total);
|
264
|
-
}
|
265
255
|
}
|
266
256
|
|
267
257
|
// ----------------------------------------------
|
@@ -314,11 +304,11 @@ $adaptive-breakpoints : $medium-screen, $small-screen !default;
|
|
314
304
|
EDGE Grid
|
315
305
|
------------ */
|
316
306
|
|
317
|
-
@if not $responsive {
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
}
|
307
|
+
// @if not $responsive {
|
308
|
+
// body {
|
309
|
+
// min-width: $row-max-width + ($column-gutter * 2);
|
310
|
+
// }
|
311
|
+
// }
|
322
312
|
|
323
313
|
// normal row
|
324
314
|
h-row {
|
@@ -355,13 +345,7 @@ h-column {
|
|
355
345
|
}
|
356
346
|
|
357
347
|
@include h-sizing("large");
|
358
|
-
|
359
|
-
@if $responsive {
|
360
|
-
@include above(small) { @include h-offset("offset"); }
|
361
|
-
} @else {
|
362
|
-
// Not inside media query. So when it reach the breakpoint, the offset isn't gone.
|
363
|
-
@include h-offset("offset");
|
364
|
-
}
|
348
|
+
@include h-offset("offset");
|
365
349
|
|
366
350
|
// centered column
|
367
351
|
.centered {
|
@@ -370,8 +354,16 @@ h-column {
|
|
370
354
|
|
371
355
|
// small screen and below
|
372
356
|
@include below(small) {
|
373
|
-
|
374
|
-
|
357
|
+
// reset large sizing
|
358
|
+
%large-reset { @include base-column($total-columns); }
|
359
|
+
@for $i from 1 through $total-columns {
|
360
|
+
.large-#{$i} { @extend %large-reset; }
|
361
|
+
}
|
362
|
+
|
363
|
+
// reset large offset
|
364
|
+
%offset-reset { @include base-column($offset: 0); }
|
365
|
+
@for $i from 1 through ($total-columns - 1) {
|
366
|
+
.offset-#{$i} { @extend %offset-reset; }
|
375
367
|
}
|
376
368
|
|
377
369
|
@include h-sizing("small");
|
@@ -23,10 +23,6 @@
|
|
23
23
|
padding: 0;
|
24
24
|
}
|
25
25
|
|
26
|
-
body {
|
27
|
-
height: 100%;
|
28
|
-
}
|
29
|
-
|
30
26
|
// Chrome Sibling Selector Fix
|
31
27
|
body { -webkit-animation: bugfix infinite 1s; }
|
32
28
|
@-webkit-keyframes bugfix {
|
@@ -35,7 +31,6 @@ body { -webkit-animation: bugfix infinite 1s; }
|
|
35
31
|
}
|
36
32
|
|
37
33
|
html {
|
38
|
-
height: 100%;
|
39
34
|
font-family: sans-serif;
|
40
35
|
-webkit-text-size-adjust: 100%;
|
41
36
|
-ms-text-size-adjust: 100%;
|
@@ -176,12 +171,6 @@ table {
|
|
176
171
|
|
177
172
|
/* Miscellaneous useful HTML classes */
|
178
173
|
|
179
|
-
.left { float: left !important; }
|
180
|
-
.right { float: right !important; }
|
181
|
-
.text-left { text-align: left !important; }
|
182
|
-
.text-right { text-align: right !important; }
|
183
|
-
.text-center { text-align: center !important; }
|
184
|
-
.text-justify { text-align: justify !important; }
|
185
174
|
.hide { display: none !important; visibility: hidden !important; }
|
186
175
|
.visual-hide {
|
187
176
|
border: 0 !important;
|
@@ -4,48 +4,52 @@
|
|
4
4
|
|
5
5
|
@if $include-print and not $user-mode {
|
6
6
|
|
7
|
-
/*
|
7
|
+
/* ---------------------
|
8
8
|
EDGE Print
|
9
|
-
|
9
|
+
- HTML5 Boilerplate
|
10
|
+
--------------------- */
|
10
11
|
|
11
12
|
@include print {
|
12
13
|
* {
|
13
|
-
|
14
|
-
|
14
|
+
@if $override-color {
|
15
|
+
color: #000 !important;
|
16
|
+
}
|
15
17
|
box-shadow: none !important;
|
16
18
|
text-shadow: none !important;
|
17
19
|
}
|
18
20
|
|
19
21
|
a,
|
20
22
|
a:visited {
|
21
|
-
color
|
23
|
+
@if $override-color {
|
24
|
+
color: #000 !important;
|
25
|
+
}
|
22
26
|
text-decoration: underline;
|
23
27
|
}
|
24
28
|
|
25
|
-
a[href]
|
29
|
+
a[href]::after {
|
26
30
|
content: " (" attr(href) ")";
|
27
31
|
}
|
28
32
|
|
29
|
-
abbr[title]
|
33
|
+
abbr[title]::after {
|
30
34
|
content: " (" attr(title) ")";
|
31
35
|
}
|
32
36
|
|
33
37
|
// Don't show links for images, or javascript/internal links
|
34
38
|
|
35
|
-
.ir a
|
36
|
-
a[href^="javascript:"]
|
37
|
-
a[href^="#"]
|
39
|
+
.ir a::after,
|
40
|
+
a[href^="javascript:"]::after,
|
41
|
+
a[href^="#"]::after,
|
42
|
+
.button::after {
|
38
43
|
content: "";
|
39
44
|
}
|
40
45
|
|
41
46
|
pre,
|
42
47
|
blockquote {
|
43
|
-
border: 1px solid #999;
|
44
48
|
page-break-inside: avoid;
|
45
49
|
}
|
46
50
|
|
47
51
|
thead {
|
48
|
-
display: table-header-group;
|
52
|
+
display: table-header-group;
|
49
53
|
}
|
50
54
|
|
51
55
|
tr,
|
@@ -71,6 +75,16 @@
|
|
71
75
|
h2,
|
72
76
|
h3 {
|
73
77
|
page-break-after: avoid;
|
78
|
+
}
|
79
|
+
|
80
|
+
// set the page size
|
81
|
+
|
82
|
+
h-row {
|
83
|
+
min-width: $row-max-width + $column-gutter;
|
84
|
+
|
85
|
+
h-row {
|
86
|
+
min-width: 0;
|
87
|
+
}
|
74
88
|
}
|
75
89
|
}
|
76
90
|
|
@@ -2,9 +2,6 @@
|
|
2
2
|
// EDGE TILE
|
3
3
|
// ==============
|
4
4
|
|
5
|
-
$max-tiles : 12 !default;
|
6
|
-
$tile-gutter : 20px !default;
|
7
|
-
|
8
5
|
// ------------------------------
|
9
6
|
// BASE TILE
|
10
7
|
// - Styling for base framework
|
@@ -26,6 +23,8 @@ $tile-gutter : 20px !default;
|
|
26
23
|
@if $collapse {
|
27
24
|
margin-right: 0;
|
28
25
|
margin-left: 0;
|
26
|
+
padding-right: 0; // override grid's .collapse
|
27
|
+
padding-left: 0;
|
29
28
|
}
|
30
29
|
|
31
30
|
@if $gutter > 0 {
|
@@ -121,9 +120,10 @@ h-tile {
|
|
121
120
|
}
|
122
121
|
|
123
122
|
@include below(small) {
|
124
|
-
//
|
125
|
-
|
126
|
-
|
123
|
+
// reset large block
|
124
|
+
%block-reset { @include base-tile(1, $clear:true); }
|
125
|
+
@for $i from 1 through $max-tiles {
|
126
|
+
.block-#{$i} { @extend %block-reset; }
|
127
127
|
}
|
128
128
|
|
129
129
|
@for $i from 1 through $max-tiles {
|
@@ -0,0 +1,98 @@
|
|
1
|
+
// ==================
|
2
|
+
// EDGE TYPOGRAPHY
|
3
|
+
// ==================
|
4
|
+
|
5
|
+
// ------------------------------
|
6
|
+
// BASELINE
|
7
|
+
// - Create notebook-like row
|
8
|
+
// ------------------------------
|
9
|
+
@mixin baseline($lh : $body-line-height) {
|
10
|
+
|
11
|
+
@include background(
|
12
|
+
linear-gradient(to bottom, rgba(black, 0) 95%, rgba(black, .1) 100%)
|
13
|
+
);
|
14
|
+
background-size: 100% ($lh * 1em);
|
15
|
+
}
|
16
|
+
|
17
|
+
// ----------------------
|
18
|
+
// Create Inline List
|
19
|
+
// ----------------------
|
20
|
+
@mixin inline-list() {
|
21
|
+
@include clearfix();
|
22
|
+
|
23
|
+
> li {
|
24
|
+
display: inline-block;
|
25
|
+
float: left;
|
26
|
+
vertical-align: top;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
@if $include-typography and not $user-mode {
|
31
|
+
|
32
|
+
/* -----------------
|
33
|
+
EDGE Typography
|
34
|
+
----------------- */
|
35
|
+
|
36
|
+
body {
|
37
|
+
position: relative;
|
38
|
+
background: $body-background;
|
39
|
+
font-size: $body-font-size;
|
40
|
+
font-family: $body-font-family;
|
41
|
+
font-weight: $body-font-weight;
|
42
|
+
line-height: $body-line-height;
|
43
|
+
color: $body-font-color;
|
44
|
+
}
|
45
|
+
|
46
|
+
h1, h2, h3, h4, h5, h6 {
|
47
|
+
color: $header-font-color;
|
48
|
+
font-family: $header-font-family;
|
49
|
+
font-weight: $header-font-weight;
|
50
|
+
line-height: $header-line-height;
|
51
|
+
}
|
52
|
+
|
53
|
+
a {
|
54
|
+
color: $link-color;
|
55
|
+
}
|
56
|
+
|
57
|
+
h1 { font-size: em($h1-font-size); }
|
58
|
+
h2 { font-size: em($h2-font-size); }
|
59
|
+
h3 { font-size: em($h3-font-size); }
|
60
|
+
h4 { font-size: em($h4-font-size); }
|
61
|
+
h5 { font-size: em($h5-font-size); }
|
62
|
+
h6 { font-size: em($h6-font-size); }
|
63
|
+
|
64
|
+
p {
|
65
|
+
margin-top: 0;
|
66
|
+
margin-bottom: 0;
|
67
|
+
}
|
68
|
+
|
69
|
+
// -----------
|
70
|
+
// LIST
|
71
|
+
// -----------
|
72
|
+
|
73
|
+
ul {
|
74
|
+
list-style-type: $ul-parent-style;
|
75
|
+
padding-left: 20px;
|
76
|
+
|
77
|
+
ul {
|
78
|
+
list-style-type: $ul-child-style;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
ol {
|
83
|
+
list-style-type: $ol-parent-style;
|
84
|
+
padding-left: 25px;
|
85
|
+
|
86
|
+
ol {
|
87
|
+
list-style-type: $ol-child-style;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
blockquote {
|
92
|
+
cite {
|
93
|
+
display: block;
|
94
|
+
font-style: italic;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
} // include-typography
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// --------------
|
2
|
+
// EM CONVERTER
|
3
|
+
// --------------
|
4
|
+
|
5
|
+
// Strips unit and return plain number
|
6
|
+
@function _stripUnit($num) {
|
7
|
+
@return $num / ($num * 0 + 1);
|
8
|
+
}
|
9
|
+
|
10
|
+
// Convert the number to EM
|
11
|
+
@function _convertToEm($value, $context: $body-font-size) {
|
12
|
+
// if not number, return it as is
|
13
|
+
@if type-of($value) != number { @return $value; }
|
14
|
+
|
15
|
+
$value: _stripUnit($value) / _stripUnit($context) * 1em;
|
16
|
+
// turn 0em into 0
|
17
|
+
@if ($value == 0em) {
|
18
|
+
$value: 0;
|
19
|
+
}
|
20
|
+
@return $value;
|
21
|
+
}
|
22
|
+
|
23
|
+
@function em($values, $context: $body-font-size) {
|
24
|
+
// if only contain single number, convert it directly
|
25
|
+
@if type-of($values) == number {
|
26
|
+
@return _convertToEm($values, $context);
|
27
|
+
}
|
28
|
+
|
29
|
+
// if contains multiple values, loop through it
|
30
|
+
$emValues : ();
|
31
|
+
@each $val in $values {
|
32
|
+
$emValues: append($emValues, hConvertToEm($val, $context) );
|
33
|
+
}
|
34
|
+
@return join((), $emValues, space );
|
35
|
+
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
// ---------------
|
2
|
+
// MEDIA QUERY
|
3
|
+
// ---------------
|
4
|
+
|
5
|
+
@function _translateSize($size) {
|
6
|
+
// if number, return it as it is
|
7
|
+
@if type-of($size) == number {
|
8
|
+
@return $size;
|
9
|
+
}
|
10
|
+
// if keyword, translate from the map
|
11
|
+
@else {
|
12
|
+
@return map-get($_media-sizes, $size);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
@mixin below($named-size) {
|
17
|
+
@if $responsive {
|
18
|
+
$in-media: true !global;
|
19
|
+
$size: _translateSize($named-size);
|
20
|
+
|
21
|
+
@if $named-size == retina {
|
22
|
+
@media only screen and (-webkit-max-device-pixel-ratio: 2), (max-resolution: $size) {
|
23
|
+
@content;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
@else {
|
27
|
+
@media only screen and (max-width: $size) { @content; }
|
28
|
+
}
|
29
|
+
|
30
|
+
$in-media: false !global;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
@mixin above($named-size) {
|
35
|
+
@if $responsive {
|
36
|
+
$in-media: true !global;
|
37
|
+
$size: _translateSize($named-size) + 1px;
|
38
|
+
|
39
|
+
@if $named-size == retina {
|
40
|
+
@media only screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: $size) {
|
41
|
+
@content;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
@else {
|
45
|
+
@media (min-width: $size) { @content; }
|
46
|
+
}
|
47
|
+
|
48
|
+
$in-media: false !global;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
@mixin between($smaller-size, $larger-size) {
|
53
|
+
@if $responsive {
|
54
|
+
$in-media: true !global;
|
55
|
+
$smaller-size: _translateSize($smaller-size);
|
56
|
+
$larger-size: _translateSize($larger-size);
|
57
|
+
|
58
|
+
@media only screen and (min-width: $smaller-size) and (max-width: $larger-size) {
|
59
|
+
@content;
|
60
|
+
}
|
61
|
+
|
62
|
+
$in-media: false !global;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
@mixin print {
|
67
|
+
@media only print {
|
68
|
+
@content;
|
69
|
+
}
|
70
|
+
}
|