Other than above 2 approaches if you want to add styling to specific components like a particular text field or a particular numeric field, you can use inline Editor. It is similar to Theme Editor but rather than applying to all component of same type using this you can apply style to a specific element. example I want to give red background to a particular text-field in the form.If you use theme editor it will apply style to all the text-fields but using inline editor you can specify style corresponding to that particular text field. You can refer to the below link on how to use inline editor.
Create a node of type cq:ClientLibraryFolder under the /etc node.
For example, create the following node:
Add a multi-valued string property categories to the node and set its value appropriately.
For example, set the property to: af.theme.forest.
Add two folders, less and css, and a file css.txt to the node created in step 1:
less folder: Contains the less variable files in which you define the less variables and less mixins that are used to manage the .css styles. This folder consists of less variable files, less mixin files, less files defining styles using mixins and variables. And all these less files are then imported in styles.less.
css folder: Contains the .css files in which you define the static styles to be used in the theme.
You can create a Theme using Theme Editor  and apply it to the required form. It provides a user interface to style the various form elements, and also supports including additional styling using the base clientlib provided for the Theme. For applying the theme to the form, you can refer to the section: 'Applying a theme to a form' in the link below .