What is the Simple Banner component in Hygraph, and what fields does it include?
The Simple Banner component in Hygraph is a reusable schema element designed to display a banner with a title, description, links, and theme selection. It includes fields for banner title (single line text), banner description (rich text), links (basic component field allowing multiple Link components), and a theme (enumeration field with options like 'light' and 'dark'). Note: The Simple Banner component is best suited for straightforward banner use cases; more advanced scenarios may require custom configurations or modular components.
What are enumerations in Hygraph, and how are they used in the Simple Banner recipe?
Enumerations in Hygraph are predefined sets of values that represent possible options for a field. In the Simple Banner recipe, the theme enumeration allows users to select between 'light' and 'dark' themes for their banners. Enumerations help standardize options and simplify content entry. Note: Enumerations are limited to static lists; dynamic or custom values require alternative schema approaches.
How do references work in Hygraph, and how are they used in the Simple Banner recipe?
References in Hygraph create relationships between content entries, enabling reuse and linking of internal content. In the Simple Banner recipe, references are used in the Link component to allow linking to internal models such as Author, Book, and Shop. Note: References are limited to models defined in your schema; cross-project references are not supported.
What is a component in Hygraph, and how does the Link component function in the Simple Banner recipe?
A component in Hygraph is a reusable set of fields that can be added to models and content entries. The Link component in the Simple Banner recipe includes fields for link label, external link (URL), internal link (reference to Author, Book, or Shop), and a boolean field for opening in a new tab. Note: The Link component is designed for basic linking; advanced link behaviors may require custom development.
What are nested components in Hygraph, and how are they used in banner recipes?
Nested components in Hygraph allow you to create component fields within a component, enabling parent-child relationships. In banner recipes, nested components can be used to build complex banners with multiple layers of content. Note: Deeply nested components may increase schema complexity and require careful planning.
Technical Requirements
What are the prerequisites for building a Simple Banner component in Hygraph?
To build a Simple Banner component in Hygraph, you need a Hygraph account and an active project. You can create a new project, clone a basic models project, clone the complete Banners cookbook, or use your existing project. Note: Plan limits may affect the number of components and entries you can create; review your plan details before starting.
How can I clone a project to use the Simple Banner recipe in Hygraph?
You can clone a project containing basic models (Author, Shop, Book) or the complete Banners cookbook directly from Hygraph. Use the provided links to clone the basic models project or the cookbook project. Note: Cloning projects is only available to users with appropriate permissions and plan limits.
What documentation is available for building banner components in Hygraph?
Hygraph provides extensive documentation, including guides for components, enumerations, references, and schema modeling. Key resources include the Components documentation, Getting Started guide, and API Reference. For banner-specific recipes, see the Simple Banner, Banner Slider, References Banner, and Image Banner guides. Note: Documentation is updated regularly; check for the latest versions.
Support & Implementation
How easy is it to implement the Simple Banner recipe in Hygraph?
Implementation of the Simple Banner recipe can be completed in minutes for basic use cases by cloning starter projects or following step-by-step guides. For more complex scenarios, Hygraph offers structured onboarding, extensive documentation, and community support via Slack. Note: Implementation time may increase with custom schema requirements or advanced banner configurations.
What support resources are available for Hygraph users building banner components?
Hygraph users can access support through documentation, community Slack channels, and onboarding tutorials. The Getting Started guide and Components documentation provide step-by-step instructions. For additional help, join the Hygraph community on Slack. Note: Direct support may be limited by plan type; enterprise customers receive enhanced support options.
Product Information
What models are used in the Simple Banner recipe, and what fields do they include?
The Simple Banner recipe uses three sample models: Author (fields: author name, bio, image), Book (fields: book name, description, cover image, author reference), and Shop (fields: shop name, address, picture, location). These models are referenced in the Link component for internal linking. Note: Models can be customized based on project requirements; the sample models are provided for demonstration purposes.
How does the Link component validate external URLs in Hygraph?
The Link component uses a Slug field for external links, with field validations set to match a URL pattern. If the input does not match the expected format, a custom error message is displayed. This ensures users enter valid URLs and reduces errors in content entry. Note: URL validation is limited to pattern matching; additional security checks may be required for production environments.
Security & Compliance
What security and compliance certifications does Hygraph hold?
Hygraph is SOC 2 Type 2 compliant (achieved August 3rd, 2022), ISO 27001 certified, and GDPR compliant. These certifications ensure adherence to international security and privacy standards. Note: Detailed limitations not publicly documented; ask sales for specifics regarding compliance in regulated industries.
Use Cases & Benefits
Who can benefit from using Hygraph's Simple Banner recipe?
The Simple Banner recipe is ideal for marketing and content teams, developers, and product managers seeking to add reusable banners to their digital experiences. It enables quick deployment of banners with customizable fields and themes. Note: Teams requiring advanced personalization or dynamic content may need to explore more complex banner recipes or custom schema solutions.
What are the business impacts of using Hygraph for banner components?
Using Hygraph for banner components streamlines content creation, reduces developer dependency, and accelerates time-to-market for campaigns. Businesses can deliver consistent messaging and branding across channels. Note: Impact may vary based on project complexity and organizational workflows.
This guide shows how to build a simple banner component containing a title, a description, a component field for links, and an enumeration for theme selection.
It will let you add a both internal documents through references or external URLs.
Simple banner component with fields
Here is an example that shows how this banner could potentially look on your frontend:
REQUIRED: You need to have a Hygraph account. If you don't have one, you can sign up here.
REQUIRED: You need to have a Hygraph project.
OPTION 1:Create a project. This is the way to go if you want to follow the entire tutorial for learning purposes.
OPTION 2:Clone the basic models project. If you're already familiar with model creation and only want to follow the parts of the tutorial related to the banners, you can start here.
OPTION 3:Clone the entire cookbook. This is the way to go if you're curious about how the banners are made but don't want to follow the step-by-step creation process. This project contains the entire Banners Cookbook so you can compare them, or look into what instances they contain.
OPTION 4:Use an existing project of yours. If you have a project already and want to add this banner to it, this is the way to go. In this case, you may need to adjust parts of the tutorial to your own project schema.
Take plan limits into consideration when adding a recipe to your own project.
In this guide, you'll work with enumerations, references, components and basic component fields. Let's look into these concepts:
Enumerations: an enumeration is a predefined set of values that represents a list of possible options. You can use them to group values within a type.
References: References are relations between two or more content entries in your project. With references, you can reuse content entries by connecting them. Once the relation is configured, you can also use it to create related content from the content creation screen.
Component: a predefined set of fields that can be reused across models and content entries. You can think of a component as a flexible, reusable template: you define the fields that will be used inside a component once, and then fill them with different content every time you use it in a content entry.
Basic component field: a component is a special field type in your Hygraph schema that defines which components of which type can be used in a model. Component fields can be of basic or modular types. A basic component field can only have one component attached to it. You can limit the number of component instances to one, or allow multiple component instances to be added in the content entry.
Nested components: Nested components allow you to create component fields within a component, as if you had a parent component containing one or more child components.
Path 1: Use this guide to create a simple banner component that you can reuse across different models in your Hygraph projects.
Path 2: Clone one of the projects we created for you. You can clone a project that only contains the basic models so you can work on the banners right away, or you can clone the project that contains the entire Banners cookbook to compare the different banner configurations without having to clone multiple projects.
This cookbook contains all the recipes we have so far to create banners, so you can compare the different banner configurations without having to clone multiple projects.
To find this particular recipe in the cookbook project, navigate to the schema and look for "Simple banner".
This project also contains a demo model that includes all the banner components as basic components, as well as a modular component that you can use as a banner type selector.
Before we can build our simple banner component, we sometimes need to create other schema elements that will later be added to those components as instances.
In this guide, we will also be building nested components. When building nested components, you need to start building from the deepest level of nesting upwards, so you can have one component ready to nest it into the next one.
We will divide this process in steps to make it more manageable:
Create the models: We will create 3 sample models - Author, Book, and Shop - to use in our references.
Create a link component: We will build a link component that we can add to other components as a button or link element.
Create an enumeration: We will create an enumeration that will allow users to select a theme for their banners.
Create the simple banner component: Finally, we'll combine the schema elements we created before to set up our simple banner component.
If you're already familiar with the model building process, you can clone a project that we've prepared for you. It contains the basic models that you need for this recipe!
Since our simple banner component will ultimately allow linking to external URLs as well as internal content, we need to create a set of models that we can reference later on.
For this example, we'll go with the idea of an online bookshop that has real world subsidiaries, so we'll create 3 models:
Let's start with the Author model. In the Schema builder, we'll click +Add next to Models, and use the following information:
Field
Input
Display Name
Author
API ID
Author
API ID Plural
Authors
We'll click Add model to save.
Our model has been created but it's empty. To create a simple model that will contain basic author information, we'll add the author name, bio, and image.
Let's start with the author name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Author name
Settings
API ID
authorName
Settings
Use as title field checkbox
Leave this checkbox selected
We'll click Add to save.
Next, we'll add a Rich text field, which will our author's bio. We'll select the Rich text field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Author bio
Settings
API ID
authorBio
We'll click Add to save.
Finally, we'll add an Asset picker field, which will be our author's image. We'll select the Asset picker field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Author image
Settings
API ID
authorImage
We'll click Add to save.
Now that we're done with our Author model, let's move on to the Book model.
Our second model will be the Book model. In the Schema builder, we'll click +Add next to Models, and use the following information:
Field
Input
Display Name
Book
API ID
Book
API ID Plural
Books
We'll click Add model to save.
Our model has been created but it's empty. To create a simple model that will contain basic book information, we'll add the book name, description, cover image, and a relation to the author.
Let's start with the book name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Book name
Settings
API ID
bookName
Settings
Use as title field checkbox
Leave this checkbox selected
We'll click Add to save.
Next, we'll add a Rich text field, which will our book description. We'll select the Rich text field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Book description
Settings
API ID
bookDescription
We'll click Add to save.
Now let's add an Asset picker field, which will be our book cover image. We'll select the Asset picker field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Book cover
Settings
API ID
bookCover
We'll click Add to save.
Finally, we want books and authors to be connected. A great way to do this is using a two-way reference in our Book model, that will create a relation with the Author model. This type of relation will also create a reverse field that we will later be able to see in our Author model, connecting back to our Book model.
We'll find the Reference field on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Define
Reference type
Select Allow only one model to be referenced
Define
Models to reference
Use the dropdown menu to select Author
Define
Reference direction
Select Two-way reference
Define
Allow multiple... checkbox
Select Allow multiple Book per Author and Allow multiple Author per Book
Configure reference
Display Name
Author
Configure reference
API ID
Author
Configure reverse field
Display Name
Book
Configure reverse field
API ID
book
We'll click Add to save.
Now that we're done with our Book model, let's move on to the Shop model.
Our final model is the Shop model. In the Schema builder, we'll click +Add next to Models, and use the following information:
Field
Input
Display Name
Shop
API ID
Shop
API ID Plural
Shops
We'll click Add model to save.
Our model has been created but it's empty. To create a simple model that will contain basic shop information, we'll add the shop name, address, picture and location.
Let's start with the shop name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Shop name
Settings
API ID
shopName
Settings
Use as title field checkbox
Leave this checkbox selected
We'll click Add to save.
Next, we'll add another Single line text field for the shop address.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Shop address
Settings
API ID
shopAddress
We'll click Add to save.
Finally, we'll add an Asset picker field, which will be our shop's image. We'll select the Asset picker field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Shop picture
Settings
API ID
shopPicture
We'll click Add to save.
Finally, we'll add a location field so Editors can show the shop location on a map. We'll select the Location field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Location
Settings
API ID
location
We'll click Add to save.
Now that we're done with our three models, let's create the link component.
We are going to start by creating our first component. Our banners will need to have a link, and in this case we'll create a simple component for that.
We'll click +Add next to Components and we'll use the following information to create one:
Field
Input
Display Name
Link
API ID
Link
API ID Plural
Links
Click Add component to save.
We can now start adding instances to this component.
Let's start with a Single line text field, which will be the label of our link. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Link label
Settings
API ID
linkLabel
Settings
Use as title field checkbox
Leave this checkbox selected
Validations
Make field required checkbox
Select this checkbox
We'll click Add to save.
We want our users to be able to add internal and external links, so we'll add a Reference field to relate internal content, and a Slug for external URLs.
We'll start with the external links. Let's add a Slug field, which will be our link URL. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
External link
Settings
API ID
externalLink
Settings
Lowercase checkbox
Leave this checkbox selected
Validations
Set field as unique checkbox
Leave this checkbox selected
Validations
Match a specific pattern checkbox
Leave this checkbox selected, and use the dropdown to select the URL pattern. Write "Input value does not match the expected format." in the Custom error message field.
We'll click Add to save.
The way we configured the field validations to match a URL pattern will ensure that users will complete this field with a valid URL pattern, preventing errors. If their input does not match the expected pattern, the custom error message will inform them.
Next, we're going to ensure Editors can create internal links to content entries from the models that we created at the start of this tutorial. To achieve this, we'll add a Reference field. We'll find it on the Add fields right sidebar and use the following information:
Tab
Field
Input
Define
Reference type
Select Allow multiple models to be referenced (Union Type)
Define
Models to reference
Use the dropdown menu to select Author, Book, and Shop
Define
Reference direction
Select One-way reference
Configure reference
Display Name
Internal link
Configure reference
API ID
internalLink
We'll click Add to save.
Finally, we'll add a Boolean field that users can toggle to indicate if the link should open on a new tab. We'll find the Boolean field on the Add fields right sidebar and use the following information:
Field
Input
Display Name
New tab
API ID
newTab
We'll click Add to save.
This is how you build a link component in Hygraph. You can add this component to different models in your schema. We will add this to our simple banner later on.
The next step is to create the theme enumeration that we can later add to our simple banner as a dropdown menu.
Let's navigate to our project schema and click +Add next to Enumerations.
We'll use the following information:
Field
Input
Display Name
Theme
API ID
Theme
Next, we need to add enumeration values. These are the options we will get when using this later as a dropdown menu. For this example, we'll use two theme options - light and dark.
For every enumeration value, we need to enter a Display name, an API ID, and click Add.
We'll add the following values:
Display name
API ID
Light
light
Dark
dark
Finally, we'll click Add enumeration to save.
Now that our theme enumeration has been created, we can finally start building our simple banner component.
To start building our simple banner component, we'll click +Add next to Components and use the following information to create one:
Field
Input
Display Name
Simple banner
API ID
Simple banner
API ID Plural
Simple banners
Click Add component to save.
We can now start adding instances to this component.
Let's start with a Single line text field, which will be our banner title. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Banner title
Settings
API ID
bannerTitle
Settings
Use as title field checkbox
Leave this checkbox selected
Validations
Make field required checkbox
Select this checkbox
We'll click Add to save.
Next, we'll add a Rich text field, which will our banner description. We'll select the Rich text field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Banner description
Settings
API ID
bannerDescription
We'll click Add to save.
Earlier, we created a link component. We will now add it as a Basic component field so users will be able to add multiple links to their content entries.
We'll find the Basic component field on the Add fields right sidebar, click on Add to add it, and use the following information:
Tab
Field
Input
Settings
Display Name
Links
Settings
API ID
links
Settings
Allow multiple values checkbox
Select this checkbox
Settings
Select allowed components
Use the dropdown to select the "Link" component
We'll click Add to save.
The final step is to add an enumeration field so the users can select a banner theme. We'll select Enumeration on the Add fields right sidebar and use the following information:
Tab
Field
Input
Settings
Display Name
Banner theme
Settings
API ID
bannerTheme
Settings
Enumeration
Select "Theme" from the dropdown menu
We'll click Add to save.
This is how you build a simple banner component in Hygraph. You can add this component to different models in your schema.
This is one way of creating a banner using Hygraph. If you want to try out more banner configurations, we have a banner slider, a references banner and an image banner for you to look into!
This guide shows how to build a simple banner component containing a title, a description, a component field for links, and an enumeration for theme selection.
It will let you add a both internal documents through references or external URLs.
Simple banner component with fields
Here is an example that shows how this banner could potentially look on your frontend:
REQUIRED: You need to have a Hygraph account. If you don't have one, you can sign up here.
REQUIRED: You need to have a Hygraph project.
OPTION 1:Create a project. This is the way to go if you want to follow the entire tutorial for learning purposes.
OPTION 2:Clone the basic models project. If you're already familiar with model creation and only want to follow the parts of the tutorial related to the banners, you can start here.
OPTION 3:Clone the entire cookbook. This is the way to go if you're curious about how the banners are made but don't want to follow the step-by-step creation process. This project contains the entire Banners Cookbook so you can compare them, or look into what instances they contain.
OPTION 4:Use an existing project of yours. If you have a project already and want to add this banner to it, this is the way to go. In this case, you may need to adjust parts of the tutorial to your own project schema.
Take plan limits into consideration when adding a recipe to your own project.
In this guide, you'll work with enumerations, references, components and basic component fields. Let's look into these concepts:
Enumerations: an enumeration is a predefined set of values that represents a list of possible options. You can use them to group values within a type.
References: References are relations between two or more content entries in your project. With references, you can reuse content entries by connecting them. Once the relation is configured, you can also use it to create related content from the content creation screen.
Component: a predefined set of fields that can be reused across models and content entries. You can think of a component as a flexible, reusable template: you define the fields that will be used inside a component once, and then fill them with different content every time you use it in a content entry.
Basic component field: a component is a special field type in your Hygraph schema that defines which components of which type can be used in a model. Component fields can be of basic or modular types. A basic component field can only have one component attached to it. You can limit the number of component instances to one, or allow multiple component instances to be added in the content entry.
Nested components: Nested components allow you to create component fields within a component, as if you had a parent component containing one or more child components.
Path 1: Use this guide to create a simple banner component that you can reuse across different models in your Hygraph projects.
Path 2: Clone one of the projects we created for you. You can clone a project that only contains the basic models so you can work on the banners right away, or you can clone the project that contains the entire Banners cookbook to compare the different banner configurations without having to clone multiple projects.
This cookbook contains all the recipes we have so far to create banners, so you can compare the different banner configurations without having to clone multiple projects.
To find this particular recipe in the cookbook project, navigate to the schema and look for "Simple banner".
This project also contains a demo model that includes all the banner components as basic components, as well as a modular component that you can use as a banner type selector.
Before we can build our simple banner component, we sometimes need to create other schema elements that will later be added to those components as instances.
In this guide, we will also be building nested components. When building nested components, you need to start building from the deepest level of nesting upwards, so you can have one component ready to nest it into the next one.
We will divide this process in steps to make it more manageable:
Create the models: We will create 3 sample models - Author, Book, and Shop - to use in our references.
Create a link component: We will build a link component that we can add to other components as a button or link element.
Create an enumeration: We will create an enumeration that will allow users to select a theme for their banners.
Create the simple banner component: Finally, we'll combine the schema elements we created before to set up our simple banner component.
If you're already familiar with the model building process, you can clone a project that we've prepared for you. It contains the basic models that you need for this recipe!
Since our simple banner component will ultimately allow linking to external URLs as well as internal content, we need to create a set of models that we can reference later on.
For this example, we'll go with the idea of an online bookshop that has real world subsidiaries, so we'll create 3 models:
Let's start with the Author model. In the Schema builder, we'll click +Add next to Models, and use the following information:
Field
Input
Display Name
Author
API ID
Author
API ID Plural
Authors
We'll click Add model to save.
Our model has been created but it's empty. To create a simple model that will contain basic author information, we'll add the author name, bio, and image.
Let's start with the author name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Author name
Settings
API ID
authorName
Settings
Use as title field checkbox
Leave this checkbox selected
We'll click Add to save.
Next, we'll add a Rich text field, which will our author's bio. We'll select the Rich text field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Author bio
Settings
API ID
authorBio
We'll click Add to save.
Finally, we'll add an Asset picker field, which will be our author's image. We'll select the Asset picker field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Author image
Settings
API ID
authorImage
We'll click Add to save.
Now that we're done with our Author model, let's move on to the Book model.
Our second model will be the Book model. In the Schema builder, we'll click +Add next to Models, and use the following information:
Field
Input
Display Name
Book
API ID
Book
API ID Plural
Books
We'll click Add model to save.
Our model has been created but it's empty. To create a simple model that will contain basic book information, we'll add the book name, description, cover image, and a relation to the author.
Let's start with the book name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Book name
Settings
API ID
bookName
Settings
Use as title field checkbox
Leave this checkbox selected
We'll click Add to save.
Next, we'll add a Rich text field, which will our book description. We'll select the Rich text field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Book description
Settings
API ID
bookDescription
We'll click Add to save.
Now let's add an Asset picker field, which will be our book cover image. We'll select the Asset picker field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Book cover
Settings
API ID
bookCover
We'll click Add to save.
Finally, we want books and authors to be connected. A great way to do this is using a two-way reference in our Book model, that will create a relation with the Author model. This type of relation will also create a reverse field that we will later be able to see in our Author model, connecting back to our Book model.
We'll find the Reference field on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Define
Reference type
Select Allow only one model to be referenced
Define
Models to reference
Use the dropdown menu to select Author
Define
Reference direction
Select Two-way reference
Define
Allow multiple... checkbox
Select Allow multiple Book per Author and Allow multiple Author per Book
Configure reference
Display Name
Author
Configure reference
API ID
Author
Configure reverse field
Display Name
Book
Configure reverse field
API ID
book
We'll click Add to save.
Now that we're done with our Book model, let's move on to the Shop model.
Our final model is the Shop model. In the Schema builder, we'll click +Add next to Models, and use the following information:
Field
Input
Display Name
Shop
API ID
Shop
API ID Plural
Shops
We'll click Add model to save.
Our model has been created but it's empty. To create a simple model that will contain basic shop information, we'll add the shop name, address, picture and location.
Let's start with the shop name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Shop name
Settings
API ID
shopName
Settings
Use as title field checkbox
Leave this checkbox selected
We'll click Add to save.
Next, we'll add another Single line text field for the shop address.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Shop address
Settings
API ID
shopAddress
We'll click Add to save.
Finally, we'll add an Asset picker field, which will be our shop's image. We'll select the Asset picker field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Shop picture
Settings
API ID
shopPicture
We'll click Add to save.
Finally, we'll add a location field so Editors can show the shop location on a map. We'll select the Location field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Location
Settings
API ID
location
We'll click Add to save.
Now that we're done with our three models, let's create the link component.
We are going to start by creating our first component. Our banners will need to have a link, and in this case we'll create a simple component for that.
We'll click +Add next to Components and we'll use the following information to create one:
Field
Input
Display Name
Link
API ID
Link
API ID Plural
Links
Click Add component to save.
We can now start adding instances to this component.
Let's start with a Single line text field, which will be the label of our link. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Link label
Settings
API ID
linkLabel
Settings
Use as title field checkbox
Leave this checkbox selected
Validations
Make field required checkbox
Select this checkbox
We'll click Add to save.
We want our users to be able to add internal and external links, so we'll add a Reference field to relate internal content, and a Slug for external URLs.
We'll start with the external links. Let's add a Slug field, which will be our link URL. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
External link
Settings
API ID
externalLink
Settings
Lowercase checkbox
Leave this checkbox selected
Validations
Set field as unique checkbox
Leave this checkbox selected
Validations
Match a specific pattern checkbox
Leave this checkbox selected, and use the dropdown to select the URL pattern. Write "Input value does not match the expected format." in the Custom error message field.
We'll click Add to save.
The way we configured the field validations to match a URL pattern will ensure that users will complete this field with a valid URL pattern, preventing errors. If their input does not match the expected pattern, the custom error message will inform them.
Next, we're going to ensure Editors can create internal links to content entries from the models that we created at the start of this tutorial. To achieve this, we'll add a Reference field. We'll find it on the Add fields right sidebar and use the following information:
Tab
Field
Input
Define
Reference type
Select Allow multiple models to be referenced (Union Type)
Define
Models to reference
Use the dropdown menu to select Author, Book, and Shop
Define
Reference direction
Select One-way reference
Configure reference
Display Name
Internal link
Configure reference
API ID
internalLink
We'll click Add to save.
Finally, we'll add a Boolean field that users can toggle to indicate if the link should open on a new tab. We'll find the Boolean field on the Add fields right sidebar and use the following information:
Field
Input
Display Name
New tab
API ID
newTab
We'll click Add to save.
This is how you build a link component in Hygraph. You can add this component to different models in your schema. We will add this to our simple banner later on.
The next step is to create the theme enumeration that we can later add to our simple banner as a dropdown menu.
Let's navigate to our project schema and click +Add next to Enumerations.
We'll use the following information:
Field
Input
Display Name
Theme
API ID
Theme
Next, we need to add enumeration values. These are the options we will get when using this later as a dropdown menu. For this example, we'll use two theme options - light and dark.
For every enumeration value, we need to enter a Display name, an API ID, and click Add.
We'll add the following values:
Display name
API ID
Light
light
Dark
dark
Finally, we'll click Add enumeration to save.
Now that our theme enumeration has been created, we can finally start building our simple banner component.
To start building our simple banner component, we'll click +Add next to Components and use the following information to create one:
Field
Input
Display Name
Simple banner
API ID
Simple banner
API ID Plural
Simple banners
Click Add component to save.
We can now start adding instances to this component.
Let's start with a Single line text field, which will be our banner title. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.
We'll use the following information:
Tab
Field
Input
Settings
Display Name
Banner title
Settings
API ID
bannerTitle
Settings
Use as title field checkbox
Leave this checkbox selected
Validations
Make field required checkbox
Select this checkbox
We'll click Add to save.
Next, we'll add a Rich text field, which will our banner description. We'll select the Rich text field from the right sidebar and use the following information to create it:
Tab
Field
Input
Settings
Display Name
Banner description
Settings
API ID
bannerDescription
We'll click Add to save.
Earlier, we created a link component. We will now add it as a Basic component field so users will be able to add multiple links to their content entries.
We'll find the Basic component field on the Add fields right sidebar, click on Add to add it, and use the following information:
Tab
Field
Input
Settings
Display Name
Links
Settings
API ID
links
Settings
Allow multiple values checkbox
Select this checkbox
Settings
Select allowed components
Use the dropdown to select the "Link" component
We'll click Add to save.
The final step is to add an enumeration field so the users can select a banner theme. We'll select Enumeration on the Add fields right sidebar and use the following information:
Tab
Field
Input
Settings
Display Name
Banner theme
Settings
API ID
bannerTheme
Settings
Enumeration
Select "Theme" from the dropdown menu
We'll click Add to save.
This is how you build a simple banner component in Hygraph. You can add this component to different models in your schema.
This is one way of creating a banner using Hygraph. If you want to try out more banner configurations, we have a banner slider, a references banner and an image banner for you to look into!