PluginProbe
Responsive Menu – Create Mobile-Friendly Menu / 3.0.11
Responsive Menu – Create Mobile-Friendly Menu v3.0.11
4.7.3 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 All 90 releases
responsive-menu / src / app / Mappers / ScssBaseMapper.php

ScssBaseMapper.php in Responsive Menu – Create Mobile-Friendly Menu 3.0.11, at src/app/Mappers/ScssBaseMapper.php

201 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ResponsiveMenu\Mappers;
4 use ResponsiveMenu\Collections\OptionsCollection;
5
6 class ScssBaseMapper extends ScssMapper {
7
8 public function map(OptionsCollection $options) {
9
10 $css = <<<CSS
11
12 button#responsive-menu-button,
13 #responsive-menu-container {
14 display: none;
15 -webkit-text-size-adjust: 100%;
16 }
17
18 @media screen and (max-width: {$options['breakpoint']}px) {
19
20 #responsive-menu-container {
21 display: block;
22 }
23
24 #responsive-menu-container {
25 position: fixed;
26 top: 0;
27 bottom: 0;
28 z-index: 99998;
29 /* Fix for scroll bars appearing when not needed */
30 padding-bottom: 5px;
31 margin-bottom: -5px;
32 overflow-y: auto;
33 overflow-x: hidden;
34 .responsive-menu-search-box {
35 width: 100%;
36 padding: 0 2%;
37 border-radius: 2px;
38 height: 50px;
39 -webkit-appearance: none;
40 }
41
42 &.push-left,
43 &.slide-left {
44 transform: translateX(-100%);
45 -ms-transform: translateX(-100%);
46 -webkit-transform: translateX(-100%);
47 -moz-transform: translateX(-100%);
48 .responsive-menu-open & {
49 transform: translateX(0);
50 -ms-transform: translateX(0);
51 -webkit-transform: translateX(0);
52 -moz-transform: translateX(0);
53 }
54 }
55
56 &.push-top,
57 &.slide-top {
58 transform: translateY(-100%);
59 -ms-transform: translateY(-100%);
60 -webkit-transform: translateY(-100%);
61 -moz-transform: translateY(-100%);
62 .responsive-menu-open & {
63 transform: translateY(0);
64 -ms-transform: translateY(0);
65 -webkit-transform: translateY(0);
66 -moz-transform: translateY(0);
67 }
68 }
69
70 &.push-right,
71 &.slide-right {
72 transform: translateX(100%);
73 -ms-transform: translateX(100%);
74 -webkit-transform: translateX(100%);
75 -moz-transform: translateX(100%);
76 .responsive-menu-open & {
77 transform: translateX(0);
78 -ms-transform: translateX(0);
79 -webkit-transform: translateX(0);
80 -moz-transform: translateX(0);
81 }
82 }
83
84 &.push-bottom,
85 &.slide-bottom {
86 transform: translateY(100%);
87 -ms-transform: translateY(100%);
88 -webkit-transform: translateY(100%);
89 -moz-transform: translateY(100%);
90 .responsive-menu-open & {
91 transform: translateY(0);
92 -ms-transform: translateY(0);
93 -webkit-transform: translateY(0);
94 -moz-transform: translateY(0);
95 }
96 }
97
98 // Reset Styles for all our elements
99 &, &:before, &:after, & *, & *:before, & *:after {
100 box-sizing: border-box;
101 margin: 0;
102 padding: 0;
103 }
104
105 #responsive-menu-search-box,
106 #responsive-menu-additional-content,
107 #responsive-menu-title {
108 padding: 25px 5%;
109 }
110
111 #responsive-menu {
112 &, ul {
113 width: 100%;
114 }
115 & ul.responsive-menu-submenu {
116 display: none;
117 &.responsive-menu-submenu-open {
118 display: block;
119 }
120 }
121 @for \$i from 1 through 6 {
122 & ul.responsive-menu-submenu-depth-#{\$i}
123 a.responsive-menu-item-link {
124 padding-{$options['menu_text_alignment']}: 5% + (5% * \$i);
125 }
126 }
127
128 }
129
130 li.responsive-menu-item {
131 width: 100%;
132 list-style: none;
133 a {
134 width: 100%;
135 display: block;
136 text-decoration: none;
137 padding: 0 5%;
138 position: relative;
139 .fa {
140 margin-right: 15px;
141 }
142 .responsive-menu-subarrow {
143 position: absolute;
144 top: 0;
145 bottom: 0;
146 text-align: center;
147 overflow: hidden;
148 .fa {
149 margin-right: 0;
150 }
151 }
152 }
153 }
154 }
155
156 button#responsive-menu-button {
157 .responsive-menu-button-icon-inactive {
158 display: none;
159 }
160 }
161
162 button#responsive-menu-button {
163 z-index: 99999;
164 display: none;
165 overflow: hidden;
166 img {
167 max-width: 100%;
168 }
169 }
170
171 .responsive-menu-label {
172 display: inline-block;
173 font-weight: 600;
174 margin: 0 5px;
175 vertical-align: middle;
176 }
177
178 .responsive-menu-accessible {
179 display: inline-block;
180 }
181
182 .responsive-menu-accessible .responsive-menu-box {
183 display: inline-block;
184 vertical-align: middle;
185 }
186
187 .responsive-menu-label.responsive-menu-label-top,
188 .responsive-menu-label.responsive-menu-label-bottom
189 {
190 display: block;
191 margin: 0 auto;
192 }
193
194 }
195 CSS;
196
197 return $this->compiler->compile($css);
198 }
199
200 }
201