Search


Conjunctions (and/or)

Providing a more visual seperation between two decision points by a visual cue (or) based on user testing. Also provide a connecting conjunction to show two parts are connected (and).

GCWeb implementation plan

Todo and for future consideration

Sponsor: CRA - Christopher Oakes (@christopher-o)

On this page

Basic configurations

The design can be configured using a list, or a simple block element.

With headers

Or design

Lead in statement:

  • Header A: Option 1 of 2

    This is content for header A

  • Header B: Option 2 of 2

    This is content for header B

And design

Lead in statement:

  • Header A

    This is content for part A

  • Header B

    This is content for part B

View code
//List element "or" design
<p>Lead in statement:</p>
<ul class="cnjnctn-type-or">
    <li class="cnjnctn-col">
        <h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
        <p>This is content for option A</p>
    </li>
	<li class="cnjnctn-col">
        <h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
        <p>This is content for option B</p>
    </li>
</ul>

//List element "and" design
<p>Lead in statement:</p>
<ul class="cnjnctn-type-and">
	<li class="cnjnctn-col">
        <h5>Header A</h5>
        <p>This is content for  part A</p>
    </li>
    <li class="cnjnctn-col">
        <h5>Header B</h5>
        <p>This is content for part B</p>
    </li>
</ul>

//Block element (e.g. <div>) "or" design
<p>Lead in statement:</p>
<div class="cnjnctn-type-or">
    <section class="cnjnctn-col">
        <h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
        <p>This is content for option A</p>
    </section>
    <section class="cnjnctn-col">
        <h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
        <p>This is content for option B</p>
    </section>
</div>

//Block element "and" design
<p>Lead in statement:</p>
<div class="cnjnctn-type-and">
    <section class="cnjnctn-col">
        <h5>Header A</h5>
        <p>This is content for part A</p>
    </section>
    <section class="cnjnctn-col">
        <h5>Header B</h5>
        <p>This is content for part B</p>
    </section>
</div>
  

Without headers

Or design

Lead in statement:

  • This is content for option A
  • This is content for option B

And design

Lead in statement:

  • This is content for part A
  • This is content for part B
View code
//List element "or" design
<p>Lead in statement:</p>
<ul class="cnjnctn-type-or">
    <li class="cnjnctn-col">
        This is content for option A
    </li>
    <li class="cnjnctn-col">
        This is content for option B
    </li>
</ul>

//List element "and" design
<p>Lead in statement:</p>
<ul class="cnjnctn-type-and">
    <li class="cnjnctn-col">
        This is content for part A
    </li>
    <li class="cnjnctn-col">
        This is content for part B
    </li>
</ul>

//Block element (e.g. <div>) "or" design
<p>Lead in statement:</p>
<div class="cnjnctn-type-or">
    <div class="cnjnctn-col">
        <p>This is content for option A</p>
    </div>
    <div class="cnjnctn-col">
        <p>This is content for option B</p>
    </div>
</div>

//Block element "and" design
<p>Lead in statement:</p>
<div class="cnjnctn-type-and">
    <div class="cnjnctn-col">
        <p>This is content for part A</p>
    </div>
    <div class="cnjnctn-col">
        <p>This is content for part B</p>
    </div>
</div>
  

Responsive designs

For the examples that follow, the code will be using a block element for simplicity. However they can also be coded using a list element (as long as the content still respects all guidance on using lists).

Using these extra classes creates a side-by-side design above a certain pixel resolution (follows the WET4 responsive break points).

The default design (as shown above) is stacked on all resolutions and never is side-by-side.

Use your browser to resize the view of the page to see how the design reacts in different resolutions.

Always side-by-side

This design does not stack, on any resolution

Or design

Lead in statement:

Header A: Option 1 of 2

This is content for header A

Header B: Option 2 of 2

This is content for header B

And design

Lead in statement:

Header A

This is content for header A

Header B

This is content for header B

View code
//Or design
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-xs">
	<section class="cnjnctn-col">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</section>
	<section class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
	</section>
</div>
//And design
<p>Lead in statement:</p>
<div class="cnjnctn-type-and cnjnctn-xs">
	<section class="cnjnctn-col">
		<h5>Header A</h5>
		<p>This is content for header A </p>
	</section>
	<section class="cnjnctn-col">
		<h5>Header B</h5>
		<p>This is content for header B</p>
	</section>
</div>

Side-by-side ≥ 768px

This design stacks on 767px and below.

Or design

Lead in statement:

Header A: Option 1 of 2

This is content for header A

Header B: Option 2 of 2

This is content for header B

And design

Lead in statement:

Header A

This is content for header A

Header B

This is content for header B

View code
//Or design
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-sm">
	<div class="cnjnctn-col">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
	</div>
</div>
//And design
<p>Lead in statement:</p>
<div class="cnjnctn-type-and cnjnctn-sm">
	<div class="cnjnctn-col">
		<h5>Header A</h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B</h5>
		<p>This is content for header B</p>
	</div>
</div>

Side-by-side ≥ 992px

This design stacks on 991px and below.

Or design

Lead in statement:

Header A: Option 1 of 2

This is content for header A

Header B: Option 2 of 2

This is content for header B

And design

Lead in statement:

Header A

This is content for header A

Header B

This is content for header B

View code
//Or design
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-md">
	<div class="cnjnctn-col">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
	</div>
</div>
//And design
<p>Lead in statement:</p>
<div class="cnjnctn-type-and cnjnctn-md">
	<div class="cnjnctn-col">
		<h5>Header A</h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B</h5>
		<p>This is content for header B</p>
	</div>
</div>

Side-by-side ≥ 1200px

This design stacks on 1199px and below.

Or design

Lead in statement:

Header A: Option 1 of 2

This is content for header A

Header B: Option 2 of 2

This is content for header B

And design

Lead in statement:

Header A

This is content for header A

Header B

This is content for header B

View code
//Or design
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
	</div>
</div>
//And design
<p>Lead in statement:</p>
<div class="cnjnctn-type-and cnjnctn-lg">
	<div class="cnjnctn-col">
		<h5>Header A</h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B</h5>
		<p>This is content for header B</p>
	</div>
</div>

Customization

For the examples that follow, the examples will be using a block element and mostly the "or" design for simplicity. However they can also be coded using a list element and using the "and" design.

Custom column widths

Column set to 90% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 90% of default cnjnctn-col-90)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 80% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 80% of default cnjnctn-col-80)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 75% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 75% of default cnjnctn-col-75)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 70% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 70% of default cnjnctn-col-70)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 60% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 60% of default cnjnctn-col-60)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 50% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 50% of default cnjnctn-col-50)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 40% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 40% of default cnjnctn-col-40)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 30% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 30% of default cnjnctn-col-30)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 25% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 25% of default cnjnctn-col-25)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Column set to 20% of original width (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 2

This is content for header A (at 20% of default cnjnctn-col-20)

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

View code
//90% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-90">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//80% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-80">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//75% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-75">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//70% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-70">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//60% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-60">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//50% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-50">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//40% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-40">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//30% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-30">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//25% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-25">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>
//20% of default width
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col-20">
		<h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
		<p>This is content for header B</p>
		<p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
	</div>
</div>

No left border when stacked

Basic configuration

Or design

Lead in statement:

This is content for option A
This is content for option B
And design

Lead in statement:

This is content for part A
This is content for part B
View code
//Basic "or" design
<section class="panel panel-default">
...
<p>Lead in statement:</p>
<div class="cnjnctn-type-or brdr-0">
	<div class="cnjnctn-col">
		This is content for option A
	</div>
	<div class="cnjnctn-col">
		This is content for option B
	</div>
</div>
...
</section>

//Basic "and" design
<section class="panel panel-default">
...
<p>Lead in statement:</p>
<div class="cnjnctn-type-and brdr-0">
	<div class="cnjnctn-col">
		This is content for part A
	</div>
	<div class="cnjnctn-col">
		This is content for part B
	</div>
</div>
</div>
...
</section>
  

Side-by-side ≥ 992px

Use your browser to resize the view of the page to see that there is no left border when stacked.

Or design

Lead in statement:

  • This is content for option A
  • This is content for option B
And design

Lead in statement:

  • This is content for part A
  • This is content for part B
View code
//Side-by-side above 991px "or" design
<section class="panel panel-default">
...
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-md brdr-0">
	<div class="cnjnctn-col">
		This is content for option A
	</div>
	<div class="cnjnctn-col">
		This is content for option B
	</div>
</div>
...
</section>

//Side-by-side above 991px "and" design
<section class="panel panel-default">
...
<p>Lead in statement:</p>
<div class="cnjnctn-type-and cnjnctn-md brdr-0">
	<div class="cnjnctn-col">
		This is content for part A
	</div>
	<div class="cnjnctn-col">
		This is content for part B
	</div>
</div>
</div>
...
</section>
  

Flexible designs

Multiple columns

If you require more than four options (columns), consider the always stacked default design.

Three columns (example stacks on small devices)

Lead in statement:

Header A: Option 1 of 3

This is content for header A

Header B: Option 2 of 3

This is content for header B

Header C: Option 3 of 3

This is content for header C

Four columns (example stacks on medium devices)

Lead in statement:

Header A: Option 1 of 4

This is content for header A

Header B: Option 2 of 4

This is content for header B

Header C: Option 3 of 4

This is content for header C

Header D: Option 4 of 4

This is content for header D

View code
//Three columns (example stacks on small devices)
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-md">
	<div class="cnjnctn-col">
		<h5>Header A<span class="wb-inv">: Option 1 of 3</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 3</span></h5>
		<p>This is content for header B</p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header C<span class="wb-inv">: Option 3 of 3</span></h5>
		<p>This is content for header C</p>
	</div>
</div>
//Four columns (example stacks on medium devices)
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
	<div class="cnjnctn-col">
		<h5>Header A<span class="wb-inv">: Option 1 of 4</span></h5>
		<p>This is content for header A </p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header B<span class="wb-inv">: Option 2 of 4</span></h5>
		<p>This is content for header B</p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header C<span class="wb-inv">: Option 3 of 4</span></h5>
		<p>This is content for header C</p>
	</div>
	<div class="cnjnctn-col">
		<h5>Header D<span class="wb-inv">: Option 4 of 4</span></h5>
		<p>This is content for header D</p>
	</div>
</div>

Nested conjunctions

For instances where one of the decision points may have it's own set of decision points.

An "or" decision point that stacks on small, nested with an always stacked "and" decision point

Lead in statement:

Header A: Option 1 of 2

This is content for header A

Header B: Option 2 of 2

This is content for header B

Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien.

Lead in statement:

Header B.1

This is content for header B.1

Header B.2

This is content for header B.2

View code
//Nested decision point example
<p>Lead in statement:</p>
<div class="cnjnctn-type-or cnjnctn-lg">
    <div class="cnjnctn-col-80">
        <h5>Header A<span class="wb-inv">: Option 1 of 2</span></h5>
        <p>This is content for header A</p>
    </div>
    <div class="cnjnctn-col">
        <h5>Header B<span class="wb-inv">: Option 2 of 2</span></h5>
        <p>This is content for header B</p>
        <p>Nam fermentum cursus sodales. Mauris leo leo, congue et fringilla in, egestas eu sapien. </p>
        <p>Lead in statement:</p>
        <div class="cnjnctn-type-and">
            <div class="cnjnctn-col">
                <h6>Header B.1</h6>
                <p>This is content for header B.1</p>
            </div>
            <div class="cnjnctn-col">
                <h6>Header B.2</h6>
                <p>This is content for header B.2</p>
            </div>
        </div>
    </div>
</div>

Page details

Date modified: