PluginProbe
Borderless – Addons and Templates for Elementor / 1.4.9
Borderless – Addons and Templates for Elementor v1.4.9
trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 All 78 releases
borderless / modules / elementor / widgets / hero.php

hero.php in Borderless – Addons and Templates for Elementor 1.4.9, at modules/elementor/widgets/hero.php

1,563 lines 44.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Borderless\Widgets;
4
5 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
6
7 use Elementor\Widget_Base;
8 use Elementor\Controls_Manager;
9 use Elementor\Group_Control_Border;
10 use Elementor\Group_Control_Box_Shadow;
11 use Elementor\Group_Control_Image_Size;
12 use \Elementor\Group_Control_Typography;
13 use \Elementor\Group_Control_Background;
14 use \Elementor\Group_Control_Text_Stroke;
15 use \Elementor\Group_Control_Text_Shadow;
16 use \Elementor\Group_Control_Css_Filter;
17 use \Elementor\Core\Schemes\Typography;
18 use Elementor\Icons_Manager;
19 use \Elementor\Repeater;
20 use Elementor\Utils;
21
22 class Hero extends Widget_Base {
23
24 public function get_name() {
25 return 'borderless-elementor-hero';
26 }
27
28 public function get_title() {
29 return 'Hero';
30 }
31
32 public function get_icon() {
33 return 'borderless-icon-hero';
34 }
35
36 public function get_categories() {
37 return [ 'borderless' ];
38 }
39
40 public function get_keywords()
41 {
42 return [
43 'hero',
44 'title',
45 'title hero',
46 'borderless'
47 ];
48 }
49
50 public function get_style_depends() {
51 return
52 [
53 'borderless-elementor-style',
54 'elementor-widget-hero'
55 ];
56 }
57
58 public function get_custom_help_url()
59 {
60 return 'https://visualmodo.com/';
61 }
62
63 protected function _register_controls() {
64
65 /*-----------------------------------------------------------------------------------*/
66 /* *. Hero - Content
67 /*-----------------------------------------------------------------------------------*/
68
69 $this->start_controls_section(
70 'borderless_elementor_section_hero_content',
71 [
72 'label' => esc_html__( 'Content', 'borderless' ),
73 'tab' => Controls_Manager::TAB_CONTENT,
74 ]
75 );
76
77 $this->add_control(
78 'borderless_elementor_hero_title',
79 [
80 'label' => esc_html__( 'Title', 'borderless'),
81 'type' => Controls_Manager::TEXT,
82 'default' => esc_html__( 'Enter Your Title', 'borderless' ),
83 'label_block' => true,
84 'dynamic' => [ 'active' => true ]
85 ]
86 );
87
88 $this->add_control(
89 'borderless_elementor_hero_subtitle',
90 [
91 'label' => esc_html__( 'Subtitle', 'borderless'),
92 'type' => Controls_Manager::TEXT,
93 'default' => esc_html__( 'Enter Your Subtitle', 'borderless' ),
94 'label_block' => true,
95 'dynamic' => [ 'active' => true ]
96 ]
97 );
98
99 $repeater = new Repeater();
100
101 $repeater->start_controls_tabs( 'borderless_elementor_tabs_hero_button_repeater' );
102
103 $repeater->start_controls_tab( 'borderless_elementor_tab_hero_button_content', [ 'label' => __( 'Content', 'borderless' ) ] );
104
105 $repeater->add_control(
106 'borderless_elementor_hero_button_item_text',
107 [
108 'label' => esc_html__( 'Button Text', 'borderless'),
109 'type' => Controls_Manager::TEXT,
110 'dynamic' => [ 'active' => true ]
111 ]
112 );
113
114 $repeater->add_control(
115 'borderless_elementor_hero_button_item_link',
116 array(
117 'label' => esc_html__( 'Button Link', 'borderless' ),
118 'type' => Controls_Manager::URL,
119 'default' => array( 'url' => '#' ),
120 'dynamic' => array( 'active' => true ),
121 )
122 );
123
124 $repeater->add_control(
125 'borderless_elementor_hero_button_item_icon',
126 [
127 'label' => esc_html__( 'Icon', 'borderless' ),
128 'type' => Controls_Manager::ICONS,
129 'fa4compatibility' => 'icon',
130 'skin' => 'inline',
131 'label_block' => false,
132 ]
133 );
134
135 $repeater->add_control(
136 'borderless_elementor_hero_button_item_icon_align',
137 [
138 'label' => esc_html__( 'Icon Position', 'borderless' ),
139 'type' => Controls_Manager::SELECT,
140 'default' => 'left',
141 'options' => [
142 'left' => esc_html__( 'Before', 'borderless' ),
143 'right' => esc_html__( 'After', 'borderless' ),
144 ],
145 ]
146 );
147
148 $repeater->add_responsive_control(
149 'borderless_elementor_hero_button_item_icon_indent',
150 [
151 'label' => __( 'Icon Spacing', 'borderless' ),
152 'type' => \Elementor\Controls_Manager::NUMBER,
153 'min' => 0,
154 'max' => 100,
155 'step' => 1,
156 'default' => 10,
157 'selectors' => [
158 '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}' => 'gap: {{VALUE}}px',
159 ],
160 ]
161 );
162
163 $repeater->end_controls_tab();
164
165 $repeater->start_controls_tab( 'borderless_elementor_tab_hero_button_style', [ 'label' => __( 'Style', 'borderless' ) ] );
166
167 $repeater->add_control(
168 'borderless_elementor_hero_button_custom_style',
169 [
170 'label' => __( 'Custom', 'borderless' ),
171 'type' => Controls_Manager::SWITCHER,
172 'description' => __( 'Set custom style that will only affect this specific button.', 'borderless' ),
173 ]
174 );
175
176 $repeater->add_group_control(
177 Group_Control_Typography::get_type(),
178 [
179 'name' => 'borderless_elementor_hero_button_typography_custom',
180 'label' => __('Typography', 'borderless'),
181 'selector' => '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}',
182 'conditions' => [
183 'terms' => [
184 [
185 'name' => 'borderless_elementor_hero_button_custom_style',
186 'value' => 'yes',
187 ],
188 ],
189 ],
190 ]
191 );
192
193 $repeater->add_group_control(
194 Group_Control_Text_Shadow::get_type(),
195 [
196 'name' => 'borderless_elementor_hero_button_text_shadow_custom',
197 'selector' => '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}',
198 'conditions' => [
199 'terms' => [
200 [
201 'name' => 'borderless_elementor_hero_button_custom_style',
202 'value' => 'yes',
203 ],
204 ],
205 ],
206 ]
207 );
208
209 $repeater->add_control(
210 'borderless_elementor_hero_button_heading_normal_custom',
211 [
212 'label' => esc_html__( 'Normal', 'borderless' ),
213 'type' => \Elementor\Controls_Manager::HEADING,
214 'separator' => 'before',
215 'conditions' => [
216 'terms' => [
217 [
218 'name' => 'borderless_elementor_hero_button_custom_style',
219 'value' => 'yes',
220 ],
221 ],
222 ],
223 ]
224 );
225
226 $repeater->add_control(
227 'borderless_elementor_hero_button_text_color_custom',
228 [
229 'label' => __( 'Text Color', 'borderless' ),
230 'type' => Controls_Manager::COLOR,
231 'selectors' => [
232 '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}' => 'color: {{VALUE}};',
233 ],
234 'conditions' => [
235 'terms' => [
236 [
237 'name' => 'borderless_elementor_hero_button_custom_style',
238 'value' => 'yes',
239 ],
240 ],
241 ],
242 ]
243 );
244
245 $repeater->add_group_control(
246 Group_Control_Background::get_type(),
247 [
248 'name' => 'borderless_elementor_hero_button_background_custom',
249 'label' => __( 'Background', 'borderless' ),
250 'types' => [ 'classic', 'gradient' ],
251 'exclude' => [ 'image' ],
252 'selector' => '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}',
253 'conditions' => [
254 'terms' => [
255 [
256 'name' => 'borderless_elementor_hero_button_custom_style',
257 'value' => 'yes',
258 ],
259 ],
260 ],
261 ]
262 );
263
264 $repeater->add_control(
265 'borderless_elementor_hero_button_heading_hover_custom',
266 [
267 'label' => esc_html__( 'Hover', 'borderless' ),
268 'type' => \Elementor\Controls_Manager::HEADING,
269 'separator' => 'before',
270 'conditions' => [
271 'terms' => [
272 [
273 'name' => 'borderless_elementor_hero_button_custom_style',
274 'value' => 'yes',
275 ],
276 ],
277 ],
278 ]
279 );
280
281 $repeater->add_control(
282 'borderless_elementor_hero_button_text_color_hover_custom',
283 [
284 'label' => __( 'Hover Text Color', 'borderless' ),
285 'type' => Controls_Manager::COLOR,
286 'selectors' => [
287 '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}:hover' => 'color: {{VALUE}};',
288 ],
289 'conditions' => [
290 'terms' => [
291 [
292 'name' => 'borderless_elementor_hero_button_custom_style',
293 'value' => 'yes',
294 ],
295 ],
296 ],
297 ]
298 );
299
300 $repeater->add_group_control(
301 Group_Control_Background::get_type(),
302 [
303 'name' => 'borderless_elementor_hero_button_background_hover_custom',
304 'label' => __( 'Hover Background', 'borderless' ),
305 'types' => [ 'classic', 'gradient' ],
306 'exclude' => [ 'image' ],
307 'selector' => '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}:hover',
308 'conditions' => [
309 'terms' => [
310 [
311 'name' => 'borderless_elementor_hero_button_custom_style',
312 'value' => 'yes',
313 ],
314 ],
315 ],
316 ]
317 );
318
319 $repeater->add_control(
320 'borderless_elementor_hero_button_border_color_hover_custom',
321 [
322 'label' => __( 'Hover Border Color', 'borderless' ),
323 'type' => Controls_Manager::COLOR,
324 'selectors' => [
325 '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}:hover' => 'border-color: {{VALUE}};',
326 ],
327 'conditions' => [
328 'terms' => [
329 [
330 'name' => 'borderless_elementor_hero_button_custom_style',
331 'value' => 'yes',
332 ],
333 ],
334 ],
335 ]
336 );
337
338 $repeater->add_group_control(
339 Group_Control_Border::get_type(),
340 [
341 'name' => 'borderless_elementor_hero_button_border_custom',
342 'label' => esc_html__( 'Border', 'borderless'),
343 'selector' => '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}',
344 'separator' => 'before',
345 'conditions' => [
346 'terms' => [
347 [
348 'name' => 'borderless_elementor_hero_button_custom_style',
349 'value' => 'yes',
350 ],
351 ],
352 ],
353 ]
354 );
355
356 $repeater->add_control(
357 'borderless_elementor_hero_button_border_radius_custom',
358 [
359 'label' => esc_html__( 'Border Radius', 'borderless'),
360 'type' => Controls_Manager::DIMENSIONS,
361 'size_units' => [ 'px', '%', 'em' ],
362 'selectors' => [
363 '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
364 ],
365 'conditions' => [
366 'terms' => [
367 [
368 'name' => 'borderless_elementor_hero_button_custom_style',
369 'value' => 'yes',
370 ],
371 ],
372 ],
373 ]
374 );
375
376 $repeater->add_group_control(
377 Group_Control_Box_Shadow::get_type(),
378 [
379 'name' => 'borderless_elementor_hero_button_box_shadow_custom',
380 'selector' => '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}',
381 'conditions' => [
382 'terms' => [
383 [
384 'name' => 'borderless_elementor_hero_button_custom_style',
385 'value' => 'yes',
386 ],
387 ],
388 ],
389 ]
390 );
391
392 $repeater->add_responsive_control(
393 'borderless_elementor_hero_button_padding_custom',
394 [
395 'label' => esc_html__( 'Padding', 'borderless'),
396 'type' => Controls_Manager::DIMENSIONS,
397 'separator' => 'before',
398 'size_units' => [ 'px', 'em', '%' ],
399 'selectors' => [
400 '{{WRAPPER}} .borderless-elementor-hero {{CURRENT_ITEM}}' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
401 ],
402 'conditions' => [
403 'terms' => [
404 [
405 'name' => 'borderless_elementor_hero_button_custom_style',
406 'value' => 'yes',
407 ],
408 ],
409 ],
410 ]
411 );
412
413 $repeater->end_controls_tab();
414
415 $repeater->end_controls_tabs();
416
417 $this->add_control(
418 'borderless_elementor_hero_button_item_strings',
419 [
420 'type' => Controls_Manager::REPEATER,
421 'show_label' => true,
422 'fields' => $repeater->get_controls(),
423 'title_field' => '{{ borderless_elementor_hero_button_item_text }}',
424 'default' => [
425 ['borderless_elementor_hero_button_item_text' => esc_html__('Button', 'borderless')],
426 ],
427 ]
428 );
429
430 $this->end_controls_section();
431
432
433
434 /*-----------------------------------------------------------------------------------*/
435 /* *. Hero/Settings - Content
436 /*-----------------------------------------------------------------------------------*/
437
438 $this->start_controls_section(
439 'borderless_elementor_section_hero_settings',
440 [
441 'label' => esc_html__( 'Settings', 'borderless' ),
442 'tab' => Controls_Manager::TAB_CONTENT,
443 ]
444 );
445
446 $this->add_control(
447 'borderless_elementor_hero_show_title',
448 [
449 'label' => __( 'Show Title', 'borderless' ),
450 'type' => \Elementor\Controls_Manager::SWITCHER,
451 'return_value' => 'true',
452 'default' => 'true',
453 ]
454 );
455
456 $this->add_control(
457 'borderless_elementor_hero_show_subtitle',
458 [
459 'label' => __( 'Show Subtitle', 'borderless' ),
460 'type' => \Elementor\Controls_Manager::SWITCHER,
461 'return_value' => 'true',
462 'default' => 'true',
463 ]
464 );
465
466 $this->add_control(
467 'borderless_elementor_hero_show_buttons',
468 [
469 'label' => __( 'Show Buttons', 'borderless' ),
470 'type' => \Elementor\Controls_Manager::SWITCHER,
471 'return_value' => 'true',
472 'default' => '',
473 ]
474 );
475
476 $this->add_control(
477 'borderless_elementor_hero_title_html_tag',
478 [
479 'label' => esc_html__( 'Title HTML Tag', 'borderless' ),
480 'type' => Controls_Manager::SELECT,
481 'options' => [
482 'h1' => 'H1',
483 'h2' => 'H2',
484 'h3' => 'H3',
485 'h4' => 'H4',
486 'h5' => 'H5',
487 'h6' => 'H6',
488 'div' => 'div',
489 'span' => 'span',
490 'p' => 'p',
491 ],
492 'default' => 'h1',
493 'condition' => array(
494 'borderless_elementor_hero_show_title' => 'true',
495 ),
496 ]
497 );
498
499 $this->add_control(
500 'borderless_elementor_hero_subtitle_html_tag',
501 [
502 'label' => esc_html__( 'Subtitle HTML Tag', 'borderless' ),
503 'type' => Controls_Manager::SELECT,
504 'options' => [
505 'h1' => 'H1',
506 'h2' => 'H2',
507 'h3' => 'H3',
508 'h4' => 'H4',
509 'h5' => 'H5',
510 'h6' => 'H6',
511 'div' => 'div',
512 'span' => 'span',
513 'p' => 'p',
514 ],
515 'default' => 'span',
516 'condition' => array(
517 'borderless_elementor_hero_show_subtitle' => 'true',
518 ),
519 ]
520 );
521
522 $this->add_control(
523 'borderless_elementor_hero_animation',
524 [
525 'label' => esc_html__( 'Hero Animation', 'borderless' ),
526 'type' => \Elementor\Controls_Manager::ANIMATION,
527 'prefix_class' => 'animated ',
528 'separator' => 'before',
529 ]
530 );
531
532 $this->add_control(
533 'borderless_elementor_hero_content_width_layout',
534 [
535 'label' => esc_html__( 'Content Width', 'borderless' ),
536 'type' => Controls_Manager::SELECT,
537 'options' => [
538 'boxed' => 'Boxed',
539 'full' => 'Full Width',
540 ],
541 'default' => 'full',
542 ]
543 );
544
545 $this->add_responsive_control(
546 'borderless_elementor_hero_content_width',
547 [
548 'label' => esc_html__( 'Width', 'borderless' ),
549 'type' => Controls_Manager::SLIDER,
550 'range' => [
551 'px' => [
552 'min' => 500,
553 'max' => 1600,
554 ],
555 ],
556 'default' => [
557 'unit' => 'px',
558 'size' => '1200'
559 ],
560 'selectors' => [
561 '{{WRAPPER}} .borderless-elementor-hero__container' => 'max-width: {{SIZE}}{{UNIT}};'
562 ],
563 'condition' => array(
564 'borderless_elementor_hero_content_width_layout' => 'boxed',
565 ),
566 ]
567 );
568
569 $this->end_controls_section();
570
571 /*-----------------------------------------------------------------------------------*/
572 /* *. Hero/Hero - Style
573 /*-----------------------------------------------------------------------------------*/
574
575 $this->start_controls_section(
576 'borderless_elementor_section_hero_style',
577 [
578 'label' => esc_html__( 'Hero', 'borderless'),
579 'tab' => Controls_Manager::TAB_STYLE
580 ]
581 );
582
583 $this->add_responsive_control(
584 'borderless_elementor_hero_height',
585 [
586 'label' => esc_html__( 'Height', 'borderless'),
587 'type' => Controls_Manager::SLIDER,
588 'size_units' => [ 'px', 'vh' ],
589 'range' => [
590 'px' => [
591 'min' => 100,
592 'max' => 9999,
593 ],
594 'vh' => [
595 'min' => 10,
596 'max' => 100,
597 ],
598 ],
599 'default' => [
600 'unit' => 'vh',
601 'size' => '100'
602 ],
603 'selectors' => [
604 '{{WRAPPER}} .borderless-elementor-hero__container-inner' => 'min-height: {{SIZE}}{{UNIT}};',
605 ],
606 ]
607 );
608
609 $this->add_responsive_control(
610 'borderless_elementor_hero_width',
611 [
612 'label' => esc_html__( 'Width', 'borderless'),
613 'type' => Controls_Manager::SLIDER,
614 'size_units' => [ '%' ],
615 'range' => [
616 '%' => [
617 'min' => 20,
618 'max' => 100,
619 ],
620 ],
621 'default' => [
622 'unit' => '%',
623 'size' => '80'
624 ],
625 'selectors' => [
626 '{{WRAPPER}} .borderless-elementor-hero__content' => 'width: {{SIZE}}{{UNIT}};',
627 ],
628 ]
629 );
630
631 $this->add_control(
632 'borderless_elementor_hero_vertical_position',
633 [
634 'label' => __( 'Vertical Position', 'borderless' ),
635 'type' => Controls_Manager::CHOOSE,
636 'default' => 'center',
637 'options' => [
638 'flex-start' => [
639 'title' => __( 'Top', 'borderless' ),
640 'icon' => 'eicon-v-align-top',
641 ],
642 'center' => [
643 'title' => __( 'Center', 'borderless' ),
644 'icon' => 'eicon-v-align-middle',
645 ],
646 'flex-end' => [
647 'title' => __( 'Bottom', 'borderless' ),
648 'icon' => 'eicon-v-align-bottom',
649 ],
650 ],
651 'default' => 'center',
652 'selectors' => [
653 '{{WRAPPER}} .borderless-elementor-hero__container-inner' => 'align-items: {{VALUE}}',
654 ],
655 ]
656 );
657
658 $this->add_control(
659 'borderless_elementor_hero_horizontal_position',
660 [
661 'label' => __( 'Horizontal Position', 'borderless' ),
662 'type' => Controls_Manager::CHOOSE,
663 'default' => 'center',
664 'options' => [
665 'flex-start' => [
666 'title' => __( 'Left', 'borderless' ),
667 'icon' => 'eicon-h-align-left',
668 ],
669 'center' => [
670 'title' => __( 'Center', 'borderless' ),
671 'icon' => 'eicon-h-align-center',
672 ],
673 'flex-end' => [
674 'title' => __( 'Right', 'borderless' ),
675 'icon' => 'eicon-h-align-right',
676 ],
677 ],
678 'default' => 'center',
679 'selectors' => [
680 '{{WRAPPER}} .borderless-elementor-hero__container-inner' => 'justify-content: {{VALUE}}',
681 ],
682 ]
683 );
684
685 $this->add_control(
686 'borderless_elementor_hero_title_align',
687 [
688 'label' => __( 'Title Align', 'borderless' ),
689 'type' => Controls_Manager::CHOOSE,
690 'options' => [
691 'start' => [
692 'title' => __( 'Left', 'borderless' ),
693 'icon' => 'eicon-text-align-left',
694 ],
695 'center' => [
696 'title' => __( 'Center', 'borderless' ),
697 'icon' => 'eicon-text-align-center',
698 ],
699 'end' => [
700 'title' => __( 'Right', 'borderless' ),
701 'icon' => 'eicon-text-align-right',
702 ],
703 ],
704 'default' => 'center',
705 'selectors' => [
706 '{{WRAPPER}} .borderless-elementor-hero__title' => 'text-align: {{VALUE}}',
707 ],
708 ]
709 );
710
711 $this->add_control(
712 'borderless_elementor_hero_subtitle_align',
713 [
714 'label' => __( 'Subtitle Align', 'borderless' ),
715 'type' => Controls_Manager::CHOOSE,
716 'options' => [
717 'start' => [
718 'title' => __( 'Left', 'borderless' ),
719 'icon' => 'eicon-text-align-left',
720 ],
721 'center' => [
722 'title' => __( 'Center', 'borderless' ),
723 'icon' => 'eicon-text-align-center',
724 ],
725 'end' => [
726 'title' => __( 'Right', 'borderless' ),
727 'icon' => 'eicon-text-align-right',
728 ],
729 ],
730 'default' => 'center',
731 'selectors' => [
732 '{{WRAPPER}} .borderless-elementor-hero__subtitle' => 'text-align: {{VALUE}}',
733 ],
734 ]
735 );
736
737 $this->add_control(
738 'borderless_elementor_hero_button_align',
739 [
740 'label' => __( 'Button Align', 'borderless' ),
741 'type' => Controls_Manager::CHOOSE,
742 'options' => [
743 'flex-start' => [
744 'title' => __( 'Left', 'borderless' ),
745 'icon' => 'eicon-text-align-left',
746 ],
747 'center' => [
748 'title' => __( 'Center', 'borderless' ),
749 'icon' => 'eicon-text-align-center',
750 ],
751 'flex-end' => [
752 'title' => __( 'Right', 'borderless' ),
753 'icon' => 'eicon-text-align-right',
754 ],
755 ],
756 'default' => 'center',
757 'selectors' => [
758 '{{WRAPPER}} .borderless-elementor-hero__buttons' => 'justify-content: {{VALUE}}',
759 ],
760 ]
761 );
762
763 $this->add_responsive_control(
764 'borderless_elementor_hero_padding',
765 [
766 'label' => esc_html__( 'Padding', 'borderless'),
767 'type' => Controls_Manager::DIMENSIONS,
768 'separator' => 'before',
769 'size_units' => [ 'px', 'em', '%', 'rem' ],
770 'selectors' => [
771 '{{WRAPPER}} .borderless-elementor-hero__container-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
772 ],
773 ]
774 );
775
776 $this->end_controls_section();
777
778
779 /*-----------------------------------------------------------------------------------*/
780 /* *. Hero/Hero Background - Style
781 /*-----------------------------------------------------------------------------------*/
782
783 $this->start_controls_section(
784 'borderless_elementor_section_hero_background_style',
785 [
786 'label' => esc_html__( 'Hero Background', 'borderless'),
787 'tab' => Controls_Manager::TAB_STYLE
788 ]
789 );
790
791 $this->start_controls_tabs( 'borderless_elementor_tabs_hero_background_style' );
792
793 $this->start_controls_tab( 'borderless_elementor_tab_normal_hero_background_style',
794 [
795 'label' => __( 'Normal', 'borderless' ),
796 ]
797 );
798
799 $this->add_group_control(
800 Group_Control_Background::get_type(),
801 [
802 'name' => 'borderless_elementor_hero_background',
803 'label' => __( 'Background', 'borderless' ),
804 'types' => [ 'classic', 'gradient' ],
805 'selector' => '{{WRAPPER}} .borderless-elementor-hero',
806 'fields_options' => [
807 'background' => [
808 'default' => 'classic',
809 ],
810 'color' => [
811 'default' => '#000000',
812 ],
813 ],
814 ]
815 );
816
817 $this->end_controls_tab();
818
819 $this->start_controls_tab( 'borderless_elementor_tab_hover_hero_background_style',
820 [
821 'label' => __( 'Hover', 'borderless' ),
822 ]
823 );
824
825 $this->add_group_control(
826 Group_Control_Background::get_type(),
827 [
828 'name' => 'borderless_elementor_hero_background_hover',
829 'label' => __( 'Background', 'borderless' ),
830 'types' => [ 'classic', 'gradient' ],
831 'selector' => '{{WRAPPER}} .borderless-elementor-hero:hover',
832 ]
833 );
834
835 $this->add_control(
836 'borderless_elementor_hero_background_hover_transition',
837 [
838 'label' => __( 'Transition Duration', 'borderless' ),
839 'type' => Controls_Manager::SLIDER,
840 'separator' => 'before',
841 'range' => [
842 'px' => [
843 'max' => 3,
844 'step' => 0.1,
845 ],
846 ],
847 'default' => [
848 'size' => 0.3,
849 ],
850 'selectors' => [
851 '{{WRAPPER}} .borderless-elementor-hero:hover' => 'transition-duration: {{SIZE}}s',
852 ],
853 ]
854 );
855
856 $this->end_controls_tab();
857
858 $this->end_controls_tabs();
859
860 $this->end_controls_section();
861
862
863 /*-----------------------------------------------------------------------------------*/
864 /* *. Hero/Hero Background Overlay - Style
865 /*-----------------------------------------------------------------------------------*/
866
867 $this->start_controls_section(
868 'borderless_elementor_section_hero_background_overlay_style',
869 [
870 'label' => esc_html__( 'Hero Background Overlay', 'borderless'),
871 'tab' => Controls_Manager::TAB_STYLE
872 ]
873 );
874
875 $this->start_controls_tabs( 'borderless_elementor_tabs_hero_background_overlay_style' );
876
877 $this->start_controls_tab( 'borderless_elementor_tab_normal_hero_background_overlay_style',
878 [
879 'label' => __( 'Normal', 'borderless' ),
880 ]
881 );
882
883 $this->add_group_control(
884 Group_Control_Background::get_type(),
885 [
886 'name' => 'borderless_elementor_hero_background_overlay',
887 'label' => __( 'Background', 'borderless' ),
888 'types' => [ 'classic', 'gradient' ],
889 'selector' => '{{WRAPPER}} .borderless-elementor-hero__overlay',
890 ]
891 );
892
893 $this->add_control(
894 'borderless_elementor_hero_background_overlay_opacity',
895 [
896 'label' => __( 'Opacity', 'borderless' ),
897 'type' => Controls_Manager::SLIDER,
898 'range' => [
899 'px' => [
900 'max' => 1,
901 'min' => 0.10,
902 'step' => 0.01,
903 ],
904 ],
905 'selectors' => [
906 '{{WRAPPER}} .borderless-elementor-hero__overlay' => 'opacity: {{SIZE}};',
907 ],
908 ]
909 );
910
911 $this->add_group_control(
912 Group_Control_Css_Filter::get_type(),
913 [
914 'name' => 'borderless_elementor_hero_background_overlay_css_filter',
915 'selector' => '{{WRAPPER}} .borderless-elementor-hero__overlay',
916 ]
917 );
918
919 $this->end_controls_tab();
920
921 $this->start_controls_tab( 'borderless_elementor_tab_hover_hero_background_overlay_style',
922 [
923 'label' => __( 'Hover', 'borderless' ),
924 ]
925 );
926
927 $this->add_group_control(
928 Group_Control_Background::get_type(),
929 [
930 'name' => 'borderless_elementor_hero_background_overlay_hover',
931 'label' => __( 'Background', 'borderless' ),
932 'types' => [ 'classic', 'gradient' ],
933 'selector' => '{{WRAPPER}} .borderless-elementor-hero:hover .borderless-elementor-hero__overlay',
934 ]
935 );
936
937 $this->add_control(
938 'borderless_elementor_hero_background_overlay_hover_opacity',
939 [
940 'label' => __( 'Opacity', 'borderless' ),
941 'type' => Controls_Manager::SLIDER,
942 'range' => [
943 'px' => [
944 'max' => 1,
945 'min' => 0.10,
946 'step' => 0.01,
947 ],
948 ],
949 'selectors' => [
950 '{{WRAPPER}} .borderless-elementor-hero:hover .borderless-elementor-hero__overlay' => 'opacity: {{SIZE}};',
951 ],
952 ]
953 );
954
955 $this->add_group_control(
956 Group_Control_Css_Filter::get_type(),
957 [
958 'name' => 'borderless_elementor_hero_background_overlay_hover_css_filter',
959 'selector' => '{{WRAPPER}} .borderless-elementor-hero:hover .borderless-elementor-hero__overlay',
960 ]
961 );
962
963 $this->add_control(
964 'borderless_elementor_hero_background_overlay_hover_transition',
965 [
966 'label' => __( 'Transition Duration', 'borderless' ),
967 'type' => Controls_Manager::SLIDER,
968 'separator' => 'before',
969 'range' => [
970 'px' => [
971 'max' => 3,
972 'step' => 0.1,
973 ],
974 ],
975 'default' => [
976 'size' => 0.3,
977 ],
978 'selectors' => [
979 '{{WRAPPER}} .borderless-elementor-hero:hover .borderless-elementor-hero__overlay' => 'transition-duration: {{SIZE}}s',
980 ],
981 ]
982 );
983
984 $this->end_controls_tab();
985
986 $this->end_controls_tabs();
987
988 $this->end_controls_section();
989
990
991 /*-----------------------------------------------------------------------------------*/
992 /* *. Hero/Title - Style
993 /*-----------------------------------------------------------------------------------*/
994
995 $this->start_controls_section(
996 'borderless_elementor_section_hero_title_style',
997 [
998 'label' => esc_html__( 'Title', 'borderless'),
999 'tab' => Controls_Manager::TAB_STYLE
1000 ]
1001 );
1002
1003 $this->add_responsive_control(
1004 'borderless_elementor_hero_title_color',
1005 [
1006 'label' => __( 'Text Color', 'borderless' ),
1007 'type' => Controls_Manager::COLOR,
1008 'selectors' => [
1009 '{{WRAPPER}} .borderless-elementor-hero__title' => 'color: {{VALUE}};',
1010 ],
1011 ]
1012 );
1013
1014 $this->add_group_control(
1015 Group_Control_Typography::get_type(),
1016 [
1017 'name' => 'borderless_elementor_hero_title_typography',
1018 'label' => __('Typography', 'borderless'),
1019 'selector' => '{{WRAPPER}} .borderless-elementor-hero__title',
1020 ]
1021 );
1022
1023 $this->add_group_control(
1024 Group_Control_Text_Stroke::get_type(),
1025 [
1026 'name' => 'borderless_elementor_hero_title_text_stroke',
1027 'selector' => '{{WRAPPER}} .borderless-elementor-hero__title',
1028 ]
1029 );
1030
1031 $this->add_group_control(
1032 Group_Control_Text_Shadow::get_type(),
1033 [
1034 'name' => 'borderless_elementor_hero_title_text_shadow',
1035 'selector' => '{{WRAPPER}} .borderless-elementor-hero__title',
1036 ]
1037 );
1038
1039 $this->add_control(
1040 'borderless_elementor_hero_title_blend_mode',
1041 [
1042 'label' => esc_html__( 'Blend Mode', 'borderless' ),
1043 'type' => Controls_Manager::SELECT,
1044 'options' => [
1045 '' => esc_html__( 'Normal', 'borderless' ),
1046 'multiply' => 'Multiply',
1047 'screen' => 'Screen',
1048 'overlay' => 'Overlay',
1049 'darken' => 'Darken',
1050 'lighten' => 'Lighten',
1051 'color-dodge' => 'Color Dodge',
1052 'saturation' => 'Saturation',
1053 'color' => 'Color',
1054 'difference' => 'Difference',
1055 'exclusion' => 'Exclusion',
1056 'hue' => 'Hue',
1057 'luminosity' => 'Luminosity',
1058 ],
1059 'selectors' => [
1060 '{{WRAPPER}} .borderless-elementor-hero__title' => 'mix-blend-mode: {{VALUE}}',
1061 ],
1062 'separator' => 'none',
1063 ]
1064 );
1065
1066 $this->add_responsive_control(
1067 'borderless_elementor_hero_title_padding',
1068 [
1069 'label' => esc_html__( 'Padding', 'borderless'),
1070 'type' => Controls_Manager::DIMENSIONS,
1071 'separator' => 'before',
1072 'size_units' => [ 'px', 'em', '%', 'rem' ],
1073 'selectors' => [
1074 '{{WRAPPER}} .borderless-elementor-hero__title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1075 ],
1076 ]
1077 );
1078
1079 $this->add_responsive_control(
1080 'borderless_elementor_hero_title_margin',
1081 [
1082 'label' => esc_html__( 'Margin', 'borderless'),
1083 'type' => Controls_Manager::DIMENSIONS,
1084 'size_units' => [ 'px', 'em', '%', 'rem' ],
1085 'selectors' => [
1086 '{{WRAPPER}} .borderless-elementor-hero__title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1087 ],
1088 ]
1089 );
1090
1091 $this->add_group_control(
1092 Group_Control_Border::get_type(),
1093 [
1094 'name' => 'borderless_elementor_hero_title_border',
1095 'label' => esc_html__( 'Border', 'borderless'),
1096 'selector' => '{{WRAPPER}} .borderless-elementor-hero__title',
1097 ]
1098 );
1099
1100 $this->add_responsive_control(
1101 'borderless_elementor_hero_title_radius',
1102 [
1103 'label' => esc_html__( 'Border Radius', 'borderless'),
1104 'type' => Controls_Manager::DIMENSIONS,
1105 'selectors' => [
1106 '{{WRAPPER}} .borderless-elementor-hero__title' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
1107 ],
1108 ]
1109 );
1110
1111 $this->add_group_control(
1112 Group_Control_Box_Shadow::get_type(),
1113 [
1114 'name' => 'borderless_elementor_hero_title_box_shadow',
1115 'selector' => '{{WRAPPER}} .borderless-elementor-hero__title',
1116 ]
1117 );
1118
1119 $this->end_controls_section();
1120
1121
1122 /*-----------------------------------------------------------------------------------*/
1123 /* *. Hero/Subtitle - Style
1124 /*-----------------------------------------------------------------------------------*/
1125
1126 $this->start_controls_section(
1127 'borderless_elementor_section_hero_subtitle_style',
1128 [
1129 'label' => esc_html__( 'Subtitle', 'borderless'),
1130 'tab' => Controls_Manager::TAB_STYLE
1131 ]
1132 );
1133
1134 $this->add_responsive_control(
1135 'borderless_elementor_hero_subtitle_color',
1136 [
1137 'label' => __( 'Text Color', 'borderless' ),
1138 'type' => Controls_Manager::COLOR,
1139 'selectors' => [
1140 '{{WRAPPER}} .borderless-elementor-hero__subtitle' => 'color: {{VALUE}};',
1141 ],
1142 ]
1143 );
1144
1145 $this->add_group_control(
1146 Group_Control_Typography::get_type(),
1147 [
1148 'name' => 'borderless_elementor_hero_subtitle_typography',
1149 'label' => __('Typography', 'borderless'),
1150 'selector' => '{{WRAPPER}} .borderless-elementor-hero__subtitle',
1151 ]
1152 );
1153
1154 $this->add_group_control(
1155 Group_Control_Text_Stroke::get_type(),
1156 [
1157 'name' => 'borderless_elementor_hero_subtitle_text_stroke',
1158 'selector' => '{{WRAPPER}} .borderless-elementor-hero__subtitle',
1159 ]
1160 );
1161
1162 $this->add_group_control(
1163 Group_Control_Text_Shadow::get_type(),
1164 [
1165 'name' => 'borderless_elementor_hero_subtitle_text_shadow',
1166 'selector' => '{{WRAPPER}} .borderless-elementor-hero__subtitle',
1167 ]
1168 );
1169
1170 $this->add_control(
1171 'borderless_elementor_hero_subtitle_blend_mode',
1172 [
1173 'label' => esc_html__( 'Blend Mode', 'borderless' ),
1174 'type' => Controls_Manager::SELECT,
1175 'options' => [
1176 '' => esc_html__( 'Normal', 'borderless' ),
1177 'multiply' => 'Multiply',
1178 'screen' => 'Screen',
1179 'overlay' => 'Overlay',
1180 'darken' => 'Darken',
1181 'lighten' => 'Lighten',
1182 'color-dodge' => 'Color Dodge',
1183 'saturation' => 'Saturation',
1184 'color' => 'Color',
1185 'difference' => 'Difference',
1186 'exclusion' => 'Exclusion',
1187 'hue' => 'Hue',
1188 'luminosity' => 'Luminosity',
1189 ],
1190 'selectors' => [
1191 '{{WRAPPER}} .borderless-elementor-hero__subtitle' => 'mix-blend-mode: {{VALUE}}',
1192 ],
1193 'separator' => 'none',
1194 ]
1195 );
1196
1197 $this->add_responsive_control(
1198 'borderless_elementor_hero_subtitle_padding',
1199 [
1200 'label' => esc_html__( 'Padding', 'borderless'),
1201 'type' => Controls_Manager::DIMENSIONS,
1202 'separator' => 'before',
1203 'size_units' => [ 'px', 'em', '%', 'rem' ],
1204 'selectors' => [
1205 '{{WRAPPER}} .borderless-elementor-hero__subtitle' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1206 ],
1207 ]
1208 );
1209
1210 $this->add_responsive_control(
1211 'borderless_elementor_hero_subtitle_margin',
1212 [
1213 'label' => esc_html__( 'Margin', 'borderless'),
1214 'type' => Controls_Manager::DIMENSIONS,
1215 'size_units' => [ 'px', 'em', '%', 'rem' ],
1216 'selectors' => [
1217 '{{WRAPPER}} .borderless-elementor-hero__subtitle' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1218 ],
1219 ]
1220 );
1221
1222 $this->add_group_control(
1223 Group_Control_Border::get_type(),
1224 [
1225 'name' => 'borderless_elementor_hero_subtitle_border',
1226 'label' => esc_html__( 'Border', 'borderless'),
1227 'selector' => '{{WRAPPER}} .borderless-elementor-hero__subtitle',
1228 ]
1229 );
1230
1231 $this->add_responsive_control(
1232 'borderless_elementor_hero_subtitle_radius',
1233 [
1234 'label' => esc_html__( 'Border Radius', 'borderless'),
1235 'type' => Controls_Manager::DIMENSIONS,
1236 'selectors' => [
1237 '{{WRAPPER}} .borderless-elementor-hero__subtitle' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
1238 ],
1239 ]
1240 );
1241
1242 $this->add_group_control(
1243 Group_Control_Box_Shadow::get_type(),
1244 [
1245 'name' => 'borderless_elementor_hero_subtitle_box_shadow',
1246 'selector' => '{{WRAPPER}} .borderless-elementor-hero__subtitle',
1247 ]
1248 );
1249
1250 $this->end_controls_section();
1251
1252
1253 /*-----------------------------------------------------------------------------------*/
1254 /* *. Hero/Buttons - Style
1255 /*-----------------------------------------------------------------------------------*/
1256
1257 $this->start_controls_section(
1258 'borderless_elementor_section_hero_buttons_style',
1259 [
1260 'label' => esc_html__( 'Buttons', 'borderless'),
1261 'tab' => Controls_Manager::TAB_STYLE
1262 ]
1263 );
1264
1265 $this->add_responsive_control(
1266 'borderless_elementor_hero_buttons_direction',
1267 [
1268 'label' => __( 'Direction', 'borderless' ),
1269 'type' => Controls_Manager::CHOOSE,
1270 'default' => 'row',
1271 'options' => [
1272 'row' => [
1273 'title' => __( 'Row', 'borderless' ),
1274 'icon' => 'eicon-h-align-center',
1275 ],
1276 'column' => [
1277 'title' => __( 'Column', 'borderless' ),
1278 'icon' => 'eicon-v-align-middle',
1279 ],
1280 ],
1281 'default' => 'center',
1282 'selectors' => [
1283 '{{WRAPPER}} .borderless-elementor-hero__buttons' => 'flex-direction: {{VALUE}}',
1284 ],
1285 ]
1286 );
1287
1288 $this->add_responsive_control(
1289 'borderless_elementor_buttons_gap',
1290 [
1291 'label' => __( 'Gap', 'borderless' ),
1292 'type' => \Elementor\Controls_Manager::NUMBER,
1293 'min' => 0,
1294 'max' => 99999,
1295 'step' => 1,
1296 'default' => 50,
1297 'selectors' => [
1298 '{{WRAPPER}} .borderless-elementor-hero__buttons' => 'gap: {{VALUE}}px',
1299 ],
1300 ]
1301 );
1302
1303 $this->add_responsive_control(
1304 'borderless_elementor_buttons_padding',
1305 [
1306 'label' => esc_html__( 'Padding', 'borderless'),
1307 'type' => Controls_Manager::DIMENSIONS,
1308 'separator' => 'before',
1309 'size_units' => [ 'px', 'em', '%' ],
1310 'selectors' => [
1311 '{{WRAPPER}} .borderless-elementor-hero__buttons' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1312 ],
1313 ]
1314 );
1315
1316 $this->add_responsive_control(
1317 'borderless_elementor_buttons_margin',
1318 [
1319 'label' => esc_html__( 'Margin', 'borderless'),
1320 'type' => Controls_Manager::DIMENSIONS,
1321 'size_units' => [ 'px', 'em', '%' ],
1322 'selectors' => [
1323 '{{WRAPPER}} .borderless-elementor-hero__buttons' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1324 ],
1325 ]
1326 );
1327
1328 $this->add_group_control(
1329 Group_Control_Border::get_type(),
1330 [
1331 'name' => 'borderless_elementor_buttons_border',
1332 'label' => esc_html__( 'Border', 'borderless'),
1333 'separator' => 'before',
1334 'selector' => '{{WRAPPER}} .borderless-elementor-hero__buttons',
1335 ]
1336 );
1337
1338 $this->add_control(
1339 'borderless_elementor_hero_buttons_border_radius',
1340 [
1341 'label' => esc_html__( 'Border Radius', 'borderless'),
1342 'type' => Controls_Manager::DIMENSIONS,
1343 'size_units' => [ 'px', '%', 'em' ],
1344 'selectors' => [
1345 '{{WRAPPER}} .borderless-elementor-hero__buttons' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1346 ],
1347 ]
1348 );
1349
1350 $this->end_controls_section();
1351
1352
1353 /*-----------------------------------------------------------------------------------*/
1354 /* *. Hero/Button - Style
1355 /*-----------------------------------------------------------------------------------*/
1356
1357 $this->start_controls_section(
1358 'borderless_elementor_section_hero_button_style',
1359 [
1360 'label' => esc_html__( 'Button', 'borderless'),
1361 'tab' => Controls_Manager::TAB_STYLE
1362 ]
1363 );
1364
1365 $this->add_group_control(
1366 Group_Control_Typography::get_type(),
1367 [
1368 'name' => 'borderless_elementor_hero_button_typography',
1369 'label' => __('Typography', 'borderless'),
1370 'selector' => '{{WRAPPER}} .borderless-elementor-hero__button',
1371 ]
1372 );
1373
1374 $this->add_group_control(
1375 Group_Control_Text_Shadow::get_type(),
1376 [
1377 'name' => 'borderless_elementor_hero_button_text_shadow',
1378 'selector' => '{{WRAPPER}} .borderless-elementor-hero__button',
1379 ]
1380 );
1381
1382 $this->start_controls_tabs( 'borderless_elementor_tabs_hero_button_style' );
1383
1384 $this->start_controls_tab( 'borderless_elementor_tab_normal_hero_button_style',
1385 [
1386 'label' => __( 'Normal', 'borderless' ),
1387 ]
1388 );
1389
1390 $this->add_control(
1391 'borderless_elementor_hero_button_text_color',
1392 [
1393 'label' => __( 'Text Color', 'borderless' ),
1394 'type' => Controls_Manager::COLOR,
1395 'selectors' => [
1396 '{{WRAPPER}} .borderless-elementor-hero__button' => 'color: {{VALUE}};',
1397 ],
1398 ]
1399 );
1400
1401 $this->add_group_control(
1402 Group_Control_Background::get_type(),
1403 [
1404 'name' => 'borderless_elementor_hero_button_background',
1405 'label' => __( 'Background', 'borderless' ),
1406 'types' => [ 'classic', 'gradient' ],
1407 'exclude' => [ 'image' ],
1408 'selector' => '{{WRAPPER}} .borderless-elementor-hero__button',
1409 ]
1410 );
1411
1412 $this->end_controls_tab();
1413
1414 $this->start_controls_tab( 'borderless_elementor_tab_hover_hero_button_style',
1415 [
1416 'label' => __( 'Hover', 'borderless' ),
1417 ]
1418 );
1419
1420 $this->add_control(
1421 'borderless_elementor_hero_button_text_color_hover',
1422 [
1423 'label' => __( 'Text Color', 'borderless' ),
1424 'type' => Controls_Manager::COLOR,
1425 'selectors' => [
1426 '{{WRAPPER}} .borderless-elementor-hero__button:hover' => 'color: {{VALUE}};',
1427 ],
1428 ]
1429 );
1430
1431 $this->add_group_control(
1432 Group_Control_Background::get_type(),
1433 [
1434 'name' => 'borderless_elementor_hero_button_background_hover',
1435 'label' => __( 'Background', 'borderless' ),
1436 'types' => [ 'classic', 'gradient' ],
1437 'exclude' => [ 'image' ],
1438 'selector' => '{{WRAPPER}} .borderless-elementor-hero__button:hover',
1439 ]
1440 );
1441
1442 $this->add_control(
1443 'borderless_elementor_hero_button_border_color_hover',
1444 [
1445 'label' => __( 'Border Color', 'borderless' ),
1446 'type' => Controls_Manager::COLOR,
1447 'selectors' => [
1448 '{{WRAPPER}} .borderless-elementor-hero__button:hover' => 'border-color: {{VALUE}};',
1449 ],
1450 ]
1451 );
1452
1453 $this->end_controls_tab();
1454
1455 $this->end_controls_tabs();
1456
1457 $this->add_group_control(
1458 Group_Control_Border::get_type(),
1459 [
1460 'name' => 'borderless_elementor_hero_button_border',
1461 'label' => esc_html__( 'Border', 'borderless'),
1462 'selector' => '{{WRAPPER}} .borderless-elementor-hero__button',
1463 'separator' => 'before',
1464 ]
1465 );
1466
1467 $this->add_control(
1468 'borderless_elementor_hero_button_border_radius',
1469 [
1470 'label' => esc_html__( 'Border Radius', 'borderless'),
1471 'type' => Controls_Manager::DIMENSIONS,
1472 'size_units' => [ 'px', '%', 'em' ],
1473 'selectors' => [
1474 '{{WRAPPER}} .borderless-elementor-hero__button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1475 ],
1476 ]
1477 );
1478
1479 $this->add_group_control(
1480 Group_Control_Box_Shadow::get_type(),
1481 [
1482 'name' => 'borderless_elementor_hero_button_box_shadow',
1483 'selector' => '{{WRAPPER}} .borderless-elementor-hero__button',
1484 ]
1485 );
1486
1487 $this->add_responsive_control(
1488 'borderless_elementor_hero_button_padding',
1489 [
1490 'label' => esc_html__( 'Padding', 'borderless'),
1491 'type' => Controls_Manager::DIMENSIONS,
1492 'separator' => 'before',
1493 'size_units' => [ 'px', 'em', '%' ],
1494 'selectors' => [
1495 '{{WRAPPER}} .borderless-elementor-hero__button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1496 ],
1497 ]
1498 );
1499
1500 $this->end_controls_section();
1501
1502 }
1503
1504 protected function render() {
1505
1506 $settings = $this->get_settings_for_display();
1507
1508 ?>
1509
1510 <div class="borderless-elementor-hero-widget <?php echo esc_attr( $settings['borderless_elementor_hero_animation'] ); ?>">
1511 <div class="borderless-elementor-hero">
1512 <div class="borderless-elementor-hero__overlay"></div>
1513 <div class="borderless-elementor-hero__container">
1514 <div class="borderless-elementor-hero__container-inner">
1515 <div class="borderless-elementor-hero__content">
1516
1517 <?php if ( $settings['borderless_elementor_hero_show_title'] ) { ?>
1518 <<?php echo wp_kses( ( $settings['borderless_elementor_hero_title_html_tag'] ), true ); ?> class="borderless-elementor-hero__title">
1519 <?php echo wp_kses( ( $settings['borderless_elementor_hero_title'] ), true ); ?>
1520 </<?php echo wp_kses( ( $settings['borderless_elementor_hero_title_html_tag'] ), true ); ?>>
1521 <?php } ?>
1522
1523 <?php if ( $settings['borderless_elementor_hero_show_subtitle'] ) { ?>
1524 <<?php echo wp_kses( ( $settings['borderless_elementor_hero_subtitle_html_tag'] ), true ); ?> class="borderless-elementor-hero__subtitle">
1525 <?php echo wp_kses( ( $settings['borderless_elementor_hero_subtitle'] ), true ); ?>
1526 </<?php echo wp_kses( ( $settings['borderless_elementor_hero_subtitle_html_tag'] ), true ); ?>>
1527 <?php } ?>
1528
1529 <?php if ( $settings['borderless_elementor_hero_show_buttons'] ) { ?>
1530 <div class="borderless-elementor-hero__buttons">
1531 <?php foreach ( $settings['borderless_elementor_hero_button_item_strings'] as $hero_string ) { ?>
1532 <a class="borderless-elementor-hero__button elementor-repeater-item-<?php echo $hero_string['_id']; ?>">
1533
1534 <?php if ( $hero_string['borderless_elementor_hero_button_item_icon_align'] == 'left' ) { ?>
1535 <?php Icons_Manager::render_icon( $hero_string['borderless_elementor_hero_button_item_icon'], [ 'aria-hidden' => 'true' ] ); ?>
1536 <?php } ?>
1537
1538 <?php echo wp_kses( ( $hero_string['borderless_elementor_hero_button_item_text'] ), true ); ?>
1539
1540 <?php if ( $hero_string['borderless_elementor_hero_button_item_icon_align'] == 'right' ) { ?>
1541 <?php Icons_Manager::render_icon( $hero_string['borderless_elementor_hero_button_item_icon'], [ 'aria-hidden' => 'true' ] ); ?>
1542 <?php } ?>
1543 </a>
1544 <?php } ?>
1545 </div>
1546 <?php } ?>
1547
1548 </div>
1549 </div>
1550 </div>
1551 </div>
1552 </div>
1553
1554 <?php
1555
1556 }
1557
1558 protected function _content_template() {
1559
1560 }
1561
1562
1563 }