Viviti Documentation

Viviti is a cutting edge, hosted, web publishing platform made for people with no design experience, but powerful enough for web designers of any skill level to use. Put simply, Viviti is an easy way to create or maintain blogs and web sites with usability and web standards in mind.

This document will show you:

Who should read this?

If you are a web designer who writes compliant css and html markup, this document will be a breeze for you. If you're a web designer who knows only basic css and html, we've tried to include many html and css code examples to copy-and-paste to help you along.

The basic anatomy of a Viviti theme

Viviti themes are simply web sites, written in normal html and css, with content locations where dynamic content is automatically placed. Designing a Viviti theme is as simple as creating an html document that includes:

Each of the above elements is defined by a css id or class name, and can be placed anywhere in the html document.

The blank Viviti theme below will give you a quick glimpse into the required file structure and html elements of all Viviti themes.

Sample Blank Theme for Download

  blank_viviti_theme.zip ZIP Archive A blank Viviti theme to work from
This includes all the files you need to get started.

In the sample blank theme above, you'll notice the file structure of a Viviti theme is slightly different than you might be used to working. The theme file itself should always be named default.html and any images, js, or css files should be placed in the /assets/ directory. You can place sub-directories into the /assets/ directory if you want to organize your files better.

If you downloaded the file above, you should recognize the html below. Here is an example showing only the required html for a Viviti theme and nothing more:

Blank Viviti theme html showing only required elements

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
  <title>Viviti Example Theme</title>
</head>
<body>
    
  <h1 id="site_heading">Site Heading</h1>          
  <h2 id="site_subheading">Site Subheading</h2>    
    
  <div id="primary_navigation">Primary navigation list</div>                    

  <div id="location_0" class="location">
    Main site content
  </div>
    
  <div id="location_1" class="location">
    Other site content
  </div>
  
  <div id="copyright">
    Copyright content
  </div>

</body>
</html>
Fig 1.1 - In the code sample above, the required elements are highlighted.

If the above was all the html in your Viviti theme, it would work; the requirements are very minimal. Viviti will automatically remove everything inside any of the required elements and then populate them with predefined html based on any content that's later added using the editor.

The next section outlines the predefined types of content that Viviti can manage. It also gives examples of the html that is automatically created and inserted for each type of content.

Required Content Components

This section will outline what html is inserted into each of the required content components, such as:

Below you'll find code samples for each component.

Site Heading

The required h1 with the id of #site_heading is where the Viviti sites title will be inserted, with a span for styling purposes and a link home.

Site heading dynamically generated html

<span>
  <a href="">site heading goes here</a>
</span>
Fig 1.1 - This html will be inserted into the required h1 element with the id of #site_heading.

Site Sub-Heading

The required h2 with the id of #site_subheading is where the Viviti sites title will be inserted, with a span you can style however you please.

Site subheading dynamically generated html

<span>
  <a href="">site subheading goes here</a>
</span>
Fig 1.1 - This html will be inserted into the required h2 element with the id of #site_subheading.

Primary Navigation

The required element with the id of #primary_navigation is where the main navigation will be inserted as a list.

Primary navigation dynamically generated html

<ul>
  <li>
    <a class="active" href="/">Home</a>
  </li>
  <li>
    <a href="/about">About Me</a>
  </li>
</ul>
Fig 1.1 - This html will be inserted into the required element with the id of #primary_navigation.

Copyright

The required element with the id of #copyright is where the copyright information will be inserted. This information can be modified easily in the Viviti editor.

Copyright dynamically generated html

<p>© Copyright 2008 Your Name Here.</p>
Fig 1.1 - This html will be inserted into the required element with the id of #copyright.

Powered By

In addition to the copyright information, directly below the element with the id of #copyright, Viviti will insert a div with the id of #powered_by for a link back to the Viviti site and theme designer credit. The html for this element is as follows:

Powered by dynamically generated html

<div id="powered_by">
  <a href="http://viviti.com">viviti mini logo goes here</a>
  Powered by <a href="http://viviti.com">Viviti</a>
  ~ Designed by <a href="">theme designers name goes here</a>
</div>
Fig 1.1 - This html will be inserted into Viviti theme directly after the #copyright element unless otherwise specified.
Alternatively, you can place the #powered_by element anywhere in the Viviti theme and it will insert it's content there instead of directly below the #copyright element.

Optional Content Components

Components are chunks of html that are dynamically generated and placed into content locations. When editing a Viviti web site, each component can be edited, dragged, or removed dynamically. Here is a list of components that can be styled to your liking:

Custom Component

A custom component is used for text and/or images.

Custom component dynamically generated html

<div id="" class="component custom_component">
  <h2><span>custom component title</span></h2>
  <div class="component_content">
    <div>
      <p>custom component content</p>
    </div>    
  </div>
</div>
Fig 1.1 - When a user adds a custom component to their Viviti site, this is the html that is dynamically generated.

HTML Component

An HTML component is used for adding custom html chunks.

HTML component dynamically generated html

<div id="" class="component html_component">
  <h2><span>html component title</span></h2>
  <div class="component_content">
    <div>
      html component content
    </div>
  </div>
</div>
Fig 1.1 - When a user adds an html component to their Viviti site, this is the html that is dynamically generated.

Navigation Component

A navigation component is used for adding navigation items in the form of lists of links.

Navigation component dynamically generated html

<div id="" class="component navigation_component">
  <h2><span>navigation component title</span></h2>
  <div class="component_content">
    <ul class="navigation">
      <li>
        <div class="navigation_label">navigation label name</div>
        <ul>
          <li>sub link name</li>
        </ul>        
      </li>
      <li>link name</li>
    </ul>
  </div>
</div>
Fig 1.1 - When a user adds a navigation component to their Viviti site, this is the html that is dynamically generated.

Friends Component

A friends component is used when adding a list of friends.

Friends component dynamically generated html

<div id="" class="component friend_component">
  <h2><span>my friends</span></h2>
  <div class="component_content">
    <ul class="friends">
      <li>
        <a href="">
          <img width="48" height="48" src=""/>
          <div class="friend_name">friend name</div>
        </a>
      </li>
    </ul>
  </div>
</div>
Fig 1.1 - When a user adds a friends component to their Viviti site, this is the html that is dynamically generated.

Blog Component

The blog component is unique in that it has more than one section of html to style over multiple dynamically created pages. The blog component consists of the following:

For the best results you need to style each piece. Below you can see the html for each piece of the blog component.

Blog post dynamically generated html

<div class="component blog_component">
  <h2><span>blog component title</span</h2>
    <div class="component_content">
      <div class="blog_post">
        <h3 class="title">
          <a href="">blog post title goes here</a>
        </h3>
        <div class="date">Posted on April 8, 2008</div>
        <div class="content">
          <p>blog post content goes here</p>
        </div>
        <div class="comments">
          <a href="">0 comments</a>
        </div>
      </div>
    </div>
</div>
Fig 1.1 - When a user adds a blog component to their Viviti site, this is the html that is dynamically generated.

Comments area dynamically generated html

<div id="comments">  
  <div class="comment comment_even">
    <span class="comment_number">
      <a href="">Comment Number Goes Here</a>
    </span>
    <span class="comment_name">
      <a href="">Name Goes Here</a>
    </span>
    <span class="date">Date Goes Here</span>
    <div class="content">
      <p>Comment Goes Here</p>
    </div>    
  </div>
</div>
Fig 1.1 - This html is dynamically generated for the comments section of a Viviti blog.

Add comment form dynamically generated html

<div id="comment_form_area">
  <h2>Add comment</h2>
  <form id="comment_form">
    <div>
      <div class="input_wrapper">
        <label>Name: </label>
        <input id="new_comment_name" type="text" size="30" />
      </div>
      <div class="input_wrapper">
        <label>Email: </label>
        <input id="new_comment_email" type="text" size="30" />
      </div>
      <div class="input_wrapper">
        <label>Website: </label>
        <input id="new_comment_website" type="text" size="30" />
      </div>
      <div class="input_wrapper textarea_wrapper">
        <label>Comment: </label>
        <textarea id="new_comment_body" cols="40" rows="20" />
      </div>
      <div class="submit_wrapper">
        <input type="submit" value="Submit" />
      </div>
    </div>
  </form>
</div>
Fig 1.1 - This html is dynamically generated for the comments section of a Viviti blog.

Feed Component

A feed component is used for adding RSS or related type feeds.

Feed component dynamically generated html

<div class="component feed_component">
  <h2><span>feed title</span></h2>
  <div class="component_content">
    <h3>feed name</h3>
    <ul>
      <li>
        <a href="">feed item title</a>
      </li>
    </ul>
  </div>
</div>
Fig 1.1 - When a user adds a feed component to their Viviti site, this is the html that is dynamically generated.

Xbox Gamertag Component

An Xbox Gamertag component is used for adding a gamertag.

Gamertag component dynamically generated html

<div class="component gamercard_component">
  <h2><span>gamertag</span></h2>
  <div class="component_content">
    <div class="gamer_card">
    </div>
  </div>
</div>
Fig 1.1 - When a user adds an XboxGamertag to their Viviti site, this is the html that is dynamically generated.