shipyard-framework 0.5.83 → 0.5.84
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/stylesheets/_shipyard.sass +3 -0
- data/assets/stylesheets/shipyard/_components.sass +22 -22
- data/assets/stylesheets/shipyard/_core.sass +3 -6
- data/assets/stylesheets/shipyard/_functions.sass +3 -3
- data/assets/stylesheets/shipyard/_mixins.sass +8 -7
- data/assets/stylesheets/shipyard/_utilities.sass +10 -9
- data/assets/stylesheets/shipyard/_variables.sass +7 -7
- data/assets/stylesheets/shipyard/components/_buttons.sass +0 -62
- data/assets/stylesheets/shipyard/components/_modals.sass +1 -1
- data/assets/stylesheets/shipyard/core/_typography.sass +0 -3
- data/assets/stylesheets/shipyard/mixins/_buttons.sass +61 -0
- data/assets/stylesheets/shipyard/mixins/_components.sass +2 -2
- data/assets/stylesheets/shipyard/utilities/{_positioning.sass → _center.sass} +0 -5
- data/assets/stylesheets/shipyard/utilities/_position.sass +4 -0
- data/ci/sass_lint +4 -4
- data/ci/setup +2 -2
- data/lib/shipyard-framework/version.rb +1 -1
- data/styleguide/Gemfile +2 -0
- data/styleguide/Gemfile.lock +17 -8
- data/styleguide/_assets/css/views.sass +4 -0
- data/styleguide/_includes/css-stats.html +14 -0
- data/styleguide/_plugins/css_declarations.rb +16 -0
- data/styleguide/_plugins/css_selectors.rb +16 -0
- data/styleguide/_plugins/css_size.rb +20 -0
- data/styleguide/_plugins/sass_generator.rb +39 -0
- data/styleguide/_plugins/sass_output.rb +21 -0
- data/styleguide/components/alerts.md +5 -0
- data/styleguide/components/boxes.md +5 -0
- data/styleguide/components/buttons.md +5 -0
- data/styleguide/components/code.html +5 -0
- data/styleguide/components/horizontal-rules.md +5 -0
- data/styleguide/components/icons.md +5 -0
- data/styleguide/components/modals/index.md +4 -0
- data/styleguide/components/notes.md +5 -0
- data/styleguide/components/tables.md +5 -0
- data/styleguide/utilities/accordion.md +5 -0
- data/styleguide/utilities/border-radius.md +5 -0
- data/styleguide/utilities/colors.md +5 -0
- data/styleguide/utilities/grid.md +5 -0
- data/styleguide/utilities/margin-padding.md +5 -0
- data/styleguide/utilities/opacity.md +6 -3
- data/styleguide/utilities/position.md +5 -0
- data/styleguide/utilities/typography.md +5 -0
- metadata +11 -4
- data/assets/stylesheets/shipyard/components/_hero.sass +0 -87
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc383fe968d0fe96db0d235903e775a9cff70a849d2090e4e185853e8d277ba1
|
4
|
+
data.tar.gz: 3956e48a5c285f2cb96e5c71689aaba7cae1d6cd96db3aea2b6a82282db9be26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 830ef59a63a920209a562f3017371b62454b2905ccc08c80e8b52fd8c2d62d30736ac5f898b83a08ba0efc7c0461f1b4255b706a3e960fee271434e115649480
|
7
|
+
data.tar.gz: 553d03d4162905b4492c0b7a35b100096fdd0655be5b975e7eb55dc8ab897e049885f46913ae3a7a398f9d39a33eb24db307a60e3c729716f242326f0d59b190
|
@@ -1,22 +1,22 @@
|
|
1
|
-
@import "components/code"
|
2
|
-
@import "components/buttons"
|
3
|
-
@import "components/icons"
|
4
|
-
@import "components/alerts"
|
5
|
-
@import "components/notes"
|
6
|
-
@import "components/boxes"
|
7
|
-
@import "components/forms"
|
8
|
-
@import "components/form-errors"
|
9
|
-
@import "components/input"
|
10
|
-
@import "components/input-text"
|
11
|
-
@import "components/input-select"
|
12
|
-
@import "components/input-radio-checkbox"
|
13
|
-
@import "components/input-switch"
|
14
|
-
@import "components/input-sizes"
|
15
|
-
@import "components/input-required"
|
16
|
-
@import "components/input-readonly"
|
17
|
-
@import "components/empty"
|
18
|
-
@import "components/modals"
|
19
|
-
@import "components/tooltips"
|
20
|
-
@import "components/hamburger"
|
21
|
-
@import "components/tables"
|
22
|
-
@import "components/horizontal-rules"
|
1
|
+
@import "shipyard/components/code"
|
2
|
+
@import "shipyard/components/buttons"
|
3
|
+
@import "shipyard/components/icons"
|
4
|
+
@import "shipyard/components/alerts"
|
5
|
+
@import "shipyard/components/notes"
|
6
|
+
@import "shipyard/components/boxes"
|
7
|
+
@import "shipyard/components/forms"
|
8
|
+
@import "shipyard/components/form-errors"
|
9
|
+
@import "shipyard/components/input"
|
10
|
+
@import "shipyard/components/input-text"
|
11
|
+
@import "shipyard/components/input-select"
|
12
|
+
@import "shipyard/components/input-radio-checkbox"
|
13
|
+
@import "shipyard/components/input-switch"
|
14
|
+
@import "shipyard/components/input-sizes"
|
15
|
+
@import "shipyard/components/input-required"
|
16
|
+
@import "shipyard/components/input-readonly"
|
17
|
+
@import "shipyard/components/empty"
|
18
|
+
@import "shipyard/components/modals"
|
19
|
+
@import "shipyard/components/tooltips"
|
20
|
+
@import "shipyard/components/hamburger"
|
21
|
+
@import "shipyard/components/tables"
|
22
|
+
@import "shipyard/components/horizontal-rules"
|
@@ -1,3 +1,3 @@
|
|
1
|
-
@import "functions/map-merge-options"
|
2
|
-
@import "functions/color"
|
3
|
-
@import "functions/text-color"
|
1
|
+
@import "shipyard/functions/map-merge-options"
|
2
|
+
@import "shipyard/functions/color"
|
3
|
+
@import "shipyard/functions/text-color"
|
@@ -1,7 +1,8 @@
|
|
1
|
-
@import "mixins/prefixed"
|
2
|
-
@import "mixins/box-model"
|
3
|
-
@import "mixins/selectors"
|
4
|
-
@import "mixins/responsive"
|
5
|
-
@import "mixins/components"
|
6
|
-
@import "mixins/positioning"
|
7
|
-
@import "mixins/icons"
|
1
|
+
@import "shipyard/mixins/prefixed"
|
2
|
+
@import "shipyard/mixins/box-model"
|
3
|
+
@import "shipyard/mixins/selectors"
|
4
|
+
@import "shipyard/mixins/responsive"
|
5
|
+
@import "shipyard/mixins/components"
|
6
|
+
@import "shipyard/mixins/positioning"
|
7
|
+
@import "shipyard/mixins/icons"
|
8
|
+
@import "shipyard/mixins/buttons"
|
@@ -1,9 +1,10 @@
|
|
1
|
-
@import "utilities/grid"
|
2
|
-
@import "utilities/colors"
|
3
|
-
@import "utilities/opacity"
|
4
|
-
@import "utilities/display"
|
5
|
-
@import "utilities/
|
6
|
-
@import "utilities/
|
7
|
-
@import "utilities/
|
8
|
-
@import "utilities/
|
9
|
-
@import "utilities/
|
1
|
+
@import "shipyard/utilities/grid"
|
2
|
+
@import "shipyard/utilities/colors"
|
3
|
+
@import "shipyard/utilities/opacity"
|
4
|
+
@import "shipyard/utilities/display"
|
5
|
+
@import "shipyard/utilities/center"
|
6
|
+
@import "shipyard/utilities/position"
|
7
|
+
@import "shipyard/utilities/typography"
|
8
|
+
@import "shipyard/utilities/margin-padding"
|
9
|
+
@import "shipyard/utilities/border-radius"
|
10
|
+
@import "shipyard/utilities/accordion"
|
@@ -1,7 +1,7 @@
|
|
1
|
-
@import "variables/colors"
|
2
|
-
@import "variables/color_utilities"
|
3
|
-
@import "variables/typography"
|
4
|
-
@import "variables/grid"
|
5
|
-
@import "variables/misc"
|
6
|
-
@import "variables/components"
|
7
|
-
@import "variables/opacities"
|
1
|
+
@import "shipyard/variables/colors"
|
2
|
+
@import "shipyard/variables/color_utilities"
|
3
|
+
@import "shipyard/variables/typography"
|
4
|
+
@import "shipyard/variables/grid"
|
5
|
+
@import "shipyard/variables/misc"
|
6
|
+
@import "shipyard/variables/components"
|
7
|
+
@import "shipyard/variables/opacities"
|
@@ -1,65 +1,3 @@
|
|
1
|
-
@mixin btn($size: md, $position: relative, $bg: $gray)
|
2
|
-
position: $position
|
3
|
-
display: inline-block
|
4
|
-
border-radius: 5px
|
5
|
-
border: 0
|
6
|
-
cursor: pointer
|
7
|
-
transition: background-color 300ms ease, color 300ms ease, border-color 300ms ease, opacity 300ms ease
|
8
|
-
outline: none
|
9
|
-
border-width: 2px
|
10
|
-
border-style: solid
|
11
|
-
font-weight: $bold
|
12
|
-
font-family: $font-family
|
13
|
-
text-align: center
|
14
|
-
text-decoration: none
|
15
|
-
+btn-size($size)
|
16
|
-
+btn-color($bg, #fff)
|
17
|
-
+btn-hover(darken($bg, 10%), #fff)
|
18
|
-
|
19
|
-
@mixin btn-color($color, $text-color: null, $border-color: null)
|
20
|
-
background-color: $color
|
21
|
-
@if $border-color
|
22
|
-
border-color: $border-color
|
23
|
-
@else
|
24
|
-
border-color: $color
|
25
|
-
@if $text-color
|
26
|
-
color: $text-color
|
27
|
-
|
28
|
-
@mixin btn-hover($color, $text-color: null, $border-color: null, $text-decoration: none)
|
29
|
-
&:hover, &:focus, &:active, &.btn-loading
|
30
|
-
text-decoration: $text-decoration
|
31
|
-
+btn-color($color, $text-color, $border-color)
|
32
|
-
|
33
|
-
@mixin btn-size($size, $min-width: null)
|
34
|
-
@if $size == xxs
|
35
|
-
font-size: 12px
|
36
|
-
padding: 0 8px
|
37
|
-
+btn-size(20px)
|
38
|
-
@else if $size == xs
|
39
|
-
font-size: 12px
|
40
|
-
padding: 0 10px
|
41
|
-
+btn-size(30px)
|
42
|
-
@else if $size == sm
|
43
|
-
font-size: 14px
|
44
|
-
padding: 0 15px
|
45
|
-
+btn-size(40px)
|
46
|
-
@else if $size == md
|
47
|
-
font-size: 16px
|
48
|
-
padding: 0 20px
|
49
|
-
+btn-size(50px)
|
50
|
-
@else if $size == lg
|
51
|
-
font-size: 18px
|
52
|
-
padding: 0 30px
|
53
|
-
+btn-size(60px)
|
54
|
-
@else if $size == xl
|
55
|
-
font-size: 20px
|
56
|
-
padding: 0 35px
|
57
|
-
+btn-size(70px)
|
58
|
-
@else if type-of($size) == 'number'
|
59
|
-
height: $size
|
60
|
-
line-height: $size - 4px
|
61
|
-
min-width: if($min-width, $min-width, $size)
|
62
|
-
|
63
1
|
+component('btn')
|
64
2
|
+btn
|
65
3
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
@mixin btn($size: md, $position: relative, $bg: $gray)
|
2
|
+
position: $position
|
3
|
+
display: inline-block
|
4
|
+
border-radius: 5px
|
5
|
+
border: 0
|
6
|
+
cursor: pointer
|
7
|
+
transition: background-color 300ms ease, color 300ms ease, border-color 300ms ease, opacity 300ms ease
|
8
|
+
outline: none
|
9
|
+
border-width: 2px
|
10
|
+
border-style: solid
|
11
|
+
font-weight: $bold
|
12
|
+
font-family: $font-family
|
13
|
+
text-align: center
|
14
|
+
text-decoration: none
|
15
|
+
+btn-size($size)
|
16
|
+
+btn-color($bg, #fff)
|
17
|
+
+btn-hover(darken($bg, 10%), #fff)
|
18
|
+
|
19
|
+
@mixin btn-color($color, $text-color: null, $border-color: null)
|
20
|
+
background-color: $color
|
21
|
+
@if $border-color
|
22
|
+
border-color: $border-color
|
23
|
+
@else
|
24
|
+
border-color: $color
|
25
|
+
@if $text-color
|
26
|
+
color: $text-color
|
27
|
+
|
28
|
+
@mixin btn-hover($color, $text-color: null, $border-color: null, $text-decoration: none)
|
29
|
+
&:hover, &:focus, &:active, &.btn-loading
|
30
|
+
text-decoration: $text-decoration
|
31
|
+
+btn-color($color, $text-color, $border-color)
|
32
|
+
|
33
|
+
@mixin btn-size($size, $min-width: null)
|
34
|
+
@if $size == xxs
|
35
|
+
font-size: 12px
|
36
|
+
padding: 0 8px
|
37
|
+
+btn-size(20px)
|
38
|
+
@else if $size == xs
|
39
|
+
font-size: 12px
|
40
|
+
padding: 0 10px
|
41
|
+
+btn-size(30px)
|
42
|
+
@else if $size == sm
|
43
|
+
font-size: 14px
|
44
|
+
padding: 0 15px
|
45
|
+
+btn-size(40px)
|
46
|
+
@else if $size == md
|
47
|
+
font-size: 16px
|
48
|
+
padding: 0 20px
|
49
|
+
+btn-size(50px)
|
50
|
+
@else if $size == lg
|
51
|
+
font-size: 18px
|
52
|
+
padding: 0 30px
|
53
|
+
+btn-size(60px)
|
54
|
+
@else if $size == xl
|
55
|
+
font-size: 20px
|
56
|
+
padding: 0 35px
|
57
|
+
+btn-size(70px)
|
58
|
+
@else if type-of($size) == 'number'
|
59
|
+
height: $size
|
60
|
+
line-height: $size - 4px
|
61
|
+
min-width: if($min-width, $min-width, $size)
|
@@ -13,9 +13,9 @@
|
|
13
13
|
|
14
14
|
@mixin extend($modifier: null)
|
15
15
|
@if $modifier
|
16
|
-
@extend .#{$component}-#{$modifier}
|
16
|
+
@extend .#{$component}-#{$modifier} !optional
|
17
17
|
@else
|
18
|
-
@extend .#{$component}
|
18
|
+
@extend .#{$component} !optional
|
19
19
|
|
20
20
|
@mixin z-index($value: null)
|
21
21
|
@if $value
|
data/ci/sass_lint
CHANGED
@@ -12,10 +12,10 @@ echo -e "************** Copy Master Branch **************"
|
|
12
12
|
git clone $repository --branch master --single-branch ci/master-tmp
|
13
13
|
|
14
14
|
echo -e "\n\n************** Compile Sass **************"
|
15
|
-
bundle exec sass --no-cache --sourcemap=none --style compact assets/stylesheets/_shipyard.sass ci/master-tmp/branch-compact.css
|
16
|
-
bundle exec sass --no-cache --sourcemap=none --style compressed assets/stylesheets/_shipyard.sass ci/master-tmp/branch-compressed.css
|
17
|
-
bundle exec sass --no-cache --sourcemap=none --style compact ci/master-tmp/assets/stylesheets/_shipyard.sass ci/master-tmp/master-compact.css
|
18
|
-
bundle exec sass --no-cache --sourcemap=none --style compressed ci/master-tmp/assets/stylesheets/_shipyard.sass ci/master-tmp/master-compressed.css
|
15
|
+
bundle exec sass --no-cache --load-path assets/stylesheets --sourcemap=none --style compact assets/stylesheets/_shipyard.sass ci/master-tmp/branch-compact.css
|
16
|
+
bundle exec sass --no-cache --load-path assets/stylesheets --sourcemap=none --style compressed assets/stylesheets/_shipyard.sass ci/master-tmp/branch-compressed.css
|
17
|
+
bundle exec sass --no-cache --load-path assets/stylesheets --sourcemap=none --style compact ci/master-tmp/assets/stylesheets/_shipyard.sass ci/master-tmp/master-compact.css
|
18
|
+
bundle exec sass --no-cache --load-path assets/stylesheets --sourcemap=none --style compressed ci/master-tmp/assets/stylesheets/_shipyard.sass ci/master-tmp/master-compressed.css
|
19
19
|
gzip -kvf ci/master-tmp/branch-compressed.css
|
20
20
|
gzip -kvf ci/master-tmp/master-compressed.css
|
21
21
|
|
data/ci/setup
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/bin/bash
|
2
2
|
|
3
3
|
rvm use $(cat .ruby-version)
|
4
|
-
gem install bundler --pre
|
4
|
+
gem install bundler --pre --no-ri --no-rdoc
|
5
5
|
bundle install
|
6
|
-
cd styleguide && gem install bundler --pre && bundle install
|
6
|
+
(cd styleguide && gem install bundler --pre --no-ri --no-rdoc && bundle install)
|
data/styleguide/Gemfile
CHANGED
data/styleguide/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
shipyard-framework (0.5.
|
4
|
+
shipyard-framework (0.5.84)
|
5
5
|
actionview (~> 5.0)
|
6
6
|
sprockets-es6 (~> 0.9.2)
|
7
7
|
|
@@ -57,15 +57,16 @@ GEM
|
|
57
57
|
pathutil (>= 0.8)
|
58
58
|
rack (~> 1.6)
|
59
59
|
sprockets (~> 3.3, < 3.8)
|
60
|
-
jekyll-sass-converter (1.5.
|
60
|
+
jekyll-sass-converter (1.5.1)
|
61
61
|
sass (~> 3.4)
|
62
|
-
jekyll-watch (1.5.
|
63
|
-
listen (~> 3.0
|
64
|
-
kramdown (1.
|
62
|
+
jekyll-watch (1.5.1)
|
63
|
+
listen (~> 3.0)
|
64
|
+
kramdown (1.16.2)
|
65
65
|
liquid (4.0.0)
|
66
|
-
listen (3.
|
66
|
+
listen (3.1.5)
|
67
67
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
68
68
|
rb-inotify (~> 0.9, >= 0.9.7)
|
69
|
+
ruby_dep (~> 1.2)
|
69
70
|
loofah (2.1.1)
|
70
71
|
crass (~> 1.0.2)
|
71
72
|
nokogiri (>= 1.5.9)
|
@@ -74,25 +75,31 @@ GEM
|
|
74
75
|
minitest (5.10.3)
|
75
76
|
nokogiri (1.8.1)
|
76
77
|
mini_portile2 (~> 2.3.0)
|
77
|
-
pathutil (0.16.
|
78
|
+
pathutil (0.16.1)
|
78
79
|
forwardable-extended (~> 2.6)
|
79
|
-
public_suffix (3.0.
|
80
|
+
public_suffix (3.0.1)
|
80
81
|
rack (1.6.8)
|
81
82
|
rails-dom-testing (2.0.3)
|
82
83
|
activesupport (>= 4.2.0)
|
83
84
|
nokogiri (>= 1.6)
|
84
85
|
rails-html-sanitizer (1.0.3)
|
85
86
|
loofah (~> 2.0)
|
87
|
+
rake (12.3.0)
|
86
88
|
rb-fsevent (0.10.2)
|
87
89
|
rb-inotify (0.9.10)
|
88
90
|
ffi (>= 0.5.0, < 2)
|
89
91
|
rouge (2.2.1)
|
92
|
+
ruby_dep (1.5.0)
|
90
93
|
safe_yaml (1.0.4)
|
91
94
|
sass (3.5.3)
|
92
95
|
sass-listen (~> 4.0.0)
|
93
96
|
sass-listen (4.0.0)
|
94
97
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
95
98
|
rb-inotify (~> 0.9, >= 0.9.7)
|
99
|
+
sassc (1.11.4)
|
100
|
+
bundler
|
101
|
+
ffi (~> 1.9.6)
|
102
|
+
sass (>= 3.3.0)
|
96
103
|
sprockets (3.7.1)
|
97
104
|
concurrent-ruby (~> 1.0)
|
98
105
|
rack (> 1, < 3)
|
@@ -110,6 +117,8 @@ PLATFORMS
|
|
110
117
|
DEPENDENCIES
|
111
118
|
jekyll (~> 3.6.0)
|
112
119
|
jekyll-assets (~> 2.3.2)
|
120
|
+
rake
|
121
|
+
sassc (~> 1.11.4)
|
113
122
|
shipyard-framework!
|
114
123
|
|
115
124
|
BUNDLED WITH
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<ul class="col-container">
|
2
|
+
<li class="css-stat-item col col-10">
|
3
|
+
<span class="text-sm medium text-lighter display-block">Gzipped Size</span>
|
4
|
+
<span class="text-xxxl strong text-darker">{% css_size %}</span>
|
5
|
+
</li>
|
6
|
+
<li class="css-stat-item col col-10">
|
7
|
+
<span class="text-sm medium text-lighter display-block">Declarations</span>
|
8
|
+
<span class="text-xxxl strong text-darker">{% css_declarations %}</span>
|
9
|
+
</li>
|
10
|
+
<li class="css-stat-item col col-10">
|
11
|
+
<span class="text-sm medium text-lighter display-block">Selectors</span>
|
12
|
+
<span class="text-xxxl strong text-darker">{% css_selectors %}</span>
|
13
|
+
</li>
|
14
|
+
</ul>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class CssDeclarations < Liquid::Tag
|
3
|
+
def initialize(tag_name, args, options)
|
4
|
+
super
|
5
|
+
end
|
6
|
+
|
7
|
+
def render(context)
|
8
|
+
sass = context['site']['sass_output'].detect { |s|
|
9
|
+
s[:file].include? context['page']['sass_file']
|
10
|
+
}
|
11
|
+
sass[:declarations]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
Liquid::Template.register_tag('css_declarations', Jekyll::CssDeclarations)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class CssSelectors < Liquid::Tag
|
3
|
+
def initialize(tag_name, args, options)
|
4
|
+
super
|
5
|
+
end
|
6
|
+
|
7
|
+
def render(context)
|
8
|
+
sass = context['site']['sass_output'].detect { |s|
|
9
|
+
s[:file].include? context['page']['sass_file']
|
10
|
+
}
|
11
|
+
sass[:selectors]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
Liquid::Template.register_tag('css_selectors', Jekyll::CssSelectors)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class CssSize < Liquid::Tag
|
3
|
+
def initialize(tag_name, args, options)
|
4
|
+
super
|
5
|
+
end
|
6
|
+
|
7
|
+
def render(context)
|
8
|
+
sass = context['site']['sass_output'].detect { |s|
|
9
|
+
s[:file].include? context['page']['sass_file']
|
10
|
+
}
|
11
|
+
size = sass[:gzip_size]
|
12
|
+
case
|
13
|
+
when size >= 1000 then "#{(size / 1000.0).round(1)}kb"
|
14
|
+
else "#{size}b"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Liquid::Template.register_tag('css_size', Jekyll::CssSize)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'sassc'
|
2
|
+
require 'zlib'
|
3
|
+
|
4
|
+
module Jekyll
|
5
|
+
class SassOutputGenerator < Generator
|
6
|
+
def generate(site)
|
7
|
+
site.config['sass_output'] = load_sass_files
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def load_sass_files
|
13
|
+
Dir['../assets/stylesheets/shipyard/**/*.sass'].sort.map do |file|
|
14
|
+
sass = %(@import "shipyard/core"\n)
|
15
|
+
sass += File.read(file)
|
16
|
+
compact_css = render(sass, :compact)
|
17
|
+
compressed_css = render(sass, :compressed)
|
18
|
+
{
|
19
|
+
file: file,
|
20
|
+
sass: sass,
|
21
|
+
compact_css: compact_css,
|
22
|
+
compressed_css: compressed_css,
|
23
|
+
gzip_size: Zlib::Deflate.deflate(compressed_css).bytesize,
|
24
|
+
declarations: compressed_css.scan(/[.][a-zA-Z\-][a-zA-Z0-9\-]*{/).size,
|
25
|
+
selectors: compressed_css.scan(/[.][a-zA-Z\-][a-zA-Z0-9\-]*/).size
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def render(sass, style)
|
31
|
+
SassC::Engine.new(
|
32
|
+
sass,
|
33
|
+
syntax: :sass,
|
34
|
+
style: style,
|
35
|
+
load_paths: [Shipyard::stylesheets_path]
|
36
|
+
).render
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class SassOutput < Liquid::Tag
|
3
|
+
def initialize(tag_name, args, options)
|
4
|
+
super
|
5
|
+
end
|
6
|
+
|
7
|
+
def render(context)
|
8
|
+
sass = context['site']['sass_output'].detect { |s|
|
9
|
+
s[:file].include? context['page']['sass_file']
|
10
|
+
}
|
11
|
+
output = sass[:compressed_css]
|
12
|
+
output.gsub! /}/, " }\n"
|
13
|
+
output.gsub! /{/, ' { '
|
14
|
+
output.gsub! /([a-z]*):/, '\1: '
|
15
|
+
output.gsub! /\n\z/, ''
|
16
|
+
output
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
Liquid::Template.register_tag('sass_output', Jekyll::SassOutput)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Alerts
|
3
3
|
description: Alerts should be used to grab a user's attention before proceeding to the next action. They are commonly found at the very top of the page directly above the content.
|
4
|
+
sass_file: shipyard/components/_alerts
|
4
5
|
---
|
5
6
|
|
6
7
|
{% include page-heading.html page=page %}
|
@@ -100,3 +101,7 @@ Useful when drawing attention to something that has gone critically wrong.
|
|
100
101
|
We hope the code <code class="code-inline">Travel_Light_2017</code> will be useful for your next flight.
|
101
102
|
{% btn Call to Action, :sm, class: 'alert-cta' %}
|
102
103
|
{% endalert %}
|
104
|
+
|
105
|
+
---
|
106
|
+
|
107
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Boxes
|
3
3
|
description: Boxes should be used to grab a draw attention to specific groups of content, and are most useful to linked content. By default, all boxes need to have the base class of `.box` in order to function properly.
|
4
|
+
sass_file: shipyard/components/_boxes
|
4
5
|
box_sizes: [xxs, xs, sm, md, lg, xl, xxl]
|
5
6
|
---
|
6
7
|
|
@@ -90,3 +91,7 @@ Useful when you need a box with rounded corners.
|
|
90
91
|
<strong class="center text-lighter text-sm">.box-{{ size }}</strong>
|
91
92
|
</div>
|
92
93
|
{% endfor %}
|
94
|
+
|
95
|
+
---
|
96
|
+
|
97
|
+
{% include css-stats.html %}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Buttons
|
3
|
+
sass_file: shipyard/components/_buttons
|
3
4
|
---
|
4
5
|
|
5
6
|
{% include page-heading.html page=page %}
|
@@ -185,3 +186,7 @@ The button classes can be applied to any type of html tag to achieve the desired
|
|
185
186
|
{% btn Wide Screens, :sm :x3_md %}
|
186
187
|
{% btn Giant Screens, :sm :x4_md %}
|
187
188
|
</div>
|
189
|
+
|
190
|
+
---
|
191
|
+
|
192
|
+
{% include css-stats.html %}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Code Component
|
3
|
+
sass_file: shipyard/components/_code
|
3
4
|
---
|
4
5
|
|
5
6
|
{% include page-heading.html page=page %}
|
@@ -42,3 +43,7 @@ end</code></pre>
|
|
42
43
|
This flight is now sold out. Let's get you on the next flight to Kauai.
|
43
44
|
We hope the code <code class="code-inline">Travel_Light_2017</code> will be useful for your next flight.
|
44
45
|
{% endalert %}
|
46
|
+
|
47
|
+
<hr />
|
48
|
+
|
49
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Horizontal Rules
|
3
3
|
description: Shipyard doesn't make any assumptions on how you want to common tags like an `hr` to styled. As a result, we would recommend extending the `.hr` class in your own SASS files to achieve the results below on all `hr` tags (e.g. `@extend .hr`).
|
4
|
+
sass_file: shipyard/components/_horizontal-rules
|
4
5
|
text_sizes: [xxs, xs, sm, md, lg, xl, xxl, xxxl]
|
5
6
|
text_shades: [normal, light, lighter, lightest]
|
6
7
|
---
|
@@ -75,3 +76,7 @@ Useful when you have a horizontal rule on a lighter background.
|
|
75
76
|
```html
|
76
77
|
<hr class="hr-light" />
|
77
78
|
```
|
79
|
+
|
80
|
+
---
|
81
|
+
|
82
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Icons
|
3
3
|
description: Shipyard comes with several default icons that you're welcome to use on any project. Each icon has been designed on a pixel grid at the small size possible, but can be scaled up to any size you like simply by changing the `width` and `height` in the CSS.
|
4
|
+
sass_file: shipyard/components/_icons
|
4
5
|
---
|
5
6
|
|
6
7
|
{% include page-heading.html page=page %}
|
@@ -103,3 +104,7 @@ One of the most common problems when using an icon is that doesn't line up with
|
|
103
104
|
Create
|
104
105
|
</button>
|
105
106
|
```
|
107
|
+
|
108
|
+
---
|
109
|
+
|
110
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Modals
|
3
3
|
description: Modals are triggered by applying the following attribute to any button or link (e.g. `modal-trigger="login"`).
|
4
|
+
sass_file: shipyard/components/_modals
|
4
5
|
---
|
5
6
|
|
6
7
|
{% include page-heading.html page=page %}
|
@@ -34,4 +35,7 @@ description: Modals are triggered by applying the following attribute to any but
|
|
34
35
|
</div>
|
35
36
|
```
|
36
37
|
|
38
|
+
---
|
39
|
+
|
40
|
+
{% include css-stats.html %}
|
37
41
|
{% include_relative _modal.html css_class="display-none" %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Notes
|
3
3
|
description: Notes should be used to grab a user's attention along side of other content.
|
4
|
+
sass_file: shipyard/components/_notes
|
4
5
|
---
|
5
6
|
|
6
7
|
{% include page-heading.html page=page %}
|
@@ -60,3 +61,7 @@ Useful when drawing attention to critical information.
|
|
60
61
|
</p>
|
61
62
|
{% btn Call to Action, :sm, class: 'note-cta' %}
|
62
63
|
{% endnote %}
|
64
|
+
|
65
|
+
---
|
66
|
+
|
67
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Tables
|
3
3
|
description: Tables are useful for tabular data and can be used simple by applying the `.table` class to any table you're working on.
|
4
|
+
sass_file: shipyard/components/_tables
|
4
5
|
---
|
5
6
|
|
6
7
|
{% include page-heading.html page=page %}
|
@@ -27,3 +28,7 @@ description: Tables are useful for tabular data and can be used simple by applyi
|
|
27
28
|
{% endfor %}
|
28
29
|
</tbody>
|
29
30
|
</table>
|
31
|
+
|
32
|
+
---
|
33
|
+
|
34
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Accordions
|
3
3
|
description: Useful when you want to open and close large blocks of content in a more elegant way.
|
4
|
+
sass_file: shipyard/utilities/_accordion
|
4
5
|
sizes:
|
5
6
|
-
|
6
7
|
name: xs
|
@@ -48,3 +49,7 @@ sizes:
|
|
48
49
|
/* Accordion: Closed State */
|
49
50
|
.accordion-closed { opacity: 0; max-height: 0; overflow: hidden; padding-top: 0; padding-bottom: 0; margin-top: 0; margin-bottom: 0; }
|
50
51
|
```
|
52
|
+
|
53
|
+
---
|
54
|
+
|
55
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Border-Radius Utilities
|
3
3
|
description: Shipyard's border-radius utilities are useful for connecting components together.
|
4
|
+
sass_file: shipyard/utilities/_border-radius
|
4
5
|
col_classes: col col-50 col-x1-20 margin-bottom-xs
|
5
6
|
box_classes: padding-top-xs padding-bottom-xs text-sm strong align-center bg-gray-light gray-dark
|
6
7
|
directions:
|
@@ -90,3 +91,7 @@ The examples below demonstrate the utility classes on each breakpoint.
|
|
90
91
|
{% endfor %}
|
91
92
|
</div>
|
92
93
|
{% endfor %}
|
94
|
+
|
95
|
+
---
|
96
|
+
|
97
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Colors
|
3
3
|
description: Shipyard includes **9 standard colors** by default, and each color can be accessed with the corresponding CSS utility class `.color-shade` or by using the SASS variable `$color-shade` in your SASS files.
|
4
|
+
sass_file: shipyard/utilities/_colors
|
4
5
|
primary_colors: [Gray, Blue, Teal, Green, Yellow, Orange, Red, Coral, Purple]
|
5
6
|
shades: [Lightest, Lighter, Light, Base, Dark, Darker, Darkest]
|
6
7
|
base_colors: [Black, White]
|
@@ -38,3 +39,7 @@ base_colors: [Black, White]
|
|
38
39
|
</li>
|
39
40
|
{% endfor %}
|
40
41
|
</ul>
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Grid
|
3
3
|
description: The Shipyard grid is a percentage-based, flexbox grid and is entirely responsive. Each class needs the foundational `.col` class in order to function properly, and also should be contained inside the `.col-container` as well.
|
4
|
+
sass_file: shipyard/utilities/_grid
|
4
5
|
container_classes: col-container margin-top-xs margin-top-x1-sm margin-top-x2-md margin-bottom-xs margin-bottom-x1-sm margin-bottom-x2-md
|
5
6
|
box_classes: utilities-grid-box col-center box-secondary text-lighter text-sm strong align-center
|
6
7
|
example_flex_columns: [10,20,25,33,50]
|
@@ -249,3 +250,7 @@ Useful when the flow of the content should be different at a certain breakpoint.
|
|
249
250
|
</div>
|
250
251
|
</div>
|
251
252
|
```
|
253
|
+
|
254
|
+
---
|
255
|
+
|
256
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Margin & Padding Utilities
|
3
3
|
description: Shipyard's margin & padding utilities are useful for overriding the default margin and padding in any component, and can be extremely useful in a wide array of situations.
|
4
|
+
sass_file: shipyard/utilities/_margin-padding
|
4
5
|
box_classes: utilities-margin-padding-box box-secondary btn-sm medium text-light
|
5
6
|
options: [none,xxs,xs,sm,md,lg,xl,xxl]
|
6
7
|
directions: [left,right]
|
@@ -104,3 +105,7 @@ The examples below demonstrate how much padding will be added to the left and ri
|
|
104
105
|
</div>
|
105
106
|
{% endfor %}
|
106
107
|
</div>
|
108
|
+
|
109
|
+
---
|
110
|
+
|
111
|
+
{% include css-stats.html %}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
title: Opacity Utilities
|
3
3
|
description: Shipyard's opacity utilities are useful when you need to overwrite the default opacity of a component.
|
4
4
|
options: [0,05,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95]
|
5
|
+
sass_file: shipyard/utilities/_opacity
|
5
6
|
---
|
6
7
|
|
7
8
|
{% include page-heading.html page=page %}
|
@@ -19,7 +20,9 @@ options: [0,05,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95]
|
|
19
20
|
</ul>
|
20
21
|
|
21
22
|
```css
|
22
|
-
{%
|
23
|
-
.o-{{ option | opacity_css_class }} { opacity: {{ option | opacity_css_class: '.' }} }
|
24
|
-
{% endfor -%}
|
23
|
+
{% sass_output -%}
|
25
24
|
```
|
25
|
+
|
26
|
+
---
|
27
|
+
|
28
|
+
{% include css-stats.html %}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Position Utilities
|
3
3
|
description: Shipyard's position utilities are helpful to override the default styles of component.
|
4
|
+
sass_file: shipyard/utilities/_position
|
4
5
|
position_utilities: [static, relative, absolute, fixed]
|
5
6
|
---
|
6
7
|
|
@@ -17,3 +18,7 @@ Useful when you need to overwrite the default styles of an element or component.
|
|
17
18
|
.{{ utility }} { position: {{ utility }} }
|
18
19
|
{% endfor -%}
|
19
20
|
```
|
21
|
+
|
22
|
+
---
|
23
|
+
|
24
|
+
{% include css-stats.html %}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Shipyard Typography
|
3
|
+
sass_file: shipyard/utilities/_typography
|
3
4
|
text_sizes: [xxs, xs, sm, md, lg, xl, xxl, xxxl]
|
4
5
|
text_shades: [darkest, darker, dark, normal, light, lighter, lightest]
|
5
6
|
---
|
@@ -67,3 +68,7 @@ text_shades: [darkest, darker, dark, normal, light, lighter, lightest]
|
|
67
68
|
</div>
|
68
69
|
</div>
|
69
70
|
</div>
|
71
|
+
|
72
|
+
---
|
73
|
+
|
74
|
+
{% include css-stats.html %}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shipyard-framework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.84
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Codeship
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview
|
@@ -227,7 +227,6 @@ files:
|
|
227
227
|
- assets/stylesheets/shipyard/components/_forms.sass
|
228
228
|
- assets/stylesheets/shipyard/components/_hamburger.sass
|
229
229
|
- assets/stylesheets/shipyard/components/_header.sass
|
230
|
-
- assets/stylesheets/shipyard/components/_hero.sass
|
231
230
|
- assets/stylesheets/shipyard/components/_horizontal-rules.sass
|
232
231
|
- assets/stylesheets/shipyard/components/_icons.sass
|
233
232
|
- assets/stylesheets/shipyard/components/_input-radio-checkbox.sass
|
@@ -249,6 +248,7 @@ files:
|
|
249
248
|
- assets/stylesheets/shipyard/functions/_map-merge-options.sass
|
250
249
|
- assets/stylesheets/shipyard/functions/_text-color.sass
|
251
250
|
- assets/stylesheets/shipyard/mixins/_box-model.sass
|
251
|
+
- assets/stylesheets/shipyard/mixins/_buttons.sass
|
252
252
|
- assets/stylesheets/shipyard/mixins/_components.sass
|
253
253
|
- assets/stylesheets/shipyard/mixins/_icons.sass
|
254
254
|
- assets/stylesheets/shipyard/mixins/_positioning.sass
|
@@ -257,12 +257,13 @@ files:
|
|
257
257
|
- assets/stylesheets/shipyard/mixins/_selectors.sass
|
258
258
|
- assets/stylesheets/shipyard/utilities/_accordion.sass
|
259
259
|
- assets/stylesheets/shipyard/utilities/_border-radius.sass
|
260
|
+
- assets/stylesheets/shipyard/utilities/_center.sass
|
260
261
|
- assets/stylesheets/shipyard/utilities/_colors.sass
|
261
262
|
- assets/stylesheets/shipyard/utilities/_display.sass
|
262
263
|
- assets/stylesheets/shipyard/utilities/_grid.sass
|
263
264
|
- assets/stylesheets/shipyard/utilities/_margin-padding.sass
|
264
265
|
- assets/stylesheets/shipyard/utilities/_opacity.sass
|
265
|
-
- assets/stylesheets/shipyard/utilities/
|
266
|
+
- assets/stylesheets/shipyard/utilities/_position.sass
|
266
267
|
- assets/stylesheets/shipyard/utilities/_typography.sass
|
267
268
|
- assets/stylesheets/shipyard/variables/_color_utilities.sass
|
268
269
|
- assets/stylesheets/shipyard/variables/_colors.scss
|
@@ -325,12 +326,18 @@ files:
|
|
325
326
|
- styleguide/_assets/js/views/utilities/colors.es6
|
326
327
|
- styleguide/_config.yml
|
327
328
|
- styleguide/_data/breakpoints.yml
|
329
|
+
- styleguide/_includes/css-stats.html
|
328
330
|
- styleguide/_includes/page-heading.html
|
329
331
|
- styleguide/_layouts/application.html
|
330
332
|
- styleguide/_plugins/color_css_class.rb
|
331
333
|
- styleguide/_plugins/component_css_class.rb
|
334
|
+
- styleguide/_plugins/css_declarations.rb
|
335
|
+
- styleguide/_plugins/css_selectors.rb
|
336
|
+
- styleguide/_plugins/css_size.rb
|
332
337
|
- styleguide/_plugins/icon_item.rb
|
333
338
|
- styleguide/_plugins/opacity_css_class.rb
|
339
|
+
- styleguide/_plugins/sass_generator.rb
|
340
|
+
- styleguide/_plugins/sass_output.rb
|
334
341
|
- styleguide/components/alerts.md
|
335
342
|
- styleguide/components/boxes.md
|
336
343
|
- styleguide/components/buttons.md
|
@@ -1,87 +0,0 @@
|
|
1
|
-
+component('hero')
|
2
|
-
$hero-height: (x0: 120px, x1: 180px, x2: 190px)
|
3
|
-
overflow: hidden
|
4
|
-
text-align: center
|
5
|
-
position: relative
|
6
|
-
background: $gray-darkest
|
7
|
-
transition: height 500ms ease, padding 500ms ease
|
8
|
-
+respond-to(height, merge-and-add($hero-height, $header-height))
|
9
|
-
+respond-to(padding-top, $header-height)
|
10
|
-
+with-heroku-nav(margin-top, (x1: $heroku-nav-height))
|
11
|
-
|
12
|
-
&-container
|
13
|
-
height: 100%
|
14
|
-
position: relative
|
15
|
-
z-index: 1
|
16
|
-
|
17
|
-
&-title
|
18
|
-
margin: 0
|
19
|
-
color: #fff
|
20
|
-
width: 100%
|
21
|
-
overflow: hidden
|
22
|
-
line-height: 1.275
|
23
|
-
white-space: nowrap
|
24
|
-
text-overflow: ellipsis
|
25
|
-
+responsive-padding(left right, $divisor: 1)
|
26
|
-
+respond-to(font-size, (x0: 20px, x1: 24px, x2: 26px))
|
27
|
-
&-margin
|
28
|
-
margin: 0 0 10px
|
29
|
-
&-x0-absolute
|
30
|
-
+breakpoint-x0
|
31
|
-
top: 50%
|
32
|
-
left: 50%
|
33
|
-
position: absolute
|
34
|
-
transform: translate(-50%, -50%)
|
35
|
-
&-link
|
36
|
-
color: inherit
|
37
|
-
&:hover
|
38
|
-
color: lighten($blue-light, 5%)
|
39
|
-
|
40
|
-
&-chart
|
41
|
-
position: absolute
|
42
|
-
right: 0
|
43
|
-
bottom: 0
|
44
|
-
height: auto !important
|
45
|
-
&-container
|
46
|
-
position: absolute
|
47
|
-
height: 100%
|
48
|
-
+responsive-right
|
49
|
-
&-bar
|
50
|
-
stroke: lighten($gray-darkest, 7%)
|
51
|
-
stroke-width: 6px
|
52
|
-
stroke-linecap: round
|
53
|
-
stroke-linejoin: round
|
54
|
-
stroke-dasharray: 0, 10px
|
55
|
-
|
56
|
-
&-content
|
57
|
-
position: relative
|
58
|
-
+width-height(100%)
|
59
|
-
+responsive-padding(left right, $divisor: 1)
|
60
|
-
&-auto
|
61
|
-
@extend .hero-content
|
62
|
-
+breakpoint-x1
|
63
|
-
height: auto
|
64
|
-
|
65
|
-
&-cta
|
66
|
-
+breakpoint-x0
|
67
|
-
position: fixed
|
68
|
-
top: 10px
|
69
|
-
right: 10px
|
70
|
-
z-index: 1000
|
71
|
-
border: none
|
72
|
-
&, &:hover
|
73
|
-
background: none
|
74
|
-
+respond-to(margin, (x1: 10px 5px))
|
75
|
-
|
76
|
-
&-icon
|
77
|
-
stroke: $gray-light
|
78
|
-
+when('cta:hover')
|
79
|
-
stroke: #fff
|
80
|
-
+breakpoint-x0
|
81
|
-
+width-height(20px)
|
82
|
-
+center
|
83
|
-
+breakpoint-x1
|
84
|
-
+width-height(12px)
|
85
|
-
margin-right: 5px
|
86
|
-
position: relative
|
87
|
-
top: 2px
|