Classes_Prop_Type::make() ->default( [] ), 'text' => String_Prop_Type::make() ->default( __( 'Click here', 'elementor' ) ), 'link' => Link_Prop_Type::make(), ]; } protected function define_atomic_controls(): array { return [ Section::make() ->set_label( __( 'Content', 'elementor' ) ) ->set_items( [ Text_Control::bind_to( 'text' ) ->set_label( __( 'Button text', 'elementor' ) ) ->set_placeholder( __( 'Type your button text here', 'elementor' ) ), Link_Control::bind_to( 'link' ), ] ), ]; } protected function define_base_styles(): array { $color_value = Color_Prop_Type::generate( 'white' ); $font_family_value = String_Prop_Type::generate( 'Poppins' ); $font_size_value = Size_Prop_Type::generate( [ 'size' => 16, 'unit' => 'px', ] ); $background_color_value = Background_Prop_Type::generate( [ 'color' => Color_Prop_Type::generate( '#375EFB' ), ] ); $display_value = String_Prop_Type::generate( 'inline-block' ); $padding_value = Dimensions_Prop_Type::generate( [ 'top' => Size_Prop_Type::generate( [ 'size' => 12, 'unit' => 'px', ]), 'right' => Size_Prop_Type::generate( [ 'size' => 24, 'unit' => 'px', ]), 'bottom' => Size_Prop_Type::generate( [ 'size' => 12, 'unit' => 'px', ]), 'left' => Size_Prop_Type::generate( [ 'size' => 24, 'unit' => 'px', ]), ]); $border_radius_value = Size_Prop_Type::generate( [ 'size' => 2, 'unit' => 'px', ] ); $border_width_value = Size_Prop_Type::generate( [ 'size' => 0, 'unit' => 'px', ] ); $text_align_value = String_Prop_Type::generate( 'center' ); $font_weight_value = String_Prop_Type::generate( '500' ); return [ 'base' => Style_Definition::make() ->add_variant( Style_Variant::make() ->add_prop( 'color', $color_value ) ->add_prop( 'font-family', $font_family_value ) ->add_prop( 'font-size', $font_size_value ) ->add_prop( 'background', $background_color_value ) ->add_prop( 'display', $display_value ) ->add_prop( 'font-weight', $font_weight_value ) ->add_prop( 'padding', $padding_value ) ->add_prop( 'text-align', $text_align_value ) ->add_prop( 'border-radius', $border_radius_value ) ->add_prop( 'border-width', $border_width_value ) ), ]; } protected function get_templates(): array { return [ 'elementor/elements/atomic-button' => __DIR__ . '/atomic-button.html.twig', ]; } }