You have just created a few custom fields for your articles, contacts or users in the Joomla console to realize that they are grayed out when you try editing them on the public side of your website. You are able to add data just fine in the console, so why not on the public side?
In Joomla, all actions on a site require access permissions. Most likely, when you are administrating items in the Joomla console, you do have Super Users privileges (or other high level access). You can create, edit or delete pretty much anything. If some of those actions are moved to the public side of the site, they fall under the same restricted access. But then, the visitors have a much lower 'security clearance', depending on the user group they are a member of.
Let's say, for instance, that you have created a couple custom fields that are a good addition to the contact form you are putting together. The form will be accessible by any visitor of the site, logged in or not.
Yet, once testing the form, you find out that the newly created fields are grayed out and that you cannot enter any data.
In this case, go back to the Joomla console, and navigate to the Permissions tab of the custom fields you need to make editable. Since the form is meant to be made public to everyone, enter the Public group settings tab. Go down to the Edit custom field value setting and select Allowed.
That's all there is to it! On the website, the form is now fully editable.
You can use a similar approach if you create custom fields to add fields to the edit forms of articles, for instance. This time, since editing articles requires a higher level of access (probably only authors will be able to do so), only give the Authors user group the Edit custom field value permissions.