Your code worked for me; The widget appears in the admin area under Appearance > Widgets and the widget does show output on the front end.
Your widget()
method is missing the output for $args['before_widget']
. echo $args['before_widget'];
should be added above <section id="box" class="box1">
.
This would not cause the issue reported, where the widget does not appear in the admin area, but it will cause problems with the HTML output on the front end.