rails_design 0.0.1

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.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +20 -0
  3. data/README.md +18 -0
  4. data/Rakefile +18 -0
  5. data/app/assets/images/image-square.png +0 -0
  6. data/app/assets/images/logo.png +0 -0
  7. data/app/assets/javascripts/default_form/datetime.js +31 -0
  8. data/app/assets/javascripts/default_form/default_valid.js +101 -0
  9. data/app/assets/javascripts/default_form/field.js +33 -0
  10. data/app/assets/javascripts/default_form/index.js +9 -0
  11. data/app/assets/javascripts/default_form/valid_weui.js +17 -0
  12. data/app/assets/javascripts/rails_design/attachment.js +295 -0
  13. data/app/assets/javascripts/rails_design/cable.js +3 -0
  14. data/app/assets/javascripts/rails_design/dataset.js +39 -0
  15. data/app/assets/javascripts/rails_design/index.js +4 -0
  16. data/app/assets/javascripts/rails_design/stimulus.js +19 -0
  17. data/app/assets/javascripts/rails_design/turbo.js +35 -0
  18. data/app/assets/javascripts/stimulus_com/checkbox.js +77 -0
  19. data/app/assets/javascripts/stimulus_com/choice.js +18 -0
  20. data/app/assets/javascripts/stimulus_com/common.js +52 -0
  21. data/app/assets/javascripts/stimulus_com/count_down.js +27 -0
  22. data/app/assets/javascripts/stimulus_com/former.js +26 -0
  23. data/app/assets/javascripts/stimulus_com/hover.js +40 -0
  24. data/app/assets/javascripts/stimulus_com/index.js +58 -0
  25. data/app/assets/javascripts/stimulus_com/input.js +36 -0
  26. data/app/assets/javascripts/stimulus_com/menu.js +34 -0
  27. data/app/assets/javascripts/stimulus_com/modal.js +85 -0
  28. data/app/assets/javascripts/stimulus_com/modal_show.js +16 -0
  29. data/app/assets/javascripts/stimulus_com/navbar.js +11 -0
  30. data/app/assets/javascripts/stimulus_com/notice.js +10 -0
  31. data/app/assets/javascripts/stimulus_com/picture.js +85 -0
  32. data/app/assets/javascripts/stimulus_com/show.js +26 -0
  33. data/app/assets/javascripts/stimulus_com/showcase.js +34 -0
  34. data/app/assets/javascripts/stimulus_com/slide.js +188 -0
  35. data/app/assets/javascripts/stimulus_com/slide_y.js +189 -0
  36. data/app/assets/javascripts/stimulus_com/sortable.js +41 -0
  37. data/app/assets/javascripts/stimulus_com/sticky.js +11 -0
  38. data/app/assets/javascripts/stimulus_com/swipe.js +78 -0
  39. data/app/assets/javascripts/stimulus_com/taxon.js +45 -0
  40. data/app/assets/javascripts/stimulus_com/time.js +19 -0
  41. data/app/assets/javascripts/stimulus_com/touch.js +83 -0
  42. data/app/assets/javascripts/stimulus_com/tree.js +34 -0
  43. data/app/assets/javascripts/stimulus_com/tree_remote.js +64 -0
  44. data/app/assets/javascripts/stimulus_com/typer.js +41 -0
  45. data/app/assets/javascripts/stimulus_com/visit.js +61 -0
  46. data/app/assets/javascripts/stimulus_phone/index.js +19 -0
  47. data/app/assets/javascripts/stimulus_phone/qq_map.js +29 -0
  48. data/app/assets/javascripts/stimulus_phone/search.js +37 -0
  49. data/app/assets/javascripts/stimulus_phone/wechat.js +80 -0
  50. data/app/assets/javascripts/stimulus_phone/weui-actionsheet.js +43 -0
  51. data/app/assets/javascripts/stimulus_phone/weui-datepicker.js +38 -0
  52. data/app/assets/javascripts/stimulus_phone/weui-dialog.js +24 -0
  53. data/app/assets/javascripts/stimulus_phone/weui-picker.js +54 -0
  54. data/app/assets/javascripts/stimulus_phone/wxpay.js +29 -0
  55. data/app/assets/stylesheets/app.scss +3 -0
  56. data/app/assets/stylesheets/ext_bulma/base/_all.scss +5 -0
  57. data/app/assets/stylesheets/ext_bulma/base/_choices.scss +3 -0
  58. data/app/assets/stylesheets/ext_bulma/base/_global.scss +19 -0
  59. data/app/assets/stylesheets/ext_bulma/base/_main.scss +15 -0
  60. data/app/assets/stylesheets/ext_bulma/components/_all.scss +10 -0
  61. data/app/assets/stylesheets/ext_bulma/components/_box.scss +15 -0
  62. data/app/assets/stylesheets/ext_bulma/components/_breadcrumb.scss +17 -0
  63. data/app/assets/stylesheets/ext_bulma/components/_card.scss +12 -0
  64. data/app/assets/stylesheets/ext_bulma/components/_level.scss +8 -0
  65. data/app/assets/stylesheets/ext_bulma/components/_media.scss +14 -0
  66. data/app/assets/stylesheets/ext_bulma/components/_menu.scss +76 -0
  67. data/app/assets/stylesheets/ext_bulma/components/_pagination.scss +9 -0
  68. data/app/assets/stylesheets/ext_bulma/components/_panel.scss +5 -0
  69. data/app/assets/stylesheets/ext_bulma/elements/_all.scss +7 -0
  70. data/app/assets/stylesheets/ext_bulma/elements/_button.scss +14 -0
  71. data/app/assets/stylesheets/ext_bulma/elements/_fa.scss +4 -0
  72. data/app/assets/stylesheets/ext_bulma/elements/_image.scss +38 -0
  73. data/app/assets/stylesheets/ext_bulma/elements/_table.scss +52 -0
  74. data/app/assets/stylesheets/ext_bulma/elements/_title.scss +9 -0
  75. data/app/assets/stylesheets/ext_bulma/expand/_all.scss +2 -0
  76. data/app/assets/stylesheets/ext_bulma/expand/_slide.scss +26 -0
  77. data/app/assets/stylesheets/ext_bulma/expand/_sortable.scss +4 -0
  78. data/app/assets/stylesheets/ext_bulma/form/_all.scss +34 -0
  79. data/app/assets/stylesheets/ext_bulma/form/_checkbox.scss +267 -0
  80. data/app/assets/stylesheets/ext_bulma/form/_file.scss +23 -0
  81. data/app/assets/stylesheets/ext_bulma/form/_select.scss +5 -0
  82. data/app/assets/stylesheets/ext_bulma/form/_tools.scss +30 -0
  83. data/app/assets/stylesheets/ext_bulma/grid/_all.scss +3 -0
  84. data/app/assets/stylesheets/ext_bulma/grid/_columns.scss +13 -0
  85. data/app/assets/stylesheets/ext_bulma/helpers/_all.scss +5 -0
  86. data/app/assets/stylesheets/ext_bulma/helpers/_dot.scss +11 -0
  87. data/app/assets/stylesheets/ext_bulma/helpers/_drawable.scss +3 -0
  88. data/app/assets/stylesheets/ext_bulma/helpers/_grid.scss +10 -0
  89. data/app/assets/stylesheets/ext_bulma/index.scss +22 -0
  90. data/app/assets/stylesheets/ext_bulma/layout/_all.scss +4 -0
  91. data/app/assets/stylesheets/ext_bulma/layout/_footer.scss +4 -0
  92. data/app/assets/stylesheets/ext_bulma/layout/_level.scss +1 -0
  93. data/app/assets/stylesheets/ext_choices/index.scss +16 -0
  94. data/app/assets/stylesheets/ext_font/index.scss +4 -0
  95. data/app/assets/stylesheets/ext_weui/index.scss +24 -0
  96. data/app/assets/stylesheets/ext_weui/widget/_actionsheet.scss +3 -0
  97. data/app/assets/stylesheets/ext_weui/widget/_article.scss +7 -0
  98. data/app/assets/stylesheets/ext_weui/widget/_button.scss +7 -0
  99. data/app/assets/stylesheets/ext_weui/widget/_cell.scss +17 -0
  100. data/app/assets/stylesheets/ext_weui/widget/_form.scss +3 -0
  101. data/app/assets/stylesheets/ext_weui/widget/_half_screen_dialog.scss +10 -0
  102. data/app/assets/stylesheets/ext_weui/widget/_icon.scss +9 -0
  103. data/app/assets/stylesheets/ext_weui/widget/_media.scss +43 -0
  104. data/app/assets/stylesheets/ext_weui/widget/_panel.scss +4 -0
  105. data/app/assets/stylesheets/ext_weui/widget/_preview.scss +5 -0
  106. data/app/assets/stylesheets/ext_weui/widget/_search.scss +5 -0
  107. data/app/assets/stylesheets/ext_weui/widget/_tab.scss +10 -0
  108. data/app/assets/stylesheets/ext_weui/widget/_tabbar.scss +12 -0
  109. data/app/assets/stylesheets/ext_weui/widget/_uploader.scss +14 -0
  110. data/app/assets/stylesheets/phone.scss +6 -0
  111. data/app/assets/stylesheets/slide/index.scss +208 -0
  112. data/app/assets/stylesheets/ui_tooltip/_mixins.scss +46 -0
  113. data/app/assets/stylesheets/ui_tooltip/_variables.scss +5 -0
  114. data/app/assets/stylesheets/ui_tooltip/index.scss +278 -0
  115. data/app/controllers/design/base_controller.rb +4 -0
  116. data/app/controllers/design/home_controller.rb +13 -0
  117. data/app/views/design/home/swipe.html.erb +7 -0
  118. data/app/views/layouts/ui/base.html.erb +5 -0
  119. data/config/routes.rb +11 -0
  120. data/lib/rails_design/config.rb +8 -0
  121. data/lib/rails_design/engine.rb +5 -0
  122. data/lib/rails_design.rb +2 -0
  123. metadata +181 -0
@@ -0,0 +1,3 @@
1
+ .is-drawable:hover {
2
+ cursor: grab;
3
+ }
@@ -0,0 +1,10 @@
1
+ .is-several {
2
+ display: inline-flex;
3
+ }
4
+
5
+ .is-several > * {
6
+ margin-left: .5em;
7
+ }
8
+ .is-several > *:first-child {
9
+ margin-left: 0;
10
+ }
@@ -0,0 +1,22 @@
1
+ @charset "utf-8";
2
+
3
+ @import 'bulma/sass/utilities/all';
4
+
5
+ $table-head-background-color: $white-ter;
6
+
7
+ @import 'bulma/sass/base/all';
8
+ @import 'bulma/sass/elements/all';
9
+ @import 'bulma/sass/form/all';
10
+ @import 'bulma/sass/components/all';
11
+ @import 'bulma/sass/grid/all';
12
+ @import 'bulma/sass/helpers/_all';
13
+ @import 'bulma/sass/layout/all';
14
+
15
+ @import 'base/all';
16
+ @import 'components/all';
17
+ @import 'elements/all';
18
+ @import 'form/all';
19
+ @import 'grid/all';
20
+ @import 'helpers/all';
21
+ @import 'layout/all';
22
+ @import 'expand/all';
@@ -0,0 +1,4 @@
1
+ @charset "utf-8";
2
+
3
+ @import 'footer';
4
+ @import 'level';
@@ -0,0 +1,4 @@
1
+ .column > .footer {
2
+ margin-right: -0.75rem;
3
+ margin-bottom: -0.75rem;
4
+ }
@@ -0,0 +1,16 @@
1
+ @import 'choices.js/src/styles/choices';
2
+
3
+ .#{$choices-selector}__inner {
4
+ min-height: 2.5em;
5
+ height: 2.5em;
6
+ padding-top: 3.5px;
7
+ padding-bottom: 3.5px;
8
+ }
9
+
10
+ .#{$choices-selector}__list--dropdown {
11
+ .#{$choices-selector}__item {
12
+ height: 2.5em;
13
+ padding-top: 7px;
14
+ padding-bottom: 7px;
15
+ }
16
+ }
@@ -0,0 +1,4 @@
1
+ @import '@fortawesome/fontawesome-free/scss/fontawesome';
2
+ @import '@fortawesome/fontawesome-free/scss/regular';
3
+ @import '@fortawesome/fontawesome-free/scss/solid';
4
+ @import '@fortawesome/fontawesome-free/scss/brands';
@@ -0,0 +1,24 @@
1
+ @import 'weui/dist/style/weui';
2
+
3
+ @import 'widget/actionsheet';
4
+ @import 'widget/article';
5
+ @import 'widget/button';
6
+ @import 'widget/cell';
7
+ @import 'widget/form';
8
+ @import 'widget/half_screen_dialog';
9
+ @import 'widget/icon';
10
+ @import 'widget/media';
11
+ @import 'widget/panel';
12
+ @import 'widget/preview';
13
+ @import 'widget/search';
14
+ @import 'widget/tab';
15
+ @import 'widget/tabbar';
16
+ @import 'widget/uploader';
17
+
18
+ html, body {
19
+ height: 100%;
20
+ }
21
+
22
+ .weui-label {
23
+ color: #666;
24
+ }
@@ -0,0 +1,3 @@
1
+ .weui-actionsheet__cell button {
2
+ font-size: 17px;
3
+ }
@@ -0,0 +1,7 @@
1
+ .weui-article h1 {
2
+ margin-top: .9em;
3
+ text-align: center;
4
+ }
5
+ .weui-article img {
6
+ display: block;
7
+ }
@@ -0,0 +1,7 @@
1
+ .weui-btn__extra {
2
+ font-weight: lighter;
3
+ }
4
+
5
+ .weui-cells__group_form button.weui-vcode-btn[disabled] {
6
+ color: var(--weui-BTN-DISABLED-FONT-COLOR);
7
+ }
@@ -0,0 +1,17 @@
1
+ .weui-cell_disabled {
2
+ opacity: .5;
3
+ }
4
+
5
+ .weui-cell__hd img.avatar {
6
+ width: 45px;
7
+ padding-right: 16px;
8
+ }
9
+
10
+ .weui-cell .weui-select {
11
+ height: auto;
12
+ line-height: normal;
13
+ }
14
+
15
+ .weui-cell__hd + .weui-cell__bd {
16
+ padding-left: .25em;
17
+ }
@@ -0,0 +1,3 @@
1
+ .weui-form_normal {
2
+ min-height: auto;
3
+ }
@@ -0,0 +1,10 @@
1
+ .weui-half-screen-dialog {
2
+ background-color: var(--weui-BG-3);
3
+ border-top-left-radius: 0;
4
+ border-top-right-radius: 0;
5
+ }
6
+
7
+ .weui-half-screen-dialog__bd .weui-form {
8
+ background-color: unset;
9
+ padding-top: 0;
10
+ }
@@ -0,0 +1,9 @@
1
+ .weui-tabbar__icon .weui-badge {
2
+ position: absolute;
3
+ top: -.4em;
4
+ right: -.4em;
5
+ }
6
+
7
+ .fa-shopping-cart.weui-tabbar__icon {
8
+ position: relative;
9
+ }
@@ -0,0 +1,43 @@
1
+ .weui-media-box_appmsg {
2
+ .weui-media-box__hd {
3
+ height: auto;
4
+ }
5
+ }
6
+
7
+ .weui-media-box {
8
+ padding-right: 0;
9
+ }
10
+
11
+ .weui-media-box__bd {
12
+ padding-right: 16px;
13
+ }
14
+
15
+ .weui-media-box__ft {
16
+ display: flex;
17
+ align-items: center;
18
+ max-width: max-content;
19
+ align-self: stretch;
20
+ margin-top: -16px;
21
+ margin-bottom: -16px;
22
+
23
+ .weui-btn {
24
+ border-radius: 0;
25
+ white-space: nowrap;
26
+ width: max-content;
27
+ height: 100%;
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ margin-top: 1px;
32
+ margin-bottom: 1px;
33
+ }
34
+ .weui-btn:not(.weui-btn_mini) + .weui-btn:not(.weui-btn_mini) {
35
+ margin-top: 0;
36
+ }
37
+ }
38
+
39
+ .weui-media-box__ft.x {
40
+ width: 0;
41
+ display: none;
42
+ transition: width 1s linear;
43
+ }
@@ -0,0 +1,4 @@
1
+ .weui-panel__extra {
2
+ color: grey;
3
+ font-weight: lighter;
4
+ }
@@ -0,0 +1,5 @@
1
+ .weui-form-preview__item {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: space-between;
5
+ }
@@ -0,0 +1,5 @@
1
+ .weui-search-bar__box {
2
+ .weui-icon-clear {
3
+ box-sizing: content-box;
4
+ }
5
+ }
@@ -0,0 +1,10 @@
1
+ .weui-tab__panel > :first-child {
2
+ margin-top: 0;
3
+ }
4
+
5
+ .weui-tab__panel {
6
+ overflow-y: auto;
7
+ overflow-x: visible;
8
+ margin-bottom: 60px;
9
+ -webkit-overflow-scrolling: auto; // fix ios safari z-index with fixed bug
10
+ }
@@ -0,0 +1,12 @@
1
+ .weui-tabbar_fixed {
2
+ position: fixed;
3
+ bottom: 0;
4
+ width: 100%;
5
+ }
6
+
7
+ .weui-tabbar__content {
8
+ font-size: medium;
9
+ height: 100%;
10
+ display: flex;
11
+ align-items: center;
12
+ }
@@ -0,0 +1,14 @@
1
+ .weui-uploader__input-box:only-child {
2
+ width: 100%;
3
+ height: auto;
4
+
5
+ .weui-uploader__preview {
6
+ opacity:0.6;
7
+ filter: alpha(opacity=60);
8
+ }
9
+
10
+ &:before,
11
+ &:after {
12
+ background-color: black;
13
+ }
14
+ }
@@ -0,0 +1,6 @@
1
+ @import 'ext_weui';
2
+ @import 'ext_bulma';
3
+
4
+ html {
5
+ overflow-y: auto;
6
+ }
@@ -0,0 +1,208 @@
1
+ // Main
2
+ $border-size: 10px;
3
+ $slider-inner-width: 916px - 2*$border-size;
4
+ $slider-inner-height: 483px - 2*$border-size;
5
+ $slider-main-color: #71ad37;
6
+ $slider-back-color: #3A3A3A;
7
+ $max-slides: 10;
8
+
9
+ // Dot
10
+ $dot-outer-size: 4px;
11
+ $dot-inner-size: 6px;
12
+ $dot-distance: 4px;
13
+ $dot-distance-top: 10px;
14
+ $dot-main-color: $slider-main-color;
15
+ $dot-back-color: $slider-back-color;
16
+
17
+ // Arrow
18
+ $arrow-type: 'lite'; // standard | lite
19
+ $arrow-size: 13px;
20
+ $arrow-distance: 15px;
21
+ $arrow-hover-shift: 0px;
22
+ $arrow-color: $slider-back-color;
23
+ $arrow-hover-color: $slider-main-color;
24
+ $arrow-thickness: 2px;
25
+ $arrow-thickness-hover: 3px;
26
+
27
+ $speed: .5s;
28
+ $easing: cubic-bezier(.4,1.3,.65,1); // ease-out
29
+
30
+ .css_slide {
31
+ perspective: 1300px;
32
+ display: inline-block;
33
+ text-align: left;
34
+ position: relative;
35
+ margin-bottom: $dot-distance + $dot-distance-top + 2 * $dot-outer-size;
36
+
37
+ > input {
38
+ display: none;
39
+
40
+ @for $index from 1 through $max-slides {
41
+ &:nth-of-type(#{$index}):checked ~ ul li:first-of-type {
42
+ margin-left: -100% * ($index - 1);
43
+ }
44
+ }
45
+ }
46
+
47
+ > ul {
48
+ position: relative;
49
+ width: $slider-inner-width + 2 * $border-size;
50
+ height: $slider-inner-height + 2 * $border-size;
51
+ z-index: 1;
52
+ font-size: 0;
53
+ line-height: 0;
54
+ background-color: $slider-back-color;
55
+ border: $border-size solid $slider-back-color;
56
+ margin: 0 auto;
57
+ padding: 0;
58
+ overflow: hidden;
59
+ white-space: nowrap;
60
+ -moz-box-sizing: border-box;
61
+ -webkit-box-sizing: border-box;
62
+ box-sizing: border-box;
63
+
64
+ > li {
65
+ position: relative;
66
+ display: inline-block;
67
+ width: 100%;
68
+ height: 100%;
69
+ overflow: hidden;
70
+ font-size: 15px;
71
+ line-height: normal;
72
+ transition: all $speed $easing;
73
+ vertical-align: top;
74
+ -moz-box-sizing: border-box;
75
+ -webkit-box-sizing: border-box;
76
+ box-sizing: border-box;
77
+ white-space: normal;
78
+
79
+ &.scrollable {
80
+ overflow-y: scroll;
81
+ }
82
+ }
83
+ }
84
+
85
+ > .navigation {
86
+ position: absolute;
87
+ bottom: -2 * $dot-outer-size;
88
+ left: 50%;
89
+ z-index: 10;
90
+ margin-bottom: -$dot-distance-top;
91
+ font-size: 0;
92
+ line-height: 0;
93
+ text-align: center;
94
+ @include noSelect();
95
+
96
+ > div {
97
+ margin-left: -100%;
98
+ }
99
+
100
+ label {
101
+ position: relative;
102
+ display: inline-block;
103
+ cursor: pointer;
104
+ border-radius: 50%;
105
+ margin: 0 $dot-distance;
106
+ padding: $dot-outer-size;
107
+ background: $dot-back-color;
108
+
109
+ &:hover:after {
110
+ opacity: 1;
111
+ }
112
+
113
+ &:after {
114
+ content: '';
115
+ position: absolute;
116
+ left: 50%;
117
+ top: 50%;
118
+ margin-left: -$dot-inner-size;
119
+ margin-top: -$dot-inner-size;
120
+ background: $dot-main-color;
121
+ border-radius: 50%;
122
+ padding: $dot-inner-size;
123
+ opacity: 0;
124
+ }
125
+ }
126
+ }
127
+
128
+ > .arrows {
129
+ @include noSelect();
130
+
131
+ .goto-first,
132
+ .goto-last {
133
+
134
+ }
135
+ }
136
+
137
+ &.inside .navigation {
138
+ bottom: $border-size;
139
+ margin-bottom: $dot-distance-top;
140
+
141
+ label {
142
+ border: 1px solid #7e7e7e;
143
+ }
144
+ }
145
+
146
+ @for $index from 1 through $max-slides {
147
+ input:nth-of-type(#{$index}):checked ~ .navigation label:nth-of-type(#{$index}):after {
148
+ opacity: 1;
149
+ }
150
+ }
151
+
152
+ // Left conditions
153
+ .infinity > input:first-of-type:checked ~ .arrows label.goto-last,
154
+ @for $index from 1 through $max-slides {
155
+ input:nth-of-type(#{$index}):checked ~ .arrows > label:nth-of-type(#{$index - 1}),
156
+ } {
157
+ display: block;
158
+ left: 0;
159
+ right: auto;
160
+ transform: rotate(45deg);
161
+ }
162
+
163
+ // Right conditions
164
+ .infinity > input:last-of-type:checked ~ .arrows label.goto-first,
165
+ @for $index from 1 through $max-slides {
166
+ input:nth-of-type(#{$index}):checked ~ .arrows > label:nth-of-type(#{$index + 1}),
167
+ } {
168
+ display: block;
169
+ right: 0;
170
+ left: auto;
171
+ transform: rotate(225deg);
172
+ }
173
+
174
+ // 左右箭头
175
+ .arrows {
176
+ -webkit-touch-callout: none;
177
+ user-select: none;
178
+ position: absolute;
179
+ left: -$arrow-size - 3px - $arrow-distance;
180
+ top: 50%;
181
+ width: 100%;
182
+ height: 2 * $arrow-size;
183
+ padding: 0 $arrow-size + 3px + $arrow-distance;
184
+ z-index: 0;
185
+ box-sizing: content-box;
186
+ label {
187
+ display: none;
188
+ position: absolute;
189
+ top: -50%;
190
+ padding: $arrow-size;
191
+ box-shadow: inset $arrow-thickness -$arrow-thickness 0 ($arrow-thickness - 1px) $arrow-color;
192
+ cursor: pointer;
193
+ transition: box-shadow .15s, margin .15s;
194
+ &:hover {
195
+ box-shadow: inset $arrow-thickness-hover -$arrow-thickness-hover 0 ($arrow-thickness-hover - 1px) $arrow-hover-color;
196
+ margin: 0 -$arrow-hover-shift;
197
+ }
198
+ &:before {
199
+ content: '';
200
+ position: absolute;
201
+ top: -100%;
202
+ left: -100%;
203
+ height: 300%;
204
+ width: 300%;
205
+ }
206
+ }
207
+ }
208
+ }