lion 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []