lion 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +1 -0
  4. data/bin/lion-new.rb +14 -0
  5. data/bin/lion-server.rb +6 -0
  6. data/lib/lion.rb +23 -0
  7. data/lib/lion/base.rb +4 -0
  8. data/lib/lion/installer.rb +18 -0
  9. data/lib/lion/version.rb +3 -0
  10. data/lib/src/config.ru +5 -0
  11. data/lib/src/lion.rb +33 -0
  12. data/lib/src/public/coffeescripts/application.js.coffee +6 -0
  13. data/lib/src/public/coffeescripts/spec/application.spec.js.coffee +0 -0
  14. data/lib/src/public/javascripts/main.js +5 -0
  15. data/lib/src/public/stylesheets/css/style.css +1 -0
  16. data/lib/src/public/stylesheets/sass/lib/_core.sass +7 -0
  17. data/lib/src/public/stylesheets/sass/lib/_elements.sass +100 -0
  18. data/lib/src/public/stylesheets/sass/lib/_grid.sass +30 -0
  19. data/lib/src/public/stylesheets/sass/lib/_reset.sass +84 -0
  20. data/lib/src/public/stylesheets/sass/lib/_settings.sass +42 -0
  21. data/lib/src/public/stylesheets/sass/lib/_typography.sass +45 -0
  22. data/lib/src/public/stylesheets/sass/lib/helpers/_buttons.sass +15 -0
  23. data/lib/src/public/stylesheets/sass/lib/helpers/_classes.sass +24 -0
  24. data/lib/src/public/stylesheets/sass/lib/helpers/_forms.sass +184 -0
  25. data/lib/src/public/stylesheets/sass/lib/helpers/_media_queries.sass +113 -0
  26. data/lib/src/public/stylesheets/sass/lib/helpers/_mixins.sass +76 -0
  27. data/lib/src/public/stylesheets/sass/lib/helpers/_tables.sass +29 -0
  28. data/lib/src/public/stylesheets/sass/style.sass +40 -0
  29. data/lib/src/views/index.slim +3 -0
  30. data/lib/src/views/layout.slim +10 -0
  31. data/lion.gemspec +22 -0
  32. metadata +89 -0
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in lion.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/lion-new.rb ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ libdir = File.join(File.dirname(File.dirname(__FILE__)), "lib")
4
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
5
+ require 'lion'
6
+
7
+ #Create a new project in the current directory
8
+
9
+ args = ARGV.dup.unshift()
10
+ if args.length > 0
11
+ Lion::Installer.create(args[0], libdir, Dir.pwd)
12
+ else
13
+ $stdout.puts "No project name specified. Try lion-new project_name"
14
+ end
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ libdir = File.join(File.dirname(File.dirname(__FILE__)), "lib")
3
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
4
+ require 'lion'
5
+
6
+ Lion.start_server()
data/lib/lion.rb ADDED
@@ -0,0 +1,23 @@
1
+ require "lion/version"
2
+ libdir = File.dirname(__FILE__)
3
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
4
+
5
+ module Lion
6
+ autoload :Base, "lion/base"
7
+ autoload :Installer, "lion/installer"
8
+
9
+ def self.current_directory?
10
+ Dir.pwd
11
+ end
12
+
13
+ def self.start_server(options={})
14
+ if File.exist?("config.ru")
15
+ $stdout.puts "*** Lion has taken the stage ***"
16
+ system "rackup"
17
+ else
18
+ $stdout.puts "Could not find config.ru. Are you in the right directory?"
19
+ end
20
+ end
21
+
22
+ end
23
+
data/lib/lion/base.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Lion
2
+ module Base
3
+ end
4
+ end
@@ -0,0 +1,18 @@
1
+ require 'Fileutils'
2
+
3
+ module Lion
4
+ module Installer
5
+ def self.create(project_name, libdir, cwd, *args)
6
+ unless File.directory?(project_name)
7
+ #Make a new folder in the current directory
8
+ dir = File.dirname(__FILE__)
9
+ Dir.mkdir(dir + '/' + project_name)
10
+ #Recursively copy the gravity files into our new project directory
11
+ FileUtils.cp_r "#{libdir}/src/.", "#{cwd}/#{project_name}/"
12
+ puts "New project #{project_name} successfully created in #{cwd}"
13
+ else
14
+ $stdout.puts "That project already exists. Please try another name"
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,3 @@
1
+ module Lion
2
+ VERSION = "0.0.1"
3
+ end
data/lib/src/config.ru ADDED
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'slim'
3
+ require './lion'
4
+
5
+ run Lion
data/lib/src/lion.rb ADDED
@@ -0,0 +1,33 @@
1
+ #Lion
2
+ require 'sinatra/base'
3
+
4
+ class Lion < Sinatra::Base
5
+ configure do
6
+ set :views, "./views"
7
+ set :public, "./public"
8
+ set :slim, :pretty => true
9
+ set :port, 4567
10
+ set :run, true
11
+ set :static, true
12
+ set :server, %w[thin mongrel webrick]
13
+ end
14
+
15
+ @pages = []
16
+ @template = slim
17
+
18
+ Dir['./views/*.slim'].each do |template|
19
+ @pages << File.basename(template).chomp(File.extname(template) )
20
+ end
21
+
22
+ get '/' do
23
+ slim :index
24
+ end
25
+
26
+ @pages.each do |page|
27
+ get '/' + page do
28
+ slim page
29
+ end
30
+ end
31
+
32
+ run! if app_file == $0
33
+ end
@@ -0,0 +1,6 @@
1
+ #Adds namespace functionality to CoffeeScript.
2
+ namespace = (target, name, block) ->
3
+ [target, name, block] = [(if typeof exports isnt 'undefined' then exports else window), arguments...] if arguments.length < 3
4
+ top = target
5
+ target = target[item] or= {} for item in name.split '.'
6
+ block target, top
@@ -0,0 +1,5 @@
1
+ /*
2
+
3
+ All your javascript files will get compiled into this file
4
+
5
+ */
@@ -0,0 +1 @@
1
+ html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}textarea{overflow:auto}.ie6 legend,.ie7 legend{margin-left:-7px}input[wtype="radio"]{vertical-align:text-bottom}input[type="checkbox"]{vertical-align:bottom}.ie7 input[type="checkbox"]{vertical-align:baseline}.ie6 input{vertical-align:text-bottom}label,input[type="button"],input[type="submit"],input[type="image"],button{cursor:pointer}button,input,select,textarea{margin:0}table{margin-bottom:10px;width:100%}th{font-weight:bold;text-align:left;background:#ccc}th,td{padding:10px}tr:nth-child(odd){background-color:#f5f5f5}tr:nth-child(even){background-color:#eee}tfoot{font-style:italic}caption{background:#ffc}body,h1,h2,h3,h4,h5,h6,p,ul,ol,dl,input,textarea{line-height:20px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#333;font-size:14px}h1,h2,h3,h4,h5{margin-bottom:20px;color:#333;font-weight:900}h1{font-size:40px;line-height:40px}h2{font-size:20px;line-height:20px}h3{font-size:20px;line-height:20px}h4{font-size:20px;line-height:20px}h5{font-size:20px;line-height:20px}p{margin-bottom:20px}ul,ol{margin-bottom:20px}ul{list-style:none}ol{list-style-type:decimal}li{margin-bottom:10px}ul li ul{margin-left:20px;margin-top:10px;margin-bottom:10px}dl{margin-bottom:20px}dl dt{font-weight:bold;margin-bottom:10px}dl dd{margin-bottom:10px}abbr,acronym{border-bottom:1px dotted #000}address{font-style:italic}del{color:#000}a{color:#1c7fc4;text-decoration:none;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;cursor:pointer}a:hover{text-decoration:none}blockquote{display:block}strong{font-weight:bold}em,dfn{font-style:italic}dfn{font-weight:bold}pre,code{margin:10px 0;white-space:pre}pre,code,tt{font:1em monospace;line-height:1.5}tt{display:block}q{font-style:italic;font-weight:bold;font-family:Georgia,Times,serif}cite{display:block;font-weight:bold}img{margin-bottom:10px}figcaption{display:block;font-weight:bold;font-style:italic}.wrap{width:940px;margin:0 auto}.clear{clear:both}.center{text-align:center}.uppercase{text-transform:uppercase}.titlecase{text-transform:capitalize}.invisible{visibility:hidden}.col-1{float:left;width:60px;margin-right:0;margin-right:20px}.col-1:last-child{margin-right:0}.col-2{float:left;width:140px;margin-right:20px}.col-2:last-child{margin-right:0}.col-3{float:left;width:220px;margin-right:20px}.col-3:last-child{margin-right:0}.col-4{float:left;width:300px;margin-right:20px}.col-4:last-child{margin-right:0}.col-5{float:left;width:380px;margin-right:20px}.col-5:last-child{margin-right:0}.col-6{float:left;width:460px;margin-right:20px}.col-6:last-child{margin-right:0}.col-7{float:left;width:540px;margin-right:20px}.col-7:last-child{margin-right:0}.col-8{float:left;width:620px;margin-right:20px}.col-8:last-child{margin-right:0}.col-9{float:left;width:700px;margin-right:20px}.col-9:last-child{margin-right:0}.col-10{float:left;width:780px;margin-right:20px}.col-10:last-child{margin-right:0}.col-11{float:left;width:860px;margin-right:20px}.col-11:last-child{margin-right:0}.col-12{float:left;width:940px;margin-right:20px}.col-12:last-child{margin-right:0}::-moz-focus-inner{border:0;padding:0}input[type="search"]::-webkit-search-decoration{display:none}form{margin-bottom:20px}fieldset{margin-bottom:20px}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="tel"]:focus,textarea:focus{border:1px solid #aaa;color:#444}textarea{min-height:100px;resize:none;overflow:auto;width:100%}label,legend{display:block;font-weight:bold;font-size:13px}select{width:100%}input[type="checkbox"]{display:inline}label span,legend span{font-weight:normal;font-size:13px;color:#444}input,button,select,textarea{vertical-align:middle}input[type="radio"],input[type="checkbox"]{position:relative;vertical-align:top;top:3px;top:0 \0;*top:-3px;margin-right:5px}@media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 1024px){input[type="radio"],input[type="checkbox"]{vertical-align:baseline;top:2px}}@media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 480px){input[type="radio"],input[type="checkbox"]{vertical-align:baseline;top:0}}@media (-webkit-min-device-pixel-ratio: 2) and (max-device-width: 480px){input[type="radio"],input[type="checkbox"]{vertical-align:baseline;top:0}}textarea,select,input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="email"],input[type="month"],input[type="number"],input[type="password"],input[type="search"],input[type="tel"],input[type="text"],input[type="time"],input[type="url"],input[type="week"]{-webkit-appearance:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-moz-background-clip:padding;-webkit-background-clip:padding;background-clip:padding-box;border:1px solid #ddd;border-color:#ddd #ddd #ddd;color:#000;padding:5px;outline:none;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;font:12px "Helvetica Neue",Helvetica,Arial,sans-serif;margin:0 0 20px 0;width:100%;display:block;background:#fafafa;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='$from', endColorstr='$to');background:-webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#fff));background:-moz-linear-gradient(top, #fafafa, #fff);*padding-top:2px;*padding-bottom:1px;*height:auto}::-webkit-input-placeholder{color:#000}input:-moz-placeholder,textarea:-moz-placeholder{color:#000}:invalid{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}@media (-webkit-min-device-pixel-ratio: 0){select[size],select[multiple]{background-image:none;padding:0}::-webkit-validation-bubble-message{box-shadow:rgba(0,0,0,0.5) 0 0 5px;background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #666), color-stop(1, #000));border:#ddd;color:#fff;font:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:15px 15px 17px;text-shadow:#000 0 0 1px}::-webkit-validation-bubble-top-outer-arrow,::-webkit-validation-bubble-top-inner-arrow{display:none}}optgroup{color:#000;font-style:normal;font-weight:normal}button[type=submit],input[type='submit']{padding:7px 12px;text-align:center;font-weight:bold;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;background:#111111;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='$from', endColorstr='$to');background:-webkit-gradient(linear, left top, left bottom, from(#111111), to(#333333));background:-moz-linear-gradient(top, #111111, #333333);border:0;color:#fff}#container{width:940px;margin:0 auto;padding:20px 0;overflow:hidden}body{background:#eee}section{margin-bottom:20px;overflow:hidden}h1,h2,h3,h4,h5,h6,p,li a{text-shadow:1px 1px 1px #fff}h1,h2,h3,h4,h5,h6{text-transform:uppercase}footer p{text-align:center}@media only screen and (min-width: 768px) and (max-width: 959px){#container{width:748px}.col-1{float:left;width:44px;margin-right:0;margin-right:20px}.col-1:last-child{margin-right:0}.col-2{float:left;width:108px;margin-right:20px}.col-2:last-child{margin-right:0}.col-3{float:left;width:172px;margin-right:20px}.col-3:last-child{margin-right:0}.col-4{float:left;width:236px;margin-right:20px}.col-4:last-child{margin-right:0}.col-5{float:left;width:300px;margin-right:20px}.col-5:last-child{margin-right:0}.col-6{float:left;width:364px;margin-right:20px}.col-6:last-child{margin-right:0}.col-7{float:left;width:428px;margin-right:20px}.col-7:last-child{margin-right:0}.col-8{float:left;width:492px;margin-right:20px}.col-8:last-child{margin-right:0}.col-9{float:left;width:556px;margin-right:20px}.col-9:last-child{margin-right:0}.col-10{float:left;width:620px;margin-right:20px}.col-10:last-child{margin-right:0}.col-11{float:left;width:684px;margin-right:20px}.col-11:last-child{margin-right:0}.col-12{float:left;width:748px;margin-right:20px}.col-12:last-child{margin-right:0}}@media only screen and (max-width: 767px){#container{width:300px}.col-1{width:280px;margin:0 10px}.col-2{width:280px;margin:0 10px}.col-3{width:280px;margin:0 10px}.col-4{width:280px;margin:0 10px}.col-5{width:280px;margin:0 10px}.col-6{width:280px;margin:0 10px}.col-7{width:280px;margin:0 10px}.col-8{width:280px;margin:0 10px}.col-9{width:280px;margin:0 10px}.col-10{width:280px;margin:0 10px}.col-11{width:280px;margin:0 10px}.col-12{width:280px;margin:0 10px}}@media only screen and (min-width: 480px) and (max-width: 767px){#container{width:480px}.col-1{width:460px;margin:0 10px}.col-2{width:460px;margin:0 10px}.col-3{width:460px;margin:0 10px}.col-4{width:460px;margin:0 10px}.col-5{width:460px;margin:0 10px}.col-6{width:460px;margin:0 10px}.col-7{width:460px;margin:0 10px}.col-8{width:460px;margin:0 10px}.col-9{width:460px;margin:0 10px}.col-10{width:460px;margin:0 10px}.col-11{width:460px;margin:0 10px}.col-12{width:460px;margin:0 10px}}
@@ -0,0 +1,7 @@
1
+ @import _reset
2
+ @import helpers/_mixins
3
+ @import helpers/_tables
4
+ @import _typography
5
+ @import helpers/_classes
6
+ @import _grid
7
+ @import helpers/_forms
@@ -0,0 +1,100 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *PAGE ELEMENTS
4
+ *
5
+ *--------------------------------------------------------------
6
+
7
+ p
8
+ margin-bottom: $baseline
9
+
10
+ ul, ol
11
+ margin-bottom: $baseline
12
+
13
+ ul
14
+ list-style: none
15
+
16
+ ol
17
+ list-style-type: decimal
18
+
19
+ li
20
+ margin-bottom: $baseline / 2
21
+
22
+ ul li ul
23
+ margin-left: $baseline
24
+ margin-top: $baseline / 2
25
+ margin-bottom: $baseline / 2
26
+
27
+ dl
28
+ margin-bottom: $baseline
29
+
30
+ dl dt
31
+ font-weight: bold
32
+ margin-bottom: $baseline / 2
33
+
34
+ dl dd
35
+ margin-bottom: $baseline / 2
36
+
37
+ abbr, acronym
38
+ border-bottom: 1px dotted #000
39
+
40
+ address
41
+ font-style: italic
42
+
43
+ del
44
+ color: #000
45
+
46
+ a
47
+ color: $links
48
+ text-decoration: none
49
+ +transition
50
+ /* Force a hand pointer for all links
51
+ cursor: pointer
52
+
53
+ a:hover
54
+ text-decoration: none
55
+
56
+ blockquote
57
+ display: block
58
+
59
+ strong
60
+ font-weight: bold
61
+
62
+ em, dfn
63
+ font-style: italic
64
+
65
+ dfn
66
+ font-weight: bold
67
+
68
+ pre, code
69
+ margin: 10px 0
70
+ white-space: pre
71
+
72
+ pre, code, tt
73
+ font: 1em monospace
74
+ line-height: 1.5
75
+
76
+ tt
77
+ display: block
78
+
79
+ q
80
+ font-style: italic
81
+ font-weight: bold
82
+ font-family: $serif
83
+
84
+ cite
85
+ display: block
86
+ font-weight: bold
87
+
88
+ /* --------------------------------------------------------------
89
+ *
90
+ *IMAGES
91
+ *
92
+ *--------------------------------------------------------------
93
+
94
+ img
95
+ margin-bottom: 10px
96
+
97
+ figcaption
98
+ display: block
99
+ font-weight: bold
100
+ font-style: italic
@@ -0,0 +1,30 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *CSS GRID. www.owainlewis.com
4
+ *
5
+ *--------------------------------------------------------------
6
+
7
+ $col_width: ($width - $gutters * ($columns - 1)) / $columns
8
+ $col_total_width: $col_width + $gutters
9
+
10
+ =col($n: 1)
11
+ float: left
12
+ +buildColumn($n)
13
+
14
+ =last
15
+ margin-right: 0
16
+
17
+ =buildColumn($n: 1)
18
+ width: $n * $col_width + ($n - 1) * $gutters
19
+ @if $n == 1
20
+ +last
21
+ @if $n == columns
22
+ +last
23
+ @else
24
+ margin-right: $gutters
25
+
26
+ @for $i from 1 through $columns
27
+ .col-#{$i}
28
+ +col($i)
29
+ &:last-child
30
+ +last
@@ -0,0 +1,84 @@
1
+ html,body,div,span,object,iframe,
2
+ h1,h2,h3,h4,h5,h6,p,blockquote,pre,
3
+ abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,
4
+ small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,
5
+ fieldset,form,label,legend,
6
+ table,caption,tbody,tfoot,thead,tr,th,td,
7
+ article,aside,canvas,details,figcaption,figure,
8
+ footer,header,hgroup,menu,nav,section,summary,
9
+ time,mark,audio,video
10
+ margin: 0
11
+ padding: 0
12
+ border: 0
13
+ font-size: 100%
14
+ font: inherit
15
+ vertical-align: baseline
16
+
17
+ article,aside,details,figcaption,figure,
18
+ footer,header,hgroup,menu,nav,section
19
+ display: block
20
+
21
+ blockquote,q
22
+ quotes: none
23
+
24
+ blockquote:before,blockquote:after,
25
+ q:before,q:after
26
+ content: ""
27
+ content: none
28
+
29
+ ins
30
+ background-color: #ff9
31
+ color: #000
32
+ text-decoration: none
33
+
34
+ mark
35
+ background-color: #ff9
36
+ color: #000
37
+ font-style: italic
38
+ font-weight: bold
39
+
40
+ del
41
+ text-decoration: line-through
42
+
43
+ abbr[title],dfn[title]
44
+ border-bottom: 1px dotted
45
+ cursor: help
46
+
47
+ table
48
+ border-collapse: collapse
49
+ border-spacing: 0
50
+
51
+ hr
52
+ display: block
53
+ height: 1px
54
+ border: 0
55
+ border-top: 1px solid #ccc
56
+ margin: 1em 0
57
+ padding: 0
58
+
59
+ input,select
60
+ vertical-align: middle
61
+
62
+ textarea
63
+ overflow: auto
64
+
65
+ .ie6 legend,.ie7 legend
66
+ margin-left: -7px
67
+
68
+ input[wtype="radio"]
69
+ vertical-align: text-bottom
70
+
71
+ input[type="checkbox"]
72
+ vertical-align: bottom
73
+
74
+ .ie7 input[type="checkbox"]
75
+ vertical-align: baseline
76
+
77
+ .ie6 input
78
+ vertical-align: text-bottom
79
+
80
+ label,input[type="button"],input[type="submit"],input[type="image"],button
81
+ cursor: pointer
82
+
83
+ button,input,select,textarea
84
+ margin: 0
@@ -0,0 +1,42 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *Running on Lion
4
+ *Version 0.1
5
+ *Developed by: Owain Lewis
6
+ *www.owainlewis.com
7
+ *License: MIT
8
+ *http://www.opensource.org/licenses/mit-license.php
9
+ *
10
+ *--------------------------------------------------------------
11
+
12
+ /*
13
+ *
14
+ *Grid Layout
15
+
16
+ $width: 940px
17
+ $gutters: 20px
18
+ $columns: 12
19
+ $baseline: 20px
20
+
21
+ /*
22
+ *
23
+ *Fonts
24
+
25
+ $sans: "Helvetica Neue", Helvetica, Arial, sans-serif
26
+ $serif: Georgia, Times, serif
27
+ $mono: "Lucida Console", "Andale Mono", monospace
28
+ $font-size: 14px
29
+
30
+ /*
31
+ *
32
+ *Colors
33
+
34
+ $background: white
35
+ $text: #333333
36
+ $links: #1c7fc4
37
+ $borders: #dddddd
38
+ $headings: #333333
39
+
40
+ $white: white
41
+ $grey: #666666
42
+ $black: black
@@ -0,0 +1,45 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *TYPOGRAPHY
4
+ *
5
+ *--------------------------------------------------------------
6
+
7
+ /* Default fonts and colors.
8
+ body,h1,h2,h3,h4,h5,h6,p,ul,ol,dl,input,textarea
9
+ line-height: $baseline
10
+ font-family: $sans
11
+ color: $text
12
+ font-size: $font-size
13
+
14
+ /* --------------------------------------------------------------
15
+ *
16
+ *HEADINGS
17
+ *
18
+ *--------------------------------------------------------------
19
+
20
+ h1,h2,h3,h4,h5
21
+ margin-bottom: $baseline
22
+ color: $headings
23
+ font-weight: 900
24
+
25
+ h1
26
+ font-size: $baseline * 2
27
+ line-height: $baseline * 2
28
+
29
+ h2
30
+ font-size: $baseline
31
+ line-height: $baseline
32
+
33
+ h3
34
+ font-size: $baseline
35
+ line-height: $baseline
36
+
37
+ h4
38
+ font-size: $baseline
39
+ line-height: $baseline
40
+
41
+ h5
42
+ font-size: $baseline
43
+ line-height: $baseline
44
+
45
+ @import _elements
@@ -0,0 +1,15 @@
1
+ =button($color, $text_color, $width)
2
+ +rounded(10px)
3
+ +gradient(lighten($color, 30%), $color)
4
+ cursor: pointer
5
+ font-weight: bold
6
+ color: $text_color
7
+ display: block
8
+ border: 1px solid darken($color, 10%)
9
+ text-align: center
10
+ padding: 10px 20px
11
+ margin: 0 0 20px 0
12
+ @if $width
13
+ width: $width
14
+ &:hover
15
+ +gradient(lighten($color, 40%), lighten($color, 10%))
@@ -0,0 +1,24 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *GENERAL CLASSES
4
+ *
5
+ *--------------------------------------------------------------
6
+
7
+ .wrap
8
+ width: $width
9
+ margin: 0 auto
10
+
11
+ .clear
12
+ clear: both
13
+
14
+ .center
15
+ text-align: center
16
+
17
+ .uppercase
18
+ text-transform: uppercase
19
+
20
+ .titlecase
21
+ text-transform: capitalize
22
+
23
+ .invisible
24
+ visibility: hidden
@@ -0,0 +1,184 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *Form Settings.
4
+ *Most of this is inspired by the awesome work of Nathan Smith and formalize css!
5
+ *
6
+ *--------------------------------------------------------------
7
+
8
+ $formPadding: 5px
9
+
10
+ \::-moz-focus-inner
11
+ border: 0
12
+ padding: 0
13
+
14
+ input[type="search"]::-webkit-search-decoration
15
+ display: none
16
+
17
+ form
18
+ margin-bottom: $baseline
19
+
20
+ fieldset
21
+ margin-bottom: $baseline
22
+
23
+ input[type="text"]:focus,
24
+ input[type="password"]:focus,
25
+ input[type="email"]:focus,
26
+ input[type="tel"]:focus,
27
+ textarea:focus
28
+ border: 1px solid #aaa
29
+ color: #444
30
+
31
+ textarea
32
+ min-height: 100px
33
+ resize: none
34
+ overflow: auto
35
+ width: 100%
36
+
37
+ label,
38
+ legend
39
+ display: block
40
+ font-weight: bold
41
+ font-size: 13px
42
+
43
+ select
44
+ width: 100%
45
+
46
+ input[type="checkbox"]
47
+ display: inline
48
+
49
+ label span,
50
+ legend span
51
+ font-weight: normal
52
+ font-size: 13px
53
+ color: #444
54
+
55
+ input,
56
+ button,
57
+ select,
58
+ textarea
59
+ vertical-align: middle
60
+
61
+ input[type="radio"],
62
+ input[type="checkbox"]
63
+ position: relative
64
+ vertical-align: top
65
+ top: 3px
66
+ /* IE8, IE9, IE10
67
+ top: 0\0
68
+ /* IE7
69
+ *top: -3px
70
+ margin-right: 5px
71
+
72
+ /* iPad
73
+ @media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 1024px)
74
+ input[type="radio"],
75
+ input[type="checkbox"]
76
+ vertical-align: baseline
77
+ top: 2px
78
+
79
+ /* iPhone 3
80
+ @media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 480px)
81
+ input[type="radio"],
82
+ input[type="checkbox"]
83
+ vertical-align: baseline
84
+ top: 0
85
+
86
+ /* iPhone 4
87
+ @media (-webkit-min-device-pixel-ratio: 2) and (max-device-width: 480px)
88
+ input[type="radio"],
89
+ input[type="checkbox"]
90
+ vertical-align: baseline
91
+ top: 0
92
+
93
+ textarea,
94
+ select,
95
+ input[type="date"],
96
+ input[type="datetime"],
97
+ input[type="datetime-local"],
98
+ input[type="email"],
99
+ input[type="month"],
100
+ input[type="number"],
101
+ input[type="password"],
102
+ input[type="search"],
103
+ input[type="tel"],
104
+ input[type="text"],
105
+ input[type="time"],
106
+ input[type="url"],
107
+ input[type="week"]
108
+ -webkit-appearance: none
109
+ -moz-border-radius: 0
110
+ -webkit-border-radius: 0
111
+ border-radius: 0
112
+ -webkit-box-sizing: border-box
113
+ -moz-box-sizing: border-box
114
+ box-sizing: border-box
115
+ -moz-background-clip: padding
116
+ -webkit-background-clip: padding
117
+ background-clip: padding-box
118
+ border: 1px solid $borders
119
+ border-color: $borders $borders $borders
120
+ color: $black
121
+ padding: $formPadding
122
+ outline: none
123
+ +rounded(2px)
124
+ font: 12px $sans
125
+ margin: 0 0 20px 0
126
+ width: 100%
127
+ display: block
128
+ +gradient(#fafafa, white)
129
+ /* IE7
130
+ *padding-top: 2px
131
+ *padding-bottom: 1px
132
+ *height: auto
133
+
134
+ /*
135
+ *Separate rule for Firefox.
136
+ *Separate rule for IE, too.
137
+ *Cannot stack with WebKit's.
138
+ \::-webkit-input-placeholder
139
+ color: $black
140
+
141
+ input:-moz-placeholder,
142
+ textarea:-moz-placeholder
143
+ color: $black
144
+
145
+ \:invalid
146
+ /*
147
+ *Suppress red glow that Firefox
148
+ *adds to form fields by default,
149
+ *even when user is still typing.
150
+ -moz-box-shadow: none
151
+ -webkit-box-shadow: none
152
+ box-shadow: none
153
+
154
+ /* Tweaks for Safari + Chrome.
155
+ @media (-webkit-min-device-pixel-ratio: 0)
156
+ select[size],
157
+ select[multiple]
158
+ background-image: none
159
+ padding: 0
160
+ \::-webkit-validation-bubble-message
161
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 5px
162
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #666666), color-stop(1, black))
163
+ border: $borders
164
+ color: #fff
165
+ font: $sans
166
+ padding: 15px 15px 17px
167
+ text-shadow: #000 0 0 1px
168
+ \::-webkit-validation-bubble-top-outer-arrow,
169
+ ::-webkit-validation-bubble-top-inner-arrow
170
+ display: none
171
+
172
+ optgroup
173
+ color: #000
174
+ font-style: normal
175
+ font-weight: normal
176
+
177
+ button[type=submit], input[type='submit']
178
+ padding: 7px 12px
179
+ text-align: center
180
+ font-weight: bold
181
+ +rounded(5px)
182
+ +gradient
183
+ border: 0
184
+ color: #FFF
@@ -0,0 +1,113 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *MEDIA QUERIES
4
+ *
5
+ *--------------------------------------------------------------
6
+
7
+ /* #Tablet (Portrait)
8
+ *==================================================
9
+
10
+ /* 768px
11
+
12
+ @media only screen and (min-width: 768px) and (max-width: 959px)
13
+ #container
14
+ width: 748px
15
+ .col-1
16
+ float: left
17
+ width: 44px
18
+ margin-right: 0
19
+ margin-right: 20px
20
+ .col-1:last-child
21
+ margin-right: 0
22
+ .col-2
23
+ float: left
24
+ width: 108px
25
+ margin-right: 20px
26
+ .col-2:last-child
27
+ margin-right: 0
28
+ .col-3
29
+ float: left
30
+ width: 172px
31
+ margin-right: 20px
32
+ .col-3:last-child
33
+ margin-right: 0
34
+ .col-4
35
+ float: left
36
+ width: 236px
37
+ margin-right: 20px
38
+ .col-4:last-child
39
+ margin-right: 0
40
+ .col-5
41
+ float: left
42
+ width: 300px
43
+ margin-right: 20px
44
+ .col-5:last-child
45
+ margin-right: 0
46
+ .col-6
47
+ float: left
48
+ width: 364px
49
+ margin-right: 20px
50
+ .col-6:last-child
51
+ margin-right: 0
52
+ .col-7
53
+ float: left
54
+ width: 428px
55
+ margin-right: 20px
56
+ .col-7:last-child
57
+ margin-right: 0
58
+ .col-8
59
+ float: left
60
+ width: 492px
61
+ margin-right: 20px
62
+ .col-8:last-child
63
+ margin-right: 0
64
+ .col-9
65
+ float: left
66
+ width: 556px
67
+ margin-right: 20px
68
+ .col-9:last-child
69
+ margin-right: 0
70
+ .col-10
71
+ float: left
72
+ width: 620px
73
+ margin-right: 20px
74
+ .col-10:last-child
75
+ margin-right: 0
76
+ .col-11
77
+ float: left
78
+ width: 684px
79
+ margin-right: 20px
80
+ .col-11:last-child
81
+ margin-right: 0
82
+ .col-12
83
+ float: left
84
+ width: 748px
85
+ margin-right: 20px
86
+ .col-12:last-child
87
+ margin-right: 0
88
+
89
+ /* #Mobile (Portrait)
90
+ *==================================================
91
+
92
+ /* 320px. iPhone
93
+
94
+ @media only screen and (max-width: 767px)
95
+ #container
96
+ width: 300px
97
+ @for $i from 1 through $columns
98
+ .col-#{$i}
99
+ width: 280px
100
+ margin: 0 10px
101
+
102
+ /* #Mobile (Landscape)
103
+ *==================================================
104
+
105
+ /* 480px
106
+
107
+ @media only screen and (min-width: 480px) and (max-width: 767px)
108
+ #container
109
+ width: 480px
110
+ @for $i from 1 through $columns
111
+ .col-#{$i}
112
+ width: 460px
113
+ margin: 0 10px
@@ -0,0 +1,76 @@
1
+ /* Custom Mixins. You can delare your own mixins here.
2
+
3
+ /* Add rounded corners to all sides
4
+ =rounded($radius: 10px)
5
+ border-radius: $radius
6
+ -moz-border-radius: $radius
7
+ -webkit-border-radius: $radius
8
+
9
+ /* Add rounded corners to certain sides
10
+ =roundedSides($topLeft, $topRight, $bottomRight, $bottomLeft)
11
+ -moz-border-radius-topleft: $topLeft
12
+ -moz-border-radius-topright: $topRight
13
+ -moz-border-radius-bottomright: $bottomRight
14
+ -moz-border-radius-bottomleft: $bottomLeft
15
+ border-top-left-radius: $topLeft
16
+ border-top-right-radius: $topRight
17
+ border-bottom-right-radius: $bottomRight
18
+ border-bottom-left-radius: $bottomLeft
19
+
20
+ =textShadow($x-axis: 1px, $y-axis: 1px, $casting: 1px, $color: white)
21
+ text-shadow: $x-axis $y-axis $casting $color
22
+
23
+ =shadow($off-y: 1px, $off-x: 1px, $blur: 2px, $color: #444444)
24
+ -moz-box-shadow: $off-y $off-x $blur $color
25
+ -webkit-box-shadow: $off-y $off-x $blur $color
26
+ box-shadow: $off-y $off-x $blur $color
27
+
28
+ =gradient($from: #111111, $to: #333333)
29
+ background: $from
30
+ /* for non-css3 browsers
31
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='$from', endColorstr='$to')
32
+ /* for IE
33
+ background: -webkit-gradient(linear, left top, left bottom, from($from), to($to))
34
+ /* for webkit browsers
35
+ background: -moz-linear-gradient(top, $from, $to)
36
+ /* for firefox 3.6+
37
+
38
+ /* This is a particularly useful mixin if you want to add slick CSS3 animations to elements
39
+ =transition($property: all, $duration: 0.5s, $function: ease-in-out)
40
+ -moz-transition: $property $duration $function
41
+ /* FF3.7+
42
+ -o-transition: $property $duration $function
43
+ /* Opera 10.5
44
+ -webkit-transition: $property $duration $function
45
+ /* Saf3.2+, Chrome
46
+ transition: $property $duration $function
47
+
48
+ =scale($scale: 1)
49
+ -moz-transform: scale($scale)
50
+ -webkit-transform: scale($scale)
51
+ -o-transform: scale($scale)
52
+ -ms-transform: scale($scale)
53
+ transform: scale($scale)
54
+
55
+ =rotate($angle)
56
+ -moz-transform: rotate($angle)
57
+ -webkit-transform: rotate($angle)
58
+ -o-transform: rotate($angle)
59
+ -ms-transform: rotate($angle)
60
+ transform: rotate($angle)
61
+ filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=#{cos($angle)}, M12=-#{sin($angle)}, M21=#{sin($angle)}, M22=#{cos($angle)})
62
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=#{cos($angle)}, M12=-#{sin($angle)}, M21=#{sin($angle)}, M22=#{cos($angle)})"
63
+ zoom: 1
64
+
65
+ /* Cross browser opacity mixin
66
+ =opacity($value: 0.8)
67
+ opacity: $value
68
+ filter: alpha(opacity = $value * 100)
69
+
70
+ =fontFace($name, $src: fonts)
71
+ @font-face
72
+ font-family: 'FontName'
73
+ src: url("$src/$name.eot")
74
+ src: url("$src/$name.eot?iefix") format("eot"), url("$src/$name.woff") format("woff"), url("$src/$name.ttf") format("truetype"), url("$src/$name.svg#webfontZam02nTh") format("svg")
75
+ font-weight: normal
76
+ font-style: normal
@@ -0,0 +1,29 @@
1
+ /* --------------------------------------------------------------
2
+ *
3
+ *TABLES
4
+ *
5
+ *--------------------------------------------------------------
6
+
7
+ table
8
+ margin-bottom: 10px
9
+ width: 100%
10
+
11
+ th
12
+ font-weight: bold
13
+ text-align: left
14
+ background: #ccc
15
+
16
+ th,td
17
+ padding: 10px
18
+
19
+ tr:nth-child(odd)
20
+ background-color: #f5f5f5
21
+
22
+ tr:nth-child(even)
23
+ background-color: #eee
24
+
25
+ tfoot
26
+ font-style: italic
27
+
28
+ caption
29
+ background: #ffc
@@ -0,0 +1,40 @@
1
+ @import lib/_settings
2
+ @import lib/_core
3
+
4
+ #container
5
+ width: $width
6
+ margin: 0 auto
7
+ padding: 20px 0
8
+ overflow: hidden
9
+
10
+ /* --------------------------------------------------------------
11
+ *
12
+ *Main CSS. For demo purposes only. You can delete this.
13
+ *
14
+ *--------------------------------------------------------------
15
+
16
+ body
17
+ background: #eee
18
+ /* Uncomment to view baseline
19
+ *background: url(../images/12_col.gif) repeat-y center -1px;
20
+
21
+ section
22
+ margin-bottom: $baseline
23
+ overflow: hidden
24
+
25
+ h1, h2, h3, h4, h5, h6, p, li a
26
+ +textShadow
27
+
28
+ h1, h2, h3, h4, h5, h6
29
+ text-transform: uppercase
30
+
31
+ footer p
32
+ text-align: center
33
+
34
+ /* --------------------------------------------------------------
35
+ *
36
+ *Media Queries for a responsive grid. Delete if not required.
37
+ *
38
+ *--------------------------------------------------------------
39
+
40
+ @import lib/helpers/_media_queries
@@ -0,0 +1,3 @@
1
+ h1 Lion
2
+ p Welcome to Lion, a framework for building better websites.
3
+ p You can render partial templates with slim :mypartial
@@ -0,0 +1,10 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title Lion Framework
5
+ meta name="keywords" content="template language"
6
+ link href="/stylesheets/css/style.css" rel="stylesheet" type="text/css"
7
+
8
+ body
9
+ div id="container" style="text-align:center"
10
+ == yield
data/lion.gemspec ADDED
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "lion/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "lion"
7
+ s.version = Lion::VERSION
8
+ s.authors = ["Owain Lewis"]
9
+ s.email = ["owain@owainlewis.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Lion is a sinatra based front end framework}
12
+ s.description = %q{A sinatra based front end framework}
13
+
14
+ s.rubyforge_project = "lion"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_runtime_dependency "sinatra"
22
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lion
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Owain Lewis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-08-22 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra
16
+ requirement: &24359076 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *24359076
25
+ description: A sinatra based front end framework
26
+ email:
27
+ - owain@owainlewis.com
28
+ executables:
29
+ - lion-new.rb
30
+ - lion-server.rb
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - .gitignore
35
+ - Gemfile
36
+ - Rakefile
37
+ - bin/lion-new.rb
38
+ - bin/lion-server.rb
39
+ - lib/lion.rb
40
+ - lib/lion/base.rb
41
+ - lib/lion/installer.rb
42
+ - lib/lion/version.rb
43
+ - lib/src/config.ru
44
+ - lib/src/lion.rb
45
+ - lib/src/public/coffeescripts/application.js.coffee
46
+ - lib/src/public/coffeescripts/spec/application.spec.js.coffee
47
+ - lib/src/public/javascripts/main.js
48
+ - lib/src/public/stylesheets/css/style.css
49
+ - lib/src/public/stylesheets/sass/lib/_core.sass
50
+ - lib/src/public/stylesheets/sass/lib/_elements.sass
51
+ - lib/src/public/stylesheets/sass/lib/_grid.sass
52
+ - lib/src/public/stylesheets/sass/lib/_reset.sass
53
+ - lib/src/public/stylesheets/sass/lib/_settings.sass
54
+ - lib/src/public/stylesheets/sass/lib/_typography.sass
55
+ - lib/src/public/stylesheets/sass/lib/helpers/_buttons.sass
56
+ - lib/src/public/stylesheets/sass/lib/helpers/_classes.sass
57
+ - lib/src/public/stylesheets/sass/lib/helpers/_forms.sass
58
+ - lib/src/public/stylesheets/sass/lib/helpers/_media_queries.sass
59
+ - lib/src/public/stylesheets/sass/lib/helpers/_mixins.sass
60
+ - lib/src/public/stylesheets/sass/lib/helpers/_tables.sass
61
+ - lib/src/public/stylesheets/sass/style.sass
62
+ - lib/src/views/index.slim
63
+ - lib/src/views/layout.slim
64
+ - lion.gemspec
65
+ homepage: ''
66
+ licenses: []
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project: lion
85
+ rubygems_version: 1.8.8
86
+ signing_key:
87
+ specification_version: 3
88
+ summary: Lion is a sinatra based front end framework
89
+ test_files: []