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 / ScssMenuMapper.php

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

174 lines 6.2 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 ScssMenuMapper extends ScssMapper {
7
8 public function map(OptionsCollection $options) {
9
10 $css = <<<CSS
11
12 @media screen and ( max-width: {$options['breakpoint']}px ) {
13
14 @if '{$options['menu_close_on_body_click']}' == 'on' {
15 html.responsive-menu-open {
16 cursor: pointer;
17 #responsive-menu-container {
18 cursor: initial;
19 }
20 }
21 }
22
23 @if '{$options['page_wrapper']}' != '' {
24 & {$options['page_wrapper']} {
25 transition: transform {$options['animation_speed']}s;
26 }
27 html.responsive-menu-open,
28 .responsive-menu-open body {
29 width: 100%;
30 }
31 }
32
33 #responsive-menu-container {
34 width: {$options['menu_width']}%;
35 {$options['menu_appear_from']}: 0;
36 background: {$options['menu_background_colour']};
37 transition: transform {$options['animation_speed']}s;
38 text-align: {$options['menu_text_alignment']};
39
40 & #responsive-menu-wrapper {
41 background: {$options['menu_background_colour']};
42 }
43
44 #responsive-menu-additional-content {
45 color: {$options['menu_additional_content_colour']};
46 }
47
48 .responsive-menu-search-box {
49 background: {$options['menu_search_box_background_colour']};
50 border: 2px solid {$options['menu_search_box_border_colour']};
51 color: {$options['menu_search_box_text_colour']};
52 &:-ms-input-placeholder {
53 color: {$options['menu_search_box_placholder_colour']};
54 }
55 &:-webkit-input-placeholder {
56 color: {$options['menu_search_box_placholder_colour']};
57 }
58 &:-moz-placeholder {
59 color: {$options['menu_search_box_placholder_colour']};
60 opacity: 1;
61 }
62 &::-moz-placeholder {
63 color: {$options['menu_search_box_placholder_colour']};
64 opacity: 1;
65 }
66 }
67
68 @if '{$options['menu_maximum_width']}' != '' {
69 max-width: {$options['menu_maximum_width']}px;
70 }
71 @if '{$options['menu_minimum_width']}' != '' {
72 min-width: {$options['menu_minimum_width']}px;
73 }
74
75 @if '{$options['menu_font']}' != '' {
76 font-family: '{$options['menu_font']}';
77 }
78
79 & .responsive-menu-item-link, & #responsive-menu-title, & .responsive-menu-subarrow {
80 transition: background-color {$options['transition_speed']}s, border-color {$options['transition_speed']}s, color {$options['transition_speed']}s;
81 }
82
83 #responsive-menu-title {
84 background-color: {$options['menu_title_background_colour']};
85 color: {$options['menu_title_colour']};
86 font-size: {$options['menu_title_font_size']}px;
87 a {
88 color: {$options['menu_title_colour']};
89 font-size: {$options['menu_title_font_size']}px;
90 text-decoration: none;
91 &:hover {
92 color: {$options['menu_title_hover_colour']};
93 }
94 }
95 &:hover {
96 background-color: {$options['menu_title_background_hover_colour']};
97 color: {$options['menu_title_hover_colour']};
98 a {
99 color: {$options['menu_title_hover_colour']};
100 }
101 }
102 #responsive-menu-title-image {
103 display: inline-block;
104 vertical-align: middle;
105 margin-right: 15px;
106 }
107 }
108
109 #responsive-menu {
110
111 li.responsive-menu-item {
112 .responsive-menu-item-link {
113 font-size: {$options['menu_font_size']}px;
114 }
115 a {
116 line-height: {$options['menu_links_height']}px;
117 border-top: 1px solid {$options['menu_item_border_colour']};
118 border-bottom: 1px solid {$options['menu_item_border_colour']};
119 color: {$options['menu_link_colour']};
120 background-color: {$options['menu_item_background_colour']};
121 &:hover {
122 color: {$options['menu_link_hover_colour']};
123 background-color: {$options['menu_item_background_hover_colour']};
124 border-color: {$options['menu_item_border_colour_hover']};
125 .responsive-menu-subarrow {
126 color: {$options['menu_sub_arrow_shape_hover_colour']};
127 border-color: {$options['menu_sub_arrow_border_hover_colour']};
128 background-color: {$options['menu_sub_arrow_background_hover_colour']};
129 }
130 }
131
132 .responsive-menu-subarrow {
133 {$options['arrow_position']}: 0;
134 height: {$options['submenu_arrow_height']}px;
135 line-height: {$options['submenu_arrow_height']}px;
136 width: {$options['submenu_arrow_width']}px;
137 color: {$options['menu_sub_arrow_shape_colour']};
138 border-left: 1px solid {$options['menu_sub_arrow_border_colour']};
139 background-color: {$options['menu_sub_arrow_background_colour']};
140
141 &:hover {
142 color: {$options['menu_sub_arrow_shape_hover_colour']};
143 border-color: {$options['menu_sub_arrow_border_hover_colour']};
144 background-color: {$options['menu_sub_arrow_background_hover_colour']};
145 }
146 }
147 }
148 &.responsive-menu-current-item > .responsive-menu-item-link {
149 background-color: {$options['menu_current_item_background_colour']};
150 color: {$options['menu_current_link_colour']};
151 border-color: {$options['menu_current_item_border_colour']};
152 &:hover {
153 background-color: {$options['menu_current_item_background_hover_colour']};
154 color: {$options['menu_current_link_hover_colour']};
155 border-color: {$options['menu_current_item_border_hover_colour']};
156 }
157 }
158 }
159 }
160 }
161 @if '{$options['menu_to_hide']}' != '' {
162 & {$options['menu_to_hide']} {
163 display: none;
164 }
165 }
166 }
167
168 CSS;
169
170 return $this->compiler->compile($css);
171 }
172
173 }
174