<section class="hero flex-vertical flex-space-between">

Getting started

Copy the boilerplate code below to start building with the latest version of Nucleotide. It comes loaded with a navbar & hero section ready. The header/nav and section.hero are designed to fit perfectly at the top of the page.

<!doctype html>
<html lang="en" class="nucleotide">
    <head>

        <!-- general meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

        <!-- favicon -->
        <link rel="shortcut icon" href="https://www.crigenetics.com/hubfs/CRI_Genetics_January2020/images/favicon.ico">
        
        <!-- site title -->
        <title>CRI Genetics</title>

        <!-- Nucleotide CSS -->
        <link rel="stylesheet" href="http://nucleotide.crigenetics.com/ui/latest/css/styles.css">
        
    </head>

    <body>

        <header class="whole px2 py1 flex-space-between flex-center-y">

            <!-- logo -->
            <a href="#" class="logo flex-center">
                <img height="40px" id="nav-logo" src="images/nucleotide_logo.svg"/>
                <label class="ml1">nucleotide</label>
            </a>

            <nav>

                <!-- mobile menu button-->
                <span class="modal md-ghost" onclick="app.handleModalOpen(this)">  
                    <button class="hamburger"></button>
                    <!-- whatever i used a modal... -->
                    <div class="modal-content md-ghost">
                        <div class="flex-center flex-vertical h100vh bg-default">
                                <img class="mb3"height="40px" id="nav-logo" src="images/nucleotide_logo.svg"/>
                                <a href="https://nucleotide.crigenetics.com/ui/dev/index.html" class="py2 whole flex-center">UI Web</a>
                                <hr>
                                <a href="https://api.crigenetics.com/docs/" class="py2 whole flex-center">API</a>
                                <hr>
                                <a class="disabled py2 whole flex-center" class="py2 whole flex-center">React</a>
                                <hr>
                                <a class="disabled py2 whole flex-center" class="py2 whole flex-center">React Native</a>
                                <button class="absolute close" style="top: var(--unit1); right: var(--unit2)" onclick="app.handleModalClose(this)"></button>
                        </div>
                    </div>
                </span>

                <!-- desktop menu -->
                <ul class="ghost md-flex md-flex-center">
                    <li class="m0 md-ml2">
                        <a>UI Web</a>
                    </li>
                    <li class="m0 md-ml2">
                        <a href="https://api.crigenetics.com/docs/">API</a>
                    </li>
                    <li class="m0 md-ml2 disabled">
                        <a>React</a>
                    </li>
                    <li class="m0 md-ml2 disabled">
                        <a>React Native</a>
                    </li>
                </ul>
            
            </nav>

    </header>

        <main>
        
        <!-- hero section -->
            <section id="hero-section" class="hero flex-vertical flex-space-between">

                <!--  section -->
                <div class="flex-center flex-grow">
                    <div class="px3">
                        <h1>Hero Section</h1>
                        <p>The "Hero" <code><section></code> is designed to fit perfectly at the top of a page.</p>
                    </div>
                </div>

            </section>

        </main>
    <footer class="p4 bg-primary flex-center">It's footer time, yo!</footer>
    
    <!-- Nucleotide Scripts -->
    <script rel="script" src="http://nucleotide.crigenetics.com/ui/latest/js/scripts.js"></script>
    
    </body>
</html>

Sections

You can use sections similar to the way "containers" are used in bootstrap.

This is a typical <section> element. Use it to separate your page layout into bigger sections, like the "testimonial" section, or the "customer review" section.


If you're familiar with bootstrap, use this in place of a ".container" element. For something similar to a '.flex-container' with a '.jumbotron', you can simply use a <section> element with the '.hero' classname

<section>
<div class="flex-center p3 bg-blue4">
    <p>This is a typical section element. Use it to separate your page layout into bigger sections, like the "testimonial" section, or the "customer review" section.</p>
</div>
</section>

Font-Families

There are only two in this UI kit. Both from Adobe

font-family: var(--defaultFont);

Pragmatica

Regular

Basically everything is Pragmatica

Pragmatica Bold

This is mostly used in <h> elements or used whenever you just need bold

Pragmatica Black

In case bold isn't bold enough... (so far I haven't needed to use this)

This was the primary font for everything when I started working here... I hope to soon test out of this.


font-family: var(--dataFont);Antarctican Mono
.fw-400.fw-500.fw-600.fw-700
This is meant to be used with <data>, <pre>, <dialog> and <code> elements. Use it to design charts, tables, outputs, or anytime data is being represented in our UI.

General text formatting

<h1/>

Header 1

<h1>Header 1</h1>
<h2/>

Header 2

<h2>Header 2</h1>
<h3/>

Header 3

<h3>Header 3</h3>
<h4/>

Header 4

<h4>Header 4</h4>
<h5/>
Header 5
<h5>Header 5</h5>
<h6/>
Header 6
<h6>Header 6</h6>
<p/>

Paragraph

<p>Paragraph</p>
<a/>
<a href="https://www.crigenetics.com">Link</a>
<data>
data
<data>data</data>
The "Data" font is also accessible by CSS Custom property "var(--dataFont)" or SASS variable "$dataFont"
<label>
<label>label</label>
bold
Bold Text
<b>Bold</b>
strong
Strong Text
<strong>Strong Text</strong>
Italic
Italic text
<i>Italicized text</i>
Emphasized
Emphasized text
<em>Emphasized text</em>
Marked
Marked text
<mark>Marked text</mark>
small
Small text
<small>Marked text</small>
strikethrough
Strikethrough
<del>Marked text</del>
Inserted
Inserted text
<ins>Inserted text</ins>
Underline
Underlined text
<u>Underlined text</u>
subscript

subscript text

<p>
<sub>subscript text</sub>
</p>
superscript

superscript text

 
<p>
<sup>subscript text</sup>
</p>

Font-Scaling

h6 = 0.8rem
This sets the minimum font-size globally

fontScaleRatio = 1⅓
This sets the multiplier for the minimum font-size

(n) = #
Any integer 0-5




<h(n+1)> = h6 * fontScaleRatio(n) 

In this UI Kit fonts are scaled using a "perfect 4th". In other words, every header size increase by ⅓


These font-size values are available via:


something

<p class="h3">
something
</p>

Font sizes for <h1> - <h6> are also available as SASS Variable and CSS Custom Property.

$H3 var(--H3)
h6 header
small

This font-size is only used for elements: <h6>, <label>,<small> = 0.8rem


h5 header

paragraph

Nucleotide

This font-size is only used for elements: <p>, <a>,<h5> and most other elements. This is our default font-size, otherwise known as "fontSizeDefault" = "var(--fontSizeDefault)" = "$fontSizeDefault" = 0.8rem


h4 header

This font-size is only used in <h4> elements


h3 header

This font-size is only used in <h3> elements


h2 header

This font-size is only used in <h2> elements


h1 header

This font-size is only used in <h1> elements


CRI Genetics Color Palletes

Basic coloring with Nucleotide...

White

#fff

Nothing fancy here, just good ole #fff

Blue0

#008fc3
Seems like a normal, trustworthy shade of blue to me, no? This might be the only #hex code worth memorizing... I guess...

Aqua0

#00ccd7
I really only see this color in our Logo but at this time there is no rule against using it. I haven't found any real use for it in our UI

Green0

#00ce59
Very green

In March/April 2020 I did my skills test for CRI Genetics. I was asked to design a prototype of the dashboard. I sampled this set of colors from a version of the logo that I probably found on the website.


White

#fff
Text- color for most buttons. Background color for <header> element

siteBackground

#f6fbfd
An off-white/blue color used as the default background-color for everything here. This is the most common color in our UI. This color is a step between blue4 and white.

Blue4

#008fc3
The lightest tint of blue0. You'll see it in ".control-panel", and ".subnav", also our loading screen.

Blue0

#008fc3
Use this color to indicate interactivity in our UI. It's the primary color for buttons, links, and anything you can click on.

transBlueC-75

rgba(0, 57, 78, 0.75)
Default text color in our UI. Created by converting blueC to an rgba() color and reducing alpha to 0.75

Most color problems in our UI can be solved with one of these colors.


transWhite-75

rgba(255, 255, 255, 0.75)
Secondary text color besides white. Also used in some small details.

transBlueC-10

rgba(0, 57, 78, 0.1)
Mostly used for nice, soft box-shadows

transBlueC-25

rgba(0, 57, 78, 0.25)
Used on just a few small details such as border colors on input elements

Green0

#00ce59
Used for logging in, success, progress, adding, and generally indicating positivity to our customer.

Red0

#ff6060
(used for logging out, errors, danger, deleting, and times when you need to indicate negativity to the user)

orange0

#ff6060
Used for system warning messages only.

NeonYellow0

#f3ff60
This color should only be used in one place on a single screen in an area you want to draw the most attention to such as a CTA

"navbar gradient"

linear-gradient(135deg, #060506 0%, #4f505a 60%);
I hope to someday defeat the color of our navbar but this is what it is for now. We only use it in one place so...

NeonPink

#de027a
This color comes from the "take a survey" button available in the ancestry reports

Beige?

#fef8e6Used in the ancestry maps in the top section... 😒

These colors we're here since before time. I'm not sure how these colors were decided. These colors are in hsla() only because of the way I want to color this map. To view proof of concept, visit this codepen

Africa

hsla(0, 74.4%, 60.2%, 1)

Europe

hsla(203.6, 100%, 33.9%, 1)

Australia

hsla(50.8, 80.2%, 50.6%, 1)

South Asia

hsla(28.7, 96.4%, 56.3%, 1)

East Asia

hsla(286.4, 67.2%, 34.7%, 1)

America

hsla(162.2, 94.2%, 33.7%, 1)

Advanced Color palette:

Devs at CRI Genetics should never have to remember hex values for colors. PERIOD. Maybe designers should? Instead learn this system so you don't have to remember anything, just know how it works

For each hue in our UI there are is a central hue accompanied by 4 tints and 4 shades

Shades: blueA-D
(darker)

Primary Hue: blue0
Always ends in 0...

Tints: blue1-4
(lighter)

blueD
blueC
blueB
blueA
blue0
blue1
blue2
blue3
blue4
Shades are suffixed with letters A-D and get darker as the letter gets higher in the alphabet Central Hue Tints are suffixed with number 1-4 and get lighter as the number grows larger

transBlueC-75

trans + (Hue) + (Tint0-4 or ShadeA-D) + - + (% opacity)

Each color has a name and a corresponding CSS Custom Property or SASS Variable

I'm still working on this section so you might notice some discrepencies here...
blueD var(--blueD) $blueD #001d27 rgb(0,29,39,1) hsla(195.4,100%,7.6%,1)
blueC var(--blueC) $blueC #00394e rgba(0,57,78,1) hsla(196, 100%, 15%, 1)
transBlueC-90 var(--transBlueC-90) $transBlueC-90 #00394EE6 rgba(0,57,78,0.9) hsla(196, 100%, 15%, 0.9)
transBlueC-75 var(--transBlueC-75) $transBlueC-75 #00394EC0 rgba(0,57,78,0.75) hsla(196, 100%, 15%, 0.75)
transBlueC-50 var(--transBlueC-50) $transBlueC-50 #00394E80 rgba(0,57,78,0.5) hsla(196, 100%, 15%, 0.5)
transBlueC-25 var(--transBlueC-25) $transBlueC-25 #00394E40 rgba(0,57,78,0.25) hsla(196, 100%, 15%, 0.25)
transBlueC-10 var(--transBlueC-10) $transBlueC-10 #00394E19 rgba(0,57,78,0.1) hsla(196, 100%, 15%, 0.1)
transBlueC-05 var(--transBlueC-05) $transBlueC-05 #00394E0C rgba(0,57,78,0.05) hsla(196, 100%, 15%, 0.05)
blueB var(--blueB) $blueB #005675 rgba() hsla()
blueA var(--blueA) $blueA #00729c rgba() hsla()
blue0 var(--blue0) $blue0 #008fc3 rgba() hsla()
blue1 var(--blue1) $blue1 #33a5cf rgba() hsla()
blue2 var(--blue2) $blue2 #66bcdb rgba() hsla()
blue3 var(--blue3) $blue3 #99d2e7 rgba() hsla()
blue4 var(--blue4) $blue4 #cce9f3 rgba() hsla()
transBlue4-90 var(--transBlue4) $transBlue4 #00394e rgba() hsla()
transBlue4-75 var(--transBlue4-75) $transBlue4-75 #00394e rgba() hsla()
transBlue4-50 var(--transBlue4-50) $transBlue4-50 #00394e rgba() hsla()
transBlue4-25 var(--transBlue4-25) $transBlue4-25 #00394e rgba() hsla()
transBlue4-10 var(--transBlue4-10) $transBlue4 #00394e rgba() hsla()
transBlue4-05 var(--transBlue4) $transBlue4 #00394e rgba() hsla()
siteBackground
(this is the default background color)
var(--siteBackground) $siteBackground #f6fbfd rgba() hsla()
greenD var(--greenD) $greenD #00394e rgba() hsla()
greenC var(--greenC) $greenC #00394e rgba() hsla()
greenB var(--greenB) $greenB #00394e rgba() hsla()
greenA var(--greenA) greenA #00394e rgba() hsla()
green0 var(--green0) $green0 #00394e rgba() hsla()
green1 var(--green1) $green1 #00394e rgba() hsla()
green2 var(--green2) $green2 #00394e rgba() hsla()
green3 var(--green3) $green3 #00394e rgba() hsla()
green4 var(--green4) $green4 #00394e rgba() hsla()
aquaD var(--aquaD) $aquaD #00394e rgba() hsla()
aquaC var(--aquaC) $aquaC #00394e rgba() hsla()
aquaB var(--aquaB) $aquaB #00394e rgba() hsla()
aquaA var(--aquaA) $aquaA #00394e rgba() hsla()
aqua0 var(--aqua0) $aqua0 #00394e rgba() hsla()
aqua1 var(--aqua1) $aqua1 #00394e rgba() hsla()
aqua2 var(--aqua2) $aqua2 #00394e rgba() hsla()
aqua3 var(--aqua3) $aqua3 #00394e rgba() hsla()
aqua4 var(--aqua4) $aqua4 #00394e rgba() hsla()
redD var(--redD) $redD #00394e rgba() hsla()
redC var(--redC) $redC #00394e rgba() hsla()
redB var(--redB) $redB #00394e rgba() hsla()
redA var(--redA) $redA #00394e rgba() hsla()
red0 var(--red0) $red0 #00394e rgba() hsla()
red1 var(--red1) $red1 #00394e rgba() hsla()
red2 var(--red2) $red2 #00394e rgba() hsla()
red3 var(--red3) $red3 #00394e rgba() hsla()
red4 var(--red4) $red4 #00394e rgba() hsla()
orangeD var(--orangeD) $orangeD #00394e rgba() hsla()
orangeC var(--orangeC) $orangeC #00394e rgba() hsla()
orangeB var(--orangeB) $orangeB #00394e rgba() hsla()
orangeA var(--orangeA) $orangeA #00394e rgba() hsla()
orange0 var(--orange0) $orange0 #00394e rgba() hsla()
orange1 var(--orange1) $orange1 #00394e rgba() hsla()
orange2 var(--orange2) $orange2 #00394e rgba() hsla()
orange3 var(--orange3) $orange3 #00394e rgba() hsla()
orange4 var(--orange4) $orange4 #00394e rgba() hsla()
goldD var(--goldD) $goldD #00394e rgba() hsla()
goldC var(--goldC) $goldC #00394e rgba() hsla()
goldB var(--goldB) $goldB #00394e rgba() hsla()
goldA var(--goldA) $goldA #00394e rgba() hsla()
gold0 var(--gold0) $gold0 #00394e rgba() hsla()
gold1 var(--gold1) $gold1 #00394e rgba() hsla()
gold2 var(--gold2) $gold2 #00394e rgba() hsla()
gold3 var(--gold3) $gold3 #00394e rgba() hsla()
gold4 var(--gold4) $gold4 #00394e rgba() hsla()
neonYellowD var(--neonYellowD) $neonYellowD #00394e rgba() hsla()
neonYellowC var(--neonYellowC) $neonYellowC #00394e rgba() hsla()
neonYellowB var(--neonYellowB) $neonYellowB #00394e rgba() hsla()
neonYellowA var(--neonYellowA) $neonYellowA #00394e rgba() hsla()
neonYellow0 var(--neonYellow0) $neonYellow0 #00394e rgba() hsla()
neonYellow1 var(--neonYellow1) $neonYellow1 #00394e rgba() hsla()
neonYellow2 var(--neonYellow2) $neonYellow2 #00394e rgba() hsla()
neonYellow3 var(--neonYellow3) $neonYellow3 #00394e rgba() hsla()
neonYellow4 var(--neonYellow4) $neonYellow4 #00394e rgba() hsla()
black var(--black) $black #000 rgba(0,0,0,1) hsla()
grey0 var(--grey0) $grey0 #000 rgba(0,0,0,1) hsla()
grey1 var(--grey1) $grey1 #000 rgba(0,0,0,1) hsla()
grey2 var(--grey2) $grey2 #000 rgba(0,0,0,1) hsla()
grey3 var(--grey3) $grey3 #000 rgba(0,0,0,1) hsla()
grey4 var(--grey4) $grey4 #000 rgba(0,0,0,1) hsla()
grey5 var(--grey5) $grey5 #000 rgba(0,0,0,1) hsla()
grey6 var(--grey6) $grey6 #000 rgba(0,0,0,1) hsla()
grey7 var(--grey7) $grey7 #000 rgba(0,0,0,1) hsla()
white var(--white) $white #fff rgba(255,255,255,1) hsla()

Spacing

Similar to the standardized fonts and color palettes in this UI kit, we also have standardized units of distance for spacing, sizing, margins, padding, grid-gap, static widths, etc.


unit0 = 0.4rem
This sets the minimum distance value for the units

unitScaleRatio = 2
This sets the multiplier for the minimum unit.

(n) = #
Any integer 0-9



unit(n) = unit0 * unitScaleRatio(n) 

0.4rem

These go up to unit9... i don't think there will be a need to go any higher than that


How to use Units

In HTML...

To create visual layouts that just seem to agree visually, it's important to use these standardized units throughout your design, rather than assigning arbitrary values to CSS attributes like padding and margins.


One way to access these units is by classname.


This example shows a <div> with the className "p3". The padding is illustrated here using the color "red4"

.p3
<div class="p3">
.p3
</div>
*Changing "p3" to "p4" assigns a value of "unit4" to the padding

When writing custom styles you can access these units using Sass variables or CSS Custom Properties.




<div style="background: var(--aqua4); height: var(--unit3); width: var(--unit3)"></div>

... But it's easier to just use classNames really

<div class="height3 width3 bg-aqua4"></div>

Responsive prefixes

There are 12 responsive prefixing options to build your responsive layout based on what I think are the most common device widths.

no prefix: 0 - 100%
"xs-": greater than 480px+

"sm-": greater than 576px+

"md-": greater than 768px+

"lg-": greater than 992px+

"xl-": greater than 1280px+

"hg-": greater than 1366px+

"xh-": greater than 1440px+

"gi-": greater than 1536px+

"xg-": greater than 1680px+

"mg-": greater than 1920px+

"mgXL-": greater than 2560px+


Buttons

<button>button</button>
<button class="btn2">.btn2</button>
<button class="btn3">.btn3</button>
<button class="green">Green</button>
<button class="green btn2">.green.btn2</button>
<button class="green btn3">.green.btn3</button>
<button class="cta">CTA</button>
<button class="red">Red</button>
<button class="red btn2">Red</button>
<button class="red btn3">.red.btn3</button>
<button class="delete"></button>
<button class="close"></button>
<button class="next"></button>
<button class="back"></button>
<button class="add">Add</button>
<button class="hamburger"></button>
<button class="kebab"></button>
<button class="play"></button>
<a class="btn"></a>
<a class="btn2"></a>
<a class="btn3"></a>
<button class="small"></button>

Controls

<label class="toggle">
<input type="checkbox" checked>
<div class="slider"></div>
<label class="on">On<label>
</label>

<div class="radio">
<type="radio" id="example-radio-id" name="example-radio-name" value="example-radio-value">
<label for="example-radio-id">Radio</label>
</div>


<div class="checkbox">
<type="checkbox" id="example-checkbox-id">
<label for="example-checkbox-id">Checkbox</label>
</div>


<details class="dropdown">
<summary>Dropdown<summary>
<div>Hidden Content</div>
<div>Stuff</div>
<div>Things</div>
</details>
<div class="toggle-group">
<button>1</button>
<button>2</button>
<button>3</button>                            
</div>

<div class="search">
<input type="search" name="example-search-name" aria-label="search-example-aria-label" placeholder="Search">
<button class="btn3" style="transform: rotate(180deg);">&#9740;</button>
</div>


Accordion

CRI Genetics has a unique approach to genealogical testing. We are an advanced team led by a professional molecular geneticist who has been studying DNA for over 35 years with the help of Nobel Prize winning scientists. At CRI Genetics, we have the education, tools, and skills to provide you the most accurate estimation of your BioGeographical Ancestry.

We combine Genetics with Anthropology to trace the migrations of the human race. When we test your DNA against the samples from around the globe, we can figure out where you fit in the rich history of our species.

Our tests examine 642,824 specific markers across your entire genome. These markers are hand-picked based on the latest breakthroughs and advancements in genetic science. These markers are specially chosen for their relevance to tracing ancestry, so that we can provide you with the most statistically likely estimation of your heritage.

<div class="accordion">
<div onClick="app.handleAccordionClick(this)" class="flex-center flex-vertical">
    <div class="whole py1 px2 text-blue flex-space-between">
    <h5>Accordion</h5>
    <span>&#9660;</span>
    </div>
    <div class="accordion-contents whole">
    <!-- contents of your accordion goes here, feel free to delete these p elements -->
    <p>CRI Genetics has a unique approach to genealogical testing. We are an advanced team led by a professional molecular geneticist who has been studying DNA for over 35 years with the help of Nobel Prize winning scientists. At CRI Genetics, we have the education, tools, and skills to provide you the most accurate estimation of your BioGeographical Ancestry.</p>
    <p>We combine Genetics with Anthropology to trace the migrations of the human race. When we test your DNA against the samples from around the globe, we can figure out where you fit in the rich history of our species.</p>
    <p>Our tests examine 642,824 specific markers across your entire genome. These markers are hand-picked based on the latest breakthroughs and advancements in genetic science. These markers are specially chosen for their relevance to tracing ancestry, so that we can provide you with the most statistically likely estimation of your heritage.</p>
    </div>
</div>
</div>


Progress33%
<div class="progress-labels whole flex-space-between">
<data class="h6">Progress</data>
<data class="h6">33%</data>
</div>
<progress value="33" max="100"></progress>


<div class="progress-labels whole flex-space-between">
            <data class="h6">Progress</data>
            <data class="h6">33%</data>
            </div>
            <progress value="33" max="100"></progress>
            
            
            

Control Panel

this section coming soon


Header/Nav

this section coming soon



Slideshow

Slideshow

slide1

slide2

slide3

slide4

slide5

<div class="nucleotide-slideshow">
        
<div>
<!--    do whatever you want in here    -->
    <h2 class="p3 bg-blue4">slide1</h2>
</div>

<div>
    <h2 class="p3 bg-aqua4">slide2</h2>
</div>

<div>
    <h2 class="p3 bg-red4">slide3</h2>
</div>

<div>
    <h2 class="p3 bg-neon-yellow">slide4</h2>
</div>

<div>
    <h2 class="p3 bg-green4">slide5</h2>
</div>
</div>


Complex Elements

Combine elements together to make more complex pieces of UI

AccountDue DateAmountPeriod
Visa - 341204/01/2016$1,19003/01/2016 - 03/31/2016
Visa - 607603/01/2016$2,44302/01/2016 - 02/29/2016
Corporate AMEX03/01/2016$1,18102/01/2016 - 02/29/2016
Visa - 341202/01/2016$84201/01/2016 - 01/31/2016

Forms

This is an error message

dialogs, error messages, ultility messages, etc

use the <dialog> element to make messages

This is an error message
<dialog class="error" open>This is an error message</dialog>
This is a warning message
<dialog class="error" open>This is a warning message</dialog>
This is a danger message
<dialog class="error" open>This is a danger message</dialog>
This is a success message
<dialog class="success" open>This is an success message</dialog>


Layout

In this UI Kit we give classNames to parent elements to get them to take shape using CSS Grid and Flexbox.


Use Grid for layout

  1. Use grid to make broad strokes in your layouts

  2. Any className containing the words "column", "columns", "gap", or "grid" will automatically recieve display: grid;. Use grid to make your broad strokes, designing larger chunks of your layouts

1
2
3
<div class="three-columns bg-aqua3 p2 gap1">
<div class="bg-aqua4 p1">
    1
</div>
<div class="bg-aqua4 p1">
    2
</div>
<div class="bg-aqua4 p1">
    3
</div>
</div>
Easily create a three column grid using the className "three-columns". Any elements inside this container will assemble themselves according to the number of columns you specify. To create a new row, just make a new div wrapper and tell it how many columns you want.
.one-column
1

.two-columns
1 2

.three-columns
1 2 3

.four-columns
1 2 3 4

.five-columns
1 2 3 4 5

.six-columns
1 2 3 4 5 6

.seven-columns
1 2 3 4 5 6 7

.eight-columns
1 2 3 4 5 6 7 8

.nine-columns
1 2 3 4 5 6 7 8 9

.ten-columns
1 2 3 4 5 6 7 8 9 10

.eleven-columns
1 2 3 4 5 6 7 8 9 10 11

.twelve-columns
1 2 3 4 5 6 7 8 9 10 11 12

If you need more than 12 columns take the time to learn CSS Grid.

Use flexbox for alignment

  1. Use flexbox to do detailed work inside the cells of your grid layout.

  2. Any class containing the word "flex" will recieve display: flex;. Use these to control the alignment and direction of items in the cells of your grid layout.

.flex
.flex-center
.flex-end
<div class="three-columns 
        bg-green3 
        p2 
        gap1 
        mt1">
<div class=" bg-green4 
                p1 
                flex">
                    .flex</div>
<div class="bg-green4 p1 flex-center">
    .flex-center
</div>
<div class="bg-green4 p1 flex-end">
    .flex-end
</div>
</div>
In this example the parent container uses grid while the child elements use flex. In general it's best to use flex-box to make more detailed alignment decicisions inside the cells of your grid layout but this is just a suggestion, not a rule 😜
.flex-center
1
2
3

You will use this a lot. It centers content in your flex-containers vertically and horizontally with one easy className


.flex-vertical
1
2
3

Use this if you want to use flex-box and need things to align vertically


.flex-center & .flex-vertical together...
1
2
3

combine these classes to center align vertically


.flex-space-between
1
2
3

Use this to distribute elements evenly across a parent element, adding "space-between" each element


.flex-space-around
1
2
3

I haven't found a reason to use this yet but it's here.


.flex-space-evenly
1
2
3

I haven't found a reason to use this either but it's also here.


.flex-end
1
2
3

Float is dead! Use this to push elements to the right.


If you can't achieve what you're trying to do with these classNames, please take the time to learn Flexbox


Putting it all together...

Combine grid classes, flex classes, and responsive breakpoints to create a responsive layout without ever leaving your markup...

slide1

slide2

slide3

slide4

slide5

The Future of Telemedicine is Here!

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."


<label>Example</label>
<div class="one-column md-two-columns">
    <div>
        <div class="nucleotide-slideshow">

            <div>
            <!--    do whatever you want in here    -->
                <h2 class="px3 py2 bg-blue3">slide1</h2>
            </div>
        
            <div>
                <h2 class="px3 py2 bg-aqua4">slide2</h2>
            </div>
        
            <div>
                <h2 class="px3 py2 bg-red4">slide3</h2>
            </div>
        
            <div>
                <h2 class="px3 py2 bg-neon-yellow">slide4</h2>
            </div>
        
            <div>
                <h2 class="px3 py2 bg-green4">slide5</h2>
            </div>
        </div>
    </div>
    <div class="md-pl3">
        <div class="flex-vertical">
            <h3 class="mt1 md-mt-none">The Future of Telemedicine is Here!</h3>
            <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
            <div class="whole mt2">
                <button class="whole md-width-auto">Learn More</button>
            </div>
        </div>
    </div>
</div>

Help us improve.

We value your opinion and are always looking for ways to enhance our services to provide the best possible customer experience. Click here to fill out a brief 2 minute survey and let us know how we’re doing and how we can improve.

<section>
<label class="text-center whole">sample section</label>
<div class="one-column lg-two-columns lg-gap4">
    <div class="flex-center flex-vertical xl-pl4">
        <div class="sm-half lg-whole">
            <h2>Help us improve.</h2>
            <p>We value your opinion and are always looking for ways to enhance our services to provide the best possible customer experience. Click here to fill out a brief 2 minute survey and let us know how we’re doing and how we can improve.</p>
            <a href="" class="whole md-flex-end "><button class="mt1 bg-marketing-pink whole md-width-auto">Take a survey</button></a>
        </div>
    </div>

    <span class="meowbert CS height5 lg-height6 order-1 lg-order1 sm-mx-2 lg-mx-none"></span>
</div>  
</section>