├── offline.js
├── logo.png
├── summer.jpg
├── winter.jpg
├── favicon.ico
├── apple-touch-icon-precomposed.png
├── .htaccess
├── master.css
├── cache.manifest
├── .gitmodules
├── prettify.css
├── lang-css.js
├── package.json
├── README.md
├── Gruntfile.js
├── online.js
├── add2home.css
├── dark.css
├── add2home.js
├── style.css
├── prettify.js
├── min
├── index.php
└── style.css
├── index.html
└── fd-slider.css
/offline.js:
--------------------------------------------------------------------------------
1 | function insert_sm() {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimonWaldherr/selfCSS/HEAD/logo.png
--------------------------------------------------------------------------------
/summer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimonWaldherr/selfCSS/HEAD/summer.jpg
--------------------------------------------------------------------------------
/winter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimonWaldherr/selfCSS/HEAD/winter.jpg
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimonWaldherr/selfCSS/HEAD/favicon.ico
--------------------------------------------------------------------------------
/apple-touch-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimonWaldherr/selfCSS/HEAD/apple-touch-icon-precomposed.png
--------------------------------------------------------------------------------
/.htaccess:
--------------------------------------------------------------------------------
1 | AddType text/cache-manifest manifest
2 |
3 | ExpiresActive On
4 | ExpiresDefault "access"
5 |
--------------------------------------------------------------------------------
/master.css:
--------------------------------------------------------------------------------
1 | /* master.css */
2 | @import url(./submodules/fd-slider/css/fd-slider.css);
3 | @import url(./submodules/add2home/style/add2home.css);
4 | @import url(./style.css);
5 | @import url(./dark.css);
6 | @import url(./prettify.css);
7 |
--------------------------------------------------------------------------------
/cache.manifest:
--------------------------------------------------------------------------------
1 | CACHE MANIFEST
2 | #v.:21.07.2013
3 | #time:13:44:00
4 |
5 | CACHE:
6 | http://selfcss.org/
7 | http://selfcss.org/script.js
8 | http://selfcss.org/style.css
9 | http://selfcss.org/favicon.ico
10 | http://selfcss.org/logo.png
11 | http://selfcss.org/apple-touch-icon-precomposed.png
12 | http://selfcss.org/summer.jpg
13 | http://selfcss.org/winter.jpg
14 |
15 | NETWORK:
16 | *
17 |
18 | FALLBACK:
19 | http://selfcss.org/online.js http://selfcss.org/offline.js
20 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "submodules/add2home"]
2 | path = submodules/add2home
3 | url = https://github.com/cubiq/add-to-homescreen
4 | [submodule "submodules/webgl-filter"]
5 | path = submodules/webgl-filter
6 | url = https://github.com/evanw/webgl-filter/
7 | [submodule "submodules/fd-slider"]
8 | path = submodules/fd-slider
9 | url = https://github.com/freqdec/fd-slider
10 | [submodule "submodules/pulltorefresh"]
11 | path = submodules/pulltorefresh
12 | url = https://SimonWaldherr@github.com/SimonWaldherr/PullToRefresh.git
13 |
--------------------------------------------------------------------------------
/prettify.css:
--------------------------------------------------------------------------------
1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
--------------------------------------------------------------------------------
/lang-css.js:
--------------------------------------------------------------------------------
1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
3 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "selfcss",
3 | "title": "selfCSS",
4 | "description": "a CSS3 WYSIWYG Editor/Generator (in HTML5, CSS3 and JS)",
5 | "version": "0.9.2",
6 | "homepage": "http://selfcss.org/",
7 | "author": {
8 | "name": "Simon Waldherr",
9 | "email": "contact@simonwaldherr.de",
10 | "url": "http://simon.waldherr.eu/"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "https://github.com/SimonWaldherr/selfCSS.git"
15 | },
16 | "bugs": {
17 | "url": "https://github.com/SimonWaldherr/selfCSS/issues"
18 | },
19 | "licenses": [
20 | {
21 | "type": "MIT",
22 | "url": "http://simon.waldherr.eu/license/mit/"
23 | }
24 | ],
25 | "dependencies": {},
26 | "devDependencies": {
27 | "grunt": ">= 0.4.1",
28 | "grunt-contrib-concat": ">= 0.3.0",
29 | "grunt-contrib-uglify": ">= 0.2.2",
30 | "grunt-contrib-cssmin": ">= 0.6.0",
31 | "gzip-js": ">= 0.3.1"
32 | },
33 | "keywords": [
34 | "css",
35 | "wysiwyg",
36 | "editor",
37 | "webapp",
38 | "css3",
39 | "html5"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # selfCSS
2 |
3 | [](https://zenodo.org/badge/latestdoi/6564234)
4 | [](https://opensource.org/licenses/MIT)
5 |
6 | [selfCSS](http://selfcss.org/) a CSS3 WYSIWYG Editor/Generator (in HTML5, CSS3 and JS)
7 |
8 | ## about
9 | License: MIT
10 | Version: 0.9.2
11 | Date: 03.2014
12 |
13 | ## contact
14 | Feel free to contact me via [eMail](mailto:contact@selfcss.org) or on [Twitter](http://twitter.com/simonwaldherr). This software will be continually developed. Suggestions and tips are always welcome.
15 |
16 | ## resources
17 | This Software uses the following open-source codes:
18 |
19 | * Style and look of [webgl-filter](https://github.com/evanw/webgl-filter/) provided under the terms of MIT license by [Evan Wallace](http://madebyevan.com/).
20 | * Input Range Polyfill [fd-slider](https://github.com/freqdec/fd-slider) provided under the terms of MIT license by [Brian McAllister](http://www.frequency-decoder.com/).
21 | * [Add to Home Screen](http://cubiq.org/add-to-home-screen) provided under the terms of MIT license by [Matteo Spinelli](http://cubiq.org/).
22 | * [Pull to Refresh](https://github.com/SimonWaldherr/PullToRefresh) provided under the terms of MIT license by me ([Simon Waldherr](http://simon.waldherr.eu/)).
23 | * [The rest of this code](https://github.com/SimonWaldherr/selfCSS) is provided under the terms of MIT license by me ([Simon Waldherr](http://simon.waldherr.eu/)).
24 |
25 | ```More Information about the license on Wikipedia: en.wikipedia.org/wiki/MIT_License```
26 |
--------------------------------------------------------------------------------
/Gruntfile.js:
--------------------------------------------------------------------------------
1 | module.exports = function(grunt) {
2 | gzip = require("gzip-js");
3 | grunt.initConfig({
4 | pkg: grunt.file.readJSON('package.json'),
5 | concat: {
6 | options: {
7 | separator: '\n\n'
8 | },
9 | dist: {
10 | src: ['./script.js', './submodules/add2home/src/add2home.js', 'fd-slider.js', 'prettify.js', './submodules/pulltorefresh/ptr.js'],
11 | dest: './min/script.dev.js'
12 | }
13 | },
14 | uglify: {
15 | options: {
16 | banner: '/* * * * * * * * * *\n' +
17 | ' * selfCSS *\n' +
18 | ' * Version <%= pkg.version %> *\n' +
19 | ' * License: MIT *\n' +
20 | ' * Simon Waldherr *\n' +
21 | ' * * * * * * * * * */\n\n',
22 | footer: '\n\n\n\n /* foo */'
23 | },
24 | dist: {
25 | files: {
26 | './min/script.js': ['./min/script.dev.js']
27 | }
28 | }
29 | },
30 | cssmin: {
31 | add_banner: {
32 | options: {
33 | banner: '/* * * * * * * * * *\n' +
34 | ' * selfCSS *\n' +
35 | ' * Version <%= pkg.version %> *\n' +
36 | ' * License: MIT *\n' +
37 | ' * Simon Waldherr *\n' +
38 | ' * * * * * * * * * */\n\n'
39 | },
40 | files: {
41 | './min/style.css': ['./submodules/fd-slider/css/fd-slider.css', './submodules/add2home/style/add2home.css', './style.css', './dark.css', './prettify.css']
42 | }
43 | }
44 | }
45 | });
46 | grunt.loadNpmTasks('grunt-contrib-uglify');
47 | grunt.loadNpmTasks('grunt-contrib-concat');
48 | grunt.loadNpmTasks('grunt-contrib-cssmin');
49 | grunt.registerTask('default', ['concat', 'uglify', 'cssmin']);
50 | };
51 |
--------------------------------------------------------------------------------
/online.js:
--------------------------------------------------------------------------------
1 | function insert_sm() {
2 | if($id('sm_container')) {
3 | $id('sm_container').innerHTML = '
';
4 | }
5 |
6 | /* */
15 |
16 | (function() {
17 | var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
18 | ga.src = 'https://apis.google.com/js/plusone.js';
19 | var gs = document.getElementsByTagName('script')[0]; gs.parentNode.insertBefore(ga, gs);
20 | })();
21 |
22 | (function() {
23 | var tn = document.createElement("script"); tn.type = "text/javascript"; tn.async = true;
24 | tn.src = "http://t3n.de/aggregator/ebutton_async";
25 | var ts = document.getElementsByTagName("script")[0]; ts.parentNode.insertBefore(tn, ts);
26 | })();
27 | }
28 |
--------------------------------------------------------------------------------
/add2home.css:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * Main container
4 | *
5 | */
6 | #addToHomeScreen {
7 | z-index:9999;
8 | -webkit-user-select:none;
9 | -webkit-box-sizing:border-box;
10 | width:240px;
11 | font-size:15px;
12 | padding:12px 14px;
13 | text-align:left;
14 | font-family:helvetica;
15 | background-image:-webkit-gradient(linear,0 0,0 100%,color-stop(0,#fff),color-stop(0.02,#eee),color-stop(0.98,#ccc),color-stop(1,#a3a3a3));
16 | border:1px solid #505050;
17 | -webkit-border-radius:8px;
18 | -webkit-background-clip:padding-box;
19 | color:#333;
20 | text-shadow:0 1px 0 rgba(255,255,255,0.75);
21 | line-height:130%;
22 | -webkit-box-shadow:0 0 4px rgba(0,0,0,0.5);
23 | }
24 |
25 | #addToHomeScreen.addToHomeIpad {
26 | width:268px;
27 | font-size:18px;
28 | padding:14px;
29 | }
30 |
31 | /**
32 | *
33 | * The 'wide' class is added when the popup contains the touch icon
34 | *
35 | */
36 | #addToHomeScreen.addToHomeWide {
37 | width:296px;
38 | }
39 |
40 | #addToHomeScreen.addToHomeIpad.addToHomeWide {
41 | width:320px;
42 | font-size:18px;
43 | padding:14px;
44 | }
45 |
46 | /**
47 | *
48 | * The balloon arrow
49 | *
50 | */
51 | #addToHomeScreen .addToHomeArrow {
52 | position:absolute;
53 | background-image:-webkit-gradient(linear,0 0,100% 100%,color-stop(0,rgba(204,204,204,0)),color-stop(0.4,rgba(204,204,204,0)),color-stop(0.4,#ccc));
54 | border-width:0 1px 1px 0;
55 | border-style:solid;
56 | border-color:#505050;
57 | width:16px; height:16px;
58 | -webkit-transform:rotateZ(45deg);
59 | bottom:-9px; left:50%;
60 | margin-left:-8px;
61 | -webkit-box-shadow:inset -1px -1px 0 #a9a9a9;
62 | -webkit-border-bottom-right-radius:2px;
63 | }
64 |
65 |
66 | /**
67 | *
68 | * The balloon arrow for iPad
69 | *
70 | */
71 | #addToHomeScreen.addToHomeIpad .addToHomeArrow {
72 | -webkit-transform:rotateZ(-135deg);
73 | background-image:-webkit-gradient(linear,0 0,100% 100%,color-stop(0,rgba(238,238,238,0)),color-stop(0.4,rgba(238,238,238,0)),color-stop(0.4,#eee));
74 | -webkit-box-shadow:inset -1px -1px 0 #fff;
75 | top:-9px; bottom:auto; left:50%;
76 | }
77 |
78 |
79 | /**
80 | *
81 | * Close button
82 | *
83 | */
84 | #addToHomeScreen .addToHomeClose {
85 | -webkit-box-sizing:border-box;
86 | position:absolute;
87 | right:4px;
88 | top:4px;
89 | width:18px;
90 | height:18px; line-height:14px;
91 | text-align:center;
92 | text-indent:1px;
93 | -webkit-border-radius:9px;
94 | background:rgba(0,0,0,0.12);
95 | color:#707070;
96 | -webkit-box-shadow:0 1px 0 #fff;
97 | font-size:16px;
98 | }
99 |
100 |
101 | /**
102 | *
103 | * The '+' icon, displayed only on iOS < 4.2
104 | *
105 | */
106 | #addToHomeScreen .addToHomePlus {
107 | font-weight:bold;
108 | font-size:1.3em;
109 | }
110 |
111 |
112 | /**
113 | *
114 | * The 'share' icon, displayed only on iOS >= 4.2
115 | *
116 | */
117 | #addToHomeScreen .addToHomeShare {
118 | display:inline-block;
119 | width:18px;
120 | height:15px;
121 | background-repeat:no-repeat;
122 | background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAPCAQAAABDj1eZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUdJREFUKFNtkLtLw1AYxS/qJLhXVKr2ZRulUNtiqgSb3CziICI6ucTFVYcOnaQOFRwUnNTRwUWXgpP/QdHNUEQUHGxofYBTlRs83iZNjKTncOGe7/vx3QchXUWn6FL3jhfKUdCCr5zuifV5oDiHQM+c+CIhiiCSWNu08iq9oHXKLAiqrgR4UXqlOEYZt++ExEL0wW7+OW0G10muLv9gmqfe5FAWKmTMYQYiFL7PYwyLOD8lSjNh2gdnPzMII4QUBxc4OothbAF7GCBKQ0YbSWyPQsIhqvetS+y0ygGMo/KFZfviDvR4AhwgZU9dGYnA0J/6ndc15i3ouYIMcVVUcEXIoOxCeRCfwP8sXBSdjtpUv/1QW+K16kCCIUC4id9Fa0JtkluwVkSfqPL6RwfSDA0aNlx7k/bWgViB7bMS2/1vk5sdsZLN/ALSuL3tylO4RAAAAABJRU5ErkJggg==);
123 | background-size:18px 15px;
124 | text-indent:-9999em;
125 | overflow:hidden;
126 | }
127 |
128 |
129 | /**
130 | *
131 | * The touch icon (if available)
132 | *
133 | */
134 | #addToHomeScreen .addToHomeTouchIcon {
135 | display:block;
136 | float:left;
137 | -webkit-border-radius:6px;
138 | -webkit-box-shadow:0 1px 3px rgba(0,0,0,0.5),
139 | inset 0 0 2px rgba(255,255,255,0.9);
140 | background-repeat:no-repeat;
141 | width:57px; height:57px;
142 | -webkit-background-size:57px 57px;
143 | margin:0 12px 0 0;
144 | border:1px solid #333;
145 | -webkit-background-clip:padding-box;
146 | }
147 |
148 |
149 | /**
150 | *
151 | * The 'share' icon for retina display
152 | *
153 | */
154 | @media all and (-webkit-min-device-pixel-ratio: 2) {
155 | #addToHomeScreen .addToHomeShare {
156 | background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAQAAADu6HTYAAADPElEQVR4Xq3TX2gcRRzA8e/M7mVv2+TSNpc/TZtrY6jUGqgaSAmEChKLrYK0YH0RFC2CSCkEfCghiKU04J8qNigq6os+iQV98MHWFwVBrQQRWs21lBw5cw3NNb1/udu72RGG5Y77IzXW77D7sAwf5scyYoL6BGXSDKFZwaGpLvIUaeoCkvX1MmsM0Ny6oRSQYOLuIS+YZOpfQdqslpUxcZrzTVAz4qPwW2O3CeIwC/RSzeY6Ow1QhUrkr+YOWfEKDkEP8Rij7CHKJmrFSDHBdwGEE5wiGChPN+PnT8VdRtEIl1d4gRj/1EVe5ZSBKGh8iqQpo/Fo5+3C/gz0MYg4zgwbqday1/Q4B8BGQ45d/Hi54lakCrU5obOcidJpu1+Lg9whjabyaOYLnrIBFFaRD+xe2ybMDWY66GmP/WA9cGfGp0CWhy0wkMN8inepFiH2rV1j0NQSNQbFLRQnS8/8YSDBBpadfv4CYDub2fmeHDNAsL1MBWUel0iA+Xik6eHcyvD3vAMSU1TGuA/YRS+dD7ovCQN43GKRFCU20Kd3V/avDVVyAZ5niTEuLA5/zBGWg9EEEhfJKN200Tat8CmRAQb9+wv7soPlHt2tQorsz1uPbr0HTY4sJwrH47zJZwABBAKLMBoQXepwgTwdHCo+fXMkQ4lrxEmQ5AaXipPqDY9V2vn09tgvTPI71EEGYxM+/uMJLJ4svpgaWGKOi/xKgmqLSUGSUd5f2vIVJ/CgBaTIUsZ7ZBsn0+NzfMOXLFCXQyTcybN6ep5ZZgUOHn7jpfUpsZshdugPGf+E5zjbyHTSRyQ8xfRPPM/s63RHeuknSoT22mjmmnAOIMkUZ6D1xSfPPAfd1WFKM3sO2CMaHx8M1NjnXKHaAGGkOW0C02WeYHUz4qMtx+w5gUDS8NckYe5lHsMYwCZEPyEEmjLDZFmAS7CDviMdxyTkMNVBKEmYLvbiQQBIBBbCQG04bGQvFWz6CfsCQLWCigILFwcfkGYBiOpbYuOizTAyYyDdCtrGaRG1LCkIgMYEFhI0WqQZoSlbGRyHKe4qOx7iv2bVQW9dp4dlM/x6kmwnWQcd/Q3FCqwTEiT5s+6D5v/pb0SSHyg7uhMWAAAAAElFTkSuQmCC);
157 | }
158 | }
159 |
--------------------------------------------------------------------------------
/dark.css:
--------------------------------------------------------------------------------
1 | a { color: #FC0;}
2 |
3 | body {
4 | background: #FDFDFD;
5 | color: white;
6 | }
7 |
8 | .ui-slider-handle {
9 | background: -moz-linear-gradient(#4B4947, #32302D);
10 | background: -webkit-gradient(linear, left top, left bottom, from(#4B4947), to(#32302D));
11 | box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
12 | -moz-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
13 | -webkit-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
14 | }
15 |
16 | .ui-state-active {
17 | background: -moz-linear-gradient(#6B6967, #42403D);
18 | background: -webkit-gradient(linear, left top, left bottom, from(#6B6967), to(#42403D));
19 | }
20 |
21 | .button, .segment {
22 | background: -moz-linear-gradient(#4B4947, #32302D);
23 | background: -webkit-gradient(linear, left top, left bottom, from(#4B4947), to(#32302D));
24 | box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
25 | -moz-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
26 | -webkit-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
27 | }
28 |
29 | .button:active {
30 | background: #272727;
31 | box-shadow: inset 0 0 10px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
32 | -moz-box-shadow: inset 0 0 10px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
33 | -webkit-box-shadow: inset 0 0 10px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
34 | }
35 |
36 | .button.disabled {
37 | color: #111;
38 | text-shadow: 0 1px 0 #4B4947;
39 | background: -moz-linear-gradient(#3B3937, #2B2927);
40 | background: -webkit-gradient(linear, left top, left bottom, from(#3B3937), to(#2B2927));
41 | box-shadow: inset 0 1px 0 #4B4947, 0 -1px 0 #111, 0 1px 0 #111, -1px 0 0 #111, 1px 0 0 #111, 0 1px 1px #111;
42 | -moz-box-shadow: inset 0 1px 0 #4B4947, 0 -1px 0 #111, 0 1px 0 #111, -1px 0 0 #111, 1px 0 0 #111, 0 1px 1px #111;
43 | -webkit-box-shadow: inset 0 1px 0 #4B4947, 0 -1px 0 #111, 0 1px 0 #111, -1px 0 0 #111, 1px 0 0 #111, 0 1px 1px #111;
44 | }
45 |
46 | #toolbar {
47 | background: -moz-linear-gradient(#3B3937, #2B2927);
48 | background: -webkit-gradient(linear, left top, left bottom, from(#3B3937), to(#2B2927));
49 | box-shadow: 0 1px 0 black;
50 | -moz-box-shadow: 0 1px 0 black;
51 | -webkit-box-shadow: 0 1px 0 black;
52 | }
53 |
54 | #sidebar {
55 | background: #3B3937;
56 | box-shadow: 1px 0 0 black;
57 | -moz-box-shadow: 1px 0 0 black;
58 | -webkit-box-shadow: 1px 0 0 black;
59 | }
60 |
61 | #sidebar .header {
62 | color: #777;
63 | }
64 |
65 | #sidebar .item .wpt_contents table {
66 | color: #777;
67 | }
68 |
69 | #sidebar .item .wpt_contents .reset {
70 | color: #777;
71 | }
72 |
73 | #sidebar .item .wpt_contents .slider {
74 | border-top: 1px solid #222;
75 | border-bottom: 1px solid #555;
76 | }
77 |
78 | #sidebar .item .wpt_contents .segment {
79 | color: white;
80 | background: -moz-linear-gradient(#4B4947, #32302D);
81 | background: -webkit-gradient(linear, left top, left bottom, from(#4B4947), to(#32302D));
82 | box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
83 | -moz-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
84 | -webkit-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
85 | }
86 |
87 | #sidebar .item .wpt_contents .segment.selected, #toolbar .segment.selected {
88 | background: rgb(21,102,177);
89 | background: -moz-linear-gradient(top, rgba(21,102,177,1) 0%, rgba(17,80,151,1) 100%);
90 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(21,102,177,1)), color-stop(100%,rgba(17,80,151,1)));
91 | background: -webkit-linear-gradient(top, rgba(21,102,177,1) 0%,rgba(17,80,151,1) 100%);
92 | background: -o-linear-gradient(top, rgba(21,102,177,1) 0%,rgba(17,80,151,1) 100%);
93 | background: -ms-linear-gradient(top, rgba(21,102,177,1) 0%,rgba(17,80,151,1) 100%);
94 | background: linear-gradient(to bottom, rgba(21,102,177,1) 0%,rgba(17,80,151,1) 100%);
95 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1566b1', endColorstr='#115097',GradientType=0 );
96 | box-shadow: inset 0 0 10px -2px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
97 | -moz-box-shadow: inset 0 0 10px -2px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
98 | -webkit-box-shadow: inset 0 0 10px -2px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
99 | }
100 |
101 | #sidebar .item .wpt_contents .curves {
102 | border: 1px solid #4B4947;
103 | }
104 |
105 | #sidebar .item.active {
106 | background: #272727;
107 | box-shadow: inset 0 0 6px #070707, inset 0 0 3px #070707, 0 1px 0 #4B4947;
108 | -moz-box-shadow: inset 0 0 6px #070707, inset 0 0 3px #070707, 0 1px 0 #4B4947;
109 | -webkit-box-shadow: inset 0 0 6px #070707, inset 0 0 3px #070707, 0 1px 0 #4B4947;
110 | }
111 |
112 | #sidebar .item.active .wpt_contents .slider {
113 | border-top: 1px solid black;
114 | border-bottom: 1px solid #333;
115 | }
116 |
117 | #sidebar::-webkit-scrollbar-track {
118 | background: #1B1917;
119 | -webkit-box-shadow: inset 0 0 6px #1B1917;
120 | }
121 |
122 | #sidebar::-webkit-scrollbar-thumb {
123 | background: rgba(255,255,255,0.8);
124 | -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
125 | }
126 |
127 | #sidebar::-webkit-scrollbar-thumb:window-inactive {
128 | background: rgba(244,244,244,0.4);
129 | }
130 |
131 | #dialog {
132 | background: #32302D;
133 | border: 1px solid black;
134 | -moz-box-shadow: 0 0 50px black, 0 0 20px rgba(0, 0, 0, 0.5);
135 | -webkit-box-shadow: 0 0 50px black, 0 0 20px rgba(0, 0, 0, 0.5);
136 | }
137 |
138 | #dialog .contents .credits, #dialog .contents .credits a {
139 | color: #777;
140 | }
141 |
142 | #dialog .contents img {
143 | border: 1px solid black;
144 | -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
145 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
146 | }
147 |
148 | #dimmer {
149 | background: rgba(55,55,55,0.7);
150 | }
151 |
152 | #loading {
153 | background: #2B2927;
154 | }
155 |
156 | #loading .sadface {
157 | font-size: 100px;
158 | line-height: 100px;
159 | padding-bottom: 40px;
160 | }
161 |
162 | #box{
163 | background: #1B1917;
164 | -webkit-box-shadow: 0px 0px 25px 5px rgba(55, 55, 55, 0.5);
165 | box-shadow: 0px 0px 25px 5px rgba(55, 55, 55, 0.5);
166 | border: 1px solid #222;
167 | }
168 |
169 | #topgrad{
170 | background: #adadad;
171 | background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2FkYWRhZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZGZkZmQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
172 | background: -moz-linear-gradient(top, #adadad 0%, #fdfdfd 100%);
173 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#adadad), color-stop(100%,#fdfdfd));
174 | background: -webkit-linear-gradient(top, #adadad 0%,#fdfdfd 100%);
175 | background: -o-linear-gradient(top, #adadad 0%,#fdfdfd 100%);
176 | background: -ms-linear-gradient(top, #adadad 0%,#fdfdfd 100%);
177 | background: linear-gradient(to bottom, #adadad 0%,#fdfdfd 100%);
178 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#adadad', endColorstr='#fdfdfd',GradientType=0 );
179 | }
180 |
181 | #toolbar .segment {
182 | color: white;
183 | background: -moz-linear-gradient(#4B4947, #32302D);
184 | background: -webkit-gradient(linear, left top, left bottom, from(#4B4947), to(#32302D));
185 | box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
186 | -moz-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
187 | -webkit-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
188 | }
189 |
190 | #toolbar .segment:active {
191 | background: #272727;
192 | box-shadow: inset 0 0 10px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
193 | -moz-box-shadow: inset 0 0 10px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
194 | -webkit-box-shadow: inset 0 0 10px #070707, inset 0 0 5px #070707, 0 1px 0 #4B4947;
195 | }
196 |
197 | .fd-slider-bar {
198 | border-top: 1px solid black;
199 | border-bottom: 1px solid #333;
200 | color: #777;
201 | }
202 |
203 | .fd-slider-handle, .fd-slider-handle:active, .fd-slider-handle:hover {
204 | background: -moz-linear-gradient(#4B4947, #32302D);
205 | background: -webkit-gradient(linear, left top, left bottom, from(#4B4947), to(#32302D));
206 | box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
207 | -moz-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
208 | -webkit-box-shadow: inset 0 1px 0 #5B5957, 0 -1px 0 black, 0 1px 0 black, -1px 0 0 black, 1px 0 0 black, 0 1px 1px #111;
209 | }
210 |
211 | .fd-slider-range {
212 | background: rgb(21,102,177);
213 | }
214 |
--------------------------------------------------------------------------------
/add2home.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Add to Homescreen v2.0.4 ~ Copyright (c) 2012 Matteo Spinelli, http://cubiq.org
3 | * Released under MIT license, http://cubiq.org/license
4 | */
5 | var addToHome = (function (w) {
6 | var nav = w.navigator,
7 | isIDevice = 'platform' in nav && (/iphone|ipod|ipad/gi).test(nav.platform),
8 | isIPad,
9 | isRetina,
10 | isSafari,
11 | isStandalone,
12 | OSVersion,
13 | startX = 0,
14 | startY = 0,
15 | lastVisit = 0,
16 | isExpired,
17 | isSessionActive,
18 | isReturningVisitor,
19 | balloon,
20 | overrideChecks,
21 | positionInterval,
22 | closeTimeout,
23 | options = {
24 | autostart: true, // Automatically open the balloon
25 | returningVisitor: false, // Show the balloon to returning visitors only (setting this to true is HIGHLY RECCOMENDED)
26 | animationIn: 'drop', // drop || bubble || fade
27 | animationOut: 'fade', // drop || bubble || fade
28 | startDelay: 2000, // 2 seconds from page load before the balloon appears
29 | lifespan: 15000, // 15 seconds before it is automatically destroyed
30 | bottomOffset: 14, // Distance of the balloon from bottom
31 | expire: 0, // Minutes to wait before showing the popup again (0 = always displayed)
32 | message: '', // Customize your message or force a language ('' = automatic)
33 | touchIcon: false, // Display the touch icon
34 | arrow: true, // Display the balloon arrow
35 | hookOnLoad: true, // Should we hook to onload event? (really advanced usage)
36 | iterations: 100 // Internal/debug use
37 | },
38 | intl = {
39 | ca_es: 'Per instal·lar aquesta aplicació al vostre %device premeu %icon i llavors Afegir a pantalla d\'inici .',
40 | cs_cz: 'Pro instalaci aplikace na Váš %device, stiskněte %icon a v nabídce Přidat na plochu .',
41 | da_dk: 'Tilføj denne side til din %device: tryk på %icon og derefter Føj til hjemmeskærm .',
42 | de_de: 'Installieren Sie diese App auf Ihrem %device: %icon antippen und dann Zum Home-Bildschirm .',
43 | el_gr: 'Εγκαταστήσετε αυτήν την Εφαρμογή στήν συσκευή σας %device: %icon μετά πατάτε Προσθήκη σε Αφετηρία .',
44 | en_us: 'Install this web app on your %device: tap %icon and then Add to Home Screen .',
45 | es_es: 'Para instalar esta app en su %device, pulse %icon y seleccione Añadir a pantalla de inicio .',
46 | fi_fi: 'Asenna tämä web-sovellus laitteeseesi %device: paina %icon ja sen jälkeen valitse Lisää Koti-valikkoon .',
47 | fr_fr: 'Ajoutez cette application sur votre %device en cliquant sur %icon, puis Ajouter à l\'écran d\'accueil .',
48 | he_il: 'התקן אפליקציה זו על ה-%device שלך: הקש %icon ואז הוסף למסך הבית . ',
49 | hr_hr: 'Instaliraj ovu aplikaciju na svoj %device: klikni na %icon i odaberi Dodaj u početni zaslon .',
50 | hu_hu: 'Telepítse ezt a web-alkalmazást az Ön %device-jára: nyomjon a %icon-ra majd a Főképernyőhöz adás gombra.',
51 | it_it: 'Installa questa applicazione sul tuo %device: premi su %icon e poi Aggiungi a Home .',
52 | ja_jp: 'このウェブアプリをあなたの%deviceにインストールするには%iconをタップしてホーム画面に追加 を選んでください。',
53 | ko_kr: '%device에 웹앱을 설치하려면 %icon을 터치 후 "홈화면에 추가"를 선택하세요',
54 | nb_no: 'Installer denne appen på din %device: trykk på %icon og deretter Legg til på Hjem-skjerm ',
55 | nl_nl: 'Installeer deze webapp op uw %device: tik %icon en dan Zet in beginscherm .',
56 | pl_pl: 'Aby zainstalować tę aplikacje na %device: naciśnij %icon a następnie Dodaj jako ikonę .',
57 | pt_br: 'Instale este web app em seu %device: aperte %icon e selecione Adicionar à Tela Inicio .',
58 | pt_pt: 'Para instalar esta aplicação no seu %device, prima o %icon e depois o Adicionar ao ecrã principal .',
59 | ru_ru: 'Установите это веб-приложение на ваш %device: нажмите %icon, затем Добавить в «Домой» .',
60 | sv_se: 'Lägg till denna webbapplikation på din %device: tryck på %icon och därefter Lägg till på hemskärmen .',
61 | th_th: 'ติดตั้งเว็บแอพฯ นี้บน %device ของคุณ: แตะ %icon และ เพิ่มที่หน้าจอโฮม ',
62 | tr_tr: '%device için bu uygulamayı kurduktan sonra %icon simgesine dokunarak Ana Ekrana Ekle yin.',
63 | zh_cn: '您可以将此应用程式安装到您的 %device 上。请按 %icon 然后点选添加至主屏幕 。',
64 | zh_tw: '您可以將此應用程式安裝到您的 %device 上。請按 %icon 然後點選加入主畫面螢幕 。'
65 | };
66 |
67 | function init() {
68 | // Preliminary check, all further checks are performed on iDevices only
69 | if (!isIDevice) return;
70 | var now = Date.now(),
71 | i;
72 | // Merge local with global options
73 | if (w.addToHomeConfig) {
74 | for (i in w.addToHomeConfig) {
75 | options[i] = w.addToHomeConfig[i];
76 | }
77 | }
78 | if (!options.autostart) options.hookOnLoad = false;
79 | isIPad = (/ipad/gi).test(nav.platform);
80 | isRetina = w.devicePixelRatio && w.devicePixelRatio > 1;
81 | isSafari = (/Safari/i).test(nav.appVersion) && !(/CriOS/i).test(nav.appVersion);
82 | isStandalone = nav.standalone;
83 | OSVersion = nav.appVersion.match(/OS (\d+_\d+)/i);
84 | OSVersion = OSVersion[1] ? +OSVersion[1].replace('_', '.') : 0;
85 | lastVisit = +w.localStorage.getItem('addToHome');
86 | isSessionActive = w.sessionStorage.getItem('addToHomeSession');
87 | isReturningVisitor = options.returningVisitor ? lastVisit && lastVisit + 28 * 24 * 60 * 60 * 1000 > now : true;
88 | if (!lastVisit) lastVisit = now;
89 | // If it is expired we need to reissue a new balloon
90 | isExpired = isReturningVisitor && lastVisit <= now;
91 | if (options.hookOnLoad) w.addEventListener('load', loaded, false);
92 | else if (!options.hookOnLoad && options.autostart) loaded();
93 | }
94 |
95 | function loaded() {
96 | w.removeEventListener('load', loaded, false);
97 | if (!isReturningVisitor) w.localStorage.setItem('addToHome', Date.now());
98 | else if (options.expire && isExpired) w.localStorage.setItem('addToHome', Date.now() + options.expire * 60000);
99 | if (!overrideChecks && (!isSafari || !isExpired || isSessionActive || isStandalone || !isReturningVisitor)) return;
100 | var icons = options.touchIcon ? document.querySelectorAll('head link[rel=apple-touch-icon],head link[rel=apple-touch-icon-precomposed]') : [],
101 | sizes,
102 | touchIcon = '',
103 | closeButton,
104 | platform = nav.platform.split(' ')[0],
105 | language = nav.language.replace('-', '_'),
106 | i, l;
107 | balloon = document.createElement('div');
108 | balloon.id = 'addToHomeScreen';
109 | balloon.style.cssText += 'left:-9999px;-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-duration:0;-webkit-transform:translate3d(0,0,0);position:' + (OSVersion < 5 ? 'absolute' : 'fixed');
110 | // Localize message
111 | if (options.message in intl) { // You may force a language despite the user's locale
112 | language = options.message;
113 | options.message = '';
114 | }
115 | if (options.message === '') { // We look for a suitable language (defaulted to en_us)
116 | options.message = language in intl ? intl[language] : intl['en_us'];
117 | }
118 | // Search for the apple-touch-icon
119 | if (icons.length) {
120 | for (i = 0, l = icons.length; i < l; i++) {
121 | sizes = icons[i].getAttribute('sizes');
122 | if (sizes) {
123 | if (isRetina && sizes == '114x114') {
124 | touchIcon = icons[i].href;
125 | break;
126 | }
127 | } else {
128 | touchIcon = icons[i].href;
129 | }
130 | }
131 | touchIcon = ' ';
132 | }
133 | balloon.className = (isIPad ? 'addToHomeIpad' : 'addToHomeIphone') + (touchIcon ? ' addToHomeWide' : '');
134 | balloon.innerHTML = touchIcon +
135 | options.message.replace('%device', platform).replace('%icon', OSVersion >= 4.2 ? ' ' : '+ ') +
136 | (options.arrow ? ' ' : '') +
137 | '\u00D7 ';
138 | document.body.appendChild(balloon);
139 | // Add the close action
140 | closeButton = balloon.querySelector('.addToHomeClose');
141 | if (closeButton) closeButton.addEventListener('click', clicked, false);
142 | if (!isIPad && OSVersion >= 6) window.addEventListener('orientationchange', orientationCheck, false);
143 | setTimeout(show, options.startDelay);
144 | }
145 |
146 | function show() {
147 | var duration,
148 | iPadXShift = 208;
149 | // Set the initial position
150 | if (isIPad) {
151 | if (OSVersion < 5) {
152 | startY = w.scrollY;
153 | startX = w.scrollX;
154 | } else if (OSVersion < 6) {
155 | iPadXShift = 160;
156 | }
157 | balloon.style.top = startY + options.bottomOffset + 'px';
158 | balloon.style.left = startX + iPadXShift - Math.round(balloon.offsetWidth / 2) + 'px';
159 | switch (options.animationIn) {
160 | case 'drop':
161 | duration = '0.6s';
162 | balloon.style.webkitTransform = 'translate3d(0,' + -(w.scrollY + options.bottomOffset + balloon.offsetHeight) + 'px,0)';
163 | break;
164 | case 'bubble':
165 | duration = '0.6s';
166 | balloon.style.opacity = '0';
167 | balloon.style.webkitTransform = 'translate3d(0,' + (startY + 50) + 'px,0)';
168 | break;
169 | default:
170 | duration = '1s';
171 | balloon.style.opacity = '0';
172 | }
173 | } else {
174 | startY = w.innerHeight + w.scrollY;
175 | if (OSVersion < 5) {
176 | startX = Math.round((w.innerWidth - balloon.offsetWidth) / 2) + w.scrollX;
177 | balloon.style.left = startX + 'px';
178 | balloon.style.top = startY - balloon.offsetHeight - options.bottomOffset + 'px';
179 | } else {
180 | balloon.style.left = '50%';
181 | balloon.style.marginLeft = -Math.round(balloon.offsetWidth / 2) - (w.orientation % 180 && OSVersion >= 6 ? 40 : 0) + 'px';
182 | balloon.style.bottom = options.bottomOffset + 'px';
183 | }
184 | switch (options.animationIn) {
185 | case 'drop':
186 | duration = '1s';
187 | balloon.style.webkitTransform = 'translate3d(0,' + -(startY + options.bottomOffset) + 'px,0)';
188 | break;
189 | case 'bubble':
190 | duration = '0.6s';
191 | balloon.style.webkitTransform = 'translate3d(0,' + (balloon.offsetHeight + options.bottomOffset + 50) + 'px,0)';
192 | break;
193 | default:
194 | duration = '1s';
195 | balloon.style.opacity = '0';
196 | }
197 | }
198 | balloon.offsetHeight; // repaint trick
199 | balloon.style.webkitTransitionDuration = duration;
200 | balloon.style.opacity = '1';
201 | balloon.style.webkitTransform = 'translate3d(0,0,0)';
202 | balloon.addEventListener('webkitTransitionEnd', transitionEnd, false);
203 | closeTimeout = setTimeout(close, options.lifespan);
204 | }
205 |
206 | function manualShow(override) {
207 | if (!isIDevice || balloon) return;
208 | overrideChecks = override;
209 | loaded();
210 | }
211 |
212 | function close() {
213 | clearInterval(positionInterval);
214 | clearTimeout(closeTimeout);
215 | closeTimeout = null;
216 | var posY = 0,
217 | posX = 0,
218 | opacity = '1',
219 | duration = '0',
220 | closeButton = balloon.querySelector('.addToHomeClose');
221 | if (closeButton) closeButton.removeEventListener('click', close, false);
222 | if (!isIPad && OSVersion >= 6) window.removeEventListener('orientationchange', orientationCheck, false);
223 | if (OSVersion < 5) {
224 | posY = isIPad ? w.scrollY - startY : w.scrollY + w.innerHeight - startY;
225 | posX = isIPad ? w.scrollX - startX : w.scrollX + Math.round((w.innerWidth - balloon.offsetWidth) / 2) - startX;
226 | }
227 | balloon.style.webkitTransitionProperty = '-webkit-transform,opacity';
228 | switch (options.animationOut) {
229 | case 'drop':
230 | if (isIPad) {
231 | duration = '0.4s';
232 | opacity = '0';
233 | posY = posY + 50;
234 | } else {
235 | duration = '0.6s';
236 | posY = posY + balloon.offsetHeight + options.bottomOffset + 50;
237 | }
238 | break;
239 | case 'bubble':
240 | if (isIPad) {
241 | duration = '0.8s';
242 | posY = posY - balloon.offsetHeight - options.bottomOffset - 50;
243 | } else {
244 | duration = '0.4s';
245 | opacity = '0';
246 | posY = posY - 50;
247 | }
248 | break;
249 | default:
250 | duration = '0.8s';
251 | opacity = '0';
252 | }
253 | balloon.addEventListener('webkitTransitionEnd', transitionEnd, false);
254 | balloon.style.opacity = opacity;
255 | balloon.style.webkitTransitionDuration = duration;
256 | balloon.style.webkitTransform = 'translate3d(' + posX + 'px,' + posY + 'px,0)';
257 | }
258 |
259 | function clicked() {
260 | w.sessionStorage.setItem('addToHomeSession', '1');
261 | isSessionActive = true;
262 | close();
263 | }
264 |
265 | function transitionEnd() {
266 | balloon.removeEventListener('webkitTransitionEnd', transitionEnd, false);
267 | balloon.style.webkitTransitionProperty = '-webkit-transform';
268 | balloon.style.webkitTransitionDuration = '0.2s';
269 | // We reached the end!
270 | if (!closeTimeout) {
271 | balloon.parentNode.removeChild(balloon);
272 | balloon = null;
273 | return;
274 | }
275 | // On iOS 4 we start checking the element position
276 | if (OSVersion < 5 && closeTimeout) positionInterval = setInterval(setPosition, options.iterations);
277 | }
278 |
279 | function setPosition() {
280 | var matrix = new WebKitCSSMatrix(w.getComputedStyle(balloon, null).webkitTransform),
281 | posY = isIPad ? w.scrollY - startY : w.scrollY + w.innerHeight - startY,
282 | posX = isIPad ? w.scrollX - startX : w.scrollX + Math.round((w.innerWidth - balloon.offsetWidth) / 2) - startX;
283 | // Screen didn't move
284 | if (posY == matrix.m42 && posX == matrix.m41) return;
285 | balloon.style.webkitTransform = 'translate3d(' + posX + 'px,' + posY + 'px,0)';
286 | }
287 | // Clear local and session storages (this is useful primarily in development)
288 |
289 | function reset() {
290 | w.localStorage.removeItem('addToHome');
291 | w.sessionStorage.removeItem('addToHomeSession');
292 | }
293 |
294 | function orientationCheck() {
295 | balloon.style.marginLeft = -Math.round(balloon.offsetWidth / 2) - (w.orientation % 180 && OSVersion >= 6 ? 40 : 0) + 'px';
296 | }
297 | // Bootstrap!
298 | init();
299 | return {
300 | show: manualShow,
301 | close: close,
302 | reset: reset
303 | };
304 | })(window);
305 |
--------------------------------------------------------------------------------
/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | cursor: default;
3 | }
4 |
5 | a { cursor: pointer; }
6 | table { border-collapse: collapse; }
7 | td { padding: 0; vertical-align: top; }
8 | body {
9 | font: 12px Tahoma, sans-serif;
10 | }
11 |
12 | #toolbar, #sidebar, #fade, #dialog, #dimmer, #topgrad {
13 | -moz-user-select: none;
14 | -webkit-user-select: none;
15 | }
16 |
17 | .ui-slider-handle {
18 | cursor: default;
19 | position: absolute;
20 | width: 12px;
21 | height: 12px;
22 | margin: -6px;
23 | border-radius: 6px;
24 | -moz-border-radius: 7px;
25 | -webkit-border-radius: 7px;
26 | }
27 |
28 | .ui-state-focus {
29 | outline: none;
30 | }
31 |
32 | .button, .segment {
33 | cursor: pointer !important;
34 | display: inline-block;
35 | padding: 1px 15px;
36 | border-radius: 4px;
37 | vertical-align: top;
38 | }
39 |
40 | .button:active {
41 | padding: 2px 15px 0 15px;
42 | }
43 |
44 | .button.disabled {
45 | padding: 1px 15px;
46 | }
47 |
48 | .select_textfield {
49 | display: none;
50 | visibility: hidden;
51 | }
52 |
53 | #topbar {
54 | position: relative;
55 | top: 20px;
56 | width: 100%;
57 | height: 44px;
58 | margin: 20px auto 5px auto;
59 | border-radius: 6px;
60 | }
61 |
62 | #topbar img {
63 | position: relative;
64 | z-index: 1;
65 | height: 75px;
66 | display: block;
67 | float: left;
68 | margin: 5px;
69 | }
70 |
71 | #topbar .item {
72 |
73 | }
74 |
75 | #toolbar {
76 | z-index: 2;
77 | position: absolute;
78 | left: 0;
79 | top: 0;
80 | right: 0;
81 | height: 44px;
82 | border-radius: 6px 6px 0px 0px;
83 | }
84 |
85 | #toolbar .button {
86 | float: left;
87 | line-height: 27px;
88 | margin: 7px 0 0 7px;
89 | }
90 |
91 | #sidebar {
92 | z-index: 1;
93 | position: absolute;
94 | text-align: left;
95 | left: 0;
96 | top: 45px;
97 | bottom: 0;
98 | width: 300px;
99 | padding: 0 0 0 0;
100 | -webkit-overflow-scrolling: touch;
101 | overflow-x: hidden;
102 | overflow-y: auto;
103 | border-radius: 0px 0px 0px 8px;
104 | }
105 |
106 | #sidebar .header {
107 | padding: 15px 0 5px 15px;
108 | }
109 |
110 | #sidebar .item {
111 | position: relative;
112 | margin: 0 0px;
113 | padding: 0 40px;
114 | height: auto;
115 | overflow-y: hidden;
116 |
117 | transition: height 0.4s;
118 | -moz-transition: height 0.4s;
119 | -webkit-transition: height 0.4s;
120 | -o-transition: height 0.4s;
121 | }
122 |
123 | #sidebar .item .title {
124 | height: 25px;
125 | font-weight: bold;
126 | line-height: 25px;
127 | }
128 |
129 | #sidebar .item .wpt_contents {
130 | padding: 0 0 20px 0;
131 | }
132 |
133 | #sidebar .item .wpt_contents table {
134 | padding: 0 0 5px 0;
135 | width: 100%;
136 | }
137 |
138 | #sidebar .item .wpt_contents td {
139 | width: 0;
140 | white-space: nowrap;
141 | padding-top: 5px;
142 | }
143 |
144 | #sidebar .item .wpt_contents td + td {
145 | width: 100%;
146 | padding-left: 15px;
147 | }
148 |
149 | #sidebar .item .wpt_contents .button {
150 | line-height: 24px;
151 | margin: 15px 0 0 0;
152 | }
153 |
154 | #sidebar .item .wpt_contents .reset {
155 | text-decoration: underline;
156 | display: inline-block;
157 | line-height: 24px;
158 | margin: 15px 0 0 15px;
159 | cursor: pointer;
160 | }
161 |
162 | #sidebar .item .wpt_contents .slider {
163 | position: relative;
164 | margin: 8px 0 0 0;
165 | }
166 |
167 | #sidebar .item .wpt_contents .segmented {
168 | margin: 6px;
169 | text-align: center;
170 | }
171 |
172 | #sidebar .item .wpt_contents .segment {
173 | line-height: 25px;
174 | display: inline-block;
175 | padding: 1px 1px;
176 | vertical-align: top;
177 | -webkit-border-radius: 0px 0px 0px 0px;
178 | border-radius: 0px 0px 0px 0px;
179 | }
180 |
181 | #sidebar .item .wpt_contents .segment.full {
182 | min-width: 166px;
183 | text-align: center;
184 | }
185 |
186 | #sidebar .item .wpt_contents .segment.selected {
187 | padding: 1px 1px;
188 | }
189 |
190 | #sidebar .item .wpt_contents .segment:first-child {
191 | -webkit-border-radius: 5px 0px 0px 5px;
192 | border-radius: 5px 0px 0px 5px;
193 | }
194 |
195 | #sidebar .item .wpt_contents .segment:last-child {
196 | -webkit-border-radius: 0px 5px 5px 0px;
197 | border-radius: 0px 5px 5px 0px;
198 | }
199 |
200 | #sidebar .item .wpt_contents .full .segment:first-child {
201 | -webkit-border-radius: 5px 5px 0px 0px;
202 | border-radius: 5px 5px 0px 0px;
203 | }
204 |
205 | #sidebar .item .wpt_contents .full .segment:last-child {
206 | -webkit-border-radius: 0px 0px 5px 5px;
207 | border-radius: 0px 0px 5px 5px;
208 | }
209 |
210 | #sidebar .item .wpt_contents .curves {
211 | width: 200px;
212 | height: 200px;
213 | margin: 10px 0;
214 | }
215 |
216 | #sidebar .item.active {
217 | margin-bottom: 5px;
218 | }
219 |
220 | #sidebar .item.active .title {
221 | line-height: 27px;
222 | margin-bottom: 15px;
223 | }
224 |
225 | #sidebar .item.active .wpt_contents .slider {
226 | margin: 8px 0 0 0;
227 | }
228 |
229 | #sidebar input {
230 | display: none;
231 | }
232 |
233 | #sidebar table {
234 | position: relative;
235 | top: 10px;
236 | }
237 |
238 | #sidebar::-webkit-scrollbar {
239 | width: 8px;
240 | }
241 |
242 | #sidebar::-webkit-scrollbar-track {
243 | border-radius: 0px;
244 | }
245 |
246 | #sidebar::-webkit-scrollbar-thumb {
247 | -webkit-border-radius: 2px;
248 | border-radius: 2px;
249 | padding: 5px;
250 | }
251 |
252 | #sidebar #sidebarend {
253 | height: 20px;
254 | }
255 |
256 | #dialogs {
257 | display: none;
258 | }
259 |
260 | #dialog {
261 | z-index: 4;
262 | position: absolute;
263 | left: 50%;
264 | top: -600px;
265 | width: 650px;
266 | margin-left: -325px;
267 | padding: 20px;
268 | border-radius: 3px;
269 |
270 | transition: all 0.4s;
271 | -moz-transition: all 0.4s;
272 | -webkit-transition: all 0.4s;
273 | -o-transition: all 0.4s;
274 | }
275 |
276 | #dialog .contents {
277 | padding-bottom: 20px;
278 | line-height: 16px;
279 | }
280 |
281 | #dialog .contents .images {
282 | padding: 15px 0 8px 0;
283 | }
284 |
285 | #dialog .contents .credits, #dialog .contents .credits a {
286 | font-style: italic;
287 | font-size: 10px;
288 | }
289 |
290 | #dialog .contents img {
291 | margin: 0 7px 7px 0;
292 | }
293 |
294 | #dialog .button {
295 | position: relative;
296 | line-height: 24px;
297 | margin-right: 7px;
298 | float: right;
299 | }
300 |
301 | #dialog .contents .button {
302 | padding: 20px;
303 | float: left;
304 | }
305 |
306 | #dialog input.upload {
307 | position: absolute;
308 | left: 0;
309 | top: 0;
310 | width: 100%;
311 | height: 100%;
312 | opacity: 0;
313 | }
314 |
315 | #dimmer {
316 | position: fixed;
317 | z-index: -1;
318 | top: 0px;
319 | left: 0px;
320 | height: 100%;
321 | width: 100%;
322 | opacity: 0;
323 |
324 | transition: opacity 0.8s;
325 | -moz-transition: opacity 0.8s;
326 | -webkit-transition: opacity 0.8s;
327 | -o-transition: opacity 0.8s;
328 | }
329 |
330 | #loading {
331 | text-align: center;
332 | padding-top: 100px;
333 | position: absolute;
334 | left: 0;
335 | top: 0;
336 | right: 0;
337 | bottom: 0;
338 | z-index: 5;
339 | line-height: 16px;
340 | }
341 |
342 | #loading .sadface {
343 | font-size: 100px;
344 | line-height: 100px;
345 | padding-bottom: 40px;
346 | }
347 |
348 | #box{
349 | height: 740px;
350 | width: 90%;
351 | margin: 0 auto 100px auto;
352 | position: relative;
353 | top: 4em;
354 | border-radius: 6px;
355 | }
356 |
357 | #topgrad{
358 | position: absolute;
359 | top: 0px;
360 | left: 0px;
361 | right: 0px;
362 | width: 100%;
363 | height: 180px;
364 | z-index: -1;
365 | }
366 |
367 | #toolbar .segmented {
368 | position: absolute;
369 | right: 6px;
370 | margin: 7px 0 0 0;
371 | }
372 |
373 | #toolbar .segment {
374 | line-height: 27px;
375 | display: inline-block;
376 | padding: 1px 15px;
377 | vertical-align: top;
378 | -webkit-border-radius: 0px 0px 0px 0px;
379 | border-radius: 0px 0px 0px 0px;
380 | }
381 |
382 | #toolbar .segment:active {
383 | padding: 2px 15px 0 15px;
384 | }
385 |
386 | #toolbar .segment.selected {
387 | padding: 2px 15px 0 15px;
388 | }
389 |
390 | #toolbar .segment:first-child {
391 | -webkit-border-radius: 5px 0px 0px 5px;
392 | border-radius: 5px 0px 0px 5px;
393 | }
394 |
395 | #toolbar .segment:last-child {
396 | -webkit-border-radius: 0px 5px 5px 0px;
397 | border-radius: 0px 5px 5px 0px;
398 | }
399 |
400 | .segtwo > .segment {
401 | width: 82px;
402 | text-align: center;
403 | padding: 0px;
404 | }
405 |
406 | .segthree > .segment {
407 | width: 54px;
408 | text-align: center;
409 | padding: 1px;
410 | }
411 |
412 | .segfour > .segment {
413 | width: 40px;
414 | text-align: center;
415 | padding: 0px;
416 | }
417 |
418 | #editorHTML, #editorHTML textarea, #editorCSS, #editorCSS textarea {
419 | height: 500px;
420 | width: 100%;
421 | }
422 |
423 | #editorCSS .button, #editorHTML .button {
424 | padding: 15px;
425 | text-align: center;
426 | margin: auto;
427 | display: inline-block;
428 | }
429 |
430 | #editorCSS .button a, #editorHTML .button a {
431 | padding: 20px;
432 | color: white;
433 | text-decoration: none;
434 | }
435 |
436 | #editor {
437 | position: absolute;
438 | top: 45px;
439 | left: 300px;
440 | bottom: 0px;
441 | right: 0px;
442 | margin: 0px;
443 | padding: 25px;
444 | overflow: auto;
445 | display: inline-block;
446 | -moz-user-select: auto;
447 | -webkit-user-select: auto;
448 | }
449 |
450 | #editorCSS, #editorHTML {
451 | display: none;
452 | }
453 |
454 | #CSSbox {
455 | background: #ccc;
456 | overflow: auto;
457 | height: auto;
458 | text-shadow: none;
459 | margin: 0px;
460 | -moz-user-select: auto;
461 | -webkit-user-select: auto;
462 | }
463 |
464 | #backgroundslider {
465 | position: absolute;
466 | bottom: 0px;
467 | right: 0px;
468 | width: 360px;
469 | height: 30px;
470 | padding: 15px 20px 0px 20px;
471 | background: #3B3937;
472 | border-radius: 10px 0px 4px 0px;
473 | }
474 |
475 | #backgroundslider input {
476 | display: none;
477 | }
478 |
479 | #toolbar #foldin_btn {
480 | margin-left: 50px;
481 | }
482 |
483 | #examples_btn {
484 | position: absolute;
485 | right: 195px;
486 | }
487 |
488 | #dialog {
489 | top: 200px;
490 | display: block;
491 | }
492 |
493 | #dialog iframe {
494 | border: 0px;
495 | }
496 | #dimmer {
497 | z-index: 3;
498 | opacity: 1;
499 | }
500 |
501 | #onSmartphones {
502 | display: none;
503 | }
504 |
505 | .fd-slider-bar {
506 | display: block;
507 | position: absolute;
508 | top: 8px;
509 | right: 0px;
510 | left: 10px;
511 | z-index: 2;
512 | height: 0px;
513 | margin: 0;
514 | padding: 0;
515 | overflow: hidden;
516 | border: 0px;
517 | background-clip: padding-box;
518 | }
519 |
520 | .fd-slider-bar, .fd-slider-range {
521 | margin-left: -10px;
522 | }
523 |
524 | .fd-slider-range {
525 | opacity: 0.2;
526 | }
527 |
528 | .fd-slider-handle, .fd-slider-handle:active, .fd-slider-handle:hover {
529 | cursor: pointer;
530 | position: absolute;
531 | width: 12px;
532 | height: 12px;
533 | top: 4px;
534 | padding-left: 10px;
535 | border-radius: 6px;
536 | -moz-border-radius: 7px;
537 | -webkit-border-radius: 7px;
538 | }
539 |
540 | .fd-slider-drag-horizontal,
541 | .fd-slider-vertical .fd-slider-handle,
542 | body.fd-slider-drag-horizontal,
543 | body.fd-slider-drag-horizontal *,
544 | body.fd-slider-drag-vertical,
545 | body.fd-slider-drag-vertical * {
546 | cursor:pointer !important;
547 | }
548 |
549 | @media only screen
550 | and (min-device-width : 768px)
551 | and (max-device-width : 1024px) {
552 |
553 | #box {
554 | height: auto;
555 | width: auto;
556 | margin: 0px;
557 | position: absolute;
558 | top: 0px;
559 | left: 0px;
560 | right: 0px;
561 | bottom: 0px;
562 | border-radius: 0px;
563 | }
564 | #topbar, #topgrad {
565 | display: none;
566 | visibility: hidden;
567 | }
568 | #editorHTML .button {
569 | padding: 10px;
570 | text-align: center;
571 | margin: 5px;
572 | display: block;
573 | }
574 | #editorHTML textarea {
575 | height: 490px;
576 | }
577 |
578 | #fullscreen_btn {
579 | display: none;
580 | }
581 |
582 | #examples_btn {
583 | right: 205px;
584 | }
585 |
586 | #toolbar .button, #toolbar .segment {
587 | line-height: 35px;
588 | }
589 |
590 | #toolbar {
591 | height: 53px;
592 | }
593 |
594 | #sidebar, #editor {
595 | top: 53px;
596 | }
597 |
598 | #sidebar .item .title {
599 | height: 35px;
600 | font-weight: bold;
601 | line-height: 35px;
602 | font-size: 16px;
603 | }
604 |
605 | #sidebar .item.active .title {
606 | line-height: 35px;
607 | margin-bottom: 15px;
608 | }
609 |
610 | #sidebar tr {
611 | height: 50px;
612 | }
613 |
614 | .fd-slider-handle, .fd-slider-handle:active, .fd-slider-handle:hover {
615 | height: 23px;
616 | top: -2px;
617 | padding-left: 10px;
618 | border-radius: 10px;
619 | -moz-border-radius: 10px;
620 | -webkit-border-radius: 10px;
621 | }
622 |
623 | #sidebar .item .wpt_contents .segment {
624 | line-height: 32px;
625 | }
626 | }
627 |
628 | @media only screen
629 | and (min-device-width : 320px)
630 | and (max-device-width : 480px) {
631 |
632 | #box {
633 | display: none;
634 | }
635 | #onSmartphones {
636 | display: block;
637 | position: absolute;
638 | top: 200px;
639 | bottom: 10px;
640 | left: 30px;
641 | right: 30px;
642 | color: black;
643 | font-size: 21px;
644 | text-align: center;
645 | }
646 | }
647 |
648 | :-webkit-full-screen #box {
649 | height: auto;
650 | width: auto;
651 | margin: 0px;
652 | position: absolute;
653 | top: 0px;
654 | left: 0px;
655 | right: 0px;
656 | bottom: 0px;
657 | border-radius: 0px;
658 | }
659 |
660 | :-webkit-full-screen #topbar, :-webkit-full-screen #topgrad, :-webkit-full-screen #fullscreen_btn {
661 | display: none;
662 | visibility: hidden;
663 | }
664 |
665 | :-moz-full-screen #box {
666 | height: auto;
667 | width: auto;
668 | margin: 0px;
669 | position: absolute;
670 | top: 0px;
671 | left: 0px;
672 | right: 0px;
673 | bottom: 0px;
674 | border-radius: 0px;
675 | }
676 |
677 | :-moz-full-screen #topbar, :-moz-full-screen #topgrad, :-moz-full-screen #fullscreen_btn {
678 | display: none;
679 | visibility: hidden;
680 | }
681 |
--------------------------------------------------------------------------------
/prettify.js:
--------------------------------------------------------------------------------
1 | var q = null;
2 | window.PR_SHOULD_USE_CONTINUATION = !0;
3 | (function () {
4 | function L(a) {
5 | function m(a) {
6 | var f = a.charCodeAt(0);
7 | if (f !== 92) return f;
8 | var b = a.charAt(1);
9 | return (f = r[b]) ? f : "0" <= b && b <= "7" ? parseInt(a.substring(1), 8) : b === "u" || b === "x" ? parseInt(a.substring(2), 16) : a.charCodeAt(1)
10 | }
11 |
12 | function e(a) {
13 | if (a < 32) return (a < 16 ? "\\x0" : "\\x") + a.toString(16);
14 | a = String.fromCharCode(a);
15 | if (a === "\\" || a === "-" || a === "[" || a === "]") a = "\\" + a;
16 | return a
17 | }
18 |
19 | function h(a) {
20 | for (var f = a.substring(1, a.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), a = [], b = [], o = f[0] === "^", c = o ? 1 : 0, i = f.length; c < i; ++c) {
21 | var j = f[c];
22 | if (/\\[bdsw]/i.test(j)) a.push(j);
23 | else {
24 | var j = m(j),
25 | d;
26 | c + 2 < i && "-" === f[c + 1] ? (d = m(f[c + 2]), c += 2) : d = j;
27 | b.push([j, d]);
28 | d < 65 || j > 122 || (d < 65 || j > 90 || b.push([Math.max(65, j) | 32, Math.min(d, 90) | 32]), d < 97 || j > 122 || b.push([Math.max(97, j) & -33, Math.min(d, 122) & -33]))
29 | }
30 | }
31 | b.sort(function (a, f) {
32 | return a[0] - f[0] || f[1] - a[1]
33 | });
34 | f = [];
35 | j = [NaN, NaN];
36 | for (c = 0; c < b.length; ++c) i = b[c], i[0] <= j[1] + 1 ? j[1] = Math.max(j[1], i[1]) : f.push(j = i);
37 | b = ["["];
38 | o && b.push("^");
39 | b.push.apply(b, a);
40 | for (c = 0; c <
41 | f.length; ++c) i = f[c], b.push(e(i[0])), i[1] > i[0] && (i[1] + 1 > i[0] && b.push("-"), b.push(e(i[1])));
42 | b.push("]");
43 | return b.join("")
44 | }
45 |
46 | function y(a) {
47 | for (var f = a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), b = f.length, d = [], c = 0, i = 0; c < b; ++c) {
48 | var j = f[c];
49 | j === "(" ? ++i : "\\" === j.charAt(0) && (j = +j.substring(1)) && j <= i && (d[j] = -1)
50 | }
51 | for (c = 1; c < d.length; ++c) - 1 === d[c] && (d[c] = ++t);
52 | for (i = c = 0; c < b; ++c) j = f[c], j === "(" ? (++i, d[i] === void 0 && (f[c] = "(?:")) : "\\" === j.charAt(0) &&
53 | (j = +j.substring(1)) && j <= i && (f[c] = "\\" + d[i]);
54 | for (i = c = 0; c < b; ++c) "^" === f[c] && "^" !== f[c + 1] && (f[c] = "");
55 | if (a.ignoreCase && s)
56 | for (c = 0; c < b; ++c) j = f[c], a = j.charAt(0), j.length >= 2 && a === "[" ? f[c] = h(j) : a !== "\\" && (f[c] = j.replace(/[A-Za-z]/g, function (a) {
57 | a = a.charCodeAt(0);
58 | return "[" + String.fromCharCode(a & -33, a | 32) + "]"
59 | }));
60 | return f.join("")
61 | }
62 | for (var t = 0, s = !1, l = !1, p = 0, d = a.length; p < d; ++p) {
63 | var g = a[p];
64 | if (g.ignoreCase) l = !0;
65 | else if (/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""))) {
66 | s = !0;
67 | l = !1;
68 | break
69 | }
70 | }
71 | for (var r = {
72 | b: 8,
73 | t: 9,
74 | n: 10,
75 | v: 11,
76 | f: 12,
77 | r: 13
78 | }, n = [], p = 0, d = a.length; p < d; ++p) {
79 | g = a[p];
80 | if (g.global || g.multiline) throw Error("" + g);
81 | n.push("(?:" + y(g) + ")")
82 | }
83 | return RegExp(n.join("|"), l ? "gi" : "g")
84 | }
85 |
86 | function M(a) {
87 | function m(a) {
88 | switch (a.nodeType) {
89 | case 1:
90 | if (e.test(a.className)) break;
91 | for (var g = a.firstChild; g; g = g.nextSibling) m(g);
92 | g = a.nodeName;
93 | if ("BR" === g || "LI" === g) h[s] = "\n", t[s << 1] = y++, t[s++ << 1 | 1] = a;
94 | break;
95 | case 3:
96 | case 4:
97 | g = a.nodeValue, g.length && (g = p ? g.replace(/\r\n?/g, "\n") : g.replace(/[\t\n\r ]+/g, " "), h[s] = g, t[s << 1] = y, y += g.length,
98 | t[s++ << 1 | 1] = a)
99 | }
100 | }
101 | var e = /(?:^|\s)nocode(?:\s|$)/,
102 | h = [],
103 | y = 0,
104 | t = [],
105 | s = 0,
106 | l;
107 | a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = document.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
108 | var p = l && "pre" === l.substring(0, 3);
109 | m(a);
110 | return {
111 | a: h.join("").replace(/\n$/, ""),
112 | c: t
113 | }
114 | }
115 |
116 | function B(a, m, e, h) {
117 | m && (a = {
118 | a: m,
119 | d: a
120 | }, e(a), h.push.apply(h, a.e))
121 | }
122 |
123 | function x(a, m) {
124 | function e(a) {
125 | for (var l = a.d, p = [l, "pln"], d = 0, g = a.a.match(y) || [], r = {}, n = 0, z = g.length; n < z; ++n) {
126 | var f = g[n],
127 | b = r[f],
128 | o = void 0,
129 | c;
130 | if (typeof b ===
131 | "string") c = !1;
132 | else {
133 | var i = h[f.charAt(0)];
134 | if (i) o = f.match(i[1]), b = i[0];
135 | else {
136 | for (c = 0; c < t; ++c)
137 | if (i = m[c], o = f.match(i[1])) {
138 | b = i[0];
139 | break
140 | }
141 | o || (b = "pln")
142 | } if ((c = b.length >= 5 && "lang-" === b.substring(0, 5)) && !(o && typeof o[1] === "string")) c = !1, b = "src";
143 | c || (r[f] = b)
144 | }
145 | i = d;
146 | d += f.length;
147 | if (c) {
148 | c = o[1];
149 | var j = f.indexOf(c),
150 | k = j + c.length;
151 | o[2] && (k = f.length - o[2].length, j = k - c.length);
152 | b = b.substring(5);
153 | B(l + i, f.substring(0, j), e, p);
154 | B(l + i + j, c, C(b, c), p);
155 | B(l + i + k, f.substring(k), e, p)
156 | } else p.push(l + i, b)
157 | }
158 | a.e = p
159 | }
160 | var h = {}, y;
161 | (function () {
162 | for (var e = a.concat(m),
163 | l = [], p = {}, d = 0, g = e.length; d < g; ++d) {
164 | var r = e[d],
165 | n = r[3];
166 | if (n)
167 | for (var k = n.length; --k >= 0;) h[n.charAt(k)] = r;
168 | r = r[1];
169 | n = "" + r;
170 | p.hasOwnProperty(n) || (l.push(r), p[n] = q)
171 | }
172 | l.push(/[\S\s]/);
173 | y = L(l)
174 | })();
175 | var t = m.length;
176 | return e
177 | }
178 |
179 | function u(a) {
180 | var m = [],
181 | e = [];
182 | a.tripleQuotedStrings ? m.push(["str", /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, "'\""]) : a.multiLineStrings ? m.push(["str", /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
183 | q, "'\"`"
184 | ]) : m.push(["str", /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, "\"'"]);
185 | a.verbatimStrings && e.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, q]);
186 | var h = a.hashComments;
187 | h && (a.cStyleComments ? (h > 1 ? m.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, "#"]) : m.push(["com", /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/, q, "#"]), e.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, q])) : m.push(["com", /^#[^\n\r]*/,
188 | q, "#"
189 | ]));
190 | a.cStyleComments && (e.push(["com", /^\/\/[^\n\r]*/, q]), e.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, q]));
191 | a.regexLiterals && e.push(["lang-regex", /^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);
192 | (h = a.types) && e.push(["typ", h]);
193 | a = ("" + a.keywords).replace(/^ | $/g,
194 | "");
195 | a.length && e.push(["kwd", RegExp("^(?:" + a.replace(/[\s,]+/g, "|") + ")\\b"), q]);
196 | m.push(["pln", /^\s+/, q, " \r\n\t\xa0"]);
197 | e.push(["lit", /^@[$_a-z][\w$@]*/i, q], ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ["pln", /^[$_a-z][\w$@]*/i, q], ["lit", /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, "0123456789"], ["pln", /^\\[\S\s]?/, q], ["pun", /^.[^\s\w"-$'./@\\`]*/, q]);
198 | return x(m, e)
199 | }
200 |
201 | function D(a, m) {
202 | function e(a) {
203 | switch (a.nodeType) {
204 | case 1:
205 | if (k.test(a.className)) break;
206 | if ("BR" === a.nodeName) h(a),
207 | a.parentNode && a.parentNode.removeChild(a);
208 | else
209 | for (a = a.firstChild; a; a = a.nextSibling) e(a);
210 | break;
211 | case 3:
212 | case 4:
213 | if (p) {
214 | var b = a.nodeValue,
215 | d = b.match(t);
216 | if (d) {
217 | var c = b.substring(0, d.index);
218 | a.nodeValue = c;
219 | (b = b.substring(d.index + d[0].length)) && a.parentNode.insertBefore(s.createTextNode(b), a.nextSibling);
220 | h(a);
221 | c || a.parentNode.removeChild(a)
222 | }
223 | }
224 | }
225 | }
226 |
227 | function h(a) {
228 | function b(a, d) {
229 | var e = d ? a.cloneNode(!1) : a,
230 | f = a.parentNode;
231 | if (f) {
232 | var f = b(f, 1),
233 | g = a.nextSibling;
234 | f.appendChild(e);
235 | for (var h = g; h; h = g) g = h.nextSibling, f.appendChild(h)
236 | }
237 | return e
238 | }
239 | for (; !a.nextSibling;)
240 | if (a = a.parentNode, !a) return;
241 | for (var a = b(a.nextSibling, 0), e;
242 | (e = a.parentNode) && e.nodeType === 1;) a = e;
243 | d.push(a)
244 | }
245 | var k = /(?:^|\s)nocode(?:\s|$)/,
246 | t = /\r\n?|\n/,
247 | s = a.ownerDocument,
248 | l;
249 | a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = s.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
250 | var p = l && "pre" === l.substring(0, 3);
251 | for (l = s.createElement("LI"); a.firstChild;) l.appendChild(a.firstChild);
252 | for (var d = [l], g = 0; g < d.length; ++g) e(d[g]);
253 | m === (m | 0) && d[0].setAttribute("value",
254 | m);
255 | var r = s.createElement("OL");
256 | r.className = "linenums";
257 | for (var n = Math.max(0, m - 1 | 0) || 0, g = 0, z = d.length; g < z; ++g) l = d[g], l.className = "L" + (g + n) % 10, l.firstChild || l.appendChild(s.createTextNode("\xa0")), r.appendChild(l);
258 | a.appendChild(r)
259 | }
260 |
261 | function k(a, m) {
262 | for (var e = m.length; --e >= 0;) {
263 | var h = m[e];
264 | A.hasOwnProperty(h) ? window.console && console.warn("cannot override language handler %s", h) : A[h] = a
265 | }
266 | }
267 |
268 | function C(a, m) {
269 | if (!a || !A.hasOwnProperty(a)) a = /^\s*= o && (h += 2);
324 | e >= c && (a += 2)
325 | }
326 | } catch (w) {
327 | "console" in window && console.log(w && w.stack ? w.stack : w)
328 | }
329 | }
330 | var v = ["break,continue,do,else,for,if,return,while"],
331 | w = [
332 | [v, "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
333 | "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"
334 | ],
335 | F = [w, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
336 | G = [w, "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
337 | H = [G, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],
338 | w = [w, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
339 | I = [v, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
340 | J = [v, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
341 | v = [v, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
342 | K = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,
343 | N = /\S/,
344 | O = u({
345 | keywords: [F, H, w, "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END" +
346 | I, J, v
347 | ],
348 | hashComments: !0,
349 | cStyleComments: !0,
350 | multiLineStrings: !0,
351 | regexLiterals: !0
352 | }),
353 | A = {};
354 | k(O, ["default-code"]);
355 | k(x([], [
356 | ["pln", /^[^]+/],
357 | ["dec", /^]*(?:>|$)/],
358 | ["com", /^<\!--[\S\s]*?(?:--\>|$)/],
359 | ["lang-", /^<\?([\S\s]+?)(?:\?>|$)/],
360 | ["lang-", /^<%([\S\s]+?)(?:%>|$)/],
361 | ["pun", /^(?:<[%?]|[%?]>)/],
362 | ["lang-", /^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],
363 | ["lang-js", /^
3 |
12 |
130 |
132 |
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
edit CSS
141 |
show CSS
142 |
143 |
145 |
146 |
loading .
147 |
150 |
Examples Image
151 |
Image 2
152 |
Text
153 |
clear
154 |
Close
155 |
156 |
Impressum Angaben gemäß § 5 TMG:
Kontakt: Name: Simon Waldherr Straße: Kloepfstrasse 2 Wohnort: 94522 Ettling Telefon: 0049 151 11309488 Telefax: 0049 32 224178618 E-Mail: contact@selfcss.org
157 |
Close
158 |
159 |
160 |
161 |
162 |
163 | selfCSS does not work on Smartphones, please try it on the iPad or on a PC
164 |
165 |