commit bf19524ad0ea3210fb7d0da57b1bb360a296d811 Author: Emre Akay Date: Sat Jul 5 01:45:21 2014 +0300 Create gh-pages branch via GitHub diff --git a/images/body-bg.jpg b/images/body-bg.jpg new file mode 100644 index 0000000..0e0f861 Binary files /dev/null and b/images/body-bg.jpg differ diff --git a/images/download-button.png b/images/download-button.png new file mode 100644 index 0000000..df3f09a Binary files /dev/null and b/images/download-button.png differ diff --git a/images/github-button.png b/images/github-button.png new file mode 100644 index 0000000..efe07f9 Binary files /dev/null and b/images/github-button.png differ diff --git a/images/header-bg.jpg b/images/header-bg.jpg new file mode 100644 index 0000000..960bff7 Binary files /dev/null and b/images/header-bg.jpg differ diff --git a/images/highlight-bg.jpg b/images/highlight-bg.jpg new file mode 100644 index 0000000..4c4a78e Binary files /dev/null and b/images/highlight-bg.jpg differ diff --git a/images/sidebar-bg.jpg b/images/sidebar-bg.jpg new file mode 100644 index 0000000..42890fe Binary files /dev/null and b/images/sidebar-bg.jpg differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..298d1e4 --- /dev/null +++ b/index.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + Codeigniter-aauth by emreakay + + + +
+
+

Codeigniter-aauth

+

Authorization, authentication and User Management library for Codeigniter 2.x to make easy user management and permission operations

+ View project onGitHub +
+
+ +
+
+
+

Aauth is a User Authorization Library for CodeIgniter 2.x, which aims to make easy some essential jobs such as login, permissions and access operations. Despite ease of use, it has also very advanced features like private messages, groupping, access management, public access etc..

+ +

After Quick Start, Take a look detailed Documentation from wiki

+ +

+Features

+ +
    +
  • User Management and Operations (login, logout, register, vertification via e-mail, forgoten password, ban management, login ddos protection)
  • +
  • Group Operations (Creaing, deleting groups, membership management)
  • +
  • Admin and Public Group support (Public permissions) +Permission Management (creating,deleting permissons, allow, deny groups, public permissions, permission checking)
  • +
  • Group Permissions
  • +
  • User Permissions (new)
  • +
  • User and System Variables (new)
  • +
  • Login Ddos Protection (new)
  • +
  • Private Messages (pm between users)
  • +
  • Error Mesages and Validations
  • +
  • Langugage and config file support
  • +
  • Flexible
  • +

+What is new in Version 2

+ +
    +
  • User Permissions
  • +
  • User and System Variables
  • +
  • Login Ddos Protection
  • +
  • Some functions has changed
  • +
  • Some bugs fixed
  • +

+Migration

+ +
    +
  • if you have been using Version 1 before, take a look at Migration Page
  • +

+Quick Start

+ +

Let's start :)
+Firstly we will load Aauth Library to system

+ +
$this->load->library("Aauth");
+
+ +

thats OK.

+ +

Now we will create 2 new users, Ali and John

+ +
$this->aauth->create_user('ali@ali.com','alispass','Ali Akay');
+$this->aauth->create_user('john@john.com','johnspass','John Button');
+
+ +

thats it. now we have two users.

+ +

Lets Create two group governors and commons :)

+ +
$this->aauth->create_group('governors');
+$this->aauth->create_group('commons');
+
+ +

Then, Lets Create a User with power whic is Obama (having id=12)

+ +
$this->aauth->create_user('obama@usa.gov', 'pass-cia-fbi', 'Barrack Obama');
+
+ +

ok now we have two groups and one user.

+ +

Lets create a permissions 'incrase_tax' and 'change_government'

+ +
$this->aauth->create_perm('increase_tax');
+$this->aauth->create_perm('change_government');
+
+ +

Ok, now lets give accesses. logically 'governors' will have 'increase_tax' permission and 'commons' will have 'change_government' access.
+ok lets give proper access with alow_group() function

+ +
$this->aauth->allow_group('governors','increase_tax');
+$this->aauth->allow_group('commons','change_government');
+
+
+$this->aauth->allow_group('commons','increase_tax');
+
+ +

Ops wait a minute. commons cannot 'increase_tax'. we need to fix it, we will use deny() to take back permission.

+ +
$this->aauth->deny('commons','increase_tax');
+
+ +

Obama also can increse tax ha?

+ +
$this->aauth->allow_user(12,'increase_tax');
+
+ +

Ok now lets check if commons can 'increase_tax'

+ +
if($this->aauth->is_group_allowed('commons','increase_tax')){
+    // i dont think so
+} else {
+   // do sth in the middle
+}
+
+ +

Can Obama increase_tax ? Let's check it.

+ +
if($this->aauth->is_allowed(15,'increase_tax')){
+    // i guess so
+} else {
+   // piece of code
+}
+
+ +

i think 'increse_tax' must have never been created. just delete it

+ +
$this->aauth->delete_perm('increase_tax');
+
+ +

now better.

+ +

So what about public people? (public means not logged users). Can public people travel? Lets assume we have permissions namely 'travel' , of course.

+ +
$this->aauth->allow_group('public','travel');
+
+ +

So Admin? what can he do? He can access everthing, You dont need to give permiision ( using allow_group() or allow_user() ) him, he already has.

+ +

What about User Variables? +for every individual user, variables can be defined as key-value.

+ +

this is a simple example to set a variable.

+ +
$this->aauth->set_user_var("key","value");
+
+ +

For example if you want to keep users phones

+ +
$this->aauth->set_user_var("phone","0216 313 23 33");
+
+ +

to get the variable

+ +
$this->aauth->set_user_var("key");
+
+ +

Aauth also permits you to define System Variables which can be accesed by every user in the system.

+ +
$this->aauth->set_system_var("key","Value");
+$this->aauth->set_system_var("key");
+
+ +

ok lets look at private messages. John (his id=3) will send pm to Ali(id=4)

+ +
$this->aauth->send_pm(3,4,'Hi bro. i need you',' can you gimme your credit card?')
+
+ +

sorry John you will be banned :(

+ +
$this->aauth->ban_user(3);
+
+ +

Quick Start is done but thats not the end
+Take a look detailed Documentation from wiki

+ +

Dont forget to watch Aauth.
+You can also contribute and help me :)

+
+ + +
+
+ + + + \ No newline at end of file diff --git a/javascripts/main.js b/javascripts/main.js new file mode 100644 index 0000000..d8135d3 --- /dev/null +++ b/javascripts/main.js @@ -0,0 +1 @@ +console.log('This would be the main JS file.'); diff --git a/params.json b/params.json new file mode 100644 index 0000000..45018d2 --- /dev/null +++ b/params.json @@ -0,0 +1 @@ +{"name":"Codeigniter-aauth","tagline":"Authorization, authentication and User Management library for Codeigniter 2.x to make easy user management and permission operations","body":"***\r\nAauth is a User Authorization Library for CodeIgniter 2.x, which aims to make easy some essential jobs such as login, permissions and access operations. Despite ease of use, it has also very advanced features like private messages, groupping, access management, public access etc..\r\n\r\nAfter Quick Start, Take a look [detailed Documentation from wiki](https://github.com/emreakay/CodeIgniter-Aauth/wiki/_pages) \r\n\r\n### Features \r\n***\r\n* User Management and Operations (login, logout, register, vertification via e-mail, forgoten password, ban management, login ddos protection)\r\n* Group Operations (Creaing, deleting groups, membership management)\r\n* Admin and Public Group support (Public permissions)\r\nPermission Management (creating,deleting permissons, allow, deny groups, public permissions, permission checking)\r\n* Group Permissions \r\n* User Permissions (new)\r\n* User and System Variables (new)\r\n* Login Ddos Protection (new)\r\n* Private Messages (pm between users)\r\n* Error Mesages and Validations\r\n* Langugage and config file support\r\n* Flexible\r\n\r\n### What is new in Version 2\r\n***\r\n* User Permissions\r\n* User and System Variables\r\n* Login Ddos Protection\r\n* Some functions has changed\r\n* Some bugs fixed\r\n\r\n### Migration\r\n***\r\n* if you have been using Version 1 before, take a look at Migration Page\r\n\r\n### Quick Start \r\n***\r\nLet's start :) \r\nFirstly we will load Aauth Library to system\r\n```php\r\n$this->load->library(\"Aauth\");\r\n```\r\n \r\nthats OK. \r\n\r\nNow we will create 2 new users, Ali and John \r\n\r\n```php\r\n$this->aauth->create_user('ali@ali.com','alispass','Ali Akay');\r\n$this->aauth->create_user('john@john.com','johnspass','John Button');\r\n```\r\n \r\nthats it. now we have two users.\r\n\r\nLets Create two group governors and commons :)\r\n```php\r\n$this->aauth->create_group('governors');\r\n$this->aauth->create_group('commons');\r\n``` \r\n\r\nThen, Lets Create a User with power whic is Obama (having id=12)\r\n```php\r\n$this->aauth->create_user('obama@usa.gov', 'pass-cia-fbi', 'Barrack Obama');\r\n``` \r\n\r\nok now we have two groups and one user.\r\n\r\nLets create a permissions 'incrase_tax' and 'change_government' \r\n\r\n```php\r\n$this->aauth->create_perm('increase_tax');\r\n$this->aauth->create_perm('change_government');\r\n``` \r\n\r\nOk, now lets give accesses. logically 'governors' will have 'increase_tax' permission and 'commons' will have 'change_government' access. \r\nok lets give proper access with _alow_group()_ function\r\n\r\n```php\r\n$this->aauth->allow_group('governors','increase_tax');\r\n$this->aauth->allow_group('commons','change_government');\r\n \r\n \r\n$this->aauth->allow_group('commons','increase_tax');\r\n``` \r\n\r\nOps wait a minute. commons cannot 'increase_tax'. we need to fix it, we will use deny() to take back permission.\r\n\r\n```php\r\n$this->aauth->deny('commons','increase_tax');\r\n``` \r\n\r\nObama also can increse tax ha?\r\n\r\n```php\r\n$this->aauth->allow_user(12,'increase_tax');\r\n``` \r\n\r\n\r\nOk now lets check if commons can 'increase_tax'\r\n\r\n```php\r\nif($this->aauth->is_group_allowed('commons','increase_tax')){\r\n // i dont think so\r\n} else {\r\n // do sth in the middle\r\n}\r\n``` \r\n\r\nCan Obama increase_tax ? Let's check it.\r\n\r\n```php\r\nif($this->aauth->is_allowed(15,'increase_tax')){\r\n // i guess so\r\n} else {\r\n // piece of code\r\n}\r\n``` \r\n\r\n\r\ni think 'increse_tax' must have never been created. just delete it\r\n\r\n```php\r\n$this->aauth->delete_perm('increase_tax');\r\n``` \r\nnow better. \r\n \r\nSo what about public people? (public means not logged users). Can public people travel? Lets assume we have permissions namely 'travel' , of course.\r\n\r\n```php\r\n$this->aauth->allow_group('public','travel');\r\n``` \r\n \r\nSo Admin? what can he do? He can access everthing, You dont need to give permiision ( using allow_group() or allow_user() ) him, he already has. \r\n \r\nWhat about User Variables?\r\nfor every individual user, variables can be defined as key-value.\r\n\r\nthis is a simple example to set a variable.\r\n```php\r\n$this->aauth->set_user_var(\"key\",\"value\");\r\n``` \r\n\r\nFor example if you want to keep users phones\r\n```php\r\n$this->aauth->set_user_var(\"phone\",\"0216 313 23 33\");\r\n``` \r\n\r\nto get the variable\r\n```php\r\n$this->aauth->set_user_var(\"key\");\r\n``` \r\n\r\nAauth also permits you to define System Variables which can be accesed by every user in the system.\r\n```php\r\n$this->aauth->set_system_var(\"key\",\"Value\");\r\n$this->aauth->set_system_var(\"key\");\r\n``` \r\n\r\nok lets look at private messages. John (his id=3) will send pm to Ali(id=4)\r\n\r\n```php\r\n$this->aauth->send_pm(3,4,'Hi bro. i need you',' can you gimme your credit card?')\r\n``` \r\n \r\nsorry John you will be banned :(\r\n\r\n```php\r\n$this->aauth->ban_user(3);\r\n``` \r\n \r\nQuick Start is done but thats not the end \r\nTake a look [detailed Documentation from wiki](https://github.com/emreakay/CodeIgniter-Aauth/wiki/_pages) \r\n\r\nDont forget to watch Aauth. \r\nYou can also contribute and help me :)\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file diff --git a/stylesheets/print.css b/stylesheets/print.css new file mode 100644 index 0000000..541695b --- /dev/null +++ b/stylesheets/print.css @@ -0,0 +1,226 @@ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +body { + font-size: 13px; + line-height: 1.5; + font-family: 'Helvetica Neue', Helvetica, Arial, serif; + color: #000; +} + +a { + color: #d5000d; + font-weight: bold; +} + +header { + padding-top: 35px; + padding-bottom: 10px; +} + +header h1 { + font-weight: bold; + letter-spacing: -1px; + font-size: 48px; + color: #303030; + line-height: 1.2; +} + +header h2 { + letter-spacing: -1px; + font-size: 24px; + color: #aaa; + font-weight: normal; + line-height: 1.3; +} +#downloads { + display: none; +} +#main_content { + padding-top: 20px; +} + +code, pre { + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal; + color: #222; + margin-bottom: 30px; + font-size: 12px; +} + +code { + padding: 0 3px; +} + +pre { + border: solid 1px #ddd; + padding: 20px; + overflow: auto; +} +pre code { + padding: 0; +} + +ul, ol, dl { + margin-bottom: 20px; +} + + +/* COMMON STYLES */ + +table { + width: 100%; + border: 1px solid #ebebeb; +} + +th { + font-weight: 500; +} + +td { + border: 1px solid #ebebeb; + text-align: center; + font-weight: 300; +} + +form { + background: #f2f2f2; + padding: 20px; + +} + + +/* GENERAL ELEMENT TYPE STYLES */ + +h1 { + font-size: 2.8em; +} + +h2 { + font-size: 22px; + font-weight: bold; + color: #303030; + margin-bottom: 8px; +} + +h3 { + color: #d5000d; + font-size: 18px; + font-weight: bold; + margin-bottom: 8px; +} + +h4 { + font-size: 16px; + color: #303030; + font-weight: bold; +} + +h5 { + font-size: 1em; + color: #303030; +} + +h6 { + font-size: .8em; + color: #303030; +} + +p { + font-weight: 300; + margin-bottom: 20px; +} + +a { + text-decoration: none; +} + +p a { + font-weight: 400; +} + +blockquote { + font-size: 1.6em; + border-left: 10px solid #e9e9e9; + margin-bottom: 20px; + padding: 0 0 0 30px; +} + +ul li { + list-style: disc inside; + padding-left: 20px; +} + +ol li { + list-style: decimal inside; + padding-left: 3px; +} + +dl dd { + font-style: italic; + font-weight: 100; +} + +footer { + margin-top: 40px; + padding-top: 20px; + padding-bottom: 30px; + font-size: 13px; + color: #aaa; +} + +footer a { + color: #666; +} + +/* MISC */ +.clearfix:after { + clear: both; + content: '.'; + display: block; + visibility: hidden; + height: 0; +} + +.clearfix {display: inline-block;} +* html .clearfix {height: 1%;} +.clearfix {display: block;} \ No newline at end of file diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css new file mode 100644 index 0000000..c6a6452 --- /dev/null +++ b/stylesheets/pygment_trac.css @@ -0,0 +1,69 @@ +.highlight { background: #ffffff; } +.highlight .c { color: #999988; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight .k { font-weight: bold } /* Keyword */ +.highlight .o { font-weight: bold } /* Operator */ +.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ +.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #aa0000 } /* Generic.Error */ +.highlight .gh { color: #999999 } /* Generic.Heading */ +.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #555555 } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ +.highlight .gt { color: #aa0000 } /* Generic.Traceback */ +.highlight .kc { font-weight: bold } /* Keyword.Constant */ +.highlight .kd { font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #009999 } /* Literal.Number */ +.highlight .s { color: #d14 } /* Literal.String */ +.highlight .na { color: #008080 } /* Name.Attribute */ +.highlight .nb { color: #0086B3 } /* Name.Builtin */ +.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight .no { color: #008080 } /* Name.Constant */ +.highlight .ni { color: #800080 } /* Name.Entity */ +.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight .nn { color: #555555 } /* Name.Namespace */ +.highlight .nt { color: #000080 } /* Name.Tag */ +.highlight .nv { color: #008080 } /* Name.Variable */ +.highlight .ow { font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #009999 } /* Literal.Number.Float */ +.highlight .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .sb { color: #d14 } /* Literal.String.Backtick */ +.highlight .sc { color: #d14 } /* Literal.String.Char */ +.highlight .sd { color: #d14 } /* Literal.String.Doc */ +.highlight .s2 { color: #d14 } /* Literal.String.Double */ +.highlight .se { color: #d14 } /* Literal.String.Escape */ +.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ +.highlight .si { color: #d14 } /* Literal.String.Interpol */ +.highlight .sx { color: #d14 } /* Literal.String.Other */ +.highlight .sr { color: #009926 } /* Literal.String.Regex */ +.highlight .s1 { color: #d14 } /* Literal.String.Single */ +.highlight .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #008080 } /* Name.Variable.Class */ +.highlight .vg { color: #008080 } /* Name.Variable.Global */ +.highlight .vi { color: #008080 } /* Name.Variable.Instance */ +.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ + +.type-csharp .highlight .k { color: #0000FF } +.type-csharp .highlight .kt { color: #0000FF } +.type-csharp .highlight .nf { color: #000000; font-weight: normal } +.type-csharp .highlight .nc { color: #2B91AF } +.type-csharp .highlight .nn { color: #000000 } +.type-csharp .highlight .s { color: #A31515 } +.type-csharp .highlight .sc { color: #A31515 } diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css new file mode 100644 index 0000000..b617509 --- /dev/null +++ b/stylesheets/stylesheet.css @@ -0,0 +1,479 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* LAYOUT STYLES */ +body { + font-size: 15px; + line-height: 1.5; + background: #fafafa url(../images/body-bg.jpg) 0 0 repeat; + font-family: 'Helvetica Neue', Helvetica, Arial, serif; + font-weight: 400; + color: #666; +} + +a { + color: #2879d0; +} +a:hover { + color: #2268b2; +} + +header { + padding-top: 40px; + padding-bottom: 40px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + background: #2e7bcf url(../images/header-bg.jpg) 0 0 repeat-x; + border-bottom: solid 1px #275da1; +} + +header h1 { + letter-spacing: -1px; + font-size: 72px; + color: #fff; + line-height: 1; + margin-bottom: 0.2em; + width: 540px; +} + +header h2 { + font-size: 26px; + color: #9ddcff; + font-weight: normal; + line-height: 1.3; + width: 540px; + letter-spacing: 0; +} + +.inner { + position: relative; + width: 940px; + margin: 0 auto; +} + +#content-wrapper { + border-top: solid 1px #fff; + padding-top: 30px; +} + +#main-content { + width: 690px; + float: left; +} + +#main-content img { + max-width: 100%; +} + +aside#sidebar { + width: 200px; + padding-left: 20px; + min-height: 504px; + float: right; + background: transparent url(../images/sidebar-bg.jpg) 0 0 no-repeat; + font-size: 12px; + line-height: 1.3; +} + +aside#sidebar p.repo-owner, +aside#sidebar p.repo-owner a { + font-weight: bold; +} + +#downloads { + margin-bottom: 40px; +} + +a.button { + width: 134px; + height: 58px; + line-height: 1.2; + font-size: 23px; + color: #fff; + padding-left: 68px; + padding-top: 22px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; +} +a.button small { + display: block; + font-size: 11px; +} +header a.button { + position: absolute; + right: 0; + top: 0; + background: transparent url(../images/github-button.png) 0 0 no-repeat; +} +aside a.button { + width: 138px; + padding-left: 64px; + display: block; + background: transparent url(../images/download-button.png) 0 0 no-repeat; + margin-bottom: 20px; + font-size: 21px; +} + +code, pre { + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + color: #222; + margin-bottom: 30px; + font-size: 13px; +} + +code { + background-color: #f2f8fc; + border: solid 1px #dbe7f3; + padding: 0 3px; +} + +pre { + padding: 20px; + background: #fff; + text-shadow: none; + overflow: auto; + border: solid 1px #f2f2f2; +} +pre code { + color: #2879d0; + background-color: #fff; + border: none; + padding: 0; +} + +ul, ol, dl { + margin-bottom: 20px; +} + + +/* COMMON STYLES */ + +hr { + height: 1px; + line-height: 1px; + margin-top: 1em; + padding-bottom: 1em; + border: none; + background: transparent url('../images/hr.png') 0 0 no-repeat; +} + +table { + width: 100%; + border: 1px solid #ebebeb; +} + +th { + font-weight: 500; +} + +td { + border: 1px solid #ebebeb; + text-align: center; + font-weight: 300; +} + +form { + background: #f2f2f2; + padding: 20px; + +} + + +/* GENERAL ELEMENT TYPE STYLES */ + +#main-content h1 { + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 2.8em; + letter-spacing: -1px; + color: #474747; +} + +#main-content h1:before { + content: "/"; + color: #9ddcff; + padding-right: 0.3em; + margin-left: -0.9em; +} + +#main-content h2 { + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 22px; + font-weight: bold; + margin-bottom: 8px; + color: #474747; +} +#main-content h2:before { + content: "//"; + color: #9ddcff; + padding-right: 0.3em; + margin-left: -1.5em; +} + +#main-content h3 { + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 18px; + font-weight: bold; + margin-top: 24px; + margin-bottom: 8px; + color: #474747; +} + +#main-content h3:before { + content: "///"; + color: #9ddcff; + padding-right: 0.3em; + margin-left: -2em; +} + +#main-content h4 { + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 15px; + font-weight: bold; + color: #474747; +} + +h4:before { + content: "////"; + color: #9ddcff; + padding-right: 0.3em; + margin-left: -2.8em; +} + +#main-content h5 { + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 14px; + color: #474747; +} +h5:before { + content: "/////"; + color: #9ddcff; + padding-right: 0.3em; + margin-left: -3.2em; +} + +#main-content h6 { + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: .8em; + color: #474747; +} +h6:before { + content: "//////"; + color: #9ddcff; + padding-right: 0.3em; + margin-left: -3.7em; +} + +p { + margin-bottom: 20px; +} + +a { + text-decoration: none; +} + +p a { + font-weight: 400; +} + +blockquote { + font-size: 1.6em; + border-left: 10px solid #e9e9e9; + margin-bottom: 20px; + padding: 0 0 0 30px; +} + +ul { + list-style: disc inside; + padding-left: 20px; +} + +ol { + list-style: decimal inside; + padding-left: 3px; +} + +dl dd { + font-style: italic; + font-weight: 100; +} + +footer { + background: transparent url('../images/hr.png') 0 0 no-repeat; + margin-top: 40px; + padding-top: 20px; + padding-bottom: 30px; + font-size: 13px; + color: #aaa; +} + +footer a { + color: #666; +} +footer a:hover { + color: #444; +} + +/* MISC */ +.clearfix:after { + clear: both; + content: '.'; + display: block; + visibility: hidden; + height: 0; +} + +.clearfix {display: inline-block;} +* html .clearfix {height: 1%;} +.clearfix {display: block;} + +/* #Media Queries +================================================== */ + +/* Smaller than standard 960 (devices and browsers) */ +@media only screen and (max-width: 959px) {} + +/* Tablet Portrait size to standard 960 (devices and browsers) */ +@media only screen and (min-width: 768px) and (max-width: 959px) { + .inner { + width: 740px; + } + header h1, header h2 { + width: 340px; + } + header h1 { + font-size: 60px; + } + header h2 { + font-size: 30px; + } + #main-content { + width: 490px; + } + #main-content h1:before, + #main-content h2:before, + #main-content h3:before, + #main-content h4:before, + #main-content h5:before, + #main-content h6:before { + content: none; + padding-right: 0; + margin-left: 0; + } +} + +/* All Mobile Sizes (devices and browser) */ +@media only screen and (max-width: 767px) { + .inner { + width: 93%; + } + header { + padding: 20px 0; + } + header .inner { + position: relative; + } + header h1, header h2 { + width: 100%; + } + header h1 { + font-size: 48px; + } + header h2 { + font-size: 24px; + } + header a.button { + background-image: none; + width: auto; + height: auto; + display: inline-block; + margin-top: 15px; + padding: 5px 10px; + position: relative; + text-align: center; + font-size: 13px; + line-height: 1; + background-color: #9ddcff; + color: #2879d0; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + } + header a.button small { + font-size: 13px; + display: inline; + } + #main-content, + aside#sidebar { + float: none; + width: 100% ! important; + } + aside#sidebar { + background-image: none; + margin-top: 20px; + border-top: solid 1px #ddd; + padding: 20px 0; + min-height: 0; + } + aside#sidebar a.button { + display: none; + } + #main-content h1:before, + #main-content h2:before, + #main-content h3:before, + #main-content h4:before, + #main-content h5:before, + #main-content h6:before { + content: none; + padding-right: 0; + margin-left: 0; + } +} + +/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ +@media only screen and (min-width: 480px) and (max-width: 767px) {} + +/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ +@media only screen and (max-width: 479px) {}