Commit ecb23778 authored by addyosmani's avatar addyosmani

Updating with layout/design changes.

parent b7c9f381
...@@ -8,129 +8,310 @@ ...@@ -8,129 +8,310 @@
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> <![endif]-->
<!--<link href='http://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css'>--> <link href='http://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css'>
<link href="http://fonts.googleapis.com/css?family=Merriweather:400,300,700,900" rel="stylesheet">
<link href="site/css/bootstrap.min.css" rel="stylesheet"> <link href="site/css/bootstrap.min.css" rel="stylesheet">
<link href="site/css/bootstrap-responsive.min.css" rel="stylesheet"> <link href="site/css/bootstrap-responsive.css" rel="stylesheet">
<link href="assets/base.css" rel="stylesheet"> <link href="assets/base.css" rel="stylesheet">
<link href="site/css/main.css" rel="stylesheet"> <link href="site/css/main.css" rel="stylesheet">
<link href="site/css/buttons.css" rel="stylesheet">
</head> </head>
<body> <body>
<div class="navbar navbar-fixed-top aquarius-base">
<div class="navbar-inner">
<div>
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="brand" href="./index.html">TodoMVC</a>
<div class="nav-collapse collapse">
<ul class="nav">
<li class="active">
<a href="./index.html">Home</a>
</li>
<li class="">
<a href="./scaffolding.html">Contribute</a>
</li>
<li class="">
<a href="./base-css.html">About</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container"> <div class="container">
<header class="row"> <header class="row">
<div class="span8"> <div class="span8">
<h1>TodoMVC</h1> <h1>TodoMVC</h1>
<p> <p>
Helping you <strong>select</strong> a framework Helping you <strong>select</strong> an MV* framework
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://addyosmani.github.com/todomvc" data-via="addyosmani">Tweet</a>
</p> </p>
<nav> <nav>
<a class="button" href="https://github.com/addyosmani/todomvc/zipball/v0.3"><span>Download <small>(1.0)</small></span></a>
<a class="button" href="http://github.com/addyosmani/todomvc"><span>Project on GitHub</span></a> <a class="button black-button" href="https://github.com/addyosmani/todomvc/zipball/v0.3">Download (1.0)</a>
<a class="button red-button" href="http://github.com/addyosmani/todomvc">Watch On Github</a>
</nav> </nav>
</div> </div>
<div class="span4"> <div class="span4">
<img id="icon" src="site/css/Todo MVC.png" width="400"> <img id="icon" src="site/css/Todo MVC.png" width="400">
</div> </div>
</header> </header>
<div class="row"> <div class="row">
<div class="span4">
<h2>Introduction</h2>
<p>Developers these days are spoiled with choice when it comes to selecting an <strong>MV* framework</strong> for structuring and organizing JavaScript web apps. Backbone, Spine, Ember (SproutCore 2.0), JavaScriptMVC... the list of new and stable solutions goes on and on, but just how do you <strong>decide</strong> on which to use in a sea of so many options?</p>
<p>To help solve this problem, we created <a href="http://github.com/addyosmani/todomvc">TodoMVC</a> - a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today.</p>
</div>
<div class="span8">
<h2>1.0 Apps</h2>
<p>* <span class="label label-inverse">R</span> = App also demonstrates routing</p>
<div class="row">
<div class="span2">
<a href="architecture-examples/angularjs/index.html" data-source="http://angularjs.org/" data-content="What HTML would have been
had it been designed for web apps">AngularJS <span class="label label-inverse">R</span></a>
</div>
<div class="span2">
<a href="architecture-examples/backbone/index.html" data-source="http://documentcloud.github.com/backbone/" data-content="Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.">Backbone.js <span class="label label-inverse">R</span></a>
</div>
<div class="span2">
<a href="architecture-examples/emberjs/index.html" data-source="http://emberjs.com/" data-content="Ember is a JavaScript framework for creating ambitious web applications that eliminates boilerplate and provides a standard application architecture.">Ember.js <span class="label label-inverse">R</span></a>
</div>
<div class="span2">
<a href="architecture-examples/spine/index.html" data-source="http://spinejs.com/" data-content="Spine is a lightweight framework for building JavaScript web applications. Spine gives you an MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.">Spine.js <span class="label label-inverse">R</span></a>
</div>
</div>
<div class="row">
<div class="span2">
<a href="architecture-examples/knockoutjs/index.html" data-source="http://knockoutjs.com/" data-content="Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM) pattern">KnockoutJS</a>
</div>
<div class="span2">
<a href="architecture-examples/dojo/index.html" data-source="http://dojotoolkit.org/" data-content="Dojo saves you time and scales with your development process, using web standards as its platform. It’s the toolkit experienced developers turn to for building high quality desktop and mobile web applications.">Dojo <span class="label label-inverse">R</span></a>
</div>
<div class="span2">
<a href="architecture-examples/yuilibrary/index.html" data-source="http://yuilibrary.com/" data-content="YUI's lightweight core and modular architecture make it scalable, fast, and robust. Built by frontend engineers at Yahoo!, YUI powers the most popular websites in the world.">YUILibrary</a>
</div>
<div class="span2">
<a href="architecture-examples/gwt/index.html" data-source="https://developers.google.com/web-toolkit/" data-content="Google Web Toolkit (GWT) is an MVP development toolkit for building and optimizing complex browser-based applications. GWT is used by many products at Google, including Google AdWords.">GWT</a>
</div>
</div>
<div class="row">
<div class="span2">
<a href="architecture-examples/closure/index.html" data-source="http://code.google.com/closure/library/" data-content="The Closure Library is a broad, well-tested, modular, and cross-browser JavaScript library. You can pull just what you need from a large set of reusable UI widgets and controls, and from lower-level utilities for DOM manipulation, server communication, animation, data structures, unit testing, rich-text editing, and more.">Closure <span class="label label-inverse">R</span></a>
</div>
<div class="span2">
<a href="architecture-examples/extjs/index.html" data-source="http://www.sencha.com/products/extjs" data-content="Ext JS 4 is the next major advancement in our JavaScript framework. Featuring expanded functionality, plugin-free charting, and a new MVC architecture it's the best Ext JS yet. Create incredible web apps for every browser.">Ext.js</a>
</div>
<div class="span2">
<a href="architecture-examples/agilityjs/index.html" data-source="http://agilityjs.com" data-content="Agility.js is an MVC library for Javascript that lets you write maintainable and reusable browser code without the infrastructural overhead found in other MVC libraries. The goal is to enable developers to write web apps at least as quickly as with jQuery, while simplifying long-term maintainability through MVC objects.">Agility.js <span class="label label-inverse">R</span></a>
</div>
<div class="span2">
<a href="architecture-examples/knockback/index.html" data-source="http://kmalakoff.github.com/knockback/" data-content="Knockback.js provides Knockout.js magic for Backbone.js Models and Collections.">Knockback.js <span class="label label-inverse">R</span></a>
</div>
</div>
<hr>
<h2>Apps using RequireJS/AMD</h2>
<div class="row">
<div class="span3">
<a href="dependency-examples/backbone_require/index.html" data-source="http://requirejs.org/" data-content="RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.">Backbone.js + RequireJS</a>
</div>
<div class="span3">
<a href="dependency-examples/emberjs_require/index.html" data-source="http://emberjs.com" data-content="Ember is a JavaScript framework for creating ambitious web applications that eliminates boilerplate and provides a standard application architecture. This is an example of using it with AMD modules">Ember.js + RequireJS <span class="label label-inverse">R</span></a>
</div>
</div>
<h2>Compare these to a non-framework implementation</h2>
<div class="row">
<div class="span3">
<a href="vanilla-examples/vanillajs/index.html" data-source="https://developer.mozilla.org/en/JavaScript" data-content="You know JavaScript right? :P">Vanilla JS</a>
</div>
<div class="span3">
<a href="architecture-examples/jquery/index.html" data-source="http://jquery.com/" data-content="jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.">jQuery</a>
</div>
</div>
</div>
</div>
<hr>
<h2>Scroll down for 20 more framework apps in Labs</h2>
<div class="row">
<div class="span6">
<img id="screenshot" src="site/screenshot.png">
<p style="font-size:25px;font-weight:400;margin-top:40px;font-style:italic">TodoMVC is a common learning application for popular JavaScript MV* frameworks</p>
</div>
<div class="span6">
<h2>Introduction</h2>
<p>Developers these days are spoiled with choice when it comes to selecting an <strong>MV* framework</strong> for structuring and organizing JavaScript web apps. Backbone, Spine, Ember (SproutCore 2.0), JavaScriptMVC... the list of new and stable solutions goes on and on, but just how do you <strong>decide</strong> on which to use in a sea of so many options?</p>
<p>To help solve this problem, we created <a href="http://github.com/addyosmani/todomvc">TodoMVC</a> - a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today.</p>
<p>Solutions look and feel the same, have a common simple feature-set and make it <strong>easy</strong> for you to compare the syntax and structure of different frameworks so you can select the one you feel the most comfortable with.</p>
</div>
</div>
<hr>
<div class="row">
<div class="span4">
<h2>Labs</h2>
<p>Once you've downloaded the latest release and played around with the apps, you'll want to decide on a specific framework to try out.</p>
<p>Study the syntax required for defining models, views and (where applicable) controllers and classes in the frameworks you're interested in and try your hand at editing the code to see how it feels using it first-hand.</p>
<p>Please <strong>ensure</strong> that if you're happy with this, you do spend more time investigating the framework (including reading the official docs, the source and its complete feature list). There's often a lot more to a framework than what we present in our examples.</p>
</div>
<div class="span4">
<h2>Selecting a Framework</h2>
<p>Once you've downloaded the latest release and played around with the apps, you'll want to decide on a specific framework to try out.</p>
<p>Study the syntax required for defining models, views and (where applicable) controllers and classes in the frameworks you're interested in and try your hand at editing the code to see how it feels using it first-hand.</p>
<p>Please <strong>ensure</strong> that if you're happy with this, you do spend more time investigating the framework (including reading the official docs, the source and its complete feature list). There's often a lot more to a framework than what we present in our examples.</p>
</div>
<div class="span4"> <div class="span4">
<h2>Architecture</h2> <h2>Getting Involved</h2>
<p>Is there a bug we haven't fixed or an MV* framework you feel would benefit from being included in TodoMVC?</p>
<p>If so, feel free to fork the repo, read our <a href="https://github.com/addyosmani/todomvc/wiki">contribution guidelines</a>, and submit a pull request &mdash; we'll be happy to review it for inclusion.</p><p> Make sure you use the <a href="https://github.com/addyosmani/todomvc/tree/master/template">template</a> as a starting point and read the <a href="https://github.com/addyosmani/todomvc/wiki/App-Specification">app specification</a>.</p>
<p><a class="btn" href="https://github.com/addyosmani/todomvc/pull/new/master">Submit Pull Request &raquo;</a></p>
</div>
</div>
<div class="row apps">
<div class="span3">
<h2>Optimized</h2>
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<li> <li>
<a href="architecture-examples/backbone/index.html" data-source="http://documentcloud.github.com/backbone/" data-content="Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.">Backbone.js</a> <a href="architecture-examples/angularjs-perf/index.html" data-source="http://angularjs.org/" data-content="What HTML would have been
had it been designed for web apps. A version with several performance optimizations.">AngularJS (Optimized)</a>
</li> </li>
</ul>
</div>
<div class="span3">
<h2>Labs</h2>
<ul class="nav nav-pills">
<li>
<a href="labs/architecture-examples/cujo/index.html" data-source="http://cujojs.github.com" data-content="JavaScriptMVC is an open-source framework containing the best ideas in jQuery development. It guides you to successfully completed projects by promoting best practices, maintainability, and convention over configuration.">cujo.js *</a>
</li>
<li>
<a href="labs/architecture-examples/maria/src/index.html" data-source="https://github.com/petermichaux/maria" data-content="An MVC framework for JavaScript applications. The real MVC. The Smalltalk MVC. The Gang of Four MVC. The three core design patterns of MVC (observer, composite, and strategy) are embedded in Maria's Model, View, and Controller objects. Other patterns traditionally included in MVC implementations (e.g. factory method and template) make appearances too.">Maria</a>
</li>
<li>
<a href="http://todomvc.meteor.com" data-source="http://meteor.com" data-content="Meteor is an ultra-simple environment for building modern websites.A Meteor application is a mix of JavaScript that runs inside a client web browser, JavaScript that runs on the Meteor server inside a Node.js container, and all the supporting HTML fragments, CSS rules, and static assets. Meteor automates the packaging and transmission of these different components. And, it is quite flexible about how you choose to structure those components in your file tree.">Meteor *</a>
</li>
<li>
<a href="labs/architecture-examples/stapes/index.html" data-source="http://hay.github.com/stapes/" data-content="Stapes is a (really) tiny Javascript MVC micro-framework (1.7kb) that has all the building blocks you need when writing an MVC app. It includes a powerful event system, support for inheritance, use with AMD, plugin support and more. A RequireJS Todo application is <a href='dependency-examples/stapes_require/index.html'>also</a> available.">Stapes *</a>
</li>
<li> <li>
<a href="architecture-examples/emberjs/index.html" data-source="http://emberjs.com/" data-content="Ember is a JavaScript framework for creating ambitious web applications that eliminates boilerplate and provides a standard application architecture.">Ember.js</a> <a href="labs/architecture-examples/troopjs/index.html" data-source="https://github.com/troopjs/" data-content="TroopJS attempts to package popular front-end technologies and bind them with minimal effort for the developer. It includes jQuery for DOM manipulation, ComposeJS for object composition, RequireJS for modularity and Has.js for feature detection. On top, it includes Pub/Sub support, templating, weaving (widgets to DOM) and auto-wiring.">TroopJS *</a>
</li> </li>
<li> <li>
<a href="architecture-examples/javascriptmvc/todo/todo/index.html" data-source="http://javascriptmvc.com/" data-content="JavaScriptMVC is an open-source framework containing the best ideas in jQuery development. It guides you to successfully completed projects by promoting best practices, maintainability, and convention over configuration.">JavaScriptMVC</a> <a href="labs/architecture-examples/fun/index.html" data-source="https://github.com/marcuswestin/fun" data-content="Fun is not an MVC framework, but a programming language meant to tackle MVC/UI programming on a deeper, more fundamental level - part reactive/functional and part sequential/procedural.">Fun *</a>
</li> </li>
<li> <li>
<a href="architecture-examples/spine/index.html" data-source="http://spinejs.com/" data-content="Spine is a lightweight framework for building JavaScript web applications. Spine gives you an MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.">Spine.js</a> <a href="labs/architecture-examples/duel/www/index.html" data-source="https://bitbucket.org/mckamey/duel/wiki/Home" data-content="DUEL is a dual-side templating engine using HTML for layout and 100% pure JavaScript as the binding language. The same views may be executed both directly in the browser (client-side template) and on the server (server-side template).">DUEL *</a>
</li> </li>
<li> <li>
<a href="architecture-examples/knockoutjs/index.html" data-source="http://knockoutjs.com/" data-content="Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM) pattern">Knockout</a> <a href="labs/architecture-examples/fidel/index.html" data-source="https://github.com/jgallen23/fidel" data-content="Fidel is a micro-framework for building widgets, modules and plugins. It resembles the controller in Spine.js and could be considered a controller library. Having not heavily needed models and routing in some of the single-page applications the author built, he found a library focusing on controller logic more useful.">Fidel</a>
</li> </li>
<li> <li>
<a href="architecture-examples/dojo/index.html" data-source="http://dojotoolkit.org/" data-content="Dojo saves you time and scales with your development process, using web standards as its platform. It’s the toolkit experienced developers turn to for building high quality desktop and mobile web applications.">Dojo</a> <a href="labs/architecture-examples/broke/index.html" data-source="https://github.com/brokenseal/broke-client" data-content="The Broke Javascript Framework is a porting of the fantastic Django Web Framework on Javascript. It summarizes all the best concepts present in Django like url resolving, decoupling, DRY principle, project-specific settings and a pretty simple template engine. It could be put in the big Javascript MVC frameworks group outside there, but, as Django is, this is more a MTV (Model-Template-View) framework.">Broke.js</a>
</li> </li>
<li> <li>
<a href="architecture-examples/closure/index.html" data-source="http://code.google.com/closure/library/" data-content="The Closure Library is a broad, well-tested, modular, and cross-browser JavaScript library. You can pull just what you need from a large set of reusable UI widgets and controls, and from lower-level utilities for DOM manipulation, server communication, animation, data structures, unit testing, rich-text editing, and more.">Closure</a> <a href="labs/architecture-examples/o_O/index.html" data-source="http://weepy.github.com/o_O/" data-content="o_O: HTML binding for teh lulz: &lt;br>- Elegantly binds objects to HTML&lt;br>- Proxies through jQuery, Ender, etc&lt;br>- Automatic dependency resolution&lt;br>- Plays well with others">Funnyface.js *</a>
</li> </li>
</ul> </ul>
</div> </div>
<div class="span4"> <div class="span3">
<h2>Dependency</h2> <h2></h2>
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<li>
<a href="labs/architecture-examples/javascriptmvc/todo/todo/index.html" data-source="http://javascriptmvc.com/" data-content="JavaScriptMVC is an open-source framework containing the best ideas in jQuery development. It guides you to successfully completed projects by promoting best practices, maintainability, and convention over configuration.">JavaScriptMVC</a>
</li>
<li>
<a href="labs/architecture-examples/batman/index.html" data-source="http://batmanjs.org/" data-content="Batman.js is a framework for building rich web applications with CoffeeScript or JavaScript. App code is concise and declarative, thanks to a powerful system of view bindings and observable properties. The API is designed with developer and designer happiness as its first priority.">Batman.js *</a>
</li>
<li>
<a href="labs/architecture-examples/olives/index.html" data-source="https://github.com/flams/olives" data-content="Olives is a JS MVC framework that helps you create realtime UIs. It includes a set of AMD/CommonJS modules that are easily extensive, a high level of abstraction to reduce boilerplate and is based on socket.io, to provide a powerful means to communicate with node.js.">Olives *</a>
</li>
<li>
<a href="labs/architecture-examples/somajs/index.html" data-source="http://somajs.github.com/somajs" data-content="soma.js is a JavaScript Model-View-Controller (MVC) framework that is meant to help developers to write loosely-coupled applications to increase scalability and maintainability.">soma.js *</a>
</li>
<li>
<a href="labs/architecture-examples/rappidjs/index.html" data-source="http://www.rappidjs.com" data-content="rAppid.js is a declarative JavaScript framework for rapid web application development. It supports dependency loading, Model-View binding, View-Model binding, dependency injection and i18n.">rAppid.js</a>
</li>
<li>
<a href="labs/architecture-examples/dijon/index.html" data-source="https://github.com/creynders/dijon-framework" data-content="Dijon is an IOC and DI micro-framework for Javascript. Originally it was meant to be a port of Robotlegs, but deviated to something quite different. It remains however heavily inspired by Robotlegs, and more specifically Swiftsuspenders.">Dijon *</a>
</li>
<li> <li>
<a href="dependency-examples/backbone_require/index.html" data-source="http://requirejs.org/" data-content="RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.">Backbone.js + RequireJS</a> <a href="labs/architecture-examples/sammyjs/index.html" data-source="http://sammyjs.org/" data-content="Sammy.js is a tiny JavaScript framework developed to ease the pain and provide a basic structure for developing JavaScript applications.">Sammy.js</a>
</li> </li>
<li> <li>
<a href="dependency-examples/emberjs_require/index.html" data-source="http://emberjs.com" data-content="Ember is a JavaScript framework for creating ambitious web applications that eliminates boilerplate and provides a standard application architecture. This is an example of using it with AMD modules">Ember.js + RequireJS</a> <a href="labs/dependency-examples/knockoutjs_require/index.html" data-source="" data-content="This project is an adaptation of /architecture-examples/knockoutjs with require.js.">Knockout + Require.js *</a>
</li> </li>
<li> <li>
<a href="architecture-examples/dojo/index.html" data-source="http://dojotoolkit.org/" data-content="Dojo saves you time and scales with your development process, using web standards as its platform. It’s the toolkit experienced developers turn to for building high quality desktop and mobile web applications.">Dojo</a> <a href="labs/dependency-examples/angularjs_require/index.html" data-source="http://angularjs.org" data-content="What HTML would have been had it been designed for web apps. This is an example of using it with AMD modules.">AngularJS + RequireJS</a>
</li> </li>
<li> <li>
<a href="architecture-examples/closure/index.html" data-source="http://code.google.com/closure/library/" data-content="The Closure Library is a broad, well-tested, modular, and cross-browser JavaScript library. You can pull just what you need from a large set of reusable UI widgets and controls, and from lower-level utilities for DOM manipulation, server communication, animation, data structures, unit testing, rich-text editing, and more.">Closure</a> <a href="labs/architecture-examples/plastronjs/index.html" data-source="https://github.com/rhysbrettbowen/PlastronJS" data-content="PlastronJS is an mvc framework built on top of the Closure Library and built to compile with projects that use the Closure Compiler.">PlastronJS *</a>
</li> </li>
</ul> </ul>
</div> </div>
<div class="span4"> <div class="span3">
<h2>Realtime</h2> <h2></h2>
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<li> <li>
<a href="architecture-examples/javascriptmvc/todo/todo/index.html" data-source="http://javascriptmvc.com/" data-content="JavaScriptMVC is an open-source framework containing the best ideas in jQuery development. It guides you to successfully completed projects by promoting best practices, maintainability, and convention over configuration.">JavaScriptMVC</a> <a href="labs/architecture-examples/canjs/dojo/index.html" data-source="http://canjs.us" data-content="CanJS with Dojo. CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (Dojo)</a>
</li> </li>
<li> <li>
<a href="architecture-examples/spine/index.html" data-source="http://spinejs.com/" data-content="Spine is a lightweight framework for building JavaScript web applications. Spine gives you an MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.">Spine.js</a> <a href="labs/architecture-examples/canjs/dojo-widget/index.html" data-source="http://canjs.us" data-content="CanJS with Dojo (includes a Dojo widget binding example). CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (Dojo Widget)</a>
</li> </li>
<li> <li>
<a href="architecture-examples/knockoutjs/index.html" data-source="http://knockoutjs.com/" data-content="Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM) pattern">Knockout (MVVM)</a> <a href="labs/architecture-examples/canjs/jquery/index.html" data-source="http://canjs.us" data-content="CanJS with jQuery. CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (jQuery)</a>
</li> </li>
<li> <li>
<a href="architecture-examples/dojo/index.html" data-source="http://dojotoolkit.org/" data-content="Dojo saves you time and scales with your development process, using web standards as its platform. It’s the toolkit experienced developers turn to for building high quality desktop and mobile web applications.">Dojo</a> <a href="labs/architecture-examples/canjs/jquery-widget/index.html" data-source="http://canjs.us" data-content="CanJS with jQuery (includes a jQuery UI widget binding example). CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (jQuery Widget)</a>
</li> </li>
<li> <li>
<a href="architecture-examples/closure/index.html" data-source="http://code.google.com/closure/library/" data-content="The Closure Library is a broad, well-tested, modular, and cross-browser JavaScript library. You can pull just what you need from a large set of reusable UI widgets and controls, and from lower-level utilities for DOM manipulation, server communication, animation, data structures, unit testing, rich-text editing, and more.">Closure</a> <a href="labs/architecture-examples/canjs/mootools/index.html" data-source="http://canjs.us" data-content="CanJS with Mootools. CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (MooTools)</a>
</li>
<li>
<a href="labs/architecture-examples/canjs/yui/index.html" data-source="http://canjs.us" data-content="CanJS with YUI. CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (YUI)</a>
</li>
<li>
<a href="labs/architecture-examples/canjs/yui-widget/index.html" data-source="http://canjs.us" data-content="CanJS with YUI (includes a YUI widget binding example). CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (YUI Widget)</a>
</li>
<li>
<a href="labs/architecture-examples/canjs/zepto/index.html" data-source="http://canjs.us" data-content="CanJS with Zepto. CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS (Zepto)</a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="row">
<div class="span6">
<img id="screenshot" src="site/screenshot.png">
<p style="font-size:25px;font-weight:400;margin-top:40px;font-style:italic">TodoMVC is a common learning application for popular JavaScript MV* frameworks</p>
</div>
<div class="span6">
<h2>Introduction</h2>
<p>Developers these days are spoiled with choice when it comes to selecting an <strong>MV* framework</strong> for structuring and organizing JavaScript web apps. Backbone, Spine, Ember (SproutCore 2.0), JavaScriptMVC... the list of new and stable solutions goes on and on, but just how do you <strong>decide</strong> on which to use in a sea of so many options?</p>
<p>To help solve this problem, we created <a href="http://github.com/addyosmani/todomvc">TodoMVC</a> - a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today.</p>
<p>Solutions look and feel the same, have a common simple feature-set and make it <strong>easy</strong> for you to compare the syntax and structure of different frameworks so you can select the one you feel the most comfortable with.</p>
</div>
</div>
<hr>
<div class="row">
<div class="span4">
<h2>Labs</h2>
<p>Once you've downloaded the latest release and played around with the apps, you'll want to decide on a specific framework to try out.</p>
<p>Study the syntax required for defining models, views and (where applicable) controllers and classes in the frameworks you're interested in and try your hand at editing the code to see how it feels using it first-hand.</p>
<p>Please <strong>ensure</strong> that if you're happy with this, you do spend more time investigating the framework (including reading the official docs, the source and its complete feature list). There's often a lot more to a framework than what we present in our examples.</p>
</div>
<div class="span4">
<h2>Selecting a Framework</h2>
<p>Once you've downloaded the latest release and played around with the apps, you'll want to decide on a specific framework to try out.</p>
<p>Study the syntax required for defining models, views and (where applicable) controllers and classes in the frameworks you're interested in and try your hand at editing the code to see how it feels using it first-hand.</p>
<p>Please <strong>ensure</strong> that if you're happy with this, you do spend more time investigating the framework (including reading the official docs, the source and its complete feature list). There's often a lot more to a framework than what we present in our examples.</p>
</div>
<div class="span4">
<h2>Getting Involved</h2>
<p>Is there a bug we haven't fixed or an MV* framework you feel would benefit from being included in TodoMVC?</p>
<p>If so, feel free to fork the repo, read our <a href="https://github.com/addyosmani/todomvc/wiki">contribution guidelines</a>, and submit a pull request &mdash; we'll be happy to review it for inclusion.</p><p> Make sure you use the <a href="https://github.com/addyosmani/todomvc/tree/master/template">template</a> as a starting point and read the <a href="https://github.com/addyosmani/todomvc/wiki/App-Specification">app specification</a>.</p>
<p><a class="btn" href="https://github.com/addyosmani/todomvc/pull/new/master">Submit Pull Request &raquo;</a></p>
</div>
</div>
<hr> <hr>
<footer class="credit"> <footer class="credit">
<p> <p>
......
...@@ -487,6 +487,8 @@ ...@@ -487,6 +487,8 @@
overflow: visible !important; overflow: visible !important;
} }
} }
/*
@media (min-width: 1200px) { @media (min-width: 1200px) {
.row { .row {
margin-left: -30px; margin-left: -30px;
...@@ -684,3 +686,4 @@ ...@@ -684,3 +686,4 @@
margin-left: 30px; margin-left: 30px;
} }
} }
*/
\ No newline at end of file
.button {
display: inline-block;
font-weight: bold;
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
font-size: 14px;
line-height: 20px;
padding: 15px 25px;
-webkit-border-radius: 1px;
border-radius: 1px;
position: relative;
margin: 0 10px 10px 0;
}
.button:after {
position: absolute;
display: block;
content: "";
top: -1px;
left: -1px;
right: -1px;
bottom: -1px;
z-index: -1;
-webkit-border-radius: 2px;
border-radius: 2px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}
.button:active {
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15), inset 0 0 1px rgba(0, 0, 0, 0.02) !important;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15), inset 0 0 1px rgba(0, 0, 0, 0.02) !important;
}
.button:active:after {
-webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.5) !important;
box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.5) !important;
}
/* Midnight Black */
.black-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #7c8184;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #7c8184;
background-color: #676b6d;
background-image: -webkit-gradient(linear, left top, left bottom, from(#676b6d), to(#484a4c));
background-image: -webkit-linear-gradient(top, #676b6d, #484a4c);
background-image: -moz-linear-gradient(top, #676b6d, #484a4c);
background-image: -o-linear-gradient(top, #676b6d, #484a4c);
background-image: -ms-linear-gradient(top, #676b6d, #484a4c);
background-image: linear-gradient(top, #676b6d, #484a4c);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#676b6d', EndColorStr='#484a4c');
}
.black-button {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #6f7476;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #6f7476;
}
.black-button,
.black-button:active {
background-color: #5c6062;
background-image: -webkit-gradient(linear, left top, left bottom, from(#5c6062), to(#434547));
background-image: -webkit-linear-gradient(top, #5c6062, #434547);
background-image: -moz-linear-gradient(top, #5c6062, #434547);
background-image: -o-linear-gradient(top, #5c6062, #434547);
background-image: -ms-linear-gradient(top, #5c6062, #434547);
background-image: linear-gradient(top, #5c6062, #434547);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#5c6062', EndColorStr='#434547');
}
.black-button:after {
background-color: #37383a;
background-image: -webkit-gradient(linear, left top, left bottom, from(#37383a), to(#252627));
background-image: -webkit-linear-gradient(top, #37383a, #252627);
background-image: -moz-linear-gradient(top, #37383a, #252627);
background-image: -o-linear-gradient(top, #37383a, #252627);
background-image: -ms-linear-gradient(top, #37383a, #252627);
background-image: linear-gradient(top, #37383a, #252627);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#37383a', EndColorStr='#252627');
}
.black-button:active:after {
background-color: #323435;
background-image: -webkit-gradient(linear, left top, left bottom, from(#323435), to(#292b2b));
background-image: -webkit-linear-gradient(top, #323435, #292b2b);
background-image: -moz-linear-gradient(top, #323435, #292b2b);
background-image: -o-linear-gradient(top, #323435, #292b2b);
background-image: -ms-linear-gradient(top, #323435, #292b2b);
background-image: linear-gradient(top, #323435, #292b2b);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#323435', EndColorStr='#292b2b');
}
/* Carbon Grey */
.grey-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #b6b8bc;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #b6b8bc;
background-color: #a4a7ab;
background-image: -webkit-gradient(linear, left top, left bottom, from(#a4a7ab), to(#787a7f));
background-image: -webkit-linear-gradient(top, #a4a7ab, #787a7f);
background-image: -moz-linear-gradient(top, #a4a7ab, #787a7f);
background-image: -o-linear-gradient(top, #a4a7ab, #787a7f);
background-image: -ms-linear-gradient(top, #a4a7ab, #787a7f);
background-image: linear-gradient(top, #a4a7ab, #787a7f);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#a4a7ab', EndColorStr='#787a7f');
}
.grey-button {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #abaeb2;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #abaeb2;
}
.grey-button,
.grey-button:active {
background-color: #979b9f;
background-image: -webkit-gradient(linear, left top, left bottom, from(#979b9f), to(#707277));
background-image: -webkit-linear-gradient(top, #979b9f, #707277);
background-image: -moz-linear-gradient(top, #979b9f, #707277);
background-image: -o-linear-gradient(top, #979b9f, #707277);
background-image: -ms-linear-gradient(top, #979b9f, #707277);
background-image: linear-gradient(top, #979b9f, #707277);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#979b9f', EndColorStr='#707277');
}
.grey-button:after {
background-color: #6c7277;
background-image: -webkit-gradient(linear, left top, left bottom, from(#6c7277), to(#3e3f41));
background-image: -webkit-linear-gradient(top, #6c7277, #3e3f41);
background-image: -moz-linear-gradient(top, #6c7277, #3e3f41);
background-image: -o-linear-gradient(top, #6c7277, #3e3f41);
background-image: -ms-linear-gradient(top, #6c7277, #3e3f41);
background-image: linear-gradient(top, #6c7277, #3e3f41);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#6c7277', EndColorStr='#3e3f41');
}
.grey-button:active:after {
background-color: #5d6266;
background-image: -webkit-gradient(linear, left top, left bottom, from(#5d6266), to(#444648));
background-image: -webkit-linear-gradient(top, #5d6266, #444648);
background-image: -moz-linear-gradient(top, #5d6266, #444648);
background-image: -o-linear-gradient(top, #5d6266, #444648);
background-image: -ms-linear-gradient(top, #5d6266, #444648);
background-image: linear-gradient(top, #5d6266, #444648);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#5d6266', EndColorStr='#444648');
}
/* Plum Purple */
.plum-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #b89ac3;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #b89ac3;
background-color: #a882b4;
background-image: -webkit-gradient(linear, left top, left bottom, from(#a882b4), to(#7b5a92));
background-image: -webkit-linear-gradient(top, #a882b4, #7b5a92);
background-image: -moz-linear-gradient(top, #a882b4, #7b5a92);
background-image: -o-linear-gradient(top, #a882b4, #7b5a92);
background-image: -ms-linear-gradient(top, #a882b4, #7b5a92);
background-image: linear-gradient(top, #a882b4, #7b5a92);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#a882b4', EndColorStr='#7b5a92');
}
.plum-button {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #af8cba;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #af8cba;
}
.plum-button,
.plum-button:active {
background-color: #9c74aa;
background-image: -webkit-gradient(linear, left top, left bottom, from(#9c74aa), to(#735489));
background-image: -webkit-linear-gradient(top, #9c74aa, #735489);
background-image: -moz-linear-gradient(top, #9c74aa, #735489);
background-image: -o-linear-gradient(top, #9c74aa, #735489);
background-image: -ms-linear-gradient(top, #9c74aa, #735489);
background-image: linear-gradient(top, #9c74aa, #735489);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#9c74aa', EndColorStr='#735489');
}
.plum-button:after {
background-color: #734487;
background-image: -webkit-gradient(linear, left top, left bottom, from(#734487), to(#402e4c));
background-image: -webkit-linear-gradient(top, #734487, #402e4c);
background-image: -moz-linear-gradient(top, #734487, #402e4c);
background-image: -o-linear-gradient(top, #734487, #402e4c);
background-image: -ms-linear-gradient(top, #734487, #402e4c);
background-image: linear-gradient(top, #734487, #402e4c);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#734487', EndColorStr='#402e4c');
}
.plum-button:active:after {
background-color: #643f79;
background-image: -webkit-gradient(linear, left top, left bottom, from(#643f79), to(#47345a));
background-image: -webkit-linear-gradient(top, #643f79, #47345a);
background-image: -moz-linear-gradient(top, #643f79, #47345a);
background-image: -o-linear-gradient(top, #643f79, #47345a);
background-image: -ms-linear-gradient(top, #643f79, #47345a);
background-image: linear-gradient(top, #643f79, #47345a);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#643f79', EndColorStr='#47345a');
}
/* Royal Purple */
.purple-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #908dce;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #908dce;
background-color: #7775c3;
background-image: -webkit-gradient(linear, left top, left bottom, from(#7775c3), to(#5251a9));
background-image: -webkit-linear-gradient(top, #7775c3, #5251a9);
background-image: -moz-linear-gradient(top, #7775c3, #5251a9);
background-image: -o-linear-gradient(top, #7775c3, #5251a9);
background-image: -ms-linear-gradient(top, #7775c3, #5251a9);
background-image: linear-gradient(top, #7775c3, #5251a9);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#7775c3', EndColorStr='#5251a9');
}
.purple-button {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #817ec8;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #817ec8;
}
.purple-button,
.purple-button:active {
background-color: #6b69bb;
background-image: -webkit-gradient(linear, left top, left bottom, from(#6b69bb), to(#4d4ca2));
background-image: -webkit-linear-gradient(top, #6b69bb, #4d4ca2);
background-image: -moz-linear-gradient(top, #6b69bb, #4d4ca2);
background-image: -o-linear-gradient(top, #6b69bb, #4d4ca2);
background-image: -ms-linear-gradient(top, #6b69bb, #4d4ca2);
background-image: linear-gradient(top, #6b69bb, #4d4ca2);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#6b69bb', EndColorStr='#4d4ca2');
}
.purple-button:after {
background-color: #403ea0;
background-image: -webkit-gradient(linear, left top, left bottom, from(#403ea0), to(#2b2972));
background-image: -webkit-linear-gradient(top, #403ea0, #2b2972);
background-image: -moz-linear-gradient(top, #403ea0, #2b2972);
background-image: -o-linear-gradient(top, #403ea0, #2b2972);
background-image: -ms-linear-gradient(top, #403ea0, #2b2972);
background-image: linear-gradient(top, #403ea0, #2b2972);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#403ea0', EndColorStr='#2b2972');
}
.purple-button:active:after {
background-color: #3a3895;
background-image: -webkit-gradient(linear, left top, left bottom, from(#3a3895), to(#302e7d));
background-image: -webkit-linear-gradient(top, #3a3895, #302e7d);
background-image: -moz-linear-gradient(top, #3a3895, #302e7d);
background-image: -o-linear-gradient(top, #3a3895, #302e7d);
background-image: -ms-linear-gradient(top, #3a3895, #302e7d);
background-image: linear-gradient(top, #3a3895, #302e7d);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#3a3895', EndColorStr='#302e7d');
}
/* PixelBin Blue */
.blue-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #7eaadc;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #7eaadc;
background-color: #6a96d4;
background-image: -webkit-gradient(linear, left top, left bottom, from(#6a96d4), to(#4c6ac1));
background-image: -webkit-linear-gradient(top, #6a96d4, #4c6ac1);
background-image: -moz-linear-gradient(top, #6a96d4, #4c6ac1);
background-image: -o-linear-gradient(top, #6a96d4, #4c6ac1);
background-image: -ms-linear-gradient(top, #6a96d4, #4c6ac1);
background-image: linear-gradient(top, #6a96d4, #4c6ac1);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#6a96d4', EndColorStr='#4c6ac1');
}
.blue-button {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #729ed7;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #729ed7;
}
.blue-button,
.blue-button:active {
background-color: #5f87cd;
background-image: -webkit-gradient(linear, left top, left bottom, from(#5f87cd), to(#4461ba));
background-image: -webkit-linear-gradient(top, #5f87cd, #4461ba);
background-image: -moz-linear-gradient(top, #5f87cd, #4461ba);
background-image: -o-linear-gradient(top, #5f87cd, #4461ba);
background-image: -ms-linear-gradient(top, #5f87cd, #4461ba);
background-image: linear-gradient(top, #5f87cd, #4461ba);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#5f87cd', EndColorStr='#4461ba');
}
.blue-button:after {
background-color: #3854b8;
background-image: -webkit-gradient(linear, left top, left bottom, from(#3854b8), to(#263596));
background-image: -webkit-linear-gradient(top, #3854b8, #263596);
background-image: -moz-linear-gradient(top, #3854b8, #263596);
background-image: -o-linear-gradient(top, #3854b8, #263596);
background-image: -ms-linear-gradient(top, #3854b8, #263596);
background-image: linear-gradient(top, #3854b8, #263596);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#3854b8', EndColorStr='#263596');
}
.blue-button:active:after {
background-color: #344ab1;
background-image: -webkit-gradient(linear, left top, left bottom, from(#344ab1), to(#2a3b9d));
background-image: -webkit-linear-gradient(top, #344ab1, #2a3b9d);
background-image: -moz-linear-gradient(top, #344ab1, #2a3b9d);
background-image: -o-linear-gradient(top, #344ab1, #2a3b9d);
background-image: -ms-linear-gradient(top, #344ab1, #2a3b9d);
background-image: linear-gradient(top, #344ab1, #2a3b9d);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#344ab1', EndColorStr='#2a3b9d');
}
/* Azure Blue */
.azure-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #71c3f6;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #71c3f6;
background-color: #5db5f4;
background-image: -webkit-gradient(linear, left top, left bottom, from(#5db5f4), to(#4193ef));
background-image: -webkit-linear-gradient(top, #5db5f4, #4193ef);
background-image: -moz-linear-gradient(top, #5db5f4, #4193ef);
background-image: -o-linear-gradient(top, #5db5f4, #4193ef);
background-image: -ms-linear-gradient(top, #5db5f4, #4193ef);
background-image: linear-gradient(top, #5db5f4, #4193ef);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#5db5f4', EndColorStr='#4193ef');
}
.azure-button {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #64baf5;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #64baf5;
}
.azure-button,
.azure-button:active {
background-color: #54abf2;
background-image: -webkit-gradient(linear, left top, left bottom, from(#54abf2), to(#3d8aed));
background-image: -webkit-linear-gradient(top, #54abf2, #3d8aed);
background-image: -moz-linear-gradient(top, #54abf2, #3d8aed);
background-image: -o-linear-gradient(top, #54abf2, #3d8aed);
background-image: -ms-linear-gradient(top, #54abf2, #3d8aed);
background-image: linear-gradient(top, #54abf2, #3d8aed);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#54abf2', EndColorStr='#3d8aed');
}
.azure-button:after {
background-color: #3187ed;
background-image: -webkit-gradient(linear, left top, left bottom, from(#3187ed), to(#204ce4));
background-image: -webkit-linear-gradient(top, #3187ed, #204ce4);
background-image: -moz-linear-gradient(top, #3187ed, #204ce4);
background-image: -o-linear-gradient(top, #3187ed, #204ce4);
background-image: -ms-linear-gradient(top, #3187ed, #204ce4);
background-image: linear-gradient(top, #3187ed, #204ce4);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#3187ed', EndColorStr='#204ce4');
}
.azure-button:active:after {
background-color: #2d79eb;
background-image: -webkit-gradient(linear, left top, left bottom, from(#2d79eb), to(#255be6));
background-image: -webkit-linear-gradient(top, #2d79eb, #255be6);
background-image: -moz-linear-gradient(top, #2d79eb, #255be6);
background-image: -o-linear-gradient(top, #2d79eb, #255be6);
background-image: -ms-linear-gradient(top, #2d79eb, #255be6);
background-image: linear-gradient(top, #2d79eb, #255be6);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#2d79eb', EndColorStr='#255be6');
}
/* Bubblegum Pink */
.pink-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #f9acb9;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #f9acb9;
background-color: #f898a9;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f898a9), to(#f66a7c));
background-image: -webkit-linear-gradient(top, #f898a9, #f66a7c);
background-image: -moz-linear-gradient(top, #f898a9, #f66a7c);
background-image: -o-linear-gradient(top, #f898a9, #f66a7c);
background-image: -ms-linear-gradient(top, #f898a9, #f66a7c);
background-image: linear-gradient(top, #f898a9, #f66a7c);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f898a9', EndColorStr='#f66a7c');
}
.pink-button {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #f8a0b0;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #f8a0b0;
}
.pink-button,
.pink-button:active {
background-color: #f78a9d;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f78a9d), to(#f56475));
background-image: -webkit-linear-gradient(top, #f78a9d, #f56475);
background-image: -moz-linear-gradient(top, #f78a9d, #f56475);
background-image: -o-linear-gradient(top, #f78a9d, #f56475);
background-image: -ms-linear-gradient(top, #f78a9d, #f56475);
background-image: linear-gradient(top, #f78a9d, #f56475);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f78a9d', EndColorStr='#f56475');
}
.pink-button:after {
background-color: #f45874;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f45874), to(#f03740));
background-image: -webkit-linear-gradient(top, #f45874, #f03740);
background-image: -moz-linear-gradient(top, #f45874, #f03740);
background-image: -o-linear-gradient(top, #f45874, #f03740);
background-image: -ms-linear-gradient(top, #f45874, #f03740);
background-image: linear-gradient(top, #f45874, #f03740);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f45874', EndColorStr='#f03740');
}
.pink-button:active:after {
background-color: #f24b64;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f24b64), to(#f13d47));
background-image: -webkit-linear-gradient(top, #f24b64, #f13d47);
background-image: -moz-linear-gradient(top, #f24b64, #f13d47);
background-image: -o-linear-gradient(top, #f24b64, #f13d47);
background-image: -ms-linear-gradient(top, #f24b64, #f13d47);
background-image: linear-gradient(top, #f24b64, #f13d47);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f24b64', EndColorStr='#f13d47');
}
/* Juicy Red */
.red-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #ed895a;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #ed895a;
background-color: #e9724b;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e9724b), to(#df4f33));
background-image: -webkit-linear-gradient(top, #e9724b, #df4f33);
background-image: -moz-linear-gradient(top, #e9724b, #df4f33);
background-image: -o-linear-gradient(top, #e9724b, #df4f33);
background-image: -ms-linear-gradient(top, #e9724b, #df4f33);
background-image: linear-gradient(top, #e9724b, #df4f33);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#e9724b', EndColorStr='#df4f33');
}
.red-button {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #eb794f;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #eb794f;
}
.red-button,
.red-button:active {
background-color: #e66643;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e66643), to(#dd4a30));
background-image: -webkit-linear-gradient(top, #e66643, #dd4a30);
background-image: -moz-linear-gradient(top, #e66643, #dd4a30);
background-image: -o-linear-gradient(top, #e66643, #dd4a30);
background-image: -ms-linear-gradient(top, #e66643, #dd4a30);
background-image: linear-gradient(top, #e66643, #dd4a30);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#e66643', EndColorStr='#dd4a30');
}
.red-button:after {
background-color: #dc3d27;
background-image: -webkit-gradient(linear, left top, left bottom, from(#dc3d27), to(#cb291a));
background-image: -webkit-linear-gradient(top, #dc3d27, #cb291a);
background-image: -moz-linear-gradient(top, #dc3d27, #cb291a);
background-image: -o-linear-gradient(top, #dc3d27, #cb291a);
background-image: -ms-linear-gradient(top, #dc3d27, #cb291a);
background-image: linear-gradient(top, #dc3d27, #cb291a);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#dc3d27', EndColorStr='#cb291a');
}
.red-button:active:after {
background-color: #d63724;
background-image: -webkit-gradient(linear, left top, left bottom, from(#d63724), to(#cf2d1d));
background-image: -webkit-linear-gradient(top, #d63724, #cf2d1d);
background-image: -moz-linear-gradient(top, #d63724, #cf2d1d);
background-image: -o-linear-gradient(top, #d63724, #cf2d1d);
background-image: -ms-linear-gradient(top, #d63724, #cf2d1d);
background-image: linear-gradient(top, #d63724, #cf2d1d);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#d63724', EndColorStr='#cf2d1d');
}
/* Tangy Orange */
.orange-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #fec04e;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #fec04e;
background-color: #feb23f;
background-image: -webkit-gradient(linear, left top, left bottom, from(#feb23f), to(#fe8a2d));
background-image: -webkit-linear-gradient(top, #feb23f, #fe8a2d);
background-image: -moz-linear-gradient(top, #feb23f, #fe8a2d);
background-image: -o-linear-gradient(top, #feb23f, #fe8a2d);
background-image: -ms-linear-gradient(top, #feb23f, #fe8a2d);
background-image: linear-gradient(top, #feb23f, #fe8a2d);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#feb23f', EndColorStr='#fe8a2d');
}
.orange-button {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #feb646;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #feb646;
}
.orange-button,
.orange-button:active {
background-color: #fea638;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fea638), to(#fe812a));
background-image: -webkit-linear-gradient(top, #fea638, #fe812a);
background-image: -moz-linear-gradient(top, #fea638, #fe812a);
background-image: -o-linear-gradient(top, #fea638, #fe812a);
background-image: -ms-linear-gradient(top, #fea638, #fe812a);
background-image: linear-gradient(top, #fea638, #fe812a);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#fea638', EndColorStr='#fe812a');
}
.orange-button:after {
background-color: #fe8122;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fe8122), to(#fe4717));
background-image: -webkit-linear-gradient(top, #fe8122, #fe4717);
background-image: -moz-linear-gradient(top, #fe8122, #fe4717);
background-image: -o-linear-gradient(top, #fe8122, #fe4717);
background-image: -ms-linear-gradient(top, #fe8122, #fe4717);
background-image: linear-gradient(top, #fe8122, #fe4717);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#fe8122', EndColorStr='#fe4717');
}
.orange-button:active:after {
background-color: #fe721f;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fe721f), to(#fe511a));
background-image: -webkit-linear-gradient(top, #fe721f, #fe511a);
background-image: -moz-linear-gradient(top, #fe721f, #fe511a);
background-image: -o-linear-gradient(top, #fe721f, #fe511a);
background-image: -ms-linear-gradient(top, #fe721f, #fe511a);
background-image: linear-gradient(top, #fe721f, #fe511a);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#fe721f', EndColorStr='#fe511a');
}
/* Leafy Green */
.green-button:hover {
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #9aceb3;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #9aceb3;
background-color: #82c3a1;
background-image: -webkit-gradient(linear, left top, left bottom, from(#82c3a1), to(#5aa874));
background-image: -webkit-linear-gradient(top, #82c3a1, #5aa874);
background-image: -moz-linear-gradient(top, #82c3a1, #5aa874);
background-image: -o-linear-gradient(top, #82c3a1, #5aa874);
background-image: -ms-linear-gradient(top, #82c3a1, #5aa874);
background-image: linear-gradient(top, #82c3a1, #5aa874);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#82c3a1', EndColorStr='#5aa874');
}
.green-button {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #8cc8a8;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 1px 0 0 #8cc8a8;
}
.green-button,
.green-button:active {
background-color: #74bb93;
background-image: -webkit-gradient(linear, left top, left bottom, from(#74bb93), to(#54a06c));
background-image: -webkit-linear-gradient(top, #74bb93, #54a06c);
background-image: -moz-linear-gradient(top, #74bb93, #54a06c);
background-image: -o-linear-gradient(top, #74bb93, #54a06c);
background-image: -ms-linear-gradient(top, #74bb93, #54a06c);
background-image: linear-gradient(top, #74bb93, #54a06c);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#74bb93', EndColorStr='#54a06c');
}
.green-button:after {
background-color: #449e65;
background-image: -webkit-gradient(linear, left top, left bottom, from(#449e65), to(#2e703b));
background-image: -webkit-linear-gradient(top, #449e65, #2e703b);
background-image: -moz-linear-gradient(top, #449e65, #2e703b);
background-image: -o-linear-gradient(top, #449e65, #2e703b);
background-image: -ms-linear-gradient(top, #449e65, #2e703b);
background-image: linear-gradient(top, #449e65, #2e703b);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#449e65', EndColorStr='#2e703b');
}
.green-button:active:after {
background-color: #3e9256;
background-image: -webkit-gradient(linear, left top, left bottom, from(#3e9256), to(#347b42));
background-image: -webkit-linear-gradient(top, #3e9256, #347b42);
background-image: -moz-linear-gradient(top, #3e9256, #347b42);
background-image: -o-linear-gradient(top, #3e9256, #347b42);
background-image: -ms-linear-gradient(top, #3e9256, #347b42);
background-image: linear-gradient(top, #3e9256, #347b42);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#3e9256', EndColorStr='#347b42');
}
\ No newline at end of file
body { body {
font: 120% Merriweather, Georgia; font: 15px "Helvetica Neue", Helvetica, Arial;
font-weight: 300; font-weight: 300;
line-height: 1.5; line-height: 1.5;
width: auto; width: auto;
...@@ -13,12 +13,13 @@ h5, ...@@ -13,12 +13,13 @@ h5,
h6 { h6 {
font-weight: 600; font-weight: 600;
color: #594A43; color: #594A43;
text-shadow: 1px 1px 0 #7D2A2F; /*text-shadow: 1px 1px 0 #7D2A2F;*/
font:100% Oswald, Helvetica;
} }
h2 { h2 {
margin: 10px 0; margin: 10px 0;
font-size: 30px; font-size: 20px;
} }
a { a {
...@@ -30,8 +31,13 @@ a:hover { ...@@ -30,8 +31,13 @@ a:hover {
color: #787e7e; color: #787e7e;
} }
.nav-tabs > li > a, .nav-pills > li > a{
line-height:23px;
}
p { p {
font: 100% Merriweather, Georgia; /*font: 100% Merriweather, Georgia;*/
font-size:14px;
line-height: 1.5; line-height: 1.5;
font-weight: 300; font-weight: 300;
} }
...@@ -44,7 +50,7 @@ hr { ...@@ -44,7 +50,7 @@ hr {
header h1 { header h1 {
font-size: 100px; font-size: 100px;
line-height: 1.2; line-height: 1.2;
text-shadow: 2px 2px 1px #7D2A2F; /*text-shadow: 2px 2px 1px #7D2A2F;*/
font-weight: 900; font-weight: 900;
} }
...@@ -53,7 +59,7 @@ header p { ...@@ -53,7 +59,7 @@ header p {
} }
header .btn-large { header .btn-large {
font-size: 25px; font-size: 20px;
margin-right: 10px; margin-right: 10px;
} }
...@@ -61,6 +67,10 @@ header nav { ...@@ -61,6 +67,10 @@ header nav {
margin: 20px 0; margin: 20px 0;
} }
.nav-tabs > li, .nav-pills > li{
clear:both;
}
.btn { .btn {
background: #fafafa; background: #fafafa;
box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3); box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3);
...@@ -93,8 +103,8 @@ header nav { ...@@ -93,8 +103,8 @@ header nav {
} }
.row { .row {
margin-top: 40px; margin-top: 20px;
margin-bottom: 40px; margin-bottom: 20px;
} }
.hero-unit { .hero-unit {
...@@ -201,6 +211,9 @@ header nav { ...@@ -201,6 +211,9 @@ header nav {
right: 20px; right: 20px;
} }
.credit a { .credit a {
margin: 0 5px; margin: 0 5px;
} }
...@@ -260,12 +273,28 @@ header nav { ...@@ -260,12 +273,28 @@ header nav {
} }
.navbar{
background-color: #CF5258;
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 119, 119, .8)), to(rgba(255, 73, 73, .2)));
background-image: -webkit-linear-gradient(rgba(255, 119, 119, .8), rgba(255, 73, 73, .2));
background-image: -moz-linear-gradient(rgba(255, 119, 119, .8), rgba(255, 73, 73, .2));
background-image: -o-linear-gradient(rgba(255, 119, 119, .8), rgba(255, 73, 73, .2));
box-shadow: inset 0 -1px 1px rgba(255, 255, 255, .15);
text-shadow: 0 -1px 1px rgba(146, 46, 46, .7);
-webkit-transition: background-color .2s ease-in-out, -webkit-transform .1s ease-in-out;
-moz-transition: background-color .2s ease-in-out, -moz-transform .1s ease-in-out;
-o-transition: background-color .2s ease-in-out, -o-transform .1s ease-in-out;
transition: background-color .2s ease-in-out, transform .1s ease-in-out;
padding-left:10px;
}
.button { .button {
display: inline-block; display: inline-block;
margin: 10px; margin: 10px;
border-radius: 8px; border-radius: 8px;
font-size: 25px; font-size: 16px;
color: #fff; color: #fff;
box-shadow: 0 8px 0 #C53737, 0 15px 20px rgba(0, 0, 0, .35); box-shadow: 0 8px 0 #C53737, 0 15px 20px rgba(0, 0, 0, .35);
-webkit-transition: -webkit-box-shadow .1s ease-in-out; -webkit-transition: -webkit-box-shadow .1s ease-in-out;
...@@ -276,7 +305,7 @@ header nav { ...@@ -276,7 +305,7 @@ header nav {
.button span { .button span {
display: inline-block; display: inline-block;
padding: 20px 30px; padding: 13px 26px;
background-color: #CF5258; background-color: #CF5258;
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 119, 119, .8)), to(rgba(255, 73, 73, .2))); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 119, 119, .8)), to(rgba(255, 73, 73, .2)));
background-image: -webkit-linear-gradient(rgba(255, 119, 119, .8), rgba(255, 73, 73, .2)); background-image: -webkit-linear-gradient(rgba(255, 119, 119, .8), rgba(255, 73, 73, .2));
...@@ -312,4 +341,67 @@ header nav { ...@@ -312,4 +341,67 @@ header nav {
.button small { .button small {
color: #666; color: #666;
font-size: 12px; font-size: 12px;
} }
\ No newline at end of file
/*****************************/
.aquarius-base {
/*
border: 1px solid #1E72A1;
background: #84E4F6;
background: -moz-linear-gradient(top, rgba(132, 228, 246, 1) 1%, rgba(68, 175, 228, 1) 2%, rgba(47, 138, 216, 1) 96%, rgba(53, 159, 223, 1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,rgba(132, 228, 246, 1)), color-stop(2%,rgba(68, 175, 228, 1)), color-stop(96%,rgba(47, 138, 216, 1)), color-stop(100%,rgba(53, 159, 223, 1)));
background: -webkit-linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
background: -o-linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
background: -ms-linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
background: linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#84e4f6', endColorstr='#359fdf',GradientType=0 );
border-top: 1px solid #2077A5;
border-bottom: 1px solid #124E7E;
*/
background:#111;
}
.aquarius-buttonholder{
height: 60px;
width: 360px;
padding: 7px 10px 7px 20px;
-webkit-border-radius: 6px;
border-radius: 6px;
background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.26) 1%, rgba(255, 255, 255, 0.26) 96%, rgba(255, 255, 255, 0.26) 98%, rgba(255, 255, 255, 0.35) 99%, rgba(255, 255, 255, 0.44) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255, 255, 255, 1)), color-stop(1%,rgba(255, 255, 255, 0.26)), color-stop(96%,rgba(255, 255, 255, 0.26)), color-stop(98%,rgba(255, 255, 255, 0.26)), color-stop(99%,rgba(255, 255, 255, 0.35)), color-stop(100%,rgba(255, 255, 255, 0.44)));
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(255, 255, 255, 0.26) 1%,rgba(255, 255, 255, 0.26) 96%,rgba(255, 255, 255, 0.26) 98%,rgba(255, 255, 255, 0.35) 99%,rgba(255, 255, 255, 0.44) 100%);
background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(255, 255, 255, 0.26) 1%,rgba(255, 255, 255, 0.26) 96%,rgba(255, 255, 255, 0.26) 98%,rgba(255, 255, 255, 0.35) 99%,rgba(255, 255, 255, 0.44) 100%);
background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(255, 255, 255, 0.26) 1%,rgba(255, 255, 255, 0.26) 96%,rgba(255, 255, 255, 0.26) 98%,rgba(255, 255, 255, 0.35) 99%,rgba(255, 255, 255, 0.44) 100%);
background: linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(255, 255, 255, 0.26) 1%,rgba(255, 255, 255, 0.26) 96%,rgba(255, 255, 255, 0.26) 98%,rgba(255, 255, 255, 0.35) 99%,rgba(255, 255, 255, 0.44) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#70ffffff',GradientType=0 );
-webkit-box-shadow: 0px 1px 5px -1px rgba(20, 20, 20, 0.8);
box-shadow: 0px 1px 5px -1px rgba(20, 20, 20, 0.8);
}
.aquarius-button{
padding: 15px 22px;
top: 14px;
position: relative;
color:white;
-webkit-border-radius: 3px;
-webkit-font-smoothing: antialiased;
border-radius: 3px;
border: 1px solid #1E72A1;
background: #84E4F6;
background: -moz-linear-gradient(top, rgba(132, 228, 246, 1) 1%, rgba(68, 175, 228, 1) 2%, rgba(47, 138, 216, 1) 96%, rgba(53, 159, 223, 1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,rgba(132, 228, 246, 1)), color-stop(2%,rgba(68, 175, 228, 1)), color-stop(96%,rgba(47, 138, 216, 1)), color-stop(100%,rgba(53, 159, 223, 1)));
background: -webkit-linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
background: -o-linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
background: -ms-linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
background: linear-gradient(top, rgba(132, 228, 246, 1) 1%,rgba(68, 175, 228, 1) 2%,rgba(47, 138, 216, 1) 96%,rgba(53, 159, 223, 1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#84e4f6', endColorstr='#359fdf',GradientType=0 );
border-top: 1px solid #2077A5;
border-bottom: 1px solid #124E7E;
font-weight: bold;
font-size: 16px;
font-family: Helvetica, Arial, sans-serif;
letter-spacing: -1px;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment