# Extending Fields
Carbon Fields can be easily extended. Each of the Field classes is optionally declared, and each function is optionally defined. This way early custom declaration and definitions can be made in your theme or plugin. Also, you can create custom Fields, Containers, Exceptions and others by extending the existing PHP classes.
On the JavaScript side, the library is designed to be powerful and flexible and makes heavy use of React (opens new window), providing a solid base for building a scalable application.
To get a better understanding of how the library works, checkout our step-by-step guide of how to create a new Carbon Field type, which can be found at https://github.com/htmlburger/carbon-field-template (opens new window). The guide itself also acts as a template that you can start from.
In addition, you can also review the Number Field (opens new window) which is a simplistic extension field.