[Pkg-javascript-commits] [backbone] 07/74: First semi-working version of the jQuer-ified example.
Jonas Smedegaard
js at moszumanska.debian.org
Sat May 3 16:59:04 UTC 2014
This is an automated email from the git hooks/post-receive script.
js pushed a commit to tag 0.3.0
in repository backbone.
commit 37b8fb72c4a5d02e6599a21d9fdf15d4fdde3b0d
Author: Jeremy Ashkenas <jashkenas at gmail.com>
Date: Mon Oct 25 12:49:02 2010 -0400
First semi-working version of the jQuer-ified example.
---
examples/todos/destroy.png | Bin 0 -> 1222 bytes
examples/todos/index.html | 56 +++++
.../todos/javascripts/backbone.localStorage.js | 153 ++++++++++++
examples/todos/javascripts/todos.js | 198 ++++++++++++++++
examples/todos/screen.css | 259 +++++++++++++++++++++
examples/todos/tooltip.css | 100 ++++++++
6 files changed, 766 insertions(+)
diff --git a/examples/todos/destroy.png b/examples/todos/destroy.png
new file mode 100644
index 0000000..53d829c
Binary files /dev/null and b/examples/todos/destroy.png differ
diff --git a/examples/todos/index.html b/examples/todos/index.html
new file mode 100644
index 0000000..ff936cb
--- /dev/null
+++ b/examples/todos/index.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Backbone Demo: Todos</title>
+ <link href="screen.css" media="all" rel="stylesheet" type="text/css"/>
+ <script src="../../test/vendor/jquery-1.4.2.js"></script>
+ <script src="../../test/vendor/underscore-1.1.0.js"></script>
+ <script src="../../backbone.js"></script>
+ <script src="javascripts/backbone.localStorage.js"></script>
+ <script src="javascripts/todos.js"></script>
+ </head>
+ <body>
+
+ <div id='todoapp'>
+
+ <div class='title'>
+ <h1>Todos</h1>
+ </div>
+
+ <div class='content'>
+
+ <div id='create-todo'>
+ <input id='new-todo' placeholder='What needs to be done?' type='text' />
+ <span class='ui-tooltip-top'>Press Enter to create this task</span>
+ </div>
+
+ <div id='todos'>
+ <ul id='todo-list'></ul>
+ </div>
+
+ <div id='todo-stats'>
+ <span class='todo-count'>
+ <span class='number'>0</span>
+ <span class='word'>todos</span>.
+ </span>
+ <span class='todo-clear'>
+ <a href='#'>Clear completed</a>
+ </span>
+ </div>
+
+ </div>
+
+ </div>
+
+ <ul id='instructions'>
+ <li>Double-click to edit a todo.</li>
+ </ul>
+
+ <div id='credits'>
+ Created by
+ <br />
+ <a href='http://jgn.me/'>Jérôme Gravel-Niquet</a>
+ </div>
+
+ </body>
+</html>
diff --git a/examples/todos/javascripts/backbone.localStorage.js b/examples/todos/javascripts/backbone.localStorage.js
new file mode 100644
index 0000000..135becc
--- /dev/null
+++ b/examples/todos/javascripts/backbone.localStorage.js
@@ -0,0 +1,153 @@
+// UUID
+function S4() {
+ return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
+};
+
+function guid() {
+ return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
+};
+
+Storage.prototype.setObject = function(key, value) {
+ this.setItem(key, JSON.stringify(value));
+}
+
+Storage.prototype.getObject = function(key) {
+ return this.getItem(key) && JSON.parse(this.getItem(key));
+}
+
+var Store = function(name) {
+ this.name = name;
+};
+
+_.extend(Store.prototype, {
+
+ create: function(model) {
+ this.data = localStorage.getObject(this.name);
+
+ if (!this.data) {
+ this.data = [];
+ }
+
+ if (!model.id) model.attributes.id = guid();
+
+ this.data.push(model);
+
+ localStorage.setObject(this.name, this.data);
+
+ return {model: model, status: "success"};
+ },
+
+ update: function(model) {
+ var newData = [];
+ var succeeded = false;
+
+ this.data = localStorage.getObject(this.name);
+
+ if (!this.data) {
+ this.data = [];
+ }
+
+ newData = _.map(this.data, function(i) {
+ if (i.id == model.id) {
+ succeeded = true;
+ return model
+ } else {
+ return i
+ }
+ });
+
+ if (!succeeded) {
+ this.create(model)
+ } else {
+ localStorage.setObject(this.name, newData);
+ }
+
+ return {model: model, status: "success"};
+ },
+
+ find: function(model) {
+ var record;
+
+ this.data = localStorage.getObject(this.name);
+
+ if (!this.data) {
+ this.data = [];
+ }
+
+ _.each(this.data, function(item) {
+ if (item.id == model.id) {
+ record = item;
+ _.breakLoop();
+ }
+ });
+
+ if (typeof(record) == 'object') {
+ return {model: record, status: "success"};
+ } else {
+ return {error: "Record Not Found.", status: "error"};
+ }
+ },
+
+ findAll: function() {
+ this.data = localStorage.getObject(this.name);
+
+ if (!this.data) {
+ this.data = [];
+ }
+
+ return {models: this.data, status: "success"};
+ },
+
+ destroy: function(model) {
+ var newData = [];
+ var recordKey;
+ var succeeded = false;
+
+ this.data = localStorage.getObject(this.name);
+
+ if (!this.data) {
+ this.data = [];
+ }
+
+ _.each(this.data, function(item, key) {
+ if (item.id == model.id) {
+ succeeded = true;
+ recordKey = key;
+ _.breakLoop();
+ }
+ });
+
+ if (succeeded) this.data.splice(recordKey, 1);
+
+ localStorage.setObject(this.name, this.data);
+
+ if (succeeded) {
+ return {model: model, status: "success"};
+ } else {
+ return {error: "Record Not Found.", status: "error"}
+ }
+ }
+
+});
+
+Backbone.sync = function(method, model, success, error) {
+
+ var resp;
+ var store = model.localStore ? model.localStore : model.collection.localStore;
+
+ if (method === "read") {
+ resp = model.id ? store.find(model) : store.findAll();
+ } else if (method === "create") {
+ resp = store.create(model);
+ } else if (method === "update") {
+ resp = store.update(model);
+ } else if (method === "delete") {
+ resp = store.destroy(model);
+ }
+
+ if (resp.status == "success") {
+ success(resp);
+ } else if (resp.status == "error" && error) {
+ error(resp);
+ }
+};
\ No newline at end of file
diff --git a/examples/todos/javascripts/todos.js b/examples/todos/javascripts/todos.js
new file mode 100644
index 0000000..339b29c
--- /dev/null
+++ b/examples/todos/javascripts/todos.js
@@ -0,0 +1,198 @@
+$(function(){
+
+ // Todo
+ window.Todo = Backbone.Model.extend({
+
+ parse: function(resp) {
+ return resp.model;
+ }
+
+ });
+
+ // Todo List
+ window.TodoList = Backbone.Collection.extend({
+
+ model: Todo,
+ localStore: new Store("tasks"),
+
+ // Returns all done todos.
+ done: function() {
+ return this.select(function(todo){
+ return todo.get('done');
+ });
+ },
+
+ comparator: function(todo) {
+ return todo.id;
+ },
+
+ parse: function(resp) {
+ return resp.models;
+ }
+
+ });
+
+ window.Todos = new TodoList;
+
+ window.TodoView = Backbone.View.extend({
+
+ tagName: "li",
+ className: "todo",
+
+ template: _.template("<input type='checkbox' /><div class='todo-content'><%= content %></div><span class='todo-destroy'></span>"),
+ editTemplate: _.template("<input type='text' value='<%= content %>' />"),
+
+ events: {
+ "click input[type=checkbox]": "markAsDone",
+ "dblclick div.todo-content" : "edit",
+ "click span.todo-destroy" : "destroy",
+ "keypress input[type=text]" : "changed"
+ },
+
+ initialize: function() {
+ _.bindAll(this, 'toggleDone');
+ this.model.bind('change:done', this.toggleDone);
+ },
+
+ render: function() {
+ $(this.el).html(this.template(this.model.toJSON()));
+ $(this.el).attr({id : "todo-"+this.model.get("id")});
+ this.checkbox = this.$("input[type=checkbox]");
+ this.toggleDone();
+ return this;
+ },
+
+ toggleDone: function() {
+ if (this.model.get('done')) {
+ $(this.el).addClass("done");
+ this.checkbox.attr({checked: "checked"});
+ } else {
+ $(this.el).removeClass("done");
+ this.checkbox.attr({checked: null});
+ }
+ },
+
+ markAsDone: function() {
+ this.model.save({ done: !this.model.get("done") });
+ },
+
+ edit: function() {
+ $(this.el).html(this.editTemplate(this.model.toJSON()));
+ $(this.el).addClass("editing");
+ this.updateInput = this.$("input[type=text]");
+ },
+
+ changed: function(e) {
+ if (e.code == 13) {
+ var thisView = this;
+ this.model.save(
+ {
+ content: this.updateInput.val()
+ },
+ {
+ success: function(todo) {
+ thisView.render();
+ $(thisView.el).removeClass("editing");
+ }
+ }
+ );
+ }
+ },
+
+ destroy: function() {
+ var thisView = this;
+ this.model.destroy({
+ success: function(){
+ $(thisView.el).remove();
+ }
+ });
+ }
+
+ });
+
+ window.AppView = Backbone.View.extend({
+
+ el: $("#todoapp"),
+
+ events: {
+ "keypress input#new-todo": "createIfEnter",
+ "keyup input#new-todo": "showTooltip",
+ "click span.todo-clear": "clearCompleted"
+ },
+
+ initialize: function() {
+ _.bindAll(this, 'addTodo', 'clearCompleted', 'showTooltip', 'createIfEnter', 'analyzeTodos');
+
+ Todos.bind('add', this.addTodo);
+
+ this.list = $("#todo-list");
+ this.newInput = $("#new-todo");
+ this.tooltip = this.$(".ui-tooltip-top");
+
+ Todos.fetch({
+ success: _.bind(function(coll) {
+ _.each(coll.models, this.addTodo);
+ }, this)
+ });
+
+ this.analyzeTodos();
+
+ Todos.bind("add", this.analyzeTodos);
+ Todos.bind("remove", this.analyzeTodos);
+ Todos.bind("change", this.analyzeTodos);
+ },
+
+ analyzeTodos: function() {
+ var doneCount = Todos.done().length;
+ var todoCount = Todos.length;
+ var totalCount = todoCount - doneCount;
+
+ this.$(".number").text(totalCount);
+ this.$(".word").text(totalCount == 1 ? 'todo' : 'todos');
+ this.$("span.todo-count").css({display: todoCount > 0 ? "inline" : "none"});
+ this.$("span.todo-clear").css({display: doneCount > 0 ? "inline" : "none"});
+ },
+
+ addTodo: function(todo) {
+ var view = new TodoView({model: todo});
+ this.list.append(view.render().el);
+ },
+
+ createIfEnter: function(e) {
+ if (e.keyCode == 13) {
+ Todos.create({
+ content: this.newInput.val(),
+ done: false
+ });
+ this.newInput.setProperty("value", "");
+ }
+ },
+
+ showTooltip: function(e) {
+ this.tooltip.fadeOut();
+
+ if (this.tooltipTimeout) clearTimeout(this.tooltipTimeout);
+
+ var tt = this.tooltip;
+
+ if (this.newInput.val() !== "" && this.newInput.val() !== this.newInput.attr('placeholder')) {
+ this.tooltipTimeout = setTimeout(function(){
+ tt.fadeIn();
+ }, 1000);
+ }
+ },
+
+ clearCompleted: function() {
+ thisView = this;
+ _.each(Todos.done(), function(todo){
+ todo.destroy({success: function(todo){
+ thisView.$("#todo-"+todo.id).remove();
+ }});
+ });
+ }
+
+ });
+
+ window.App = new AppView;
+
+});
\ No newline at end of file
diff --git a/examples/todos/screen.css b/examples/todos/screen.css
new file mode 100644
index 0000000..a6cdc92
--- /dev/null
+++ b/examples/todos/screen.css
@@ -0,0 +1,259 @@
+ at import url(tooltip.css);
+/* line 14, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-weight: inherit;
+ font-style: inherit;
+ font-size: 100%;
+ font-family: inherit;
+ vertical-align: baseline;
+}
+
+/* line 17, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+body {
+ line-height: 1;
+ color: black;
+ background: white;
+}
+
+/* line 19, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+ol, ul {
+ list-style: none;
+}
+
+/* line 21, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+table {
+ border-collapse: separate;
+ border-spacing: 0;
+ vertical-align: middle;
+}
+
+/* line 23, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+caption, th, td {
+ text-align: left;
+ font-weight: normal;
+ vertical-align: middle;
+}
+
+/* line 25, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+q, blockquote {
+ quotes: "" "";
+}
+/* line 96, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+q:before, q:after, blockquote:before, blockquote:after {
+ content: "";
+}
+
+/* line 27, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+a img {
+ border: none;
+}
+
+/* line 6 */
+html {
+ background: #eeeeee;
+}
+
+/* line 9 */
+body {
+ font-family: "Helvetica Neue", helvetica, arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.4em;
+ background: #eeeeee;
+ color: #333333;
+}
+
+/* line 17 */
+#todoapp {
+ width: 480px;
+ margin: 40px auto;
+ background: white;
+ padding: 20px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.3) 0 2px 4px 0;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0 2px 4px 0;
+ -o-box-shadow: rgba(0, 0, 0, 0.3) 0 2px 4px 0;
+ box-shadow: rgba(0, 0, 0, 0.3) 0 2px 4px 0;
+}
+/* line 24 */
+#todoapp .title h1 {
+ font-size: 36px;
+ font-weight: bold;
+ text-align: center;
+ padding: 20px 0 30px 0;
+ line-height: 1;
+}
+/* line 31 */
+#todoapp .content #create-todo {
+ position: relative;
+}
+/* line 33 */
+#todoapp .content #create-todo input {
+ width: 466px;
+ font-size: 24px;
+ font-family: inherit;
+ line-height: 1.4em;
+ border: 0;
+ outline: none;
+ padding: 6px;
+ border: 1px solid #999999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+ -o-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+ box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+}
+/* line 44 */
+#todoapp .content #create-todo input::-webkit-input-placeholder {
+ font-style: italic;
+}
+/* line 46 */
+#todoapp .content #create-todo span {
+ position: absolute;
+ z-index: 999;
+ width: 170px;
+ left: 50%;
+ margin-left: -85px;
+ opacity: 0;
+}
+/* line 54 */
+#todoapp .content ul#todo-list {
+ margin-top: 10px;
+}
+/* line 56 */
+#todoapp .content ul#todo-list li {
+ padding: 15px 20px 15px 0;
+ position: relative;
+ font-size: 24px;
+ border-bottom: 1px solid #cccccc;
+ *zoom: 1;
+}
+/* line 22, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */
+#todoapp .content ul#todo-list li:after {
+ content: "\0020";
+ display: block;
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+/* line 62 */
+#todoapp .content ul#todo-list li.editing {
+ padding: 0;
+ border-bottom: 0;
+}
+/* line 65 */
+#todoapp .content ul#todo-list li.editing input {
+ width: 466px;
+ font-size: 24px;
+ font-family: inherit;
+ line-height: 1.4em;
+ border: 0;
+ outline: none;
+ padding: 6px;
+ border: 1px solid #999999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+ -o-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+ box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
+}
+/* line 76 */
+#todoapp .content ul#todo-list li input[type=checkbox] {
+ position: relative;
+ top: 6px;
+ margin: 0 10px 0 7px;
+ float: left;
+}
+/* line 82 */
+#todoapp .content ul#todo-list li.done .todo-content {
+ text-decoration: line-through;
+ color: #777777;
+}
+/* line 85 */
+#todoapp .content ul#todo-list li .todo-destroy {
+ position: absolute;
+ right: 0px;
+ top: 16px;
+ display: none;
+ cursor: pointer;
+ width: 20px;
+ height: 20px;
+ background: url(destroy.png) no-repeat center center;
+}
+/* line 95 */
+#todoapp .content ul#todo-list li:hover .todo-destroy {
+ display: block;
+}
+/* line 98 */
+#todoapp .content #todo-stats {
+ *zoom: 1;
+ margin-top: 10px;
+ color: #777777;
+}
+/* line 22, /opt/ree/lib/ruby/gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */
+#todoapp .content #todo-stats:after {
+ content: "\0020";
+ display: block;
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+/* line 102 */
+#todoapp .content #todo-stats .todo-count {
+ display: none;
+ float: left;
+}
+/* line 105 */
+#todoapp .content #todo-stats .todo-count .number {
+ font-weight: bold;
+ color: #333333;
+}
+/* line 108 */
+#todoapp .content #todo-stats .todo-clear {
+ float: right;
+ display: none;
+}
+/* line 111 */
+#todoapp .content #todo-stats .todo-clear a {
+ color: #777777;
+ font-size: 12px;
+}
+/* line 114 */
+#todoapp .content #todo-stats .todo-clear a:visited {
+ color: #777777;
+}
+/* line 116 */
+#todoapp .content #todo-stats .todo-clear a:hover {
+ color: #336699;
+}
+
+/* line 120 */
+#instructions {
+ width: 520px;
+ margin: 10px auto;
+ color: #777777;
+ text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0;
+ text-align: center;
+}
+
+/* line 127 */
+#credits {
+ width: 520px;
+ margin: 30px auto;
+ color: #777777;
+ text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0;
+ text-align: center;
+}
+/* line 133 */
+#credits a {
+ color: #336699;
+}
diff --git a/examples/todos/tooltip.css b/examples/todos/tooltip.css
new file mode 100644
index 0000000..469998e
--- /dev/null
+++ b/examples/todos/tooltip.css
@@ -0,0 +1,100 @@
+/*
+ * François 'cahnory' Germain
+ */
+.ui-tooltip, .ui-tooltip-top, .ui-tooltip-right, .ui-tooltip-bottom, .ui-tooltip-left {
+ color:#ffffff;
+ cursor:normal;
+ display:-moz-inline-stack;
+ display:inline-block;
+ font-size:12px;
+ font-family:arial;
+ padding:.5em 1em;
+ position:relative;
+ text-align:center;
+ text-shadow:0 -1px 1px #111111;
+ -webkit-border-top-left-radius:4px ;
+ -webkit-border-top-right-radius:4px ;
+ -webkit-border-bottom-right-radius:4px ;
+ -webkit-border-bottom-left-radius:4px ;
+ -khtml-border-top-left-radius:4px ;
+ -khtml-border-top-right-radius:4px ;
+ -khtml-border-bottom-right-radius:4px ;
+ -khtml-border-bottom-left-radius:4px ;
+ -moz-border-radius-topleft:4px ;
+ -moz-border-radius-topright:4px ;
+ -moz-border-radius-bottomright:4px ;
+ -moz-border-radius-bottomleft:4px ;
+ border-top-left-radius:4px ;
+ border-top-right-radius:4px ;
+ border-bottom-right-radius:4px ;
+ border-bottom-left-radius:4px ;
+ -o-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
+ -moz-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
+ -khtml-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
+ -webkit-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
+ box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
+ background-color:#3b3b3b;
+ background-image:-moz-linear-gradient(top,#555555,#222222);
+ background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#555555),color-stop(1,#222222));
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#555555,EndColorStr=#222222);
+ -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#555555,EndColorStr=#222222);
+}
+.ui-tooltip:after, .ui-tooltip-top:after, .ui-tooltip-right:after, .ui-tooltip-bottom:after, .ui-tooltip-left:after {
+ content:"\25B8";
+ display:block;
+ font-size:2em;
+ height:0;
+ line-height:0;
+ position:absolute;
+}
+.ui-tooltip:after, .ui-tooltip-bottom:after {
+ color:#2a2a2a;
+ bottom:0;
+ left:1px;
+ text-align:center;
+ text-shadow:1px 0 2px #000000;
+ -o-transform:rotate(90deg);
+ -moz-transform:rotate(90deg);
+ -khtml-transform:rotate(90deg);
+ -webkit-transform:rotate(90deg);
+ width:100%;
+}
+.ui-tooltip-top:after {
+ bottom:auto;
+ color:#4f4f4f;
+ left:-2px;
+ top:0;
+ text-align:center;
+ text-shadow:none;
+ -o-transform:rotate(-90deg);
+ -moz-transform:rotate(-90deg);
+ -khtml-transform:rotate(-90deg);
+ -webkit-transform:rotate(-90deg);
+ width:100%;
+}
+.ui-tooltip-right:after {
+ color:#222222;
+ right:-0.375em;
+ top:50%;
+ margin-top:-.05em;
+ text-shadow:0 1px 2px #000000;
+ -o-transform:rotate(0);
+ -moz-transform:rotate(0);
+ -khtml-transform:rotate(0);
+ -webkit-transform:rotate(0);
+}
+.ui-tooltip-left:after {
+ color:#222222;
+ left:-0.375em;
+ top:50%;
+ margin-top:.1em;
+ text-shadow:0 -1px 2px #000000;
+ -o-transform:rotate(180deg);
+ -moz-transform:rotate(180deg);
+ -khtml-transform:rotate(180deg);
+ -webkit-transform:rotate(180deg);
+}
+
+/* demo css */
+h2 { margin: 2em 0 1em; }
+p { margin: 0 0 1em; }
\ No newline at end of file
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/backbone.git
More information about the Pkg-javascript-commits
mailing list