Browse Source

Initial todolist exercise

master
commit
50dd1e834c
  1. 4
      .gitignore
  2. 22
      config.ru
  3. 25
      rack/trystatic.rb
  4. 32
      site/404.html
  5. BIN
      site/apple-touch-icon-114x114-precomposed.png
  6. BIN
      site/apple-touch-icon-57x57-precomposed.png
  7. BIN
      site/apple-touch-icon-72x72-precomposed.png
  8. BIN
      site/apple-touch-icon-precomposed.png
  9. BIN
      site/apple-touch-icon.png
  10. 816
      site/build/build.xml
  11. 80
      site/build/config/default.properties
  12. 56
      site/build/config/project.properties
  13. 42
      site/build/createproject.sh
  14. 5
      site/build/runbuildscript.bat
  15. BIN
      site/build/tools/ant-contrib-1.0b3.jar
  16. BIN
      site/build/tools/htmlcompressor-0.9.9.jar
  17. BIN
      site/build/tools/jpegtran.exe
  18. 21
      site/build/tools/optipng-0.6.4-exe/LICENSE.txt
  19. BIN
      site/build/tools/optipng-0.6.4-exe/optipng.exe
  20. BIN
      site/build/tools/yuicompressor-2.4.2.jar
  21. 11
      site/config.rb
  22. 25
      site/crossdomain.xml
  23. 8
      site/css/handheld.css
  24. 153
      site/css/less.css
  25. 110
      site/css/main.css
  26. 261
      site/css/style.css
  27. 21
      site/example.html
  28. BIN
      site/favicon.ico
  29. 36
      site/html5boilerplate/paulirish-html5-boilerplate-06dbc3e/.gitignore
  30. 475
      site/html5boilerplate/paulirish-html5-boilerplate-06dbc3e/.htaccess
  31. BIN
      site/html5boilerplate/paulirish-html5-boilerplate-v1.0-0-gec08a22.zip
  32. 43
      site/humans.txt
  33. 2
      site/img/.gitignore
  34. BIN
      site/img/addtaskbackground.jpg
  35. BIN
      site/img/addtaskbuttonbackground.jpg
  36. BIN
      site/img/addtaskbuttonhoverbackground.jpg
  37. BIN
      site/img/addtaskbuttonpushedbackground.jpg
  38. BIN
      site/img/addtasktextfieldbackground.jpg
  39. BIN
      site/img/logo.jpg
  40. BIN
      site/img/mainbackground.jpg
  41. BIN
      site/img/topbar.jpg
  42. BIN
      site/img/topbar.xcf
  43. 97
      site/index.html
  44. 13
      site/js/libs/dd_belatedpng.js
  45. 8316
      site/js/libs/jquery-1.5.1.js
  46. 16
      site/js/libs/jquery-1.5.1.min.js
  47. 2
      site/js/libs/modernizr-1.7.min.js
  48. 2
      site/js/mylibs/.gitignore
  49. 15
      site/js/plugins.js
  50. 26
      site/js/script.js
  51. 5
      site/robots.txt
  52. 21
      site/src/less.scss
  53. 87
      site/src/main.scss
  54. 7
      site/src/partials/_default.scss
  55. 25
      site/src/partials/_global.scss
  56. 8
      site/src/partials/_high-px-ratio.scss
  57. 8
      site/src/partials/_mobile.scss
  58. 8
      site/src/partials/_tablet.scss
  59. 8
      site/src/partials/_wide-mobile.scss
  60. 153
      site/stylesheets/less.css
  61. 4
      site/stylesheets/main.css
  62. 31
      site/test/index.html
  63. 148
      site/test/qunit/qunit.css
  64. 1265
      site/test/qunit/qunit.js
  65. 27
      site/test/tests.js

4
.gitignore

@ -0,0 +1,4 @@
*.swp
.DS_Store
tmp/
.sass-cache

22
config.ru

@ -0,0 +1,22 @@
require 'rubygems'
require 'rack'
require 'rack/contrib'
require 'rack/trystatic'
require 'mime/types'
use Rack::Deflater
use Rack::ETag
$rootdir="site"
use Rack::TryStatic,
:root => $rootdir, # static files root dir
:urls => %w[/], # match all requests
:try => ['.html', 'index.html', '/index.html'] # try these postfixes sequentially
errorFile='site/404.html'
run lambda { [404, {
"Last-Modified" => File.mtime(errorFile).httpdate,
"Content-Type" => "text/html",
"Content-Length" => File.size(errorFile).to_s
}, File.read(errorFile)] }

25
rack/trystatic.rb

@ -0,0 +1,25 @@
require 'rubygems'
require 'rack'
module ::Rack
class TryStatic < Static
def initialize(app, options)
super
@try = ([''] + Array(options.delete(:try)) + [''])
end
def call(env)
@next = 0
while @next < @try.size && 404 == (resp = super(try_next(env)))[0]
@next += 1
end
404 == resp[0] ? @app.call : resp
end
private
def try_next(env)
env.merge('PATH_INFO' => env['PATH_INFO'] + @try[@next])
end
end
end

32
site/404.html

@ -0,0 +1,32 @@
<!doctype html>
<title>Page Not Found</title>
<style>
body { text-align: center;}
h1 { font-size: 50px; text-align: center }
span[frown] { transform: rotate(90deg); display:inline-block; color: #bbb; }
body { font: 20px Constantia, "Hoefler Text", "Adobe Caslon Pro", Baskerville, Georgia, Times, serif; color: #999; text-shadow: 2px 2px 2px rgba(200, 200, 200, 0.5); }
::-moz-selection{ background:#FF5E99; color:#fff; }
::selection { background:#FF5E99; color:#fff; }
article {display:block; text-align: left; width: 500px; margin: 0 auto; }
a { color: rgb(36, 109, 56); text-decoration:none; }
a:hover { color: rgb(96, 73, 141) ; text-shadow: 2px 2px 2px rgba(36, 109, 56, 0.5); }
</style>
<article>
<h1>Not found <span frown>:(</span></h1>
<div>
<p>Sorry, but the page you were trying to view does not exist.</p>
<p>It looks like this was the result of either:</p>
<ul>
<li>a mistyped address</li>
<li>an out-of-date link</li>
</ul>
</div>
<script>
var GOOG_FIXURL_LANG = (navigator.language || "").slice(0,2),
GOOG_FIXURL_SITE = location.host;
</script>
<script src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
</article>

BIN
site/apple-touch-icon-114x114-precomposed.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
site/apple-touch-icon-57x57-precomposed.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

BIN
site/apple-touch-icon-72x72-precomposed.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

BIN
site/apple-touch-icon-precomposed.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

BIN
site/apple-touch-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

816
site/build/build.xml

@ -0,0 +1,816 @@
<?xml version="1.0"?>
<project name="Boilerplate Build" default="build" basedir="../"> <!-- one back since we're in build/ -->
<!-- Load in Ant-Contrib to give us access to some very useful tasks! -->
<!-- the .jar file is located in the tools directory -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${basedir}/build/tools/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<!-- load shell environment -->
<property environment="ENV" />
<!-- load property files -->
<property file="build/config/project.properties"/>
<property file="build/config/default.properties"/>
<!-- merge the stylesheet properties -->
<var name="stylesheet-files" value="${file.stylesheets}, ${file.default.stylesheets}"/>
<!-- merge the pages properties -->
<var name="page-files" value="${file.pages}, ${file.pages.default.include}"/>
<!--
*************************************************
* BASE TARGETS *
*************************************************
-->
<target name="basics">
<if>
<equals arg1="${env}" arg2="dev"/>
<then>
<!-- Build a dev environment -->
<echo message="Building a Development Environment..."/>
<antcall target="-basics.dev"/>
</then>
<elseif>
<equals arg1="${env}" arg2="test"/>
<then>
<!-- Build a test environment -->
<echo message="Building a Test Environment..."/>
<antcall target="-basics.test"/>
</then>
</elseif>
<else>
<!-- Build a production environment -->
<echo message="Building a Production Environment..."/>
<antcall target="-basics.production"/>
</else>
</if>
</target>
<target name="text">
<if>
<equals arg1="${env}" arg2="dev"/>
<then>
<!-- Build a dev environment -->
<echo message="Building a Development Environment..."/>
<antcall target="-text.dev"/>
</then>
<elseif>
<equals arg1="${env}" arg2="test"/>
<then>
<!-- Build a test environment -->
<echo message="Building a Test Environment..."/>
<antcall target="-text.test"/>
</then>
</elseif>
<else>
<!-- Build a production environment -->
<echo message="Building a Production Environment..."/>
<antcall target="-text.production"/>
</else>
</if>
<!-- funky order due to jpegtran being a jerk. See comment at top of imagesjpg task -->
<antcall target="-jpgcopy"/>
</target>
<target name="buildkit">
<if>
<equals arg1="${env}" arg2="dev"/>
<then>
<!-- Build a dev environment -->
<echo message="Building a Development Environment..."/>
<antcall target="-buildkit.dev"/>
</then>
<elseif>
<equals arg1="${env}" arg2="test"/>
<then>
<!-- Build a test environment -->
<echo message="Building a Test Environment..."/>
<antcall target="-buildkit.test"/>
</then>
</elseif>
<else>
<!-- Build a production environment -->
<echo message="Building a Production Environment..."/>
<antcall target="-buildkit.production"/>
</else>
</if>
</target>
<target name="build">
<if>
<equals arg1="${env}" arg2="dev"/>
<then>
<!-- Build a dev environment -->
<echo message="Building a Development Environment..."/>
<antcall target="-build.dev" />
</then>
<elseif>
<equals arg1="${env}" arg2="test"/>
<then>
<!-- Build a test environment -->
<echo message="Building a Test Environment..."/>
<antcall target="-build.test" />
</then>
</elseif>
<else>
<!-- Build a production environment -->
<echo message="Building a Production Environment..."/>
<antcall target="-build.production" />
</else>
</if>
</target>
<target name="minify">
<if>
<equals arg1="${env}" arg2="dev"/>
<then>
<!-- Build a dev environment -->
<echo message="Building a Development Environment..."/>
<antcall target="-minify.dev"/>
</then>
<elseif>
<equals arg1="${env}" arg2="test"/>
<then>
<!-- Build a test environment -->
<echo message="Building a Test Environment..."/>
<antcall target="-minify.test"/>
</then>
</elseif>
<else>
<!-- Build a production environment -->
<echo message="Building a Production Environment..."/>
<antcall target="-minify.production"/>
</else>
</if>
</target>
<!--
*************************************************
* BUILD TARGETS *
*************************************************
-->
<!-- Target: basics -->
<target name="-basics.dev"
depends="-rev,
-clean,
-copy"/>
<target name="-basics.test"
depends="-rev,
-clean,
-copy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-css,
-html"/>
<target name="-basics.production"
depends="-rev,
-clean,
-copy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-strip-console.log,
-css,
-html"/>
<!-- Target: text -->
<target name="-text.dev"
depends="-rev,
-clean,
-copy"/>
<target name="-text.test"
depends="-rev,
-clean,
-copy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-css,
-html,
-htmlclean"/>
<target name="-text.production"
depends="-rev,
-clean,
-copy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-strip-console.log,
-css,
-html,
-htmlclean"/>
<!-- Target: buildkit -->
<target name="-buildkit.dev"
depends="-rev,
-clean,
-prodcopy,
-imagespng,
-imagesjpg"/>
<target name="-buildkit.test"
depends="-rev,
-clean,
-prodcopy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-css,
-html,
-htmlbuildkit,
-imagespng,
-imagesjpg"/>
<target name="-buildkit.production"
depends="-rev,
-clean,
-prodcopy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-strip-console.log,
-css,
-html,
-htmlbuildkit,
-imagespng,
-imagesjpg"/>
<!-- Target: build -->
<target name="-build.dev"
depends="-rev,
-clean,
-prodcopy,
-imagespng,
-imagesjpg"/>
<target name="-build.test"
depends="-rev,
-clean,
-prodcopy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-css,
-html,
-htmlclean,
-imagespng,
-imagesjpg"/>
<target name="-build.production"
depends="-rev,
-clean,
-prodcopy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-strip-console.log,
-css,
-html,
-htmlclean,
-imagespng,
-imagesjpg"/>
<!-- Target: minify -->
<target name="-minify.dev"
depends="-rev,
-clean,
-prodcopy,
-imagespng,
-imagesjpg"/>
<target name="-minify.test"
depends="-rev,
-clean,
-prodcopy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-css,
-html,
-htmlcompress,
-imagespng,
-imagesjpg"/>
<target name="-minify.production"
depends="-rev,
-clean,
-prodcopy,
-usemin,
-js.all.minify,
-js.main.concat,
-js.mylibs.concat,
-js.scripts.concat,
-js.delete,
-strip-console.log,
-css,
-html,
-htmlcompress,
-imagespng,
-imagesjpg"/>
<!--
*************************************************
* FUNCTION TARGETS *
*************************************************
-->
<target name="-load-build-info" description="(PRIVATE) Loads the build versioning information">
<property file="./${dir.build}/config/${build.version.info}"/>
</target>
<target name="-clean" description="(PRIVATE) Wipe the previous build (Deletes the dir.publish directory">
<!-- This is a private target -->
<echo message="Cleaning up previous build directory..."/>
<delete dir="./${dir.publish}/"/>
</target>
<target name="-rev" description="(PRIVATE) Increase the current build number by one and set build date">
<!-- This is a private target -->
<echo message="====================================================================="/>
<echo message="Welcome to the HTML5 Boilerplate Build Script!"/>
<echo message=" "/>
<echo message="We're going to get your site all ship-shape and ready for prime time."/>
<echo message=" "/>
<echo message="This should take somewhere between 15 seconds and a few minutes,"/>
<echo message="mostly depending on how many images we're going to compress."/>
<echo message=" "/>
<echo message="Feel free to come back or stay here and follow along."/>
<echo message="====================================================================="/>
<echo message=" "/>
<echo message=" "/>
<echo message="Increasing the build number..."/>
<propertyfile file="./${dir.build}/config/${build.version.info}" comment="Build Information File - DO NOT CHANGE">
<entry key="build.number" type="int" default="0000" operation="+" pattern="0000"/>
<entry key="build.date" type="date" value="now" pattern="dd.MM.yyyy HH:mm"/>
</propertyfile>
<property file="./${dir.build}/config/${build.version.info}"/>
<echo>Creating build ${build.number}</echo>
</target>
<target name="current-number" depends="-load-build-info" description="(PUBLIC) Returns the current build number">
<echo>Current build number: ${build.number}</echo>
</target>
<target name="-copy" depends="-load-build-info">
<!-- This is a private target -->
<echo message="Copying over new files..."/>
<!-- combine the 2 exclude properties -->
<var name="excluded-files" value="${file.default.exclude}, ${file.exclude}"/>
<copy todir="./${dir.publish}">
<fileset dir="${dir.source}/" excludes="${excluded-files}"/>
</copy>
<echo message="A copy of all non-dev files are now in: ./${dir.publish}."/>
</target>
<target name="-prodcopy" depends="-load-build-info">
<!-- This is a private target -->
<echo message="Copying over new files..."/>
<!-- combine the 2 exclude properties -->
<var name="prod-excluded-files" value="${file.default.exclude}, ${file.jpg.exclude}, ${file.exclude}"/>
<copy todir="./${dir.publish}">
<fileset dir="${dir.source}/" excludes="${prod-excluded-files}"/>
</copy>
<echo message="A copy of all non-dev files are now in: ./${dir.publish}."/>
</target>
<!-- JAVASCRIPT -->
<target name="-js.main.concat" depends="-load-build-info" description="(PRIVATE) Concatenates the JS files in dir.js">
<echo message="Concatenating Main JS scripts..."/>
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.js">
<fileset dir="./${dir.publish}/">
<include name="**/${dir.js.main}/*.min.js"/>
<exclude name="**/${dir.js.mylibs}/*.js"/>
<exclude name="**/${dir.js.libs}/*.js"/>
</fileset>
</concat>
</target>
<target name="-js.mylibs.concat" depends="-load-build-info" description="(PRIVATE) Concatenates the JS files in dir.js.mylibs">
<echo message="Concatenating JS libraries"/>
<concat destfile="./${dir.publish}/${dir.js}/libs-${build.number}.js">
<fileset dir="./${dir.publish}/${dir.js.mylibs}/">
<include name="**/*.min.js"/>
</fileset>
</concat>
</target>
<target name="-js.scripts.concat" depends="-load-build-info" if="build.concat.scripts">
<echo message="Concatenating library file with main script file"/>
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js">
<fileset dir="./${dir.publish}/${dir.js}/">
<include name="libs-${build.number}.js"/>
<include name="scripts-${build.number}.js"/>
</fileset>
</concat>
<echo message="Concatenating library file with main debug script file"/>
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.min.js">
<fileset dir="./${dir.publish}/${dir.js}/">
<include name="libs-${build.number}.js"/>
<include name="scripts-${build.number}-debug.js"/>
</fileset>
</concat>
</target>
<target name="-js.all.minify" depends="-js.libs.minify" description="(PRIVATE) Minifies the scripts.js files created by js.scripts.concat">
<echo message="Minifying concatenated script- and library-file"/>
<apply executable="java" parallel="false">
<fileset dir="./${dir.publish}/${dir.js}">
<include name="**/*.js"/>
<exclude name="**/*.min.js"/>
<exclude name="**/${dir.js.libs}/*.js"/>
</fileset>
<arg line="-jar"/>
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
<srcfile/>
<arg line="--line-break"/>
<arg line="4000"/>
<arg line="-o"/>
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js}/*.min.js"/>
<targetfile/>
</apply>
</target>
<target name="-js.libs.minify" depends="-load-build-info" description="(PRIVATE) Minifies the helper files in dir.js.libs">
<echo message="Minifying helper JS files..."/>
<apply executable="java" parallel="false">
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
<arg line="-jar"/>
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
<srcfile/>
<arg line="-o"/>
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js.libs}/*-${build.number}.min.js"/>
<targetfile/>
</apply>
</target>
<target name="-js.delete" depends="-load-build-info" description="(PRIVATE) Deletes the unoptimized js files from build if set">
<if>
<equals arg1="${build.delete.unoptimized}" arg2="true"/>
<then>
<echo message="Deleting unoptimized files..."/>
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.js"/>
<!--
<delete dir="./${dir.publish}/${dir.js.lib}/"/>
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
this guy probably COULD be on but I think it's better if we keep him off for now. ^pi
<delete includeemptydirs="true">
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
</delete>
-->
</then>
</if>
<if>
<and>
<equals arg1="${build.delete.unoptimized}" arg2="true"/>
<equals arg1="${build.concat.scripts}" arg2="true"/>
</and>
<then>
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
</then>
</if>
</target>
<target name="-strip-console.log" description="(PRIVATE)Comments out any console.log statements">
<echo message="Commenting out console.log lines"/>
<replaceregexp match="(console.log\(.*\))" replace="/\*\1\*/" flags="g" >
<fileset dir="./${dir.publish}/${dir.js}/">
<include name="**/*.js"/>
<exclude name="**/*.min.js"/>
</fileset>
</replaceregexp>
</target>
<!-- HTML -->
<target name="-usemin" depends="-serverconfig" description="(PRIVATE) Replaces references to non-minified scripts">
<echo message="Switching to minified js files..."/>
<!-- switch from a regular jquery to minified -->
<replaceregexp match="jquery-(\d|\d(\.\d)+)\.js" replace="jquery-\1.min.js" flags="g">
<fileset dir="./${dir.publish}" includes="${page-files}"/>
</replaceregexp>
<!-- switch any google CDN reference to minified -->
<replaceregexp match="(\d|\d(\.\d)+)\/jquery\.js" replace="\1/jquery.min.js" flags="g">
<fileset dir="./${dir.publish}" includes="${page-files}"/>
</replaceregexp>
<echo>Kill off those versioning flags: ?v=2</echo>
<replaceregexp match='\?v=\d+">' replace='">' flags="g">
<fileset dir="./${dir.publish}" includes="${page-files}"/>
</replaceregexp>
<echo>Remove favicon.ico reference if it is pointing to the root</echo>
<replaceregexp match="&lt;link rel=&quot;shortcut icon&quot; href=&quot;/favicon\.ico&quot;&gt;" replace="">
<fileset dir="./${dir.publish}" includes="${page-files}"/>
</replaceregexp>
<!-- we maintain the apple-touch-icon reference for Android 2.2 www.ravelrumba.com/blog/android-apple-touch-icon
<replace token="&lt;link rel=&quot;apple-touch-icon&quot; href=&quot;/apple-touch-icon.png&quot;>" value="">
<fileset dir="./${dir.publish}" includes="${page-files}"/>
</replace>
-->
</target>
<target name="-html" depends="-load-build-info" description="(PRIVATE) Very basic clean up of the HTML">
<echo message="Update the HTML to reference our concatenated script file: scripts-${build.number}.min.js"/>
<!-- style.css replacement handled as a replacetoken above -->
<replaceregexp match="&lt;!-- scripts concatenated [\d\w\s\W]*?!-- end ((scripts)|(concatenated and minified scripts))--&gt;" replace="&lt;script src='${dir.js}/scripts-${build.number}.min.js\'&gt;&lt;/script&gt;" flags="m">
<fileset dir="./${dir.publish}" includes="${page-files}"/>
</replaceregexp>
<!--[! use comments like this one to avoid having them get minified -->
</target>
<target name="-htmlclean">
<echo message="Run htmlcompressor on the HTML"/>
<echo message=" - maintaining whitespace"/>
<echo message=" - removing html comments"/>
<echo message=" - compressing inline style/script tag contents"/>
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
<arg value="-jar"/>
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
<arg line="--type html"/>
<arg line="--preserve-multi-spaces"/>
<arg line="--remove-quotes"/>
<arg line="--compress-js"/>
<arg line="--compress-css"/>
<srcfile/>
<arg value="-o"/>
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
<targetfile/>
</apply>
</target>
<target name="-htmlbuildkit">
<echo message="Run htmlcompressor on the HTML"/>
<echo message=" - maintaining whitespace"/>
<echo message=" - retain html comments"/>
<echo message=" - compressing inline style/script tag contents"/>
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
<arg value="-jar"/>
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
<arg value="--preserve-comments"/>
<arg line="--preserve-multi-spaces"/>
<arg line="--type html"/>
<arg line="--compress-js"/>
<arg line="--compress-css"/>
<srcfile/>
<arg value="-o"/>
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
<targetfile/>
</apply>
</target>
<target name="-htmlcompress">
<echo message="Run htmlcompressor on the HTML"/>
<echo message=" - removing unnecessary whitespace"/>
<echo message=" - removing html comments"/>
<echo message=" - compressing inline style/script tag contents"/>
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
<arg value="-jar"/>
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
<arg line="--type html"/>
<arg line="--remove-quotes"/>
<arg line="--compress-js"/>
<arg line="--compress-css"/>
<srcfile/>
<arg value="-o"/>
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
<targetfile/>
</apply>
</target>
<target name="-serverconfig" description="(PRIVATE) Upgrades expires headers">
<echo message="Upgrading expires header timeouts for js/css to 1yr..."/>
<replace file="./${dir.publish}/${file.serverconfig}" token="access plus 2 months" value="access plus 1 year"/>
</target>
<!-- CSS -->
<target name="-css" depends="-load-build-info" description="Concatenates and Minifies any stylesheets listed in the file.stylesheets property">
<echo message="Concatenating css..."/>
<concat destfile="./${dir.publish}/${dir.css}/style-${build.number}.css">
<filelist dir="./${dir.publish}/${dir.css}" files="${stylesheet-files}"/>
</concat>
<echo message="Minifying css..."/>
<apply executable="java" parallel="false">
<fileset dir="./${dir.publish}/${dir.css}/" includes="style-${build.number}.css"/>
<arg line="-jar"/>
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
<srcfile/>
<arg line="-o"/>
<mapper type="glob" from="style-${build.number}.css" to="../${dir.publish}/${dir.css}/style-${build.number}.min.css"/>
<targetfile/>
</apply>
<echo message="Updating the HTML with the new css filename"/>
<replace token="style.css" value="style-${build.number}.min.css" dir="${dir.publish}" includes="${page-files}"/>
</target>
<!-- IMAGES -->
<target name="-imagespng" description="(PRIVATE) Optimizes .png images using optipng">
<echo message="Optimizing images..."/>
<echo message="This part might take a while. But everything else is already done."/>
<echo message=" "/>
<echo message="First, we run optipng on the .png files..."/>
<!-- osfamily=unix is actually true on OS X as well -->
<!-- On *nix's and OS X, check for optipng and give a helpful message if it's not installed -->
<if>
<and>
<os family="unix" />
<available file="optipng" filepath="${ENV.PATH}" />
</and>
<then>
<apply executable="optipng" osfamily="unix">
<arg value="-quiet"/>
<arg value="-o7"/>
<fileset dir="./${dir.publish}/">
<include name="**/*.png"/>
</fileset>
</apply>
</then>
<elseif>
<os family="unix" />
<then>
<echo message="*** optipng NOT INSTALLED. SKIPPING OPTIMIZATION OF PNGs." />
<echo message="*** Install optipng to enable png optimization." />
<echo message="*** For instructions see 'Dependencies' at: http://html5boilerplate.com/docs/#Build-script#dependencies" />
</then>
</elseif>
</if>
<apply executable="tools/optipng-0.6.4-exe/optipng.exe" osfamily="windows">
<arg value="-o7"/>
<arg value="-quiet"/>
<fileset dir="./${dir.publish}/">
<include name="**/*.png"/>
</fileset>
</apply>
</target>
<target name="-imagesjpg" description="(PRIVATE) Optimizes .jpg images using jpegtan">
<echo message="Now, we clean up those jpgs..."/>
<!-- jpegtran is a little weird in that it assumes a pre-existing file means it's already optimized. -->
<!-- why? good question. To combat this, we skipped copying over the ${dir.images}/*.jpg earlier in the -->
<!-- copy task. Now, we're using jpegtran to copy the files over while we crunch 'em. -->
<if>
<equals arg1="${images.strip.metadata}" arg2="true"/>
<then>
<var name="strip-meta-tags" value="none"/>
</then>
<else>
<var name="strip-meta-tags" value="all"/>
</else>
</if>
<!-- On *nix's and OS X, check for jpegtran and give a helpful message if it's not installed -->
<if>
<and>
<os family="unix" />
<available file="jpegtran" filepath="${ENV.PATH}" />
</and>
<then>
<apply executable="jpegtran" osfamily="unix">
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
<arg value="-copy"/>
<arg value="${strip-meta-tags}"/>
<arg value="-optimize"/>
<srcfile/>
<redirector>
<outputmapper type="glob" from="*.jpg" to="./${dir.publish}/${dir.images}/*.jpg"/>
</redirector>
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
</apply>
</then>
<elseif>
<os family="unix" />
<then>
<echo message="*** jpegtran NOT INSTALLED. SKIPPING OPTIMIZATION OF JPEGs." />
<echo message="*** Install jpegtran to enable jpeg optimization." />
<echo message="*** For instructions see 'Dependencies' at: http://html5boilerplate.com/docs/#Build-script#dependencies" />
</then>
</elseif>
</if>
<apply executable="tools/jpegtran.exe" osfamily="windows">
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
<arg value="-copy"/>
<arg value="${strip-meta-tags}"/>
<arg value="-optimize"/>
<srcfile/>
<targetfile/>
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
<mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
</apply>
</target>
<target name="-jpgcopy">
<echo message="Copying over the unmodified jpegs."/>
<copy todir="./${dir.publish}/${dir.images}">
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
</copy>
</target>
</project>

80
site/build/config/default.properties

@ -0,0 +1,80 @@
#
# Default Build Settings
# you can override these settings on a project basis in a project.properties file
# so probably best not to touch these as they could be overwritten in later versions!
#
#
# Directory Paths
#
dir.source = .
dir.publish = publish
dir.build = build
dir.build.tools = ${dir.build}/tools
dir.test = test
dir.demo = demo
dir.js = js
dir.js.main = ${dir.js}
# scripts in the lib direcotry will only be minified, not concatenated together
dir.js.libs = ${dir.js}/libs
dir.js.mylibs = ${dir.js}/mylibs
dir.css = css
dir.images = img
#
# HTML, PHP, etc files to clean and update script/css references
#
file.pages.default.include = index.html, 404.html
# You will need to include the property file.pages.include in your project.properties file
# and add any extra pages you want to be updated by the scripts in a comma separated lis
# the server configuration you're going with. If you don't use apache,
# get a different one here: github.com/paulirish/html5-boilerplate-server-configs
file.serverconfig = .htaccess
#
# Files not to be copied over by the script to the publish directory
#
file.default.exclude = .gitignore, .project, .settings, README.markdown, README.md, **/.git/**, **/.svn/**, **/${dir.build}/**, **/${dir.test}/**, **/${dir.demo}/**
file.jpg.exclude = ${dir.images}/*.jpg
# Declare the file.exclude property in your project.properties file if you want to exclude files / folders you have added
# Note: you cannot decalre an empty file.exclude property
#
# Default Styleshee
#
file.default.stylesheets = style.css
#
# Script Optimisation
#
# If set, concat libraries with main scripts file, producing single script file
build.concat.scripts = true
# If set, delete minified but unconcatted files.
build.delete.unoptimized = true
#
# Image Optimisation
#
images.strip.metadata = true
# Seting this to true will strip the metadata from all jpeg files.
# YOU SHOULD ONLY DO THIS IF YOU OWN THE COPYRIGHT TO ALL THE IMAGES IN THE BUILD
# Build Info
build.version.info = buildinfo.properties
build.scripts.dir = ${dir.build}/build-scripts
# Tools
tool.yuicompressor = yuicompressor-2.4.2.jar
tool.htmlcompressor = htmlcompressor-0.9.9.jar
tool.csscompressor = css-compressor/cli.php

56
site/build/config/project.properties

@ -0,0 +1,56 @@
# project.properties file defines overrides for default.properties
# Explanation: This file should be created by each user as and when he or she needs to override particular values.
# Consequently, it should not be placed under version control.
# Stylesheets
#
# Note: Stylesheets will be concatenated in the order they are listed in the file.stylesheets property (i.e. the las
# file listed will be at the end of the concatenated file), so it probably makes sense to have the main style.css file
# as the first entry
# Example:
# file.stylesheets = style.css, lightbox.css, plugin.css
#
file.stylesheets =
# Web Pages
#
# These are the pages (files) that will be served to users (.html, .php, .asp, etc). Files in this property will
# be minified / optimised and have any stylesheet or javascript references updated to the minified examples
#
# The paths need to be relative
#
# Files can be added in a comma separated form
file.pages =
# Excluded files and dirs
#
# Add any files or directories you add to the project and do not want to be copied to the publish directory as a
# comma separated lis
# These files are ignored in addition to the default ones specified in default.properties.
file.exclude =
# Specify an environment to build
#
# By Default, it builds a production environmen
# Set to dev if buidling a development environmen
# Set to test if building a test environmen
env =
# Directory Structure
#
# Override any directory paths specific to this projec
#
# dir.publish
# dir.js
# dir.js.libs
# dir.js.mylibs
# dir.css
# dir.images

42
site/build/createproject.sh

@ -0,0 +1,42 @@
#!/usr/bin/env bash
#Generate a new project from your HTML5 Boilerplate repo clone
#Created 2010-10-13, Rick Waldron
##first run
# $ cd html5-boilerplate/build
# $ chmod +x createproject.sh && ./createproject.sh
##usage
# $ cd html5-boilerplate/build
# $ ./createproject.sh
# find project root (also ensure script is ran from within repo)
src=$(git rev-parse --show-toplevel) || exit 1
# get a name for new project
while [[ -z $name ]]
do
echo "To create a new html5-boilerplate project, enter a new directory name:"
read name || exit
done
dst=$src/../$name
if [[ -d $dst ]]
then
echo "$dst exists"
else
#create new project
mkdir "$dst" || exit 1
#sucess message
echo "Created Directory: $dst"
cd "$src"
cp -vr css js img build test *.html *.xml *.txt *.png *.ico .htaccess "$dst"
#sucess message
echo "Created Project: $dst"
fi

5
site/build/runbuildscript.bat

@ -0,0 +1,5 @@
# This is for windows users only.
# If you're on a mac or linux, just run `ant build` from this folder in Terminal
set MYDIR=%~dp0
ant build

BIN
site/build/tools/ant-contrib-1.0b3.jar

Binary file not shown.

BIN
site/build/tools/htmlcompressor-0.9.9.jar

Binary file not shown.

BIN
site/build/tools/jpegtran.exe

Binary file not shown.

21
site/build/tools/optipng-0.6.4-exe/LICENSE.txt

@ -0,0 +1,21 @@
Copyright (C) 2001-2010 Cosmin Truta.
This software is provided 'as-is', without any express or implied
warranty. In no event will the author(s) be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

BIN
site/build/tools/optipng-0.6.4-exe/optipng.exe

Binary file not shown.

BIN
site/build/tools/yuicompressor-2.4.2.jar

Binary file not shown.

11
site/config.rb

@ -0,0 +1,11 @@
require 'less'
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "css"
sass_dir = "src"
images_dir = "img"
javascripts_dir = "js"
# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true

25
site/crossdomain.xml

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
<!-- Most restrictive policy: -->
<site-control permitted-cross-domain-policies="none"/>
<!-- Least restrictive policy: -->
<!--
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
-->
<!--
If you host a crossdomain.xml file with allow-access-from domain=“*”
and don’t understand all of the points described here, you probably
have a nasty security vulnerability. ~ simon willison
-->
</cross-domain-policy>

8
site/css/handheld.css

@ -0,0 +1,8 @@
* {
float: none; /* Screens are not big enough to account for floats */
background: #fff; /* As much contrast as possible */
color: #000;
}
/* Slightly reducing font size to reduce need to scroll */
body { font-size: 80%; }

153
site/css/less.css

@ -0,0 +1,153 @@
/* Less Framework 4
* http://lessframework.com
* by Joni Korpi
* License: http://creativecommons.org/licenses/MIT/ */
/* line 7, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_reset.scss */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, a, abbr, address, cite, code, del, dfn, em,
img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, hr,
dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figure, figcaption, hgroup,
menu, footer, header, nav, section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
}
/* line 14, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_reset.scss */
article, aside, canvas, figure, figure img, figcaption, hgroup,
footer, header, nav, section, audio, video {
display: block;
}
/* line 18, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_reset.scss */
a img {
border: 0;
}
/* line 1, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
.gigantic {
font-size: 110px;
line-height: 120px;
letter-spacing: -2px;
}
/* line 7, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
.huge, h1 {
font-size: 68px;
line-height: 72px;
letter-spacing: -1px;
}
/* line 13, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
.large, h2 {
font-size: 42px;
line-height: 48px;
}
/* line 18, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
.bigger, h3 {
font-size: 26px;
line-height: 36px;
}
/* line 23, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
.big, h4 {
font-size: 22px;
line-height: 30px;
}
/* line 28, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
body {
font: 16px/24px Georgia, serif;
}
/* line 32, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/typography/_16px.scss */
.small, small {
font-size: 13px;
line-height: 18px;
}
/* line 18, ../src/partials/_global.scss */
body {
background: #e8e8e8;
color: #3c3c3c;
-webkit-text-size-adjust: 100%;
}
/* line 34, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
::selection {
background: rgb(255,255,158);
}
/* line 35, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
::-moz-selection {
background: rgb(255,255,158);
}
/* line 36, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
img::selection {
background: transparent;
}
/* line 37, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
img::-moz-selection {
background: transparent;
}
/* line 38, ../../../../../../var/lib/gems/1.8/gems/compass-less-plugin-1.0/stylesheets/less/_framework.scss */
body {
-webkit-tap-highlight-color: rgb(255,255,158);
}
/* Default Layout: 992px.
* Gutters: 24px.
* Outer margins: 48px.
* Leftover space for scrollbars @1024px: 32px. */
/* line 6, ../src/partials/_default.scss */
#toto {
width: 896px;
padding: 72px 48px 84px;
}
/* Tablet Layout: 768px.
* Gutters: 24px.
* Outer margins: 28px.
* Inherits styles from: Default Layout. */
@media only screen and (min-width: 768px) and (max-width: 991px) {
/* line 7, ../src/partials/_tablet.scss */
#toto {
width: 712px;
padding: 48px 28px 60px;
}
}
/* Mobile Layout: 320px.
* Gutters: 24px.
* Outer margins: 34px.
* Inherits styles from: Default Layout. */
@media only screen and (max-width: 767px) {
/* line 7, ../src/partials/_mobile.scss */
#toto {
width: 252px;
padding: 48px 34px 60px;
}
}
/* Wide Mobile Layout: 480px.
* Gutters: 24px.
* Outer margins: 22px.
* Inherits styles from: Default Layout, Mobile Layout. */
@media only screen and (min-width: 480px) and (max-width: 767px) {
/* line 7, ../src/partials/_wide-mobile.scss */
#toto {
width: 436px;
padding: 36px 22px 48px;
}
}
/* Retina media query.
Overrides styles for devices with a
device-pixel-ratio of 2+, such as iPhone 4. */
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {}

110
site/css/main.css

@ -0,0 +1,110 @@
/* line 3, ../src/main.scss */
body {
background: #f6f6f6;
background-image: url("/img/mainbackground.jpg");
font-family: Helvetica;
}
/* line 9, ../src/main.scss */
header {
background-image: url("/img/topbar.jpg");
position: absolute;
top: 0;
left: 0;
right: 0;
width: 100%;
margin: 0;
color: #f00;
line-height: 42px;
font-weight: bold;
height: 50px;
}
/* line 23, ../src/main.scss */
header #title {
width: 640px;
margin: 0 auto;
background-image: url("/img/logo.jpg");
background-repeat: no-repeat;
padding-left: 25px;
color: #333;
text-shadow: 1px 1px #666;
line-height: 42px;
font-weight: bold;
height: 50px;
}
/* line 35, ../src/main.scss */
#main {
width: 640px;
margin: 80px auto;
}
/* line 39, ../src/main.scss */
#main h1 {
text-align: center;
font-size: 32px;
color: #696969;
text-shadow: -1px -1px #525252;
letter-spacing: -0.2px;
margin-bottom: 30px;
}
/* line 48, ../src/main.scss */
#mainblock {
border: solid 5px #CCC;
-webkit-border-radius: 8px 8px;
-moz-border-radius: 8px / 8px;
-o-border-radius: 8px / 8px;
-ms-border-radius: 8px / 8px;
-khtml-border-radius: 8px / 8px;
border-radius: 8px / 8px;
}
/* line 53, ../src/main.scss */
#task {
padding: 20px;
background: #ededed;
background-image: url("/img/addtaskbackground.jpg");
}
/* line 59, ../src/main.scss */
input#addtasktextfield {
border: 1px solid #C4C4C4;
height: 38px;
background: url("/img/addtasktextfieldbackground.jpg");
font-size: 16px;
font-weight: bold;
padding-left: 10px;
color: #CCC;
width: 420px;
}
/* line 70, ../src/main.scss */
#addtaskbutton {
background: url("/img/addtaskbuttonbackground.jpg");
border: 1px solid #2f53cd;
-webkit-border-radius: 5px 5px;
-moz-border-radius: 5px / 5px;
-o-border-radius: 5px / 5px;
-ms-border-radius: 5px / 5px;
-khtml-border-radius: 5px / 5px;
border-radius: 5px / 5px;
color: #FFF;
text-shadow: -1px -1px #2f53cd, 1px 1px #73aaff;
height: 40px;
margin-left: 20px;
width: 120px;
text-align: center;
font-weight: bold;
}
/* line 82, ../src/main.scss */
#addtaskbutton:hover {
background: url("/img/addtaskbuttonhoverbackground.jpg");
}
/* line 85, ../src/main.scss */
#addtaskbutton:active {
background: url("/img/addtaskbuttonpushedbackground.jpg");
}

261
site/css/style.css

@ -0,0 +1,261 @@
/**
* HTML5 Boilerplate
*
* style.css contains a reset, font normalization and some base styles.
*
* Credit is left where credit is due.
* Much inspiration was taken from these projects:
* - yui.yahooapis.com/2.8.1/build/base/base.css
* - camendesign.com/design/
* - praegnanz.de/weblog/htmlcssjs-kickstart
*/
/**
* html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
* v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
* html5doctor.com/html-5-reset-stylesheet/
*/
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; }
/**
* Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/
*/
body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */
select, input, textarea, button { font:99% sans-serif; }
/* Normalize monospace sizing:
en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome */
pre, code, kbd, samp { font-family: monospace, sans-serif; }
/**
* Minimal base styles.
*/
/* Always force a scrollbar in non-IE */
html { overflow-y: scroll; }
/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */
a:hover, a:active { outline: none; }
ul, ol { margin-left: 2em; }
ol { list-style-type: decimal; }
/* Remove margins for navigation lists */
nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
small { font-size: 85%; }
strong, th { font-weight: bold; }
td { vertical-align: top; }
/* Set sub, sup without affecting line-height: gist.github.com/413930 */
sub, sup { font-size: 75%; line-height: 0; position: relative; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
pre {
/* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */
white-space: pre; white-space: pre-wrap; word-wrap: break-word;
padding: 15px;
}
textarea { overflow: auto; } /* www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ */
.ie6 legend, .ie7 legend { margin-left: -7px; }
/* Align checkboxes, radios, text inputs with their label by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css */
input[type="radio"] { vertical-align: text-bottom; }
input[type="checkbox"] { vertical-align: bottom; }
.ie7 input[type="checkbox"] { vertical-align: baseline; }
.ie6 input { vertical-align: text-bottom; }
/* Hand cursor on clickable input elements */
label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea { margin: 0; }
/* Colors for form validity */
input:valid, textarea:valid { }
input:invalid, textarea:invalid {
border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red;
}
.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
/* These selection declarations have to be separate
No text-shadow: twitter.com/miketaylr/status/12228805301
Also: hot pink! */
::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; }
::selection { background:#FF5E99; color:#fff; text-shadow: none; }
/* j.mp/webkit-tap-highlight-color */
a:link { -webkit-tap-highlight-color: #FF5E99; }
/* Make buttons play nice in IE:
www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */
button { width: auto; overflow: visible; }
/* Bicubic resizing for non-native sized IMG:
code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
.ie7 img { -ms-interpolation-mode: bicubic; }
/**
* You might tweak these..
*/
body, select, input, textarea {
/* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */
color: #444;
/* Set your base font here, to apply evenly */
/* font-family: Georgia, serif; */
}
/* Headers (h1, h2, etc) have no default font-size or margin; define those yourself */
h1, h2, h3, h4, h5, h6 { font-weight: bold; }
a, a:active, a:visited { color: #607890; }
a:hover { color: #036; }
/**
* Primary styles
*
* Author:
*/
/**
* Non-semantic helper classes: please define your styles before this section.
*/
/* For image replacement */
.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
/* Hide for both screenreaders and browsers:
css-discuss.incutio.com/wiki/Screenreader_Visibility */
.hidden { display: none; visibility: hidden; }
/* Hide only visually, but