Depends on the widget. With regard to the menu you want to use a custom Walker's, for bootstrap is
ready. To the rest of the widgets at will. If you want to customize only the container in which the widget is you can get into functions.php to create a new sidebar \ change existing (as suggested above), and add the desired markup in the properties before_widget \ after_widget. Don't forget to put it in the class list %1$s %2$s is important. Then there are two ways my and wrong:
- tightly specify the desired classes in bootstrap functions.php in the previous step
- install the plugin
Widget CSS Classes, and then, when adding the widgets in admin area, you will receive the ability to specify css classes bootstrap for each widget. For example, each widget can be represented as one column. Needless to say, this is the right way.
Also required classes you can register in the theme template "wrapping" sidebar in the right div if the epic above somehow does not fit.
But to create an entirely custom widget, with your markup, you need to create your own classes and register them in the proverbial functions.php. This is a separate issue, and if the point is only the design, you don't need.