express_ui 0.1.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +38 -0
- data/Rakefile +37 -0
- data/app/assets/config/express_ui_manifest.js +2 -0
- data/app/assets/javascripts/express_ui/application.js +1 -0
- data/app/assets/javascripts/express_ui/copy_code.js +63 -0
- data/app/assets/javascripts/express_ui/search.js +103 -0
- data/app/assets/javascripts/express_ui/styleguide.js +90 -0
- data/app/assets/stylesheets/express_ui/atoms/_animations.sass +35 -0
- data/app/assets/stylesheets/express_ui/atoms/_buttons.sass +119 -0
- data/app/assets/stylesheets/express_ui/atoms/_headings.sass +51 -0
- data/app/assets/stylesheets/express_ui/atoms/_icons.sass +3 -0
- data/app/assets/stylesheets/express_ui/atoms/_images.sass +37 -0
- data/app/assets/stylesheets/express_ui/atoms/_media_queries.sass +27 -0
- data/app/assets/stylesheets/express_ui/atoms/_mixins.sass +33 -0
- data/app/assets/stylesheets/express_ui/atoms/_reset.sass +11 -0
- data/app/assets/stylesheets/express_ui/atoms/_typography.sass +167 -0
- data/app/assets/stylesheets/express_ui/atoms/_variables.sass +52 -0
- data/app/assets/stylesheets/express_ui/molecules/_button_group.sass +54 -0
- data/app/assets/stylesheets/express_ui/molecules/_container.sass +29 -0
- data/app/assets/stylesheets/express_ui/molecules/_flash_messages.sass +56 -0
- data/app/assets/stylesheets/express_ui/molecules/_form_groups.sass +96 -0
- data/app/assets/stylesheets/express_ui/molecules/_forms.sass +159 -0
- data/app/assets/stylesheets/express_ui/molecules/_lists.sass +56 -0
- data/app/assets/stylesheets/express_ui/molecules/_nav.sass +85 -0
- data/app/assets/stylesheets/express_ui/molecules/_tables.sass +77 -0
- data/app/assets/stylesheets/express_ui/molecules/_tabs.sass +23 -0
- data/app/assets/stylesheets/express_ui/organisms/_header.sass +29 -0
- data/app/assets/stylesheets/express_ui/organisms/_sidebar.sass +113 -0
- data/app/assets/stylesheets/express_ui/style.sass +31 -0
- data/app/assets/stylesheets/express_ui/styleguide.sass +200 -0
- data/app/assets/stylesheets/express_ui/templates/_content_sidebar.sass +31 -0
- data/app/assets/stylesheets/express_ui/templates/_full_width.sass +5 -0
- data/app/assets/stylesheets/express_ui/templates/_half_width.sass +8 -0
- data/app/assets/stylesheets/express_ui/templates/_master_detail.sass +50 -0
- data/app/components/code_demo.rb +31 -0
- data/app/controllers/express_ui/about_controller.rb +10 -0
- data/app/controllers/express_ui/application_controller.rb +5 -0
- data/app/controllers/express_ui/styleguide_controller.rb +10 -0
- data/app/controllers/express_ui/templates_controller.rb +26 -0
- data/app/controllers/express_ui/uicomponents_controller.rb +26 -0
- data/app/helpers/express_ui/application_helper.rb +28 -0
- data/app/jobs/express_ui/application_job.rb +4 -0
- data/app/mailers/express_ui/application_mailer.rb +6 -0
- data/app/models/express_ui/application_record.rb +5 -0
- data/app/views/express_ui/atoms/_animations.html.erb +33 -0
- data/app/views/express_ui/atoms/_buttons.html.erb +129 -0
- data/app/views/express_ui/atoms/_headings.html.erb +3 -0
- data/app/views/express_ui/atoms/_icons.html.erb +13 -0
- data/app/views/express_ui/atoms/_mixins.html.erb +6 -0
- data/app/views/express_ui/atoms/_typography.html.erb +201 -0
- data/app/views/express_ui/atoms/_variables.html.erb +50 -0
- data/app/views/express_ui/molecules/_button_group.html.erb +90 -0
- data/app/views/express_ui/molecules/_container.html.erb +32 -0
- data/app/views/express_ui/molecules/_flash_messages.html.erb +49 -0
- data/app/views/express_ui/molecules/_form_group_horizontal.html.erb +14 -0
- data/app/views/express_ui/molecules/_form_group_inline.html.erb +1 -0
- data/app/views/express_ui/molecules/_form_group_single_line.html.erb +9 -0
- data/app/views/express_ui/molecules/_form_groups.html.erb +69 -0
- data/app/views/express_ui/molecules/_forms.html.erb +209 -0
- data/app/views/express_ui/molecules/_forms_checkbox.html.erb +20 -0
- data/app/views/express_ui/molecules/_forms_radio.html.erb +12 -0
- data/app/views/express_ui/molecules/_forms_select.html.erb +11 -0
- data/app/views/express_ui/molecules/_nav.html.erb +11 -0
- data/app/views/express_ui/molecules/_nav_mega_menu.html.erb +74 -0
- data/app/views/express_ui/molecules/_table.html.erb +93 -0
- data/app/views/express_ui/molecules/_table_with_filtering.html.erb +55 -0
- data/app/views/express_ui/organisms/_header.html.erb +24 -0
- data/app/views/express_ui/shared/_header.html.erb +10 -0
- data/app/views/express_ui/shared/_search_box.html.erb +6 -0
- data/app/views/express_ui/shared/_sidebar_left.html.erb +4 -0
- data/app/views/express_ui/shared/_sidebar_right.html.erb +5 -0
- data/app/views/express_ui/styleguide/about.html.erb +22 -0
- data/app/views/express_ui/styleguide/index.html.erb +79 -0
- data/app/views/express_ui/templates/_header.html.erb +15 -0
- data/app/views/express_ui/templates/_templates.html.erb +57 -0
- data/app/views/express_ui/templates/content_and_sidebar.html.erb +32 -0
- data/app/views/express_ui/templates/content_and_sidebar_fixed.html.erb +34 -0
- data/app/views/express_ui/templates/full_width.html.erb +25 -0
- data/app/views/express_ui/templates/half_width.html.erb +25 -0
- data/app/views/express_ui/templates/master_detail.html.erb +41 -0
- data/app/views/express_ui/templates/master_detail_fixed.html.erb +36 -0
- data/app/views/express_ui/uicomponents/_buttons.html.et +10 -0
- data/app/views/express_ui/uicomponents/_flash_message.html.et +19 -0
- data/app/views/express_ui/uicomponents/_forms.html.et +118 -0
- data/app/views/express_ui/uicomponents/_heading.html.et +24 -0
- data/app/views/express_ui/uicomponents/_icons.html.et +35 -0
- data/app/views/express_ui/uicomponents/_layout.html.et +47 -0
- data/app/views/express_ui/uicomponents/_lists.html.et +9 -0
- data/app/views/express_ui/uicomponents/_login.html.erb +15 -0
- data/app/views/express_ui/uicomponents/_nav.html.et +18 -0
- data/app/views/express_ui/uicomponents/_pages.html.et +22 -0
- data/app/views/express_ui/uicomponents/_panel.html.et +33 -0
- data/app/views/express_ui/uicomponents/_popup.html.et +19 -0
- data/app/views/express_ui/uicomponents/_register.html.erb +14 -0
- data/app/views/express_ui/uicomponents/_sidebar.html.et +8 -0
- data/app/views/express_ui/uicomponents/_table.html.et +29 -0
- data/app/views/express_ui/uicomponents/_widget_box.html.et +14 -0
- data/app/views/express_ui/uicomponents/index.html.erb +55 -0
- data/app/views/layouts/express_ui/styleguide.html.erb +20 -0
- data/config/routes.rb +12 -0
- data/lib/express_ui.rb +5 -0
- data/lib/express_ui/engine.rb +12 -0
- data/lib/express_ui/version.rb +3 -0
- data/lib/tasks/express_ui_tasks.rake +4 -0
- metadata +251 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
@mixin h1
|
2
|
+
@include font-size(22px, 24px)
|
3
|
+
|
4
|
+
@mixin h2
|
5
|
+
@include font-size(20px, 20px)
|
6
|
+
|
7
|
+
@mixin h3
|
8
|
+
@include font-size(18px, 18px)
|
9
|
+
|
10
|
+
@mixin h4
|
11
|
+
@include font-size(16px, 16px)
|
12
|
+
|
13
|
+
@mixin h5
|
14
|
+
@include font-size(14px, 14px)
|
15
|
+
|
16
|
+
@mixin h6
|
17
|
+
@include font-size(12px, 12px)
|
18
|
+
|
19
|
+
@mixin heading($border-color, $casing)
|
20
|
+
text-transform: $casing
|
21
|
+
border-bottom: 1px solid $border-color
|
22
|
+
padding-bottom: 0.5em
|
23
|
+
|
24
|
+
// $casing: uppercase, default
|
25
|
+
|
26
|
+
h1, h2, h3, h4, h5, h6
|
27
|
+
padding-top: 1.25em
|
28
|
+
margin-bottom: 0.25em
|
29
|
+
font-weight: bold
|
30
|
+
color: $heading-color
|
31
|
+
|
32
|
+
h1
|
33
|
+
@include h1
|
34
|
+
|
35
|
+
h2
|
36
|
+
@include h2
|
37
|
+
|
38
|
+
h3
|
39
|
+
@include h3
|
40
|
+
|
41
|
+
h4
|
42
|
+
@include h4
|
43
|
+
|
44
|
+
h5
|
45
|
+
@include h5
|
46
|
+
|
47
|
+
h6
|
48
|
+
@include h6
|
49
|
+
|
50
|
+
.ae-heading-bottom-border
|
51
|
+
@include heading($border-light, uppercase)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
[class*="ae-avatar"]
|
2
|
+
display: inline-block
|
3
|
+
margin-right: 12px
|
4
|
+
|
5
|
+
.ae-avatar-sm
|
6
|
+
width: 24px
|
7
|
+
height: 24px
|
8
|
+
|
9
|
+
.ae-avatar-md
|
10
|
+
width: 34px
|
11
|
+
height: 34px
|
12
|
+
|
13
|
+
.ae-avatar-lg
|
14
|
+
width: 50px
|
15
|
+
height: 50px
|
16
|
+
|
17
|
+
.ae-avatar-auto
|
18
|
+
width: 100%
|
19
|
+
height: 100%
|
20
|
+
margin-right: 0
|
21
|
+
|
22
|
+
.ae-favicon
|
23
|
+
width: 32px
|
24
|
+
height: 32px
|
25
|
+
|
26
|
+
img
|
27
|
+
display: block
|
28
|
+
text-align: center
|
29
|
+
position: relative
|
30
|
+
margin-bottom: 1.25em
|
31
|
+
margin-left: auto
|
32
|
+
margin-right: auto
|
33
|
+
|
34
|
+
.ae-img-responsive
|
35
|
+
max-width: 100%
|
36
|
+
text-align: center
|
37
|
+
display: block
|
@@ -0,0 +1,27 @@
|
|
1
|
+
@mixin smartphone
|
2
|
+
@media only screen and (min-width: $smartphone)
|
3
|
+
@content
|
4
|
+
|
5
|
+
@mixin smartphone-max
|
6
|
+
@media only screen and (max-width: $smartphone)
|
7
|
+
@content
|
8
|
+
|
9
|
+
@mixin tablet
|
10
|
+
@media only screen and (min-width: $tablet)
|
11
|
+
@content
|
12
|
+
|
13
|
+
@mixin tablet-max
|
14
|
+
@media only screen and (max-width: $tablet)
|
15
|
+
@content
|
16
|
+
|
17
|
+
@mixin laptop
|
18
|
+
@media only screen and (min-width: $laptop)
|
19
|
+
@content
|
20
|
+
|
21
|
+
@mixin laptop-max
|
22
|
+
@media only screen and (max-width: $laptop)
|
23
|
+
@content
|
24
|
+
|
25
|
+
@mixin desktop
|
26
|
+
@media only screen and (min-width: $desktop)
|
27
|
+
@content
|
@@ -0,0 +1,33 @@
|
|
1
|
+
// Global mixins are mixins that don't quite fall in a specific category.
|
2
|
+
// These are used by any element
|
3
|
+
|
4
|
+
@mixin border-radius($n)
|
5
|
+
-moz-border-radius: $n
|
6
|
+
-webkit-border-radius: $n
|
7
|
+
border-radius: $n
|
8
|
+
|
9
|
+
@mixin box-shadow($top, $left, $blur, $color, $inset:"")
|
10
|
+
-webkit-box-shadow: $top $left $blur $color #{$inset}
|
11
|
+
-moz-box-shadow: $top $left $blur $color #{$inset}
|
12
|
+
box-shadow: $top $left $blur $color #{$inset}
|
13
|
+
|
14
|
+
@mixin well
|
15
|
+
margin: 0
|
16
|
+
background: $gray-background
|
17
|
+
@include border-radius(2px)
|
18
|
+
@include box-shadow(inset 0, 0, 3px, $border-dark)
|
19
|
+
@include animate(0.5s)
|
20
|
+
|
21
|
+
&:hover
|
22
|
+
background: rgba($primary-color, 0.1)
|
23
|
+
|
24
|
+
*
|
25
|
+
color: #333
|
26
|
+
|
27
|
+
@mixin clearfix
|
28
|
+
overflow: auto
|
29
|
+
|
30
|
+
&:before, &:after
|
31
|
+
content: ""
|
32
|
+
display: table
|
33
|
+
|
@@ -0,0 +1,167 @@
|
|
1
|
+
@mixin body-font
|
2
|
+
font-family: 'Lato', sans-serif
|
3
|
+
|
4
|
+
@mixin header-font
|
5
|
+
font-family: 'Lato', sans-serif
|
6
|
+
|
7
|
+
@function rem($size)
|
8
|
+
$remSize: $size / 16px
|
9
|
+
@return #{$remSize}rem
|
10
|
+
|
11
|
+
@mixin font-size($size, $large_size)
|
12
|
+
font-size: rem($size)
|
13
|
+
|
14
|
+
@include tablet
|
15
|
+
font-size: rem($large_size)
|
16
|
+
|
17
|
+
@include desktop
|
18
|
+
font-size: rem($large_size/1.4)
|
19
|
+
|
20
|
+
@mixin p
|
21
|
+
@include font-size(12px, 14px)
|
22
|
+
font-weight: normal
|
23
|
+
|
24
|
+
.ae-u-text-left
|
25
|
+
text-align: left
|
26
|
+
|
27
|
+
.ae-u-text-right
|
28
|
+
text-align: right
|
29
|
+
|
30
|
+
.ae-u-text-center
|
31
|
+
text-align: center
|
32
|
+
|
33
|
+
.ae-u-text-justify
|
34
|
+
text-align: justify
|
35
|
+
|
36
|
+
.ae-u-float-right
|
37
|
+
float: right
|
38
|
+
|
39
|
+
.ae-u-float-left
|
40
|
+
float: left
|
41
|
+
|
42
|
+
.ae-code-block
|
43
|
+
white-space: pre-wrap
|
44
|
+
|
45
|
+
@mixin ae-margin-left
|
46
|
+
margin-left: 0.25em
|
47
|
+
|
48
|
+
@mixin ae-margin-right
|
49
|
+
margin-right: 0.25em
|
50
|
+
|
51
|
+
@mixin status
|
52
|
+
@include border-radius(2px)
|
53
|
+
padding: 4px 10px
|
54
|
+
font-weight: bold
|
55
|
+
text-transform: uppercase
|
56
|
+
|
57
|
+
@mixin status-success
|
58
|
+
background: $success
|
59
|
+
color: #fff !important
|
60
|
+
|
61
|
+
@mixin status-error
|
62
|
+
background: $cancelled
|
63
|
+
color: #fff !important
|
64
|
+
|
65
|
+
@mixin status-pending
|
66
|
+
background: $pending
|
67
|
+
color: darken($pending, 60%)
|
68
|
+
|
69
|
+
@mixin status-deleted
|
70
|
+
background: $deleted
|
71
|
+
color: #999
|
72
|
+
|
73
|
+
|
74
|
+
html
|
75
|
+
font-size: $font-size-root
|
76
|
+
|
77
|
+
body
|
78
|
+
@include body-font
|
79
|
+
font-size: 1.6rem
|
80
|
+
color: $body-color
|
81
|
+
|
82
|
+
// The type font size in a responsive layout should be able to adjust with each viewport. You can calculate the font size based on the viewport height and width using :root:. Now that you've set the :root pseudo-class to calculate font-size based on viewport height and width, the body will utilize the root em that's based on the value calculated by :root. Notice when you resize the window that the root font size for all elements stays relative no matter viewport size?
|
83
|
+
\:root
|
84
|
+
font-size: calc(1vw + 1vh + .5vmin)
|
85
|
+
|
86
|
+
p
|
87
|
+
@include body-font
|
88
|
+
@include p
|
89
|
+
line-height: 1.4
|
90
|
+
padding-top: 1.25rem
|
91
|
+
margin-bottom: 0.25rem
|
92
|
+
|
93
|
+
code
|
94
|
+
@include border-radius(2px)
|
95
|
+
background: rgba($primary-color, 0.2)
|
96
|
+
color: $body-color
|
97
|
+
padding: 0 0.25em
|
98
|
+
display: inline-block
|
99
|
+
|
100
|
+
button
|
101
|
+
@include p
|
102
|
+
@include body-font
|
103
|
+
|
104
|
+
|
105
|
+
a:link
|
106
|
+
color: $link-color
|
107
|
+
|
108
|
+
a:visited
|
109
|
+
color: darken($link-color, 10%)
|
110
|
+
|
111
|
+
a:hover
|
112
|
+
text-decoration: none
|
113
|
+
|
114
|
+
.ae-status
|
115
|
+
@include status
|
116
|
+
|
117
|
+
&-success
|
118
|
+
@include status-success
|
119
|
+
|
120
|
+
&-cancelled, &-error
|
121
|
+
@include status-error
|
122
|
+
|
123
|
+
&-pending
|
124
|
+
@include status-pending
|
125
|
+
|
126
|
+
&-deleted
|
127
|
+
@include status-deleted
|
128
|
+
|
129
|
+
@mixin badge
|
130
|
+
background: $primary-color
|
131
|
+
color: #fff
|
132
|
+
@include border-radius(20px)
|
133
|
+
margin-left: 10px
|
134
|
+
padding: 4px 10px
|
135
|
+
font-weight: bold
|
136
|
+
text-transform: uppercase
|
137
|
+
|
138
|
+
@mixin badge-success
|
139
|
+
background: $success
|
140
|
+
color: #fff !important
|
141
|
+
|
142
|
+
@mixin badge-error
|
143
|
+
background: $cancelled
|
144
|
+
color: #fff !important
|
145
|
+
|
146
|
+
@mixin badge-pending
|
147
|
+
background: $pending
|
148
|
+
color: darken($pending, 60%) !important
|
149
|
+
|
150
|
+
@mixin badge-deleted
|
151
|
+
background: $deleted
|
152
|
+
color: #999 !important
|
153
|
+
|
154
|
+
.ae-badge
|
155
|
+
@include badge
|
156
|
+
|
157
|
+
&-success
|
158
|
+
@include badge-success
|
159
|
+
|
160
|
+
&-cancelled, &-error
|
161
|
+
@include badge-error
|
162
|
+
|
163
|
+
&-pending
|
164
|
+
@include badge-pending
|
165
|
+
|
166
|
+
&-deleted
|
167
|
+
@include badge-deleted
|
@@ -0,0 +1,52 @@
|
|
1
|
+
$primary-color: #6699CC
|
2
|
+
|
3
|
+
$primary-active-color: #477db0
|
4
|
+
|
5
|
+
$secondary-color: #999999
|
6
|
+
|
7
|
+
$success: #3c763d
|
8
|
+
|
9
|
+
$cancelled: #a94442
|
10
|
+
|
11
|
+
$pending: #faf2cc
|
12
|
+
|
13
|
+
$deleted: lighten($secondary-color, 30%)
|
14
|
+
|
15
|
+
$border-dark: $secondary-color
|
16
|
+
|
17
|
+
$border-light: #eaeaea
|
18
|
+
|
19
|
+
$body-color: #666
|
20
|
+
|
21
|
+
$heading-color: #333
|
22
|
+
|
23
|
+
$link-color: $primary-color
|
24
|
+
|
25
|
+
$body-lighter: #999
|
26
|
+
|
27
|
+
$icon-color: #333
|
28
|
+
|
29
|
+
$smartphone: 480px
|
30
|
+
|
31
|
+
$tablet: 768px
|
32
|
+
|
33
|
+
$laptop: 1024px
|
34
|
+
|
35
|
+
$desktop: 1440px
|
36
|
+
|
37
|
+
$gray-background: #F7F7F7
|
38
|
+
|
39
|
+
$thead-color: #888
|
40
|
+
|
41
|
+
$dark-gray-background: rgba(#ccc, 0.1)
|
42
|
+
|
43
|
+
$container: 960px
|
44
|
+
|
45
|
+
$line-height: 14px
|
46
|
+
|
47
|
+
$font-size-root: 62.5%
|
48
|
+
|
49
|
+
$header-max-height: 3.5em
|
50
|
+
|
51
|
+
$container-padding: 0.25em
|
52
|
+
// Because all browsers have a default font-size of 16px, setting the font-size to 62.5% on the html element gives it a font-size of 10px (10 / 16 * 100 = 62.5)
|
@@ -0,0 +1,54 @@
|
|
1
|
+
.ae-btn-group
|
2
|
+
position: relative
|
3
|
+
vertical-align: middle
|
4
|
+
margin: 1em 0
|
5
|
+
|
6
|
+
.ae-btn-group-left
|
7
|
+
text-align: left
|
8
|
+
|
9
|
+
.ae-btn-group-center
|
10
|
+
text-align: center
|
11
|
+
|
12
|
+
.ae-btn-group-right
|
13
|
+
text-align: right
|
14
|
+
|
15
|
+
.ae-btn-group-justified
|
16
|
+
@include tablet-max
|
17
|
+
.ae-btn
|
18
|
+
display: block
|
19
|
+
width: 100%
|
20
|
+
|
21
|
+
@include tablet
|
22
|
+
display: table
|
23
|
+
width: 100%
|
24
|
+
table-layout: fixed
|
25
|
+
border-collapse: separate
|
26
|
+
|
27
|
+
.ae-btn-group
|
28
|
+
display: table-cell
|
29
|
+
float: none
|
30
|
+
width: 1%
|
31
|
+
position: relative
|
32
|
+
|
33
|
+
&:not(:last-of-type)
|
34
|
+
padding-right: 1%
|
35
|
+
|
36
|
+
|
37
|
+
.ae-btn
|
38
|
+
width: 100%
|
39
|
+
|
40
|
+
.ae-btn-group-full-width
|
41
|
+
width: 100%
|
42
|
+
@include clearfix
|
43
|
+
|
44
|
+
@include tablet
|
45
|
+
.ae-btn
|
46
|
+
width: auto
|
47
|
+
|
48
|
+
.ae-btn-left
|
49
|
+
float: left
|
50
|
+
display: inline-block
|
51
|
+
|
52
|
+
.ae-btn-right
|
53
|
+
float: right
|
54
|
+
display: inline-block
|