Single level navigation

<nav class="nav">
  <div class="nav__wrapper">
    <div class="nav__brand"><a href="#">Luna Framework</a></div>
    <div class="nav__navicon"></div>
    <div class="nav__links__wrapper nav__links--left">
      <ul class="nav__links">
        <li class="nav__links__item"><a href="#">...</a></li>
        <li class="nav__links__item"><a href="#">...</a></li>
      </ul>
    </div>
  </div>
</nav>

Multi-level dropdown navigation

To create a dropdown menu within the navigation you simply need to add .nav__links__item--dropdown to the .nav__links__item item.

<li class="nav__links__item nav__links__item--dropdown">
 <a href="#">...</a>
 <ul class="nav__links">
   <li class="nav__links__item">
     <a href="#">...</a>
   </li>
   <li class="nav__links__item">
     <a href="#">...</a>
   </li>
   <li class="nav__links__item">
     <a href="#">...</a>
   </li>
 </ul>
</li>

Buttons

To create a button style you can just add a .btn class to your anchor or button elements. Optionally you can add additional classes to style the element color, size or stylization.

To change color just add the following code .btn--primary .btn--secondary .btn--info .btn--warning .btn--success .btn--danger

Add more color buttons.
When any additional colors are added to any of the color maps the new button will be automatically be generated.
<a href="#" class="btn">Button</a>
<a href="#" class="btn btn--default">Button</a>
<a href="#" class="btn btn--primary">Button</a>
<a href="#" class="btn btn--secondary">Button</a>
<a href="#" class="btn btn--dark">Button</a>
<a href="#" class="btn btn--info">Button</a>
<a href="#" class="btn btn--warning">Button</a>
<a href="#" class="btn btn--succeess">Button</a>
<a href="#" class="btn btn--danger">Button</a>

Gradient Buttons

To add a subtle gradient to a button you can just append -gradient at the end of any of the styled buttons.

<a href="#" class="btn btn--primary-gradiant">Button</a>

Rounded Buttons

Buttons can also be made rounder by prepending -gradient at the end of any btn element.

<a href="#" class="btn btn--round">Button</a>

Button Sizes

To change button size, add one of the following classes to the .btn class. .btn--xs .btn--sm .btn--md .btn--lg .btn--xl

<a href="#" class="btn btn--xl">Button</a>
<a href="#" class="btn btn--sm">Button</a>
<a href="#" class="btn btn--md">Button</a> <!-- default -->
<a href="#" class="btn btn--lg">Button</a>
<a href="#" class="btn btn--xl">Button</a>

Button Icons

Lunacon Icon can be placed ever on left or right. .btn__icon--left or .btn__icon--right

<a class="btn"><i class="btn__icon--left lunacon lunacon-moon-solid"></i>Button</a>
<a class="btn">Button<i class="btn__icon--right lunacon lunacon-moon-solid"></i></a>
<a class="btn"><i class="btn__icon lunacon lunacon-moon-solid"></i></a>

Block Button

This block element will stretch the button to fill the parent element. Just add .btn--block to the button element.

<div class="column">
 <a href="#" class="btn btn--primary btn--block">Block Button</a>
</div>
Block Button

Grouped Button

Grouping button elements

When using more than one .btn class, just wrap all the .btn in a .btn__group

<div clas="btn__group">
  <a href="#" class="btn btn--primary">Button</a>
  <a href="#" class="btn btn--primary">Button</a>
  <a href="#" class="btn btn--primary">Button</a>
  <a href="#" class="btn btn--primary">Button</a>
</a>

Dropdown Buttons

The dropdown button can be used as a normal link or as a part of the default .btn classes.

<div class="dropdown"> 
 <a href="#" class="dropdown__link">Dropdown Link <i class="lunacon lunacon-chevron-down"></i></a>
 <div class="dropdown__container"> 
   <ul> 
     <li> <a href="#">Link Item 1</a></li>
     <li> <a href="#">Link Item 2</a></li>
     <li> <a href="#">Link Item 3</a></li>
     <li> <a href="#">Link Item 4</a></li>
   </ul>
 </div>
</div>						
Optionally to make button
To make the .dropdown__link a button, you simply chain on the .btn classes to modify as needed.

Blockquotes

A simple blockquote element

Blockquote Header
Blockquote Body
Blockquote Header
Blockquote Body
Blockquote Header
Blockquote Body
Blockquote Header
Blockquote Body
<blockquote class="blockquote blockquote--info">
  <div class="blockquote__header">Blockquote Header</div>
  <div class="blockquote__body">Blockquote Body</div>
  <div class="blockquote__footer background--info-light">Blockquote Footer </div>
</blockquote>

Notifyers

There are 2 variations of the notify elements. A default set and a light set. Simply append -light to the end of any notify elements.

Make element dismissable.
Add the class .notify__dismissable to the main element. Also make sure to initialize the javasript function.
Info Notify
Info Notify
Info Notify
Warning Notify
Success Notify
Danger Notify
Info Notify Light
Info Notify Light
Info Notify Light
Warning Notify Light
Success Notify Light
Danger Notify Light
<div class="notify notify__dismissable">Info Notify</div>
<div class="notify notify__dismissable notify--default">Info Notify</div>
<div class="notify notify__dismissable notify--info">Info Notify</div>
<div class="notify notify__dismissable notify--warning">Warning Notify</div>
<div class="notify notify__dismissable notify--success">Success Notify</div>
<div class="notify notify__dismissable notify--danger">Danger Notify</div>
<!-- for light version just add -light at the back -->
<div class="notify notify--info-light">Info Notify</div>

Form Inputs

Luna has a variety of layout to accommodate your needs. There are the standard layout, inline layout and horizontal layout.

http://

Form Inputs Validation

Form validation is an important part of web development. This section will show you how to make this easy to change form input fields, label colors and adding some validation messages to the .form__group

Form Inputs Validation Colors

The form .has__{identifier}automatically changes colors of the child elements in the .form__group block element.

Simply add info , warning , success or danger as the {identifier} to change the input and label colors.

<div class="form__group has__info">
   <label class="form__label">Info Input</label>
   <input type="text" class="form__item">
 </div>
 <div class="form__group has__warning">
   <label class="form__label">Warning Input</label>
   <input type="text" class="form__item">
 </div>
 <div class="form__group has__success">
   <label class="form__label">Success Input</label>
   <input type="text" class="form__item">
 </div>
 <div class="form__group has__danger">
   <label class="form__label">Danger Input</label>
   <input type="text" class="form__item">
 </div>

Form Validation Messages

The validation message will inherit the color of the validation colors class above. Just add a span element with a class of .form__helper after the input field with in the .form__group block ether using php or JavaScript.

Info Message
Warning Message
Success Message
Error Message
<div class="form__group has__info">
   <input type="text" class="form__item">
   <span class="form__helper">Info Message</span>
 </div>
 <div class="form__group has__warning">
   <input type="text" class="form__item">
   <span class="form__helper">Warning Message</span>
 </div>
 <div class="form__group has__success">
   <input type="text" class="form__item">
   <span class="form__helper">Success Message</span>
 </div>
 <div class="form__group has__danger">
   <input type="text" class="form__item">
   <span class="form__helper">Error Message</span>
 </div>
The inputs can also be styled using the Css Helpers
By adding some html tags you can change the input fields.

Form Input sizes

Just like the .btn element the form input field can be resized by using style modifyers like .form__item--xs .form__item--sm .form__item--md .form__item--lg .form__item--xl.

<div class="form__group">
   <input type="text" placeholder="" class="form__item form__item--xs">
 </div>
 <div class="form__group">
   <input type="text" placeholder="" class="form__item form__item--sm">
 </div>
 <div class="form__group">
   <input type="text" placeholder="" class="form__item form__item--md">
 </div>
 <div class="form__group">
   <input type="text" placeholder="" class="form__item form__item--lg">
 </div>
 <div class="form__group">
   <input type="text" placeholder="" class="form__item form__item--xl">
 </div>

Horizontal Form

The horizontal style form can be created by using the grid classes and adding .form__horizontal to the parent container.

<form action="" method="post" class="form__horizontal">
 <div class="form__group">
   <label for="name" class="md-col-3 md-text-align-right form__label">Name</label>
   <div class="md-col-9">
     <input type="text" id="name" class="form__item">
   </div>
 </div>
 <div class="form__group">
   <label for="email" class="md-col-3 md-text-align-right form__label">Email</label>
   <div class="md-col-9">
     <input type="email" id="email" class="form__item">
   </div>
 </div>
 <div class="form__group">
   <label for="content" class="md-col-3 md-text-align-right form__label">Content</label>
   <div class="md-col-9">
     <textarea id="content" class="form__item"></textarea>
   </div>
 </div>
 <div class="form__group">
   <div class="md-col-9 md-offset-3">
     <button class="btn btn--primary">Submit</button>
     <button class="btn">Learn more</button>
   </div>
 </div>
</form>

Checkbox Element

A simple checkbox element with animation and yes it is also customizable in the _setting.sass

<div class="form__group__checkbox">
   <input type="checkbox" name="" id="check-3" class="form__checkbox"/>
   <label for="check-3" class="from__label__checkbox">Checkbox</label>
 </div>
 <div class="form__group__checkbox">
   <input type="checkbox" disabled="disabled" name="" id="check-2" class="form__checkbox"/>
   <label for="check-2" class="from__label__checkbox">Checkbox Disabled</label>
 </div>

Checkbox Switch Element

A switch element with animation and custom label for on and off text. Also customizable in the _setting.sass

Note that the default color is the primary-color and dont need a modifier.
<div class="switch">
  <input type="checkbox" id="id-name" name="set-name" class="switch__input">
  <label for="id-name" class="switch__label">Primary Color <span class="toggle--on">On</span><span class="toggle--off">Off</span></label>
</div>

<div class="switch switch--secondary">
  <input type="checkbox" id="id-name2" name="set-name" class="switch__input">
  <label for="id-name2" class="switch__label">Secondary color <span class="toggle--on">On</span><span class="toggle--off">Off</span></label>
</div>
<ul class="pagination">
   <li class="disable"><span>&laquo;</span></li>
   <li class="active"><span>1</span></li>
   <li><a href="#">2</a></li>
   <li><a href="#">3</a></li>
   <li><a href="#">4</a></li>
   <li><a href="#">5</a></li>
   <li><a href="#">6</a></li>
   <li><a href="#">&raquo;</a></li>
 </ul>

Media Object

The media object is ideal for comment, listing product or categories.

This element works great for comments and listings.
Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum non tempore et nemo corporis praesentium cumque porro animi necessitatibus dicta!
Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum non tempore et nemo corporis praesentium cumque porro animi necessitatibus dicta!
<div class="media">
 <div class="media__body">
   <div class="media__heading"> .....</div>
   <div>.....</div>
 </div>
 <div class="media__right media--top">
   <div class="media__image"></div><img src="" alt="" width="80px" height="80px" class="media__thumbnail">
 </div>
</div>
Just add a little styling to the element.
Just add .media--default to the main media element
Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum non tempore et nemo corporis praesentium cumque porro animi necessitatibus dicta!
Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum non tempore et nemo corporis praesentium cumque porro animi necessitatibus dicta!
<div class="media media--default">
 <div class="media__body">
  <div class="media__left media--top">
   <div class="media__image"><img src="" alt="" width="80px" height="80px" class="media__thumbnail">
   </div>
 </div>
   <div class="media__heading"> .....</div>
   <div>.....</div>
 </div>

</div>

Data Tables

Id Name Email Address Mission Services
1 Neil Armstrong nielarmstrong@luna.co.za Apollo 11 NASA
2 Buzz Aldrin buzzaldrin@luna.co.za Apollo 11 Air Force
3 Pete Conrad pete-conrad@luna.co.za Apollo 12 Navy
4 Alan Bean alan-bean@luna.co.za Apollo 12 Navy
5 Alan Shepard alanshepard@luna.co.za Apollo 14 Navy
6 Edgar Mitchell edgar-mitchell@luna.co.za Apollo 14 Navy
7 David Scott davidscott@luna.co.za Apollo 15 Air Force
8 James Irwin james-irwin@luna.co.za Apollo 15 Air Force
9 John Young johnyoung@luna.co.za Apollo 16 Navy
10 Charles Duke charles-duke@luna.co.za Apollo 16 Air Force
11 Eugene Cernan eugenecernan@luna.co.za Apollo 17 Navy
12 Harrison Schmitt harrison-schmitt@luna.co.za Apollo 17 NASA
<div class="table__responsive table--border">
 <table class="table table--striped table--bordered">
   <thead class="table__head">
     <tr>
       <th>...</th>
       <th>...</th>
       <th>...</th>
       <th>...</th>
     </tr>
   </thead>
   <tbody class="table__body">
     <tr>
       <td data-title="...">...</td>
       <td data-title="...">...</td>
       <td data-title="..."><a href="" target="_blank">...</a></td>
       <td data-title="...">...</td>
     </tr>
     <tr>
       <td data-title="...">...</td>
       <td data-title="...">...</td>
       <td data-title="..."> <a href="" target="_blank">...</a></td>
       <td data-title="...">...</td>
     </tr>
     <tr>
       <td data-title="...">...</td>
       <td data-title="...">...</td>
       <td data-title="..."> <a href="" target="_blank">...</a></td>
       <td data-title="...">...</td>
     </tr>
   </tbody>
 </table>
</div>

Card Component

The card component is an alternative for the panel element and work great with image headers and headline text and a small excerpt section.

R500
July 20, 1969: One Giant Leap For Mankind
July 1969. It's a little over eight years since the flights of Gagarin and Shepard, followed quickly by President Kennedy's challenge to put a man on the moon before the decade is out.
It is only seven months since NASA's made a bold decision to send Apollo 8 all the way to the moon on the first manned flight of the massive Saturn V rocket. Now, on the morning of July 16, Apollo 11 astronauts Neil Armstrong, Buzz Aldrin and Michael Collins sit atop another Saturn V at Launch Complex 39A at the Kennedy Space Center. The three-stage 363-foot rocket will use its 7.5 million pounds of thrust to propel them into space and into history.
R500
July 20, 1969: One Giant Leap For Mankind
July 1969. It's a little over eight years since the flights of Gagarin and Shepard, followed quickly by President Kennedy's challenge to put a man on the moon before the decade is out.
It is only seven months since NASA's made a bold decision to send Apollo 8 all the way to the moon on the first manned flight of the massive Saturn V rocket. Now, on the morning of July 16, Apollo 11 astronauts Neil Armstrong, Buzz Aldrin and Michael Collins sit atop another Saturn V at Launch Complex 39A at the Kennedy Space Center. The three-stage 363-foot rocket will use its 7.5 million pounds of thrust to propel them into space and into history.
R500
July 20, 1969: One Giant Leap For Mankind
July 1969. It's a little over eight years since the flights of Gagarin and Shepard, followed quickly by President Kennedy's challenge to put a man on the moon before the decade is out.
It is only seven months since NASA's made a bold decision to send Apollo 8 all the way to the moon on the first manned flight of the massive Saturn V rocket. Now, on the morning of July 16, Apollo 11 astronauts Neil Armstrong, Buzz Aldrin and Michael Collins sit atop another Saturn V at Launch Complex 39A at the Kennedy Space Center. The three-stage 363-foot rocket will use its 7.5 million pounds of thrust to propel them into space and into history.
<article class="card"> <header class="card__thumb"> <a href="#"><img src="[...]" alt=""></a></header>
  <div class="card__body">
    <div class="card__body__label">[...]</div>
    <div class="card__body__title">[...]</div>
    <div class="card__body__subtitle">[...]</div>
    <div class="card__body__description">[...]</div>
  </div>
  <footer class="card__footer">
    <span><i class="lunacon lunacon-users-solid"><span>[...]</span></i></span>
    <span><i class="lunacon lunacon-users-solid"><span>[...]</span></i></span>
  </footer>
</article>

Timeline component

The timeline component is perfect for showing time based data or a creative way to display headline for a blog site.


THE YEAR IS 1961

  • 25 March 1961

    Yuri Alexeyevich Gagarin

    Yuri Alexeyevich Gagarin, Russian cosmonaut, experienced the weightlessness of space for 108 minutes. He orbited the Earth once before making a safe landing. The Russians rocketed Yuri Gagarin, the first man into space. His ship, Vostok I, was guided entirely from the ground.

  • 12 April 1961

    Mercury-Atlas

    Mercury-Atlas rocket lifted off with an electronic mannequin. An unmanned Mercury test exploded on launch pad.

  • 25 April 1961

    The spacecraft reached

    Astronaut Alan Bartlett Shepard Jr. (d.1998 at 74), a Navy commander, became the first American in space as he made a 15-minute suborbital flight in the Freedom 7 Project Mercury capsule launched from Cape Canaveral, Fla. The spacecraft reached a maximum altitude of 116.5 miles.

  • 21 July 1961

    The Mercury sank

    Capt. Virgil "Gus" Grissom became the second American to rocket into a suborbital pattern around the Earth, flying on the Mercury 4 Liberty Bell 7. The Mercury capsule sank in the Atlantic, 302 miles from Cape Canaveral and Grissom was rescued by helicopter. The space capsule was recovered in 1999

<ul class="timeline">
   <li class="timeline__item">
     <div class="flag flag--left"> <small class="flag__date">[datetime]</small>
       <h2>...</h2>
       <p>...</p>
     </div>
   </li>
   <li class="timeline__item">
     <div class="flag flag--right"> <small class="flag__date">[datetime]</small>
       <h2>...</h2>
       <p> ...</p>
     </div>
   </li>        	    
   <li class="timeline__item">
     <div class="flag flag--left"> <small class="flag__date">[datetime]</small>
       <h2>...</h2>
       <p>...</p>
     </div>
   </li>
   <li class="timeline__item">
     <div class="flag flag--right"> <small class="flag__date">[datetime]</small>
       <h2>...</h2>
       <p> ...</p>
     </div>
   </li>
 </ul>

Corner Ribbons

A corner element that is absolute positioned with 2 different styles normal and gradient background. Change color by using .ribbon--{$value} and .ribbon--{$value}-gradient

Color Set
$value reference all colors in $_color_set in _settings.sass file.
Ribbon
Ribbon
Ribbon
Ribbon




Corner Ribbons





Ribbon
Ribbon
Ribbon
Ribbon




Gradient Corner Ribbons





<div class="ribbon__wrapper">
  <div class="ribbon ribbon--info ribbon--top-left">
    <div class="ribbon__label">...</div>
  </div>
  <div class="ribbon ribbon--warning ribbon--top-right">
    <div class="ribbon__label">...</div>
  </div>
  <div class="ribbon ribbon--success ribbon--bottom-left">
    <div class="ribbon__label">...</div>
  </div>
  <div class="ribbon ribbon--danger ribbon--bottom-right">
    <div class="ribbon__label">...</div>
</div>

Accordian Element

Each accordion element performs as an individual component with its own active state and easy to customize in the _settings.sass file.

Accordian Default

  • Who owns the international space station?
    International Space Station Legal Framework. The International Space Station is a co-operative programme between Europe, the United States, Russia, Canada, and Japan for the joint development, operation and utilisation of a permanently inhabited Space Station in low Earth orbit
  • How many space stations are there in total?
    There are only two space stations currently in orbit - the International Space Station and China's Tiangong-1. ISS is manned at all times and Tiangong-1 is unmanned most of the time.
  • What is the name of the world's first space station?
    The first space station was Salyut 1, which was launched by the Soviet Union on April 19, 1971. Like all the early space stations, it was "monolithic", intended to be constructed and launched in one piece, and then inhabited by a crew later.
  • Can you see the space station?
    The space station looks like a fast-moving plane in the sky, but it will be seen as a steady – not blinking – white pinpoint of light. Typically it will be the brightest object in the night sky (except for the Moon). It is bright enough that it can even be seen from the middle of a city!
<ul class="accordian">
  <li class="accordian__element"> 
    <header class="accordian__header accordian__header--active">[..]</header>
    <section class="accordian__body accordian__body--active">[..] </section>
  </li>
  <li class="accordian__element"> 
    <header class="accordian__header">[..]</header>
    <section class="accordian__body">[..] </section>
  </li>
</ul>
Set a active class to component.
To create an open tab simply follow the code example above. The .accordian__{elem}--active will start with open tab.

Accordian spaced

To add some spacing between elements just add .accordian--spaced to the .accordian element.

  • how was the first man on the moon?

    Neil Armstrong

    Apollo 11's mission was to land two men on the moon. They also had to come back to Earth safely. Apollo 11 blasted off on July 16, 1969. Neil Armstrong, Edwin "Buzz" Aldrin and Michael Collins were the astronauts on Apollo

  • Who was the first woman to walk on the moon?

    Sally Ride

    It was the Cold War. NASA wouldn't accept women applicants to the astronaut corps until 1978. The first American woman to fly into space aboard the space shuttle was Sally Ride in 1983, and the glass stratosphere was finally shattered

  • Who was the very first astronaut?

    Yuri Gagarin

    The Mercury Project suffered some early setbacks, however, and on April 12, 1961, Soviet cosmonaut Yuri Gagarin orbited Earth in the world's first manned space flight. Less than one month later, on May 5, astronaut Alan Shepard was successfully launched into space on a suborbital fligh

  • Who was the first animal on the moon?

    Albert

    A rhesus monkey called Albert 1 became the first monkey launched into space on June 11, 1948; also on board a US-launched V2 rocket. These were just suborbital flights, though. The first animal to actually go into orbit was the dog Laika, launched on board the Soviet Sputnik 2 spacecraft on November 3, 1957

<ul class="accordian accordian--spaced">
  <li class="accordian__element"> 
    <header class="accordian__header">[..]</header>
    <section class="accordian__body">[..] </section>
  </li>
</ul>

List Element

A simply way to style list items.

  • Lorem ipsum dolor.
  • Lorem ipsum dolor.
  • Lorem ipsum dolor.
  • Lorem ipsum dolor.
  • Lorem ipsum dolor.
<ul class="list">
  <li class="list__item"></li>
  <li class="list__item"></li>
  <li class="list__item"></li>
  <li class="list__item"></li>
</ul>

Skew Scroll Effect

Add a simple skew scroll effect to page elements to add a little life to your page. just add .skew-scroll class to an element container. Setting can be set in javascipt for scroll force and max allowed skew degrees.

 $(document).Luna({
    skewScroll: {
      force: 0.3,
      maxSkew: 5
    }
  });