looking for an easy and usable solution for the following scenario. Users must be able to create their own multi-level Country Groups to be used as checkbox-tree filters later on in an application. One could safely assume that a user already knows the structure they are going to need, but you can't base a solid UI and user expectation based on assumptions.

Logic would read that they create the parent levels first, and then end up with the deepest level category and apply items on it, eg:

Parent cat > Child cat > items =>
Europe > Northern Europe > Countries

However, if you users are not somehow restricted, they could also apply items to a top-level category, eg:

Europe > Greece, Italy, France...

So if someone creates a (future-to-be top-level) region, applies countries on it and afterwards decides to create sub-regions with their countries, this would create a serious UX when selecting the filters..

Assuming the following structure with countries also directly applied on a top-level - the top-level checkbox toggle would a) toggle children sub-regions and/or b) toggle its own countries. A paradox, considering that a top-level region might already contain countries of its sub-regions.

☑ - Europe (Greece, Italy, France...)
  ⌊ ☑ Southern Europe (Greece, Italy...)
  ⌊ ☑ Northern Europe (France...)

The common way to design things would be to create the structure top-down, assume (and hope) that users don't apply directly countries on a region and then create sub-regions and select previously created categories as parents.

I thought about following a different approach - when creating a region, force users to either select between Countries or Sub-regions before populating the rest of the form, however, this would assume that the structure is created bottom-up (you need to create sub-regions first) which isn't very intuitive.

Another solution would be to completely ignore countries directly applied on any region, or sub-region that is not the deepest level, however, I don't really like the solution. This could also mean that users might apply countries several times.

So, the question is, how would you guide users using an easy UI to create this structure without having to explain anything and so that everything is intuitive and flows naturally?

1 Answer 1


Without knowing the starting point of the country structure, and the exact objective your users need to attain, this is hard to determine. So I have to assume that at the onset sits an unordered, alphabetically sorted list of the currently 195 sovereign countries of the world.

Option 1 - Folder Structure

If you want to leave any further categorisation to the discretion of your users - i.e. not necessarily grouping by continent and region - the thing that comes to mind is a file-and-folder structure. The item count in your list remains 195, but you can create wrapper items with IDs to group items.

If the country directory is fixed (or 'inherited'), meaning you cannot make up new countries on the fly, or declare previously subnational entities unilaterally as sovereign, the only 'New...' command would be to create a wrapper, which you then give a name ('Eurasia'; if it was just 'Europe', where do Turkey and Russia go?), and into which you can now drag list items. The drawback is that such assignments are unique and result in a rigid tier system. The 'Eurasia' wrapper will need further lower-level wrappers like 'Nordics', 'Central Europe', 'CIS' or anything of your choosing, which you drag into 'Eurasia' and into which you drag 'Norway', 'Finland', etc. The drawback of this IA is limited categorisation. It will result in a tree hierarchy structure with items checkbox-selectable individually or in a group, but the categorisation must be fairly strict.

Option 2 - Category Labelling / Tagging

The following is more laborious for the user to set up, but more flexible for filtering purposes once in place: Create a label or tag with an ID of your choosing, and drag that label onto each pertinent list item. Multiple assignments are possible. The label 'Nordics' can tag several countries from Iceland to Finland but a next label 'Scandinavia' might exclude Finland, yet another label 'Baltic' might exclude Norway. Such a scheme makes multiple overlapping associations possible and broadens the categories by which you can later filter and whittle down your list.

Above a certain level of multi-label fussiness you might want to offer a simple query builder ("Label 1" "is" "Nordics" "AND" "Label 2" "is" "EU Member"; result: Denmark, Sweden, Finland).

A combination of the two is also doable - resulting in two filtering methods; by hierarchy or by some other predicate - but probably overkill; at that point it really depends on what workflow you need your users to achieve with the country list you offer. Filtering, to be sure, but to what exact end?

Some level of motion enabled UI, no further than drag-and-drop, will make the above quite learnable, to address your point about an easy UI.

Both options also give your users full freedom over determining the categorisation they wish to represent in their country list. You're certainly not shoehorning them into some pre-ordained structure.

I hope that helps. Good luck!

  • Thank you for the useful insight, but this is not what I am after - instead of giving freedom, I am looking for an intuitive way for users to create custom regions, nested inside larger regions in n-levells (eg Europe > Eastern Europe > Smaller Eastern Europe). When filtering comes in the game though, top level regions essentially need to toggle the regions below them - thus they should not have any countries directly applied on them. So the actual question is how to guide users into creating n-level nested regions but only allowing them to assign countries to the deepest level. Dec 4, 2018 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.