Make widgets base on custom element and web component