How to customise list (text) field?
This will be a lot easier for you, if you use the taxonomy system.

Create a vocabulary for your keywords, then add the different keywords as terms.

The select2 module has a field widget for entity reference fields which allows you to get the autocomplete widget where you can remove the selected terms with an X.

Then you only need to add a little bit of styling, to get it to look like your design.

Hope it makes sense.