<p>Depending on the amount of data required (and if it makes logical sense to have the data separate from the entry) I'd probably set this up as a "Contact details" section itself, using the individual matrix fields from your example.</p>

<p>Then if some other entry type needs it, set up an entries field in that entry type, limited to entries in the "contact details" section and limited to the number of contact detail entries you want to show, probably 1 going by your example.</p>

<p>This way you can still have your details grouped (as a separate entry) but it's more compact as a single field rather than a matrix in the fields of the entry you're using the contact details in.</p>

<p>The trade-off is that you need to enter your contact details entry before you try to add it to your "x" entry field.</p>

<p>If it makes no logical sense to have the fields as entirely different sections and your fields are getting cumbersome I think the best way is to put them in a different tab to at least remove the clutter.</p>

CC BY-SA 3.0
2014-08-06T18:06:36.153Z
+1 If the fields seem cluttered, give them their own tab in the field layout.
Lindsey D
CC BY-SA 3.0
2014-08-06T15:50:14.347Z
2014-08-06T15:50:14.347Z
billythekid
<p>As other answers here say, unfortunately creating <em>tabs</em> is currently the only way to "group" contextually related fields (or create "fieldsets", as it were).</p>

<p>What you could do, is use either <a href="http://straightupcraft.com/craft-plugins/fieldnotes" rel="nofollow">FieldNotes</a> or <a href="http://straightupcraft.com/craft-plugins/entry-instructions" rel="nofollow">Entry Instructions</a> to create messages/headers in your edit tab, visually separating one "group" of fields from another.</p>

CC BY-SA 3.0
2015-03-05T10:57:40.130Z
2015-03-05T10:57:40.130Z
Mats Mikkel Rummelhoff
<p>Just in case anyone is interested, I've decided to make a plugin for this. It's pretty basic, but its exactly what I was after. It's essentially a regular Table with a <code>Label</code> option to provide some read-only text.</p>

<p><a href="https://github.com/engram-design/SetTable" rel="nofollow">https://github.com/engram-design/SetTable</a></p>

CC BY-SA 3.0
2015-03-04T23:30:40.800Z
2015-03-04T23:30:40.800Z
crawf
<p>Using tabs is the only way to do this at the moment. As Lindsey says, using a Matrix field adds a table to the database and will slow down your load times.</p>

<p>I'd prefer, like you, to be able to group fields to improve usability for the client, but there's no way to do this at the moment apart from tabs.</p>

CC BY-SA 3.0
2015-02-02T20:45:55.377Z
thats right, its not a technical issue at all (works just fine), but rather a visual issue. At the moment, I've just created custom fieldtypes for this sort of thing, but would be great if there was a high-level, or provided by a plugin way to group fields a little. I'm using https://github.com/elivz/VzAddress-Craft which is pretty close to how I'd like to be able to show some fields. Cheers!
crawf
CC BY-SA 3.0
2015-02-02T11:47:19.230Z
2015-02-02T11:47:19.230Z
darylknight
<p>Just started working with Craft, and it's been great! One question I have is regarding the 'correct' way to create a group of fields, rather than using Matrix or Table.</p>

<p>To better illustrate, see the below screenshot of a Matrix, which is setup as a Global for people to add their contact information.</p>

<p><img src="https://i.sstatic.net/ufL0z.png" alt="enter image description here"></p>

<p>Obviously, it's not really being used for the purpose of repeating content, but at least it groups fields together nicely. It does have the greyed-out button when setting Max Blocks to 1.</p>

<p>The other alternative would be to create each Field separately for the 3 fields above, and add those to the Field Layout. This is kind of a fair amount of work, and leaves you with a massive cluster of Fields (I'm aware you can Group them).</p>

<p>Anyway - hope I've explained myself! Just wanted to bounce ideas around, and at least make sure I'm on the right track!</p>

CC BY-SA 3.0
2014-08-06T18:04:58.680Z
If your "max blocks" is set to 1, aren't you better off just creating those as individual fields (instead of a Matrix)? Using a Matrix field creates a separate table in the database, and therefore more complex SQL calls... With only one instance of each field, I don't see the value of running that through a Matrix field.
Lindsey D
CC BY-SA 3.0
2015-02-02T11:44:55.457Z
He's not deliberately doing it as a matrix field, the question is related to how to make it clear to the user that some fields are grouped to improve usability. At the moment, there's no clear way to group fields for the client, apart from tabs.
darylknight
<matrix><field>
Matrix field alternative (or easier field grouping)
# Matrix field alternative (or easier field grouping)

(Asked by: username_0 on 2014-08-06)

Just started working with Craft, and it's been great! One question I have is regarding the 'correct' way to create a group of fields, rather than using Matrix or Table.

To better illustrate, see the below screenshot of a Matrix, which is setup as a Global for people to add their contact information.

![enter image description here](https://i.sstatic.net/ufL0z.png)

Obviously, it's not really being used for the purpose of repeating content, but at least it groups fields together nicely. It does have the greyed-out button when setting Max Blocks to 1.

The other alternative would be to create each Field separately for the 3 fields above, and add those to the Field Layout. This is kind of a fair amount of work, and leaves you with a massive cluster of Fields (I'm aware you can Group them).

Anyway - hope I've explained myself! Just wanted to bounce ideas around, and at least make sure I'm on the right track!

**Tags:** matrix, field
> **Comments:**
> **username_1**: If your "max blocks" is set to 1, aren't you better off just creating those as individual fields (instead of a Matrix)? Using a Matrix field creates a separate table in the database, and therefore more complex SQL calls... With only one instance of each field, I don't see the value of running that through a Matrix field.  
> **username_2**: He's not deliberately doing it as a matrix field, the question is related to how to make it clear to the user that some fields are grouped to improve usability. At the moment, there's no clear way to group fields for the client, apart from tabs.  

---

## 4 answers

### Answer by username_3 on 2014-08-06. Score: 3

Depending on the amount of data required (and if it makes logical sense to have the data separate from the entry) I'd probably set this up as a "Contact details" section itself, using the individual matrix fields from your example.

Then if some other entry type needs it, set up an entries field in that entry type, limited to entries in the "contact details" section and limited to the number of contact detail entries you want to show, probably 1 going by your example.

This way you can still have your details grouped (as a separate entry) but it's more compact as a single field rather than a matrix in the fields of the entry you're using the contact details in.

The trade-off is that you need to enter your contact details entry before you try to add it to your "x" entry field.

If it makes no logical sense to have the fields as entirely different sections and your fields are getting cumbersome I think the best way is to put them in a different tab to at least remove the clutter.

> **Comments:**
> **username_1**: +1 If the fields seem cluttered, give them their own tab in the field layout.  

---

### Answer by username_4 on 2015-03-05. Score: 3

As other answers here say, unfortunately creating *tabs* is currently the only way to "group" contextually related fields (or create "fieldsets", as it were).

What you could do, is use either [FieldNotes](http://straightupcraft.com/craft-plugins/fieldnotes) or [Entry Instructions](http://straightupcraft.com/craft-plugins/entry-instructions) to create messages/headers in your edit tab, visually separating one "group" of fields from another.


---

### Answer by username_0 on 2015-03-04. Score: 2

Just in case anyone is interested, I've decided to make a plugin for this. It's pretty basic, but its exactly what I was after. It's essentially a regular Table with a `Label` option to provide some read-only text.

<https://github.com/engram-design/SetTable>


---

### Answer by username_2 on 2015-02-02. Score: 0

Using tabs is the only way to do this at the moment. As Lindsey says, using a Matrix field adds a table to the database and will slow down your load times.

I'd prefer, like you, to be able to group fields to improve usability for the client, but there's no way to do this at the moment apart from tabs.

> **Comments:**
> **username_0**: thats right, its not a technical issue at all (works just fine), but rather a visual issue. At the moment, I've just created custom fieldtypes for this sort of thing, but would be great if there was a high-level, or provided by a plugin way to group fields a little. I'm using https://github.com/elivz/VzAddress-Craft which is pretty close to how I'd like to be able to show some fields. Cheers!  

---

