Skip to content

Instantly share code, notes, and snippets.

@CloCkWeRX
Last active January 3, 2016 01:49
Show Gist options
  • Save CloCkWeRX/8391350 to your computer and use it in GitHub Desktop.
Save CloCkWeRX/8391350 to your computer and use it in GitHub Desktop.
thingsystem - front page
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="Author" content="The Thing System" />
<meta name="Keywords" content="Internet of Things, iot, home automation, Thing Sensor Report Protocol, TRSP, Simple Thing Protocol, Cloud, API, steward, curators, Rendezvous Server, Rendezvous Protocol, The Trouble With Things," />
<meta name="Description" content="Welcome to The Thing System! Your life and your house went from one computer to an Internet of things. From tablets to lightbulbs, from sensors to media boxes, everybody gets their own Internet. Today, you have to fight your things. They don't talk to each other, the apps don't work, it's a tower of babel. Our solution is open source." />
<title>&#x24E3; the thing system - Hello, world!</title>
<base href="http://thethingsystem.com" />
<style type="text/css">
#download {
float: right;
padding-top: 100px;
min-width: 200px;
}
#nav {
float: left;
margin-top: 10px;
}
.primary-action a {
font-size: 200%;
}
#download {
text-align: center;
}
</style>
<link rel="stylesheet" href="master.respond.css" type="text/css" media="screen" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-44378714-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body class="short" alink="#000" bgcolor="#fff" link="#666">
<div class="header">
<a href="index.html" class="logo"><img alt="&#x24E3; the thing system" src="images/thing.system.logo.svg" class="logo" /></a>
</div>
<div class="main-content">
<img src="images/thing.ipad.png" alt="Thing D3 client" class="client" />
<div class="intro-text">
<h1 class="home"><nobr>Take control</nobr> of <span style="border-bottom: 2px dotted #ccc;">things</span></h1>
<p>Your life and your house went from one computer to an Internet of things. From tablets to lightbulbs, from sensors to media boxes, everybody gets their own Internet. Today, you have to fight your things. They don't talk to each other, the apps don't work, it's a tower of babel. Our solution &#8212; the Thing System &#8212; is open source. We'll talk to anything, you can hack the system, it has an open API.</p>
<p>With the Thing System, you can finally take control of your things.</p>
<div>
<div id="download" class="primary-action">
<p><a class="select-green" href="dev/Installation.html">Download</a></p>
<p><small>Available on OSX, Linux, <br />Raspberry Pi, &amp; Beaglebone</small></p>
</div>
<ul id="primary-nav" class="nav-noscroll">
<li><a href="things/index.html" class="select-red">The Trouble With Things</a></li>
<li><a href="dev/index.html" class="select-purple">For Implementors</a></li>
<li><a href="dev/supported-things.html" class="select-green">Supported Things</a></li>
<li><a href="code/index.html" class="select-orange">Get The Code</a></li>
<li><a href="dev/Installation.html" class="select-pink">Quick Start</a></li>
<li><a href="meet/index.html" class="select-blue">About Us</a></li>
<li style="margin-top: 20px;"><a href="https://plus.google.com/communities/113042377519941328693" rel="publisher" class="text">Find us on Google+</a></li>
<li><a href="http://thingsystem.tumblr.com/" rel="publisher" class="text">Find us on Tumblr</a></li>
</ul>
</div>
</div>
</div>
<div class="footer">
<div class="footer-left"><a href="index.html" class="green">&uarr;</a> <a href="index.html" class="yellow">the thing system</a></div>
<div class="footer-right"><a href="privacy/index.html" class="yellow">privacy policy</a></div>
</div>
<div class="smallprint"></div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="Author" content="The Thing System" />
<meta name="Keywords" content="Internet of Things, iot, home automation, Thing Sensor Report Protocol, TRSP, Simple Thing Protocol, Cloud, API, steward, curators, Rendezvous Server, Rendezvous Protocol, The Trouble With Things," />
<meta name="Description" content="Welcome to The Thing System! Your life and your house went from one computer to an Internet of things. From tablets to lightbulbs, from sensors to media boxes, everybody gets their own Internet. Today, you have to fight your things. They don't talk to each other, the apps don't work, it's a tower of babel. Our solution is open source." />
<title>&#x24E3; Installation</title>
<base href="http://thethingsystem.com/dev/" />
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-44378714-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body class="leaf" alink="#000" bgcolor="#fff" link="#666">
<div class="header">
<a href="../index.html" class="logo"><img alt="&#x24E3; the thing system" src="../images/thing.system.logo.svg" /></a>
</div>
<div class="main-content">
<ul class="nav">
<li><a href="../dev/index.html" class="purple select-purple">For Implementors</a></li>
<li style="clear: both;"><a href="Home.html" class="select-pink">Documentation</a></li>
<ul class="subnav">
<li><a href="The-Thing-Philosophy.html" class="toc">Philosophy</li>
<li><a href="The-Thing-Architecture.html" class="toc">The Thing Architecture</a></li>
<li><a href="Installation.html" class="select-toc">Installation</a> <span style="color: #f05687;">&rarr;</span></li>
<ol class="toc-nav">
<li><a href="Bootstrapping-on-OS-X.html" class="toc">Bootstrapping on OS X</a></li>
<li><a href="Bootstrapping-the-Raspberry-Pi.html" class="toc">Bootstrapping Raspberry Pi</a></li>
<li><a href="Bootstrapping-the-BeagleBone.html" class="toc">Bootstrapping BeagleBone</a></li>
<li><a href="Instructions-for-starting-the-Steward.html" class="toc">Starting the Steward</a></li>
</ol>
<li><a href="Developer.html" class="toc">Developer</a></li>
</ul>
<li style="clear: both;"><a href="supported-things.html" class="select-green">Supported Things</a></li>
<li style="clear: both;"><a href="../code/index.html" class="select-orange">Get The Code</a></li>
<li><a href="../index.html" class="green">&uarr;</a></li>
</ul>
<style type="text/css">
#download-splash {
text-align: center;
margin-bottom: 500px;
}
#download-splash .faux-table h2 {
font-size: 100%;
}
#download-splash .faux-table .faux-cell ul {
padding-left: 0;
}
#download-splash ul li {
list-style: none;
font-size: 80%;
}
.faux-table {
display: table;
margin: auto;
}
.faux-cell {
display: table-cell;
padding: 1.0em;
}
#download-splash .logo img {
max-height:180px;
}
#download-splash a.logo {
text-decoration: none;
}
#download-splash a.logo:hover {
background-color: white;
}
</style>
<div class="doc-content">
<div id="download-splash">
<h1>Download</h1>
<div class="faux-table">
<div class="faux-cell">
<a class="logo" href="#quick-start">
<img src="http://opensourcescholars.github.io/os-preso/images/LinuxLogo.png" />
</a>
<h2>OSX / Linux</h2>
<ul>
<li><a href="#quick-start">Source</a></li>
</ul>
</div>
<div class="faux-cell">
<a class="logo" href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing"><img src="http://www.raspberrypi.org/wp-content/uploads/2012/03/Raspi_Colour_R.png" /></a>
<h2>Raspberry Pi</h2>
<ul>
<li><a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">Disk Image</a></li>
<li><a href="#quick-start">Source</a></li>
</ul>
</div>
<div class="faux-cell">
<a class="logo" href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing"><img src="http://beagleboard.org/static/uploads/Boris_Bone.png" /></a>
<h2>Beaglebone</h2>
<ul>
<li><a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">Disk Image</a></li>
<li><a href="#quick-start">Source</a></li>
</ul>
</div>
</div>
</div>
<h1>Installation</h1>
<p>There are a number of different ways to install the <em>steward</em> software. After installation please see the documentation <a href="Instructions-for-starting-the-Steward.html">on how to start the Steward</a>. For most users we recommend using the supplied disk images <a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">for the Raspberry Pi</a> and <a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">the BeagleBone</a> based around the latest version of Debian Wheezy.</p>
<h2 id="quick-start">Quick Start</h2>
<p>If you already have node.js running on your system, you should only need to download the steward. Go ahead and,</p>
<pre><code>git clone https://github.com/TheThingSystem/steward.git
cd steward/steward
npm install -l
</code></pre>
<p>and then you're <a href="Instructions-for-starting-the-Steward.html">ready to start the Steward</a>. Although if you're running on a Linux platform you might want to take a look at the instructions for <a href="Bootstrapping-the-Raspberry-Pi.html">building from source on the Raspberry Pi</a> to check if you have all the third party dependencies before attempting to run the steward.</p>
<p>If you ever need to upgrade to the latest version of the steward, go ahead and shut down the steward process and,</p>
<pre><code>cd steward # the top-level directory
git pull
cd steward
rm -rf node_modules
npm install -l
</code></pre>
<p>and then <a href="Instructions-for-starting-the-Steward.html">restart the steward</a>.</p>
<h2>Installation from source</h2>
<p>If you want to install the <em>steward</em> from source you should follow the appropriate instructions for your platform:</p>
<ul>
<li><p><a href="Bootstrapping-on-OS-X.html">OS X</a> on the Mac</p></li>
<li><p>Raspbian Wheezy on the <a href="Bootstrapping-the-Raspberry-Pi.html">Raspberry Pi</a></p></li>
<li><p>Debian Wheezy on the <a href="Bootstrapping-the-BeagleBone-Black-with-Debian.html">BeagleBone Black</a> and original BeagleBone Rev.A6 (white)</p></li>
</ul>
<p>We also have instructions on <a href="Bootstrapping-the-BeagleBone-Black.html">how to build the steward on the default Angstrom distribution</a> on the BeagleBone Black. However we do not advise this as the build suffers from mDNS and several other problems relating to third party library problems.</p>
<h2>Disk images</h2>
<p>There are raw disk disk images available <a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">for the Raspberry Pi</a> and <a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">the BeagleBone</a> based around the latest version of Debian Wheezy for these platforms. You will need a 4GB SD card.</p>
<p>The latest release is <strong>version 1.3</strong>, code named "Rudolf" (23rd December 2013)</p>
<p>The latest Raspberry Pi image is: <a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">sdcard<em>rpi</em>1.3.img</a>
MD5 (sdcard<em>rpi</em>1.3.img) = 6e72d50812352c52e387769c4f9f2a6f</p>
<p>The latest Beaglebone Black image is: <a href="https://drive.google.com/folderview?id=0B27nSHVkupK9a0dCRTJwaUo2WHM&amp;usp=sharing">sdcard<em>bbb</em>1.3.img</a>
MD5 (sdcard<em>bbb</em>1.3.img) = 696cc01ff21838fe5635c5947b21c61b</p>
<p>The Beaglebone Black disk image should also work with the original Beaglebone Rev.A6 (white) but has not been extensively tested.</p>
<h3>Copying the Disk Image to an SD Card</h3>
<p>Insert your SD card into your Macbook. Open up a Terminal window and type df -h, remember the device name for your SD Card. In my case it's /dev/disk1. We'll need to use the raw device, /dev/rdisk1.</p>
<pre><code>Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk0s2 699Gi 367Gi 332Gi 53% 96214802 86992771 53% /
devfs 206Ki 206Ki 0Bi 100% 714 0 100% /dev
map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
/dev/disk1s1 59Gi 33Gi 26Gi 57% 8739054 6768902 56% /Volumes/SD Card
</code></pre>
<p>Unmount the card,</p>
<pre><code>sudo diskutil unmount /dev/disk1s1
</code></pre>
<p>rather than ejecting it by dragging it to the trash. Then in the Terminal window change to the directory with your disk image in and type,</p>
<pre><code>sudo dd bs=1m if=sdcard.img of=/dev/rdisk1
</code></pre>
<p>if the above command report an error "dd: bs: illegal numeric value", change bs=1m to bs=1M. </p>
<p>The card should automatically remount when dd is done. Eject the card with the command,</p>
<pre><code>sudo diskutil eject /dev/rdisk1
</code></pre>
<h3>Instructions for the Raspberry Pi</h3>
<p>Insert the SD card in the board, plug in your Bluetooth LE dongle, plug the board into the Ethernet, and then connect the power to start it booting. A red LED will initially come on, however the green ACT LED should start flashing, and the orange FDX and LNK LEDS should light up if the boot works correctly.</p>
<p>When the board boots it should automatically bring up both Bluetooth LE and the Steward.</p>
<h3>Instructions for the Beaglebone Black</h3>
<p>Power the BeagleBone Black down and locate the "User Boot" button. It's located on the top side of the board, directly above the micro SD card slot which is located on the reverse side along with the mini and micro USB sockets.</p>
<p>The BeagleBone Black will try to boot the internal Angstrom image by default. To boot from our SD Card, you’ll need to hold down the User Boot button while powering-on the board. You should see two of the blue lights come on. At this point you can let go of the User Boot button.</p>
<p>When the board boots it should automatically bring up both Bluetooth LE and the Steward.</p>
<p>With the SD Card present in the microSD slot the Beaglebone Black will boot into Debian only if the User Boot button is held as the power is turned on. If you do not hold the User Boot button down on boot the into the default Angstrom distribution which is still present on the internal eMMC.</p>
<p>This can get fairly tedious.You can replace the internal Angstrom image with a "default" Debian distribution—which does not contain the steward or #thethingsystem—but does know to check for the presence of an SD card before booting.</p>
<p>To do this ssh into the Beaglebone—the username and password are both "debian"—and proceed as below,</p>
<pre><code>cd ~
sudo su
wget http://s3.armhf.com/debian/wheezy/bone/debian-wheezy-7.2-armhf-3.8.13-bone30.img.xz
xz -cd debian-wheezy-7.2-armhf-3.8.13-bone30.img.xz &gt; /dev/mmcblk1
</code></pre>
<p>this will take a while. When it is complete your command prompt will return, and the internal eMMC memory will have a default version of Wheezy installed. Since the image is pretty large you should delete it at this point</p>
<pre><code>rm debian-wheezy-7.2-armhf-3.8.13-bone30.img.xz
</code></pre>
<p>To test it has worked you should un-plug the power supply, remove the microSD card and then connect the power again. It should boot back up into Debian.</p>
<p>From this point, to boot from the SD card you simply need to place the card in the microSD slot and connect the power. No more holding down the User Boot button.</p>
<h3>Accessing the steward</h3>
<p>The steward will start automatically when your Raspberry Pi or Beaglebone boots, so after installation please see the documentation on <a href="https://github.com/TheThingSystem/steward/wiki/Instructions-for-starting-the-Steward#authentication">how to authenticate and login to the steward</a>. </p>
<h2>Installation using Package Management</h2>
<p>At the moment installation of the steward from source, and is a fairly complicated and meant for developers. We intend to simplify this process by providing packages for various flavors of Linux as well as <em>MacPorts</em> for OS X. If you're not a developer the easiest way to get started with the steward is probably to use the Raspberry Pi disk images discussed above.</p>
</div>
<div class="footer">
<div class="footer-left"><a href="../index.html" class="green">&uarr;</a> <a href="../index.html" class="yellow">the thing system</a></div>
<div class="footer-right"><a href="../code/index.html" class="select-orange">Get The Code</a></div>
</div>
<div class="pulldown styled-select" style="background-color: #f05687;">
<form method="get">
<select name="primary" onChange="parent.location=(this.options[this.selectedIndex].value)">
<option value="../things/index.html">The Trouble With Things</option>
<option value="../dev/index.html">For Implementors</option>
<option value="https://github.com/TheThingSystem/steward/wiki" selected>Documentation</option>
<option value="../dev/supported-things.html">Supported Things</option>
<option value="../code/index.html">Get The Code</option>
</select>
</form>
</div>
</body>
</html>
@font-face {
font-family: OpenSans Regular;
src: url(fonts/opensans/OpenSans-Regular.ttf);
}
@font-face {
font-family: Monsterrat Regular;
src: url(fonts/montserrat/Montserrat-Regular.ttf);
}
/*styles for 300 and up @ 16px!*/
/* The max-width declaration below blocks this from ever working */
@media only screen and (min-width: 18.75em) and (max-width: 31em) {
body.short { font-family: 'Monsterrat Regular', 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; margin: 0px 0px 80px 0px; padding: 0px; background-image:none; background-color: white; }
.header img.logo { margin-left: 0px; width: 265px; }
.main-content .intro-text { padding-left: 10px; margin-right: 40px;}
.main-content img.client { display: none; }
.main-content .intro-text h1.home { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 30px; line-height: 34px; color: #333; padding-top: 0px; }
.footer .footer-left {margin-left: 0px; margin-top: 10px; white-space: nowrap; }
.footer .footer-right {float: left; clear: both; margin-left: 33px; font-size: 12px; margin-top: 10px; }
ul.nav-noscroll { margin-left: -20px; }
p, blockquote, ol, ul, .content ul.text li, li { font-size: 10.5pt; line-height: 14pt; }
body.short .main-content .intro-text ul.nav-noscroll li { font-size: 16px;}
}
/*styles for 480px - 620px @ 16px!*/
@media screen and (min-width: 31em) and (max-width: 50em) {
body.short { font-family: 'Monsterrat Regular', 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; margin: 0px 0px 80px 0px; padding: 0px; background-image:none; background-color: white; }
.main-content .intro-text { padding-left: 30px; margin-right: 40px; }
.main-content img.client { display: inline; width: 250px; margin: 20px 20px 0px 25px; float: left; padding-bottom: 20px; }
.main-content .intro-text h1.home { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 34px; line-height: 38px; color: #333; padding-top: 0px; }
.footer .footer-left {float: left; }
.footer .footer-right {float: right; clear: none; margin-left: 0px; font-size: 16px; margin-top: 10px; }
}
/*styles for 800px and up @ 16px!*/
@media screen and (min-width: 50em) and (max-width: 68.75em) {
body.short { font-family: 'Monsterrat Regular', 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; margin: 0px 0px 80px 0px; padding: 0px; background-image:none; background-color: white; }
.main-content .intro-text { padding-left: 30px; margin-right: 40px; }
.main-content img.client { display: inline; width: 400px; margin: 20px 30px 0px 10px; float: left; padding-bottom: 20px; }
.main-content .intro-text h1.home { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 42px; line-height: 46px; color: #333; padding-top: 0px; }
.footer .footer-left {float: left; }
.footer .footer-right {float: right; clear: none; margin-left: 0px; font-size: 16px; margin-top: 10px; }
}
/*styles for 1100px and up @ 16px!*/
@media screen and (min-width: 68.75em){
body.short { font-family: 'Monsterrat Regular', 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; margin: 0px 0px 80px 0px; padding: 0px; background-image:none; background-color: white; }
.main-content .intro-text { padding-left: 30px; margin-right: 40px; }
.main-content img.client { display: inline; width: 500px; margin: 0px 30px 0px 50px; float: left; padding-bottom: 20px; }
.main-content .intro-text h1.home { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 58px; line-height: 54px; color: #333; }
.footer .footer-left {float: left; }
.footer .footer-right {float: right; clear: none; margin-left: 0px; font-size: 16px; margin-top: 10px; }
}
body { font-family: 'Monsterrat Regular', 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; margin: 0px 0px 80px 0px; padding: 0px; background-image:url(images/white.t.png); background-repeat:no-repeat; background-attachment:fixed; background-color: #fff; }
body.short { }
a { color: #999; padding: 2px 10px; text-decoration: none; border-bottom: 1px dotted #666; }
a:visited { color: #666; text-decoration: none; border-bottom: 0px dotted #000; }
a:hover { color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
.doc-content a { color: #999; padding: 0px; text-decoration: none; }
.doc-content a:visited { color: #666; text-decoration: none; border-bottom: 0px dotted #000; }
.doc-content a:hover { color: #000; background-color: #eee; text-decoration: none; border-bottom: 0px dotted #000; }
a.text { color: #999; padding: 0px; text-decoration: none; }
a.text:visited { color: #666; text-decoration: none; border-bottom: 0px dotted #000; }
a.text:hover { color: #000; background-color: #eee; text-decoration: none; border-bottom: 0px dotted #000; }
a.logo { color: #999; padding: 2px 10px; border-bottom: 0px dotted #000; }
a.toc { color: #999; padding: 2px 0px; border-bottom: 0px dotted #000; }
a.toc:visited { color: #666 }
a.toc:hover { color: #000; text-decoration: none; border-bottom: 1px dotted #666; }
a.yellow { border-bottom: 0px dotted #000; }
a.green:hover { background-color: #6bbf56; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.orange:hover { background-color: #fca34c; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.red:hover { background-color: #f0043e; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.purple:hover { background-color: #8b3e93; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.blue:hover { background-color: #396caf; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.yellow:hover { background-color: #fff491; color: #000; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-green { background-color: #6bbf56; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-orange { background-color: #fca34c; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-red { background-color: #f0043e; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-purple { background-color: #8b3e93; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-blue { background-color: #396caf; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-yellow { background-color: #fff491; color: #000; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-pink { background-color: #f05687; color: #fff; text-decoration: none; border-bottom: 0px dotted #000; }
a.select-toc { background-color: #eee; color: #f05687; text-decoration: none; border-bottom: 0px dotted #000; }
.header { font-size: 32px; line-height: 71px; background-color: #000; color: #fff; height: 80px; }
.header-tall { font-size: 32px; line-height: 71px; background-color: #000; color: #fff; height: 130px; text-align: center; }
.header img { width: 300px; padding-top: 16px; margin-left: 44px; border: none; }
.header-tall img { width: 300px; padding-top: 16px; }
.footer { border-top: 1px dotted #ccc; margin-right: 100px; margin-left: 40px; margin-top: 60px; margin-bottom: 30px; clear: both; }
.footer-left { float: left; }
.footer-right { float: right; }
.main-content { font-family: 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; padding-left: 20px; }
.intro-text { font-family: 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; padding-top: 30px; margin-right: 80px;}
.content { font-family: 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; padding-top: 10px; margin-right: 80px; margin-left: 300px; }
.doc-content { font-family: 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; padding-top: 10px; margin-right: 80px; margin-left: 300px; min-height: 460px; }
.content-column-left { width: 45%; float: left; padding-bottom: 40px; padding-right: 30px; }
.content-column-right { width: 45%; float: right; padding-bottom: 40px; padding-right: 30px; }
ul { }
ul.nav { font-family: 'Monsterrat Regular', san serif; list-style: none; white-space: nowrap; float: left; margin-top: 36px; position: fixed; }
ul.nav-noscroll { font-family: 'Monsterrat Regular', san serif; list-style: none; white-space: nowrap; float: left; margin-top: 36px; }
ul.subnav { font-family: 'Monsterrat Regular', san serif; list-style: none; white-space: nowrap; margin-top: 3px; margin-bottom: 6px; margin-left: -36px; }
ul.subnav li { margin-left: 0px; padding-left: 0px; }
ul.nav li { line-height: 32px; }
ul.nav-noscroll li { line-height: 32px; }
ul li { }
ul.text { }
ul.text li { line-height: 22px; padding-top: 9px; padding-bottom: 9px; }
ol { font-family: 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; margin-left: 0px; margin-top: 8px; margin-bottom: 8px; list-style: none; }
ol li { padding-bottom: 3px; }
dl { font-size: 18px; background-color: #eeeded; padding: 18px;
-moz-border-radius: 24px;
-webkit-border-radius: 24px; border-radius: 24px; /* future proofing */
-khtml-border-radius: 24px; /* for old Konqueror browsers */
border: 1px solid #d1d0d0;
}
dd { padding-bottom: 6px; }
dt { font-family: 'Monsterrat Regular', san serif; padding-top: 6px; padding-bottom: 12px; }
ol.toc-nav { font-family: 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; white-space: nowrap; font-size: 14px; margin-left: -30px; margin-top: 8px; margin-bottom: 8px; }
ol.toc-nav li { line-height: 16px; margin-top: 4px; margin-bottom: 4px; }
p.first { padding-top: 0px; margin-top: 0px; }
.annotate { font-size: 12px; color: #f05687; font-style: italic; }
h1.home { }
h1 { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 45px; color: #333; margin-bottom: 0px; padding-bottom: 10px; margin-top: 0px; padding-top: 20px; }
h2 { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 34px; color: #333; margin-bottom: 0px; padding-bottom: 0px; margin-top: 0px; padding-top: 20px; }
h3 { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 26px; color: #333; margin-bottom: 0px; padding-bottom: 0px; }
h3.knapsack { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 18px; color: #333; margin-bottom: 0px; padding-bottom: 9px; padding-left: 28px; }
h4 { font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 20px; color: #666; margin-bottom: 0px; padding-bottom: 0px; text-transform: uppercase; }
.montserrat { font-family: 'Monsterrat Regular', san serif; }
img.doc-image { width: 100% }
pre { background-color: #d9f8c9; padding: 20px; border: 1px solid #90c077; white-space: pre-wrap; font-family: 'Monaco'; 'Lucida Console', 'Lucida Typewriter', monospace; }
code { font-family: 'Monaco'; 'Lucida Console', 'Lucida Typewriter', monospace; }
p {font-family: 'OpenSans Regular', 'Open Sans', 'Trebuchet MS', san serif; }
form { margin-left: 20px; }
select {
border:0;
background: transparent;
color: #fff;
height:32px;
width:350px;
-webkit-appearance: none;
font-family: 'Monsterrat Regular', san serif; font-weight: normal; font-size: 16px;
padding: 5px 12px;
-moz-appearance: none;
text-indent: 0.01px;
text-overflow: '';
}
.styled-select select {
width: 95%;
background: transparent;
height: 34px;
overflow: hidden;
background: url(images/select.svg) no-repeat right;
border: 1px dotted #fff;
}
.primary-action a {
font-size: 200%;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment