---
label: 'Defining a custom block type'
related:
  - block.overview
  - block.configure
  - block.place
  - block_content.add
  - field_ui.add_field
  - field_ui.manage_form
  - field_ui.manage_display
---
{% set types_link_text %}{% trans %}Block types{% endtrans %}{% endset %}
{% set types_link = render_var(help_route_link(types_link_text, 'entity.block_content_type.collection')) %}
<h2>{% trans %}Goal{% endtrans %}</h2>
<p>{% trans %}Define a custom block type and its fields.{% endtrans %}</p>
<h2>{% trans %}Steps{% endtrans %}</h2>
<ol>
  <li>{% trans %}In the <em>Manage</em> administrative menu, navigate to <em>Structure</em> &gt; <em>Block layout</em> &gt; <em>Custom block library</em> &gt; <em>{{ types_link }}</em>.{% endtrans %}</li>
  <li>{% trans %}Click  <em>Add custom block type</em>.{% endtrans %}</li>
  <li>{% trans %}Enter a label for this block type (shown in the administrative interface). Optionally, edit the automatically-generated machine name or the description.{% endtrans %}</li>
  <li>{% trans %}Click <em>Save</em>. You will be returned to the <em>Block types</em> page.{% endtrans %}</li>
  <li>{% trans %}Click <em>Manage fields</em> in the row of your new block type, and add the desired fields to your block type.{% endtrans %}</li>
  <li>{% trans %}Optionally, click <em>Manage form display</em> or <em>Manage display</em> to change the editing form or field display for your block type.{% endtrans %}</li>
</ol>
