├── .gitattributes ├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── components ├── archive │ ├── preview-buttons-active.html │ └── preview-ui-elements.html ├── preview-buttons.html ├── preview-form.html ├── preview-list.html ├── preview-tabs.html ├── preview-text.html └── preview-widgets.html ├── favicon.ico ├── images ├── android.png ├── android_old.png ├── arcade-fire.jpg ├── bon-iver.jpg ├── daft-punk.jpg ├── device.png ├── elbow.jpg ├── header-md.png ├── ios-notch.png ├── ios.png ├── ios_old.png ├── lcd-soundsystem.jpg ├── lucius.jpg ├── m83.jpg ├── nativescript-logo.png ├── peter-bjorn-and-john.jpg ├── phosphorescent.jpg ├── sylvan-esso.jpg ├── the-national.jpg └── yeah-yeah-yeahs.jpg ├── index.html ├── robots.txt ├── schema └── tns.xsd ├── scripts ├── FileSaver.min.js ├── app-color-themes.js ├── app-download-css.js ├── app-setup.js ├── data │ └── relations.json ├── icheck.min.js ├── ionic.bundle.min.js ├── remodal.min.js ├── spectrum.js └── spectrum.min.js ├── sitemap.xml ├── styles ├── app.css ├── font-sf.css ├── images │ ├── input-checked.png │ └── input-unchecked.png ├── ionic-hacks-buttons.css ├── ionic-hacks-form.css ├── ionic-hacks-global.css ├── ionic-hacks-list.css ├── ionic-hacks-tabs.css ├── ionic-hacks-text.css ├── ionic-hacks-widgets.css ├── ionic.min.css ├── ionic.v2.min.css ├── remodal-default-theme.css ├── remodal.css ├── skins │ └── minimal │ │ ├── _all.css │ │ ├── aero.css │ │ ├── aero.png │ │ ├── aero@2x.png │ │ ├── blue.css │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── green.css │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── grey.css │ │ ├── grey.png │ │ ├── grey@2x.png │ │ ├── minimal.css │ │ ├── minimal.png │ │ ├── minimal@2x.png │ │ ├── orange.css │ │ ├── orange.png │ │ ├── orange@2x.png │ │ ├── pink.css │ │ ├── pink.png │ │ ├── pink@2x.png │ │ ├── purple.css │ │ ├── purple.png │ │ ├── purple@2x.png │ │ ├── red.css │ │ ├── red.png │ │ ├── red@2x.png │ │ ├── yellow.css │ │ ├── yellow.png │ │ └── yellow@2x.png └── spectrum.css └── web.config /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | 49 | .vscode -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "xml.fileAssociations": [ 3 | { 4 | "systemId": "c:\\inetpub\\wwwroot\\nativescript-theme-builder\\schema\\tns.xsd", 5 | "pattern": "**/**/*.xml" 6 | } 7 | ], 8 | "files.exclude": { 9 | "schema": true 10 | } 11 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NativeScript Theme Builder 2 | 3 | A quick and easy way to generate [NativeScript](https://www.nativescript.org/) CSS-based color themes for your next cross-platform native mobile app. 4 | 5 | Just want to use it? Go to [nativescriptthemebuilder.com](http://nativescriptthemebuilder.com) (it's free). 6 | 7 | ## How Does it Work? 8 | 9 | Use the provided visual tools to tweak colors, borders, fonts, and such. Once you are happy, click the "Download Theme" button to download the custom CSS file for your NativeScript app. Styles will be applied globally to both iOS and Android (except where noted). 10 | 11 | NativeScript ships with a gorgeous default theme. This theme builder builds off of the default (light) theme. Therefore, you _will need_ to apply the provided CSS file _after_ you use one of the default themes. Specific instructions are provided when you download the theme. 12 | 13 | ## Native Mobile App + CSS? 14 | 15 | NativeScript uses a subset of CSS to style apps. Yes, the same CSS you've been using for web development. You can apply CSS to individual elements by id, classes, and types. Read more about [styling with NativeScript here](https://docs.nativescript.org/ui/styling). 16 | 17 | ## License 18 | 19 | MIT 20 | 21 | ## Shout Outs 22 | 23 | * [Ionic's CSS components](http://ionicframework.com/docs/components/) made it possible to accurately simulate cross-platform UI elements in a web browser. 24 | * Special thanks to the (now defunct) [Ionic Theme Editor](https://github.com/pbernasconi/ionic-theme-editor) for site design inspiration. -------------------------------------------------------------------------------- /components/archive/preview-buttons-active.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Buttons (Active Background)

14 |
15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |
27 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /components/archive/preview-ui-elements.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

UI Elements

14 |
15 | 16 | 17 |
18 | Search Bars 19 |
20 | 21 | 27 | 28 |
29 | Sliders 30 |
31 | 32 |
33 | 34 | 35 | 36 |
37 | 38 |
39 | Progress Indicator 40 |
41 | 42 |
43 |
45 |
46 |
47 |
48 |
49 | 50 | 51 |
52 |
53 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /components/preview-buttons.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Buttons

18 |
19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
33 |
34 | 35 |
36 | 37 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /components/preview-form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Form Elements

18 |
19 | 20 | 21 | 24 | 25 | 29 | 30 | 34 | 35 | 38 | 39 | 42 | 43 | 46 | 47 | 50 | 51 | 52 |
53 | 54 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /components/preview-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

ListViews

19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 |
    183 |
  • 184 |

    Arcade Fire

    185 |
  • 186 |
  • 187 |

    Bon Iver

    188 |
  • 189 |
  • 190 |

    Daft Punk

    191 |
  • 192 |
  • 193 |

    Elbow

    194 |
  • 195 |
  • 196 |

    LCD Soundsystem

    197 |
  • 198 |
  • 199 |

    Lucius

    200 |
  • 201 |
  • 202 |

    M83

    203 |
  • 204 |
  • 205 |

    Peter Bjorn and John

    206 |
  • 207 |
  • 208 |

    Phosphorescent

    209 |
  • 210 |
  • 211 |

    Sylvan Esso

    212 |
  • 213 |
  • 214 |

    The National

    215 |
  • 216 |
  • 217 |

    Yeah Yeah Yeahs

    218 |
  • 219 |
220 | 221 |
222 |
223 | 224 |
225 | 226 |
227 | 228 | 231 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /components/preview-tabs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 |
24 | 25 |

Tabs and Drawer

26 |
27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |

Tab One

38 |

Bacon ipsum dolor amet cow porchetta prosciutto short loin, brisket ham hock turducken kielbasa landjaeger. 39 | Flank 40 | ham hock leberkas, fatback shankle kielbasa alcatra pork belly. Venison alcatra picanha tri-tip brisket, salami 41 | landjaeger 42 | shoulder hamburger tail. Swine drumstick ball tip tri-tip t-bone bacon strip steak fatback kevin hamburger 43 | shoulder 44 | picanha. Shank prosciutto frankfurter pork strip steak brisket swine landjaeger kielbasa ball tip beef ribs 45 | drumstick 46 | shoulder. T-bone jerky pastrami, ball tip turkey swine tongue sirloin.

47 |
48 |
49 | 50 | 51 | 52 |

Tab Two

53 |

Bacon ipsum dolor amet pork belly salami tri-tip pork chop andouille pastrami. Beef ribs jowl filet mignon 54 | bresaola 55 | sirloin prosciutto fatback chicken chuck capicola hamburger. Prosciutto spare ribs capicola drumstick, 56 | turducken 57 | biltong shank pork loin. Fatback landjaeger ribeye flank.

58 |
59 |
60 | 61 | 62 | 63 |

Tab Three

64 | Bacon ipsum dolor amet fatback strip steak biltong short loin cupim prosciutto bresaola salami ham hock kielbasa 65 | ham tri-tip 66 | swine. Drumstick biltong sirloin kielbasa ground round pancetta chicken pastrami spare ribs tenderloin pork loin 67 | capicola 68 | kevin burgdoggen venison. Pancetta prosciutto frankfurter, shankle pastrami porchetta meatloaf doner. Rump pork 69 | loin 70 | filet mignon salami biltong capicola frankfurter. Shank cow biltong, chuck flank jerky beef jowl filet mignon 71 | strip 72 | steak. Strip steak sirloin salami picanha, tongue capicola hamburger turkey jowl.

73 |
74 |
75 | 76 |
77 | 78 |
79 | 80 | 81 | 82 |
83 |

Items

84 |
85 |
86 | 97 |
98 | 99 | 100 | 101 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /components/preview-text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Text

18 |
19 | 20 | 21 |
22 |

Heading .h1

23 |

Heading .h2

24 |

Heading .h3

25 |

Heading .h4

26 |
Heading .h5
27 |
Heading .h6
28 |
29 | 30 |
31 | 32 |
33 | 34 |

.text-primary

35 |

.text-danger

36 |

.text-muted

37 |

38 | .bg-primary 39 |

40 |

41 | .bg-danger 42 |

43 | 44 |
45 | 46 |
47 | 48 |

lowercase text .text-lowercase

49 |

UPPERCASE TEXT .text-uppercase

50 |

Capitalized Text .text-capitalize

51 |

Normal Text .font-weight-normal

52 |

Bold Text .font-weight-bold

53 |

Italic Text .font-italic

54 | 55 |
56 | 57 |
58 |
59 |

.pull-left

60 |
61 |
62 |

.m-x-auto

63 |
64 |
65 |

.pull-right

66 |
67 |
68 | 69 |
70 | 71 |
72 | 73 |
74 |
75 | 76 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /components/preview-widgets.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

UI Widgets

20 |
21 | 22 | 23 |
24 | Segmented Bar 25 |
26 | 27 | 28 | Item One 29 |
30 |
31 | 32 | Item Two 33 |
34 |
35 | 36 | Item Three 37 |
38 |
39 |
40 | 41 | 55 | 56 |
57 | Switch 58 |
59 |
    60 |
  • 61 | iOS 62 | 68 |
  • 69 | 78 |
79 | 80 |
81 | Activity Indicator 82 |
83 |
    84 |
  • 85 | iOS 86 | 89 |
  • 90 | 96 |
97 | 98 | 107 | 108 |
109 | Slider 110 |
111 | 112 | 113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 | 121 |
122 | 123 |
124 | Progress Indicator 125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 | 133 |
134 |
135 | 136 | 139 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/favicon.ico -------------------------------------------------------------------------------- /images/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/android.png -------------------------------------------------------------------------------- /images/android_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/android_old.png -------------------------------------------------------------------------------- /images/arcade-fire.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/arcade-fire.jpg -------------------------------------------------------------------------------- /images/bon-iver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/bon-iver.jpg -------------------------------------------------------------------------------- /images/daft-punk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/daft-punk.jpg -------------------------------------------------------------------------------- /images/device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/device.png -------------------------------------------------------------------------------- /images/elbow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/elbow.jpg -------------------------------------------------------------------------------- /images/header-md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/header-md.png -------------------------------------------------------------------------------- /images/ios-notch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/ios-notch.png -------------------------------------------------------------------------------- /images/ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/ios.png -------------------------------------------------------------------------------- /images/ios_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/ios_old.png -------------------------------------------------------------------------------- /images/lcd-soundsystem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/lcd-soundsystem.jpg -------------------------------------------------------------------------------- /images/lucius.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/lucius.jpg -------------------------------------------------------------------------------- /images/m83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/m83.jpg -------------------------------------------------------------------------------- /images/nativescript-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/nativescript-logo.png -------------------------------------------------------------------------------- /images/peter-bjorn-and-john.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/peter-bjorn-and-john.jpg -------------------------------------------------------------------------------- /images/phosphorescent.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/phosphorescent.jpg -------------------------------------------------------------------------------- /images/sylvan-esso.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/sylvan-esso.jpg -------------------------------------------------------------------------------- /images/the-national.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/the-national.jpg -------------------------------------------------------------------------------- /images/yeah-yeah-yeahs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/images/yeah-yeah-yeahs.jpg -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | # All robots will spider the domain 2 | User-agent: * 3 | 4 | Sitemap: http://www.nativescriptthemebuilder.com/sitemap.xml -------------------------------------------------------------------------------- /scripts/FileSaver.min.js: -------------------------------------------------------------------------------- 1 | (function (a, b) { if ("function" == typeof define && define.amd) define([], b); else if ("undefined" != typeof exports) b(); else { b(), a.FileSaver = { exports: {} }.exports } })(this, function () { "use strict"; function b(a, b) { return "undefined" == typeof b ? b = { autoBom: !1 } : "object" != typeof b && (console.warn("Depricated: Expected third argument to be a object"), b = { autoBom: !b }), b.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type) ? new Blob(["\uFEFF", a], { type: a.type }) : a } function c(b, c, d) { var e = new XMLHttpRequest; e.open("GET", b), e.responseType = "blob", e.onload = function () { a(e.response, c, d) }, e.onerror = function () { console.error("could not download file") }, e.send() } function d(a) { var b = new XMLHttpRequest; return b.open("HEAD", a, !1), b.send(), 200 <= b.status && 299 >= b.status } function e(a) { try { a.dispatchEvent(new MouseEvent("click")) } catch (c) { var b = document.createEvent("MouseEvents"); b.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), a.dispatchEvent(b) } } var f = "object" == typeof window && window.window === window ? window : "object" == typeof self && self.self === self ? self : "object" == typeof global && global.global === global ? global : void 0, a = f.saveAs || "object" != typeof window || window !== f ? function () { } : "download" in HTMLAnchorElement.prototype ? function (b, g, h) { var i = f.URL || f.webkitURL, j = document.createElement("a"); g = g || b.name || "download", j.download = g, j.rel = "noopener", "string" == typeof b ? (j.href = b, j.origin === location.origin ? e(j) : d(j.href) ? c(b, g, h) : e(j, j.target = "_blank")) : (j.href = i.createObjectURL(b), setTimeout(function () { i.revokeObjectURL(j.href) }, 4E4), setTimeout(function () { e(j) }, 0)) } : "msSaveOrOpenBlob" in navigator ? function (f, g, h) { if (g = g || f.name || "download", "string" != typeof f) navigator.msSaveOrOpenBlob(b(f, h), g); else if (d(f)) c(f, g, h); else { var i = document.createElement("a"); i.href = f, i.target = "_blank", setTimeout(function () { e(i) }) } } : function (a, b, d, e) { if (e = e || open("", "_blank"), e && (e.document.title = e.document.body.innerText = "downloading..."), "string" == typeof a) return c(a, b, d); var g = "application/octet-stream" === a.type, h = /constructor/i.test(f.HTMLElement) || f.safari, i = /CriOS\/[\d]+/.test(navigator.userAgent); if ((i || g && h) && "object" == typeof FileReader) { var j = new FileReader; j.onloadend = function () { var a = j.result; a = i ? a : a.replace(/^data:[^;]*;/, "data:attachment/file;"), e ? e.location.href = a : location = a, e = null }, j.readAsDataURL(a) } else { var k = f.URL || f.webkitURL, l = k.createObjectURL(a); e ? e.location = l : location.href = l, e = null, setTimeout(function () { k.revokeObjectURL(l) }, 4E4) } }; f.saveAs = a.saveAs = a, "undefined" != typeof module && (module.exports = a) }); 2 | 3 | //# sourceMappingURL=FileSaver.min.js.map -------------------------------------------------------------------------------- /scripts/app-color-themes.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | // enable prettied radio buttons for color theme modal 3 | $('.icheck').iCheck({ radioClass: 'iradio_minimal-grey' }); 4 | 5 | $('#loadThemeModal .iCheck-helper').click(function () { 6 | $('#theme-ok').click(); 7 | }); 8 | 9 | $('#theme-ok').click(function () { 10 | acceptColorTheme(); 11 | }); 12 | 13 | // enable the nav left/right to cycle through color palettes 14 | $("#btn-color-left").click(function () { 15 | var val = parseInt($('input[name=color-scheme]:checked').val()) - 1; 16 | $("input[name=color-scheme][value=" + val + "]").iCheck('uncheck'); 17 | if (val == 0) { 18 | val = 36; 19 | } 20 | $("input[name=color-scheme][value=" + val + "]").iCheck('check'); 21 | $("input[name=color-scheme][value=" + val + "]").prop('checked', true); 22 | $('#theme-ok').click(); 23 | }); 24 | $("#btn-color-right").click(function () { 25 | var val = parseInt($('input[name=color-scheme]:checked').val()) + 1; 26 | $("input[name=color-scheme][value=" + val + "]").iCheck('uncheck'); 27 | if (val == 37) { 28 | val = 1; 29 | } 30 | $("input[name=color-scheme][value=" + val + "]").iCheck('check'); 31 | $("input[name=color-scheme][value=" + val + "]").prop('checked', true); 32 | $('#theme-ok').click(); 33 | }); 34 | 35 | // pre-select a theme when all iframes are loaded 36 | var widgetsLoaded = false, 37 | listviewsLoaded = false, 38 | textsLoaded = false, 39 | buttonsLoaded = false, 40 | formsLoaded = false, 41 | tabsLoaded = false; 42 | 43 | $('#ui-widgets, #ui-listviews, #ui-texts, #ui-buttons, #ui-forms, #ui-tabs').on('load', function () { 44 | if (this.id == 'ui-widgets') { 45 | widgetsLoaded = true; 46 | } else if (this.id == 'ui-listviews') { 47 | listviewsLoaded = true; 48 | } else if (this.id == 'ui-texts') { 49 | textsLoaded = true; 50 | } else if (this.id == 'ui-buttons') { 51 | buttonsLoaded = true; 52 | } else if (this.id == 'ui-forms') { 53 | formsLoaded = true; 54 | } else if (this.id == 'ui-tabs') { 55 | tabsLoaded = true; 56 | } 57 | 58 | if ( 59 | widgetsLoaded && 60 | listviewsLoaded && 61 | textsLoaded && 62 | buttonsLoaded && 63 | formsLoaded && 64 | tabsLoaded 65 | ) { 66 | acceptColorTheme(); 67 | } 68 | }); 69 | }); 70 | 71 | function acceptColorTheme() { 72 | // get value of checked radio button 73 | var val = $('input[name=color-scheme]:checked').val(); 74 | 75 | if (val == 'undefined') return; 76 | 77 | var widgetColor = $('#' + val + '-color-wd') 78 | .spectrum('get') 79 | .toHexString(); 80 | var actionBarColor = $('#' + val + '-color-ab') 81 | .spectrum('get') 82 | .toHexString(); 83 | var backgroundColor = $('#' + val + '-color-bg') 84 | .spectrum('get') 85 | .toHexString(); 86 | 87 | // console.log(widgetColor); 88 | // console.log(actionBarColor); 89 | // console.log(backgroundColor); 90 | 91 | $.getJSON('scripts/data/relations.json', function (data) { 92 | $.each(data, function (index, value) { 93 | var cpId = value.id; 94 | var color; 95 | 96 | // if this is a text field (ends w/ pct or px) or it's a text color, DO NOT set any colors! 97 | var cp = isColor(cpId); 98 | 99 | if (cp === true) { 100 | if (cpId.match(/-ab$/) || cpId.indexOf('lbl') !== -1) { 101 | // actionbar color or a button label 102 | color = actionBarColor; 103 | } else if (cpId.match(/-bg$/)) { 104 | // background color 105 | color = backgroundColor; 106 | } else { 107 | color = widgetColor; 108 | } 109 | 110 | $('#' + cpId).spectrum('set', color); 111 | $('#' + cpId) 112 | .spectrum('container') 113 | .find('button.sp-choose') 114 | .click(); 115 | } 116 | 117 | // sometimes we still have to override the default colors 118 | if (cpId == 'ios-seg-bar-text-ios-active') { 119 | $('#' + cpId) 120 | .spectrum('container') 121 | .find('button.sp-choose') 122 | .click(); 123 | } 124 | }); 125 | }); 126 | } 127 | 128 | function isColor(cpId) { 129 | // function tells us whether or not a given input is a color picker or not ***that should be overridden when we choose a theme*** 130 | if ( 131 | cpId.match(/-pct$/) || 132 | cpId.match(/-px$/) || 133 | cpId == 'global-text' || 134 | cpId == 'tab-label-text-color' || 135 | cpId == 'buttons-primary-text-color' || 136 | cpId == 'buttons-disabled-text-color' || 137 | cpId == 'text-primary-color' || 138 | cpId == 'text-danger-color' || 139 | cpId == 'text-muted-color' || 140 | cpId == 'drawer-header-text-color' || 141 | cpId == 'drawer-item-text-color' || 142 | cpId == 'drawer-item-sel-text-color' || 143 | cpId == 'ios-seg-bar-text-ios-active' 144 | ) { 145 | return false; 146 | } else { 147 | return true; 148 | } 149 | } 150 | 151 | function isColorPicker(cpId) { 152 | // function tells us whether or not a given input is a color picker or not 153 | if (cpId.match(/-pct$/) || cpId.match(/-px$/)) { 154 | return false; 155 | } else { 156 | return true; 157 | } 158 | } 159 | 160 | function readCSSFile(evt) { 161 | var files = evt.target.files; 162 | var file = files[0]; 163 | var reader = new FileReader(); 164 | reader.onload = function () { 165 | //console.log(this.result); 166 | var lines = this.result.split('\n'); 167 | var myClass = ''; 168 | var myAttr = ''; 169 | var myVal = ''; 170 | var lineAV; 171 | 172 | for (var i = 0; i < lines.length; i++) { 173 | var line = lines[i] 174 | .replace('{', '') 175 | .replace('}', '') 176 | .trim(); 177 | 178 | if (line.startsWith('.')) { 179 | // starts with "."? must be the class 180 | myClass = line; 181 | } else if (line.length > 0) { 182 | // otherwise, split the line on an empty space 183 | lineAV = line.split(' '); 184 | for (var ii = 0; ii < lineAV.length; ii++) { 185 | var l = lineAV[ii].trim(); 186 | if (l.endsWith(':')) { 187 | // ends with ":"? must be attribute 188 | myAttr = l.replace(':', ''); 189 | } else if (l.endsWith(';')) { 190 | // ends with ";"? must be value 191 | myVal = l.replace(';', ''); 192 | } 193 | } 194 | } 195 | 196 | if (myClass.length > 0 && myAttr.length > 0 && myVal.length > 0) { 197 | setCSSFileValue(myClass, myAttr, myVal); 198 | myClass = ''; 199 | myAttr = ''; 200 | myVal = ''; 201 | } 202 | } 203 | }; 204 | reader.readAsText(file); 205 | 206 | // reset the form field 207 | $('#file').val(''); 208 | } 209 | 210 | function setCSSFileValue(myClass, myAttr, myVal) { 211 | var done = false; 212 | $.getJSON('scripts/data/relations.json', function (data) { 213 | $.each(data, function (index, value) { 214 | var elementId = value.id; 215 | // loop through tns 216 | $.each(value.tns, function (index, valueTns) { 217 | var tnsClass = valueTns.class; 218 | var tnsAttr = valueTns.attr; 219 | if (myClass == tnsClass && myAttr == tnsAttr) { 220 | if (isColorPicker(elementId)) { 221 | $('#' + elementId).spectrum('set', myVal); 222 | $('#' + elementId) 223 | .spectrum('container') 224 | .find('button.sp-choose') 225 | .click(); 226 | } else { 227 | $('#' + elementId) 228 | .val(myVal) 229 | .change(); 230 | } 231 | } 232 | }); 233 | }); 234 | }); 235 | } 236 | -------------------------------------------------------------------------------- /scripts/app-download-css.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | $("#download-theme").click(function() { 4 | // open the download modal 5 | var inst = $("[data-remodal-id=loadDownloadModal]").remodal(); 6 | inst.open(); 7 | }); 8 | 9 | // magical code to create and download a file on the client side 10 | $("#download-css").click(function() { 11 | 12 | //var n = "%0D%0A"; // new line 13 | var n = "\n"; 14 | 15 | $.getJSON("scripts/data/relations.json", function(data){ 16 | 17 | // data:text/css;charset=UTF-8, 18 | var css = "/* generated by nativescriptthemebuilder.com */" + n + n; 19 | 20 | $.each(data, function (index, value) { 21 | 22 | var elementId = value.id; 23 | var element = $("#" + elementId); 24 | 25 | // get element class, this will tell us if it's a color picker or text input 26 | var elementClass = element.attr("class"); 27 | 28 | var output = ""; 29 | 30 | if (elementClass == "enable-cp") { 31 | output = element.spectrum("get").toHexString(); 32 | } else if (elementClass == "enable-txt") { 33 | output = element.val(); 34 | } 35 | 36 | // loop through tns values 37 | $.each(value.tns, function (index, valueTns) { 38 | if (valueTns.class == ".action-bar") { 39 | // exception (addition) for action bar text color, which is programmatically determined 40 | css += valueTns.class + " {" + n + "color: " + idealTextColor(output) + ";" + n + "}" + n + n; 41 | } else if (valueTns.class == ".switch[checked=true]" || valueTns.class == ".slider") { 42 | // also an exception for the switch and slider circle colors 43 | css += valueTns.class + " {" + n + "color: " + idealTextColor(output) + ";" + n + "}" + n + n; 44 | } else if (valueTns.class == ".btn-outline" && valueTns.attr == "color") { 45 | // need to tweak the btn-outline background color transparency 46 | css += valueTns.class + " {" + n + "background-color: transparent;" + n + "}" + n + n; 47 | // need to add back the border-width property for android 48 | css += valueTns.class + " {" + n + "border-width: 1;" + n + "}" + n + n; 49 | } 50 | css += valueTns.class + " {" + n + valueTns.attr + ": " + output + ";" + n + "}" + n + n; 51 | }); 52 | 53 | }); 54 | 55 | downloadURI(css, "custom.css"); 56 | 57 | }); 58 | }); 59 | 60 | }); 61 | 62 | function downloadURI(uri, name) { 63 | // var link = document.createElement("a"); 64 | // link.download = name; 65 | // link.href = uri; 66 | // document.body.appendChild(link); 67 | // link.click(); 68 | // document.body.removeChild(link); 69 | // delete link; 70 | 71 | 72 | // var isChrome = !!window.chrome && !!window.chrome.webstore; 73 | // var link = document.createElement("a"); 74 | // // for some reason, when link is appended to body, browsers want to spit it out to the window instead of downloading 75 | // // without it, works in chrome, but no other browsers :( 76 | 77 | // if (isChrome && link.download !== undefined) { 78 | // link.setAttribute("href", uri); 79 | // link.setAttribute("download", name); 80 | // link.click(); 81 | // delete link; 82 | // } else { 83 | // alert("Sorry, but CSS export only works in Chrome (yes, we are looking into a fix)!"); 84 | // } 85 | 86 | var file = new File([uri], name, {type: "text/css;charset=utf-8"}); 87 | saveAs(file); 88 | } -------------------------------------------------------------------------------- /scripts/app-setup.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | var palette = [ 3 | [ 4 | 'rgb(255, 255, 255)', 5 | 'rgb(248, 248, 248)', 6 | 'rgb(56, 126, 245)', 7 | 'rgb(17, 193, 243)', 8 | 'rgb(51, 205, 95)', 9 | 'rgb(255, 201, 0)', 10 | 'rgb(239, 71, 58)', 11 | 'rgb(136, 106, 234)', 12 | 'rgb(68, 68, 68)' 13 | ], 14 | [ 15 | 'rgb(0, 0, 0)', 16 | 'rgb(67, 67, 67)', 17 | 'rgb(102, 102, 102)', 18 | 'rgb(153, 153, 153)', 19 | 'rgb(183, 183, 183)', 20 | 'rgb(204, 204, 204)', 21 | 'rgb(217, 217, 217)', 22 | 'rgb(239, 239, 239)', 23 | 'rgb(243, 243, 243)', 24 | 'rgb(255, 255, 255)' 25 | ], 26 | [ 27 | 'rgb(152, 0, 0)', 28 | 'rgb(255, 0, 0)', 29 | 'rgb(255, 153, 0)', 30 | 'rgb(255, 255, 0)', 31 | 'rgb(0, 255, 0)', 32 | 'rgb(0, 255, 255)', 33 | 'rgb(74, 134, 232)', 34 | 'rgb(0, 0, 255)', 35 | 'rgb(153, 0, 255)', 36 | 'rgb(255, 0, 255)' 37 | ], 38 | [ 39 | 'rgb(230, 184, 175)', 40 | 'rgb(244, 204, 204)', 41 | 'rgb(252, 229, 205)', 42 | 'rgb(255, 242, 204)', 43 | 'rgb(217, 234, 211)', 44 | 'rgb(208, 224, 227)', 45 | 'rgb(201, 218, 248)', 46 | 'rgb(207, 226, 243)', 47 | 'rgb(217, 210, 233)', 48 | 'rgb(234, 209, 220)', 49 | 'rgb(221, 126, 107)', 50 | 'rgb(234, 153, 153)', 51 | 'rgb(249, 203, 156)', 52 | 'rgb(255, 229, 153)', 53 | 'rgb(182, 215, 168)', 54 | 'rgb(162, 196, 201)', 55 | 'rgb(164, 194, 244)', 56 | 'rgb(159, 197, 232)', 57 | 'rgb(180, 167, 214)', 58 | 'rgb(213, 166, 189)', 59 | 'rgb(204, 65, 37)', 60 | 'rgb(224, 102, 102)', 61 | 'rgb(246, 178, 107)', 62 | 'rgb(255, 217, 102)', 63 | 'rgb(147, 196, 125)', 64 | 'rgb(118, 165, 175)', 65 | 'rgb(109, 158, 235)', 66 | 'rgb(111, 168, 220)', 67 | 'rgb(142, 124, 195)', 68 | 'rgb(194, 123, 160)', 69 | 'rgb(166, 28, 0)', 70 | 'rgb(204, 0, 0)', 71 | 'rgb(230, 145, 56)', 72 | 'rgb(241, 194, 50)', 73 | 'rgb(106, 168, 79)', 74 | 'rgb(69, 129, 142)', 75 | 'rgb(60, 120, 216)', 76 | 'rgb(61, 133, 198)', 77 | 'rgb(103, 78, 167)', 78 | 'rgb(166, 77, 121)', 79 | 'rgb(133, 32, 12)', 80 | 'rgb(153, 0, 0)', 81 | 'rgb(180, 95, 6)', 82 | 'rgb(191, 144, 0)', 83 | 'rgb(56, 118, 29)', 84 | 'rgb(19, 79, 92)', 85 | 'rgb(17, 85, 204)', 86 | 'rgb(11, 83, 148)', 87 | 'rgb(53, 28, 117)', 88 | 'rgb(116, 27, 71)', 89 | 'rgb(91, 15, 0)', 90 | 'rgb(102, 0, 0)', 91 | 'rgb(120, 63, 4)', 92 | 'rgb(127, 96, 0)', 93 | 'rgb(39, 78, 19)', 94 | 'rgb(12, 52, 61)', 95 | 'rgb(28, 69, 135)', 96 | 'rgb(7, 55, 99)', 97 | 'rgb(32, 18, 77)', 98 | 'rgb(76, 17, 48)' 99 | ] 100 | ]; 101 | 102 | // enable the spectrum color picker on all eligible sidebar inputs 103 | $('.enable-cp').each(function (i, obj) { 104 | $(this).spectrum({ 105 | allowEmpty: false, 106 | //color: "#6795f5", 107 | showInput: true, 108 | showInitial: true, 109 | showPalette: true, 110 | preferredFormat: 'hex', 111 | //localStorageKey: "tnstheme." + $(this).attr("id"), 112 | palette: palette, 113 | change: function (color) { 114 | updateCSS($(this).attr('id'), color.toHexString()); 115 | } 116 | }); 117 | }); 118 | 119 | // enable the change event on all eligible sidebar text inputs 120 | $('.enable-txt').each(function (i, obj) { 121 | //$(this).change(function() { 122 | $(this).on('change keyup paste click', function () { 123 | var val = $(this) 124 | .val() 125 | .trim(); 126 | if (val.length > 0) { 127 | var id = $(this).attr('id'); 128 | // add exception when we need a "px" 129 | if (id.match(/-px$/)) { 130 | updateCSS(id, val + 'px'); 131 | // add exception when we need a "%" 132 | } else if (id.match(/-pct$/)) { 133 | updateCSS(id, val + '%'); 134 | } else { 135 | updateCSS(id, val); 136 | } 137 | } 138 | }); 139 | }); 140 | 141 | // enable toggling of side menus 142 | $('#side-global').click(function () { 143 | $('#side-global-items').slideToggle('fast'); 144 | }); 145 | $('#side-widgets').click(function () { 146 | $('#side-widgets-items').slideToggle('fast'); 147 | }); 148 | $('#side-listviews').click(function () { 149 | $('#side-listviews-items').slideToggle('fast'); 150 | }); 151 | $('#side-text').click(function () { 152 | $('#side-text-items').slideToggle('fast'); 153 | }); 154 | $('#side-buttons').click(function () { 155 | $('#side-buttons-items').slideToggle('fast'); 156 | }); 157 | $('#side-form-elements').click(function () { 158 | $('#side-form-elements-items').slideToggle('fast'); 159 | }); 160 | $('#side-tabs').click(function () { 161 | $('#side-tabs-items').slideToggle('fast'); 162 | }); 163 | 164 | // hack to change between ios/android font and header style for simulators 165 | $('#global-font').on('change', function () { 166 | var os = $(this).val(); 167 | 168 | // font 169 | if (os == 'ios') { 170 | $('.device-screen') 171 | .contents() 172 | .find('body, h1, h2, h3, h4, h5, h6, button, .tab-item, div') 173 | .css('style', 'font-family: San Francisco'); 174 | } else if (os == 'android') { 175 | $('.device-screen') 176 | .contents() 177 | .find('body, h1, h2, h3, h4, h5, h6, button, .tab-item, div') 178 | .css('style', 'font-family: Roboto'); 179 | } 180 | 181 | // header 182 | if (os == 'ios') { 183 | $(".iphonex-time, .iphonex-icons").show(); 184 | $('.device-screen').contents().find('.bar-positive').removeClass('header-md'); 185 | $('.device-screen').contents().find('.bar .title').removeClass('no-notch'); 186 | $('.device-screen').contents().find('.scroll-content').removeClass('scroll-content-android'); 187 | } else if (os == 'android') { 188 | $(".iphonex-time, .iphonex-icons").hide(); 189 | $('.device-screen').contents().find('.bar-positive').addClass('header-md'); 190 | $('.device-screen').contents().find('.bar .title').addClass('no-notch'); 191 | $('.device-screen').contents().find('.scroll-content').addClass('scroll-content-android'); 192 | } 193 | 194 | // device chrome 195 | if (os == 'ios') { 196 | $('.device-bg').removeClass('device-bg-android'); 197 | $('.device-screen').removeClass('device-screen-android'); 198 | } else if (os == 'android') { 199 | $('.device-bg').addClass('device-bg-android'); 200 | $('.device-screen').addClass('device-screen-android'); 201 | } 202 | 203 | // ui widgets 204 | if (os == 'ios') { 205 | // segmented bar 206 | $('#ui-widgets') 207 | .contents() 208 | .find('#ios-seg-bar') 209 | .show(); 210 | $('#ui-widgets') 211 | .contents() 212 | .find('#android-seg-bar') 213 | .hide(); 214 | // switch 215 | $('#ui-widgets') 216 | .contents() 217 | .find('#ios-switch') 218 | .show(); 219 | $('#ui-widgets') 220 | .contents() 221 | .find('#android-switch') 222 | .hide(); 223 | // activity indicator 224 | $('#ui-widgets') 225 | .contents() 226 | .find('#ios-activity') 227 | .show(); 228 | $('#ui-widgets') 229 | .contents() 230 | .find('#android-activity') 231 | .hide(); 232 | // slider 233 | $('#ui-widgets') 234 | .contents() 235 | .find('#slider') 236 | .removeClass('range-md') 237 | .addClass('range-ios'); 238 | } else if (os == 'android') { 239 | // segmented bar 240 | $('#ui-widgets') 241 | .contents() 242 | .find('#ios-seg-bar') 243 | .hide(); 244 | $('#ui-widgets') 245 | .contents() 246 | .find('#android-seg-bar') 247 | .show(); 248 | // switch 249 | $('#ui-widgets') 250 | .contents() 251 | .find('#ios-switch') 252 | .hide(); 253 | $('#ui-widgets') 254 | .contents() 255 | .find('#android-switch') 256 | .show(); 257 | // activity indicator 258 | $('#ui-widgets') 259 | .contents() 260 | .find('#ios-activity') 261 | .hide(); 262 | $('#ui-widgets') 263 | .contents() 264 | .find('#android-activity') 265 | .show(); 266 | // slider 267 | $('#ui-widgets') 268 | .contents() 269 | .find('#slider') 270 | .removeClass('range-ios') 271 | .addClass('range-md'); 272 | } 273 | 274 | // button text and box shadow 275 | if (os == 'ios') { 276 | $('#ui-buttons') 277 | .contents() 278 | .find('.button') 279 | .removeClass('btn-android-shadow btn-android-text'); 280 | } else if (os == 'android') { 281 | $('#ui-buttons') 282 | .contents() 283 | .find('.btn-primary, .button-outline') 284 | .addClass('btn-android-shadow'); 285 | $('#ui-buttons') 286 | .contents() 287 | .find('.button') 288 | .addClass('btn-android-text'); 289 | } 290 | 291 | // move tabs to top/bottom 292 | if (os == 'ios') { 293 | $('#ui-listviews') 294 | .contents() 295 | .find('.tabs-positive') 296 | .removeClass('tabs-striped tabs-top'); 297 | $('#ui-listviews') 298 | .contents() 299 | .find('.list-tabs-content') 300 | .removeClass('list-tabs-content-android'); 301 | $('#ui-tabs') 302 | .contents() 303 | .find('.tabs-positive') 304 | .removeClass('tabs-striped tabs-top'); 305 | $('#ui-tabs') 306 | .contents() 307 | .find('.tabs-content') 308 | .removeClass('tabs-content-android'); 309 | $('#ui-tabs') 310 | .contents() 311 | .find('.no-notch-items') 312 | .removeClass('no-notch-items-android'); 313 | $('#ui-tabs') 314 | .contents() 315 | .find('.bar .button') 316 | .removeClass('tabs-bar-button-android'); 317 | } else if (os == 'android') { 318 | $('#ui-listviews') 319 | .contents() 320 | .find('.tabs-positive') 321 | .addClass('tabs-striped tabs-top'); 322 | $('#ui-listviews') 323 | .contents() 324 | .find('.list-tabs-content') 325 | .addClass('list-tabs-content-android'); 326 | $('#ui-tabs') 327 | .contents() 328 | .find('.tabs-positive') 329 | .addClass('tabs-striped tabs-top'); 330 | $('#ui-tabs') 331 | .contents() 332 | .find('.tabs-content') 333 | .addClass('tabs-content-android'); 334 | $('#ui-tabs') 335 | .contents() 336 | .find('.bar .button') 337 | .addClass('tabs-bar-button-android'); 338 | $('#ui-tabs') 339 | .contents() 340 | .find('.no-notch-items') 341 | .addClass('no-notch-items-android'); 342 | } 343 | }); 344 | 345 | // css file import event listener (see app-color-themes.js) 346 | document 347 | .getElementById('file') 348 | .addEventListener('change', readCSSFile, false); 349 | }); 350 | 351 | // id = id of color picker or whatever widget from sidebar 352 | // str = value (hex color, string, etc) of associated widget 353 | function updateCSS(id, str) { 354 | $.getJSON('scripts/data/relations.json', function (data) { 355 | $.each(data, function (index, value) { 356 | if (id == value.id) { 357 | // loop through iframes 358 | $.each(value.iframe, function (index, valueIframe) { 359 | var iframe = valueIframe.id; 360 | // loop through web css attributes 361 | $.each(value.web, function (index, valueWeb) { 362 | // exception for slider bg color 363 | if (valueWeb.class == '.range input') { 364 | $('#' + iframe) 365 | .contents() 366 | .find(valueWeb.class) 367 | .css( 368 | valueWeb.attr, 369 | 'linear-gradient(to right,' + str + ' 0,' + str + ' 100%)' 370 | ); 371 | } else { 372 | $('#' + iframe) 373 | .contents() 374 | .find(valueWeb.class) 375 | .css(valueWeb.attr, str); 376 | } 377 | }); 378 | }); 379 | 380 | // have a lot of exceptions to add contrasting text colors when necessary! 381 | if (id == 'global-ab') { 382 | // when setting action bar, make sure text is contrasting 383 | $('.iphonex-time, .iphonex-icons').css('color', idealTextColor(str)); 384 | $('.device-screen') 385 | .contents() 386 | .find('.pane .bar.bar-positive .title, .ion-navicon') 387 | .css('color', idealTextColor(str)); 388 | } else if (id == 'ios-seg-bar') { 389 | // when setting segmented bar text, add contrasting ios "selected" text color 390 | $('#ui-widgets') 391 | .contents() 392 | .find('.segment-ios .segment-button.segment-activated') 393 | .css('color', idealTextColor(str)); 394 | } 395 | 396 | return; 397 | } 398 | 399 | // console.log("id: " + value.id); 400 | // console.log("iframe: " + value.iframe); 401 | 402 | // $.each(value.tns, function (index, valueTns) { 403 | // console.log("tns class: " + valueTns.class); 404 | // console.log("tns attr: " + valueTns.attr); 405 | // }); 406 | 407 | // $.each(value.web, function (index, valueWeb) { 408 | // console.log("web class: " + valueWeb.class); 409 | // console.log("web attr: " + valueWeb.attr); 410 | // }); 411 | }); 412 | 413 | // let's reset the item-divider to always be the basic grey color 414 | $('#ui-widgets') 415 | .contents() 416 | .find('.item-divider') 417 | .css('background-color', '#f5f5f5'); 418 | }); 419 | } 420 | 421 | function idealTextColor(bgColor) { 422 | var nThreshold = 105; 423 | var components = getRGBComponents(bgColor); 424 | var bgDelta = 425 | components.R * 0.299 + components.G * 0.587 + components.B * 0.114; 426 | 427 | return 255 - bgDelta < nThreshold ? '#000000' : '#ffffff'; 428 | } 429 | 430 | function getRGBComponents(color) { 431 | var r = color.substring(1, 3); 432 | var g = color.substring(3, 5); 433 | var b = color.substring(5, 7); 434 | 435 | return { 436 | R: parseInt(r, 16), 437 | G: parseInt(g, 16), 438 | B: parseInt(b, 16) 439 | }; 440 | } 441 | -------------------------------------------------------------------------------- /scripts/data/relations.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__comment": "action bar color", 4 | "id": "global-ab", 5 | "iframe": [ 6 | { 7 | "id": "ui-widgets" 8 | }, 9 | { 10 | "id": "ui-buttons" 11 | }, 12 | { 13 | "id": "ui-forms" 14 | }, 15 | { 16 | "id": "ui-listviews" 17 | }, 18 | { 19 | "id": "ui-texts" 20 | }, 21 | { 22 | "id": "ui-tabs" 23 | } 24 | ], 25 | "web": [ 26 | { 27 | "class": ".pane .bar-positive", 28 | "attr": "background-color" 29 | }, 30 | { 31 | "class": ".pane .bar-positive", 32 | "attr": "border-color" 33 | }, 34 | { 35 | "class": ".side-drawer", 36 | "attr": "background-color" 37 | }, 38 | { 39 | "class": ".side-drawer", 40 | "attr": "border-color" 41 | } 42 | ], 43 | "tns": [ 44 | { 45 | "class": ".action-bar", 46 | "attr": "background-color" 47 | } 48 | ] 49 | }, 50 | { 51 | "__comment": "view background color - 5/23/2019 removed .tab-view from tns section below, seemed to be conflicting with tab-view further down", 52 | "id": "global-bg", 53 | "iframe": [ 54 | { 55 | "id": "ui-widgets" 56 | }, 57 | { 58 | "id": "ui-buttons" 59 | }, 60 | { 61 | "id": "ui-forms" 62 | }, 63 | { 64 | "id": "ui-listviews" 65 | }, 66 | { 67 | "id": "ui-texts" 68 | }, 69 | { 70 | "id": "ui-tabs" 71 | } 72 | ], 73 | "web": [ 74 | { 75 | "class": ".pane", 76 | "attr": "background-color" 77 | }, 78 | { 79 | "class": ".view", 80 | "attr": "background-color" 81 | }, 82 | { 83 | "class": ".scroll .item", 84 | "attr": "background-color" 85 | }, 86 | { 87 | "class": ".item-stacked-label input", 88 | "attr": "background-color" 89 | }, 90 | { 91 | "class": ".menu", 92 | "attr": "background-color" 93 | } 94 | ], 95 | "tns": [ 96 | { 97 | "class": ".page", 98 | "attr": "background-color" 99 | }, 100 | { 101 | "class": ".list-group, .list-group-item", 102 | "attr": "background-color" 103 | } 104 | ] 105 | }, 106 | { 107 | "__comment": "text color", 108 | "id": "global-text", 109 | "iframe": [ 110 | { 111 | "id": "ui-widgets" 112 | }, 113 | { 114 | "id": "ui-buttons" 115 | }, 116 | { 117 | "id": "ui-forms" 118 | }, 119 | { 120 | "id": "ui-listviews" 121 | }, 122 | { 123 | "id": "ui-texts" 124 | }, 125 | { 126 | "id": "ui-tabs" 127 | } 128 | ], 129 | "web": [ 130 | { 131 | "class": ".text-sizes-no-color", 132 | "attr": "color" 133 | }, 134 | { 135 | "class": ".scroll .list .item", 136 | "attr": "color" 137 | }, 138 | { 139 | "class": ".list .item h2, .list .item p", 140 | "attr": "color" 141 | }, 142 | { 143 | "class": ".text-headings h1, .text-headings h2, .text-headings h3, .text-headings h4, .text-headings h5, .text-headings h6", 144 | "attr": "color" 145 | }, 146 | { 147 | "class": ".input-label", 148 | "attr": "color" 149 | }, 150 | { 151 | "class": ".tabs-content, .tabs-content h2", 152 | "attr": "color" 153 | } 154 | ], 155 | "tns": [ 156 | { 157 | "class": ".page label, .tab-view label", 158 | "attr": "color" 159 | } 160 | ] 161 | }, 162 | { 163 | "__comment": "ios segmented bar color (USED FOR ANDROID AS WELL NOW)", 164 | "id": "ios-seg-bar", 165 | "iframe": [ 166 | { 167 | "id": "ui-widgets" 168 | } 169 | ], 170 | "web": [ 171 | { 172 | "class": ".segment-ios .segment-button.segment-activated", 173 | "attr": "background-color" 174 | }, 175 | { 176 | "class": ".segment-ios .segment-button", 177 | "attr": "border-color" 178 | }, 179 | { 180 | "class": ".segment-md .segment-button.segment-activated", 181 | "attr": "border-color" 182 | } 183 | ], 184 | "tns": [ 185 | { 186 | "class": ".segmented-bar", 187 | "attr": "selected-background-color" 188 | } 189 | ] 190 | }, 191 | { 192 | "__comment": "ios segmented bar text", 193 | "id": "ios-seg-bar-text", 194 | "iframe": [ 195 | { 196 | "id": "ui-widgets" 197 | } 198 | ], 199 | "web": [ 200 | { 201 | "class": ".segment-ios .segment-button-inactive-ios", 202 | "attr": "color" 203 | }, 204 | { 205 | "class": ".segment-md .segment-button", 206 | "attr": "color" 207 | } 208 | ], 209 | "tns": [ 210 | { 211 | "class": ".segmented-bar", 212 | "attr": "color" 213 | } 214 | ] 215 | }, 216 | { 217 | "__comment": "ios segmented bar background color", 218 | "id": "ios-seg-bar-bg", 219 | "iframe": [ 220 | { 221 | "id": "ui-widgets" 222 | } 223 | ], 224 | "web": [ 225 | { 226 | "class": ".segment-button-inactive-ios", 227 | "attr": "background-color" 228 | }, 229 | { 230 | "class": ".segment-md .segment-button", 231 | "attr": "background-color" 232 | } 233 | ], 234 | "tns": [ 235 | { 236 | "class": ".segmented-bar", 237 | "attr": "background-color" 238 | } 239 | ] 240 | }, 241 | { 242 | "__comment": "android segmented bar color (NOT CURRENTLY USED)", 243 | "id": "android-seg-bar", 244 | "iframe": [ 245 | { 246 | "id": "ui-widgets" 247 | } 248 | ], 249 | "web": [ 250 | { 251 | "class": ".segment-md .segment-button.segment-activated", 252 | "attr": "border-color" 253 | } 254 | ] 255 | }, 256 | { 257 | "__comment": "android segmented bar text color (NOT CURRENTLY USED)", 258 | "id": "android-seg-bar-text", 259 | "iframe": [ 260 | { 261 | "id": "ui-widgets" 262 | } 263 | ], 264 | "web": [ 265 | { 266 | "class": ".segment-md .segment-button", 267 | "attr": "color" 268 | } 269 | ] 270 | }, 271 | { 272 | "__comment": "ios switch", 273 | "id": "ios-switch", 274 | "iframe": [ 275 | { 276 | "id": "ui-widgets" 277 | } 278 | ], 279 | "web": [ 280 | { 281 | "class": ".toggle-large input:checked+.track", 282 | "attr": "border-color" 283 | }, 284 | { 285 | "class": ".toggle-large input:checked+.track", 286 | "attr": "background-color" 287 | }, 288 | { 289 | "class": ".toggle-small input:checked+.track", 290 | "attr": "background" 291 | } 292 | ], 293 | "tns": [ 294 | { 295 | "class": ".switch[checked=true]", 296 | "attr": "background-color" 297 | } 298 | ] 299 | }, 300 | { 301 | "__comment": "android switch (NOT CURRENTLY USED)", 302 | "id": "android-switch", 303 | "iframe": [ 304 | { 305 | "id": "ui-widgets" 306 | } 307 | ], 308 | "web": [ 309 | { 310 | "class": ".toggle-small input:checked+.track", 311 | "attr": "background" 312 | } 313 | ] 314 | }, 315 | { 316 | "__comment": "ios activity indicator", 317 | "id": "ios-activity", 318 | "iframe": [ 319 | { 320 | "id": "ui-widgets" 321 | } 322 | ], 323 | "web": [ 324 | { 325 | "class": ".ios-activity ion-spinner svg *", 326 | "attr": "stroke" 327 | }, 328 | { 329 | "class": ".spinner-android", 330 | "attr": "stroke" 331 | } 332 | ], 333 | "tns": [ 334 | { 335 | "class": ".activity-indicator", 336 | "attr": "color" 337 | } 338 | ] 339 | }, 340 | { 341 | "__comment": "android activity indicator (NOT CURRENTLY USED)", 342 | "id": "android-activity", 343 | "iframe": [ 344 | { 345 | "id": "ui-widgets" 346 | } 347 | ], 348 | "web": [ 349 | { 350 | "class": ".spinner-android", 351 | "attr": "stroke" 352 | } 353 | ] 354 | }, 355 | { 356 | "__comment": "search bar (NOT CURRENTLY USED DUE TO NO CSS PROPERTIES)", 357 | "id": "search-bar", 358 | "iframe": [ 359 | { 360 | "id": "ui-widgets" 361 | } 362 | ], 363 | "web": [ 364 | { 365 | "class": ".ui-search ", 366 | "attr": "background-color" 367 | } 368 | ] 369 | }, 370 | { 371 | "__comment": "slider", 372 | "id": "slider", 373 | "iframe": [ 374 | { 375 | "id": "ui-widgets" 376 | } 377 | ], 378 | "web": [ 379 | { 380 | "class": ".range-bar-active", 381 | "attr": "background-color" 382 | } 383 | ], 384 | "tns": [ 385 | { 386 | "class": ".slider", 387 | "attr": "background-color" 388 | } 389 | ] 390 | }, 391 | { 392 | "__comment": "progress indicator", 393 | "id": "progress-indicator", 394 | "iframe": [ 395 | { 396 | "id": "ui-widgets" 397 | } 398 | ], 399 | "web": [ 400 | { 401 | "class": ".pace .pace-progress", 402 | "attr": "background" 403 | } 404 | ], 405 | "tns": [ 406 | { 407 | "class": ".progress", 408 | "attr": "color" 409 | } 410 | ] 411 | }, 412 | { 413 | "__comment": "avatar border radius", 414 | "id": "listitem-avatar-radius-px", 415 | "iframe": [ 416 | { 417 | "id": "ui-listviews" 418 | } 419 | ], 420 | "web": [ 421 | { 422 | "class": ".item-avatar img", 423 | "attr": "border-radius" 424 | } 425 | ], 426 | "tns": [ 427 | { 428 | "class": ".img-circle", 429 | "attr": "border-radius" 430 | } 431 | ] 432 | }, 433 | { 434 | "__comment": "item heading size", 435 | "id": "listitem-heading-size-px", 436 | "iframe": [ 437 | { 438 | "id": "ui-listviews" 439 | } 440 | ], 441 | "web": [ 442 | { 443 | "class": ".list .item h2", 444 | "attr": "font-size" 445 | } 446 | ], 447 | "tns": [ 448 | { 449 | "class": ".list-group-item-heading", 450 | "attr": "font-size" 451 | } 452 | ] 453 | }, 454 | { 455 | "__comment": "item sub-heading size", 456 | "id": "listitem-subheading-size-px", 457 | "iframe": [ 458 | { 459 | "id": "ui-listviews" 460 | } 461 | ], 462 | "web": [ 463 | { 464 | "class": ".list .item p", 465 | "attr": "font-size" 466 | } 467 | ], 468 | "tns": [ 469 | { 470 | "class": ".list-group-item-text", 471 | "attr": "font-size" 472 | } 473 | ] 474 | }, 475 | { 476 | "__comment": "thumbnail border radius", 477 | "id": "listitem-thumb-radius-px", 478 | "iframe": [ 479 | { 480 | "id": "ui-listviews" 481 | } 482 | ], 483 | "web": [ 484 | { 485 | "class": ".item-thumbnail-left img", 486 | "attr": "border-radius" 487 | } 488 | ], 489 | "tns": [ 490 | { 491 | "class": ".img-rounded", 492 | "attr": "border-radius" 493 | } 494 | ] 495 | }, 496 | { 497 | "__comment": "body text size", 498 | "id": "text-size-px", 499 | "iframe": [ 500 | { 501 | "id": "ui-texts" 502 | }, 503 | { 504 | "id": "ui-tabs" 505 | } 506 | ], 507 | "web": [ 508 | { 509 | "class": ".text-sizes p", 510 | "attr": "font-size" 511 | }, 512 | { 513 | "class": ".tabs-content p", 514 | "attr": "font-size" 515 | } 516 | ], 517 | "tns": [ 518 | { 519 | "class": ".body", 520 | "attr": "font-size" 521 | } 522 | ] 523 | }, 524 | { 525 | "__comment": "h1 size", 526 | "id": "text-h1-size-px", 527 | "iframe": [ 528 | { 529 | "id": "ui-texts" 530 | } 531 | ], 532 | "web": [ 533 | { 534 | "class": ".text-headings h1", 535 | "attr": "font-size" 536 | } 537 | ], 538 | "tns": [ 539 | { 540 | "class": ".h1", 541 | "attr": "font-size" 542 | } 543 | ] 544 | }, 545 | { 546 | "__comment": "h2 size", 547 | "id": "text-h2-size-px", 548 | "iframe": [ 549 | { 550 | "id": "ui-texts" 551 | }, 552 | { 553 | "id": "ui-tabs" 554 | } 555 | ], 556 | "web": [ 557 | { 558 | "class": ".text-headings h2", 559 | "attr": "font-size" 560 | }, 561 | { 562 | "class": ".tabs-content h2", 563 | "attr": "font-size" 564 | } 565 | ], 566 | "tns": [ 567 | { 568 | "class": ".h2", 569 | "attr": "font-size" 570 | } 571 | ] 572 | }, 573 | { 574 | "__comment": "h3 size", 575 | "id": "text-h3-size-px", 576 | "iframe": [ 577 | { 578 | "id": "ui-texts" 579 | } 580 | ], 581 | "web": [ 582 | { 583 | "class": ".text-headings h3", 584 | "attr": "font-size" 585 | } 586 | ], 587 | "tns": [ 588 | { 589 | "class": ".h3", 590 | "attr": "font-size" 591 | } 592 | ] 593 | }, 594 | { 595 | "__comment": "h4 size", 596 | "id": "text-h4-size-px", 597 | "iframe": [ 598 | { 599 | "id": "ui-texts" 600 | } 601 | ], 602 | "web": [ 603 | { 604 | "class": ".text-headings h4", 605 | "attr": "font-size" 606 | } 607 | ], 608 | "tns": [ 609 | { 610 | "class": ".h4", 611 | "attr": "font-size" 612 | } 613 | ] 614 | }, 615 | { 616 | "__comment": "h5 size", 617 | "id": "text-h5-size-px", 618 | "iframe": [ 619 | { 620 | "id": "ui-texts" 621 | } 622 | ], 623 | "web": [ 624 | { 625 | "class": ".text-headings h5", 626 | "attr": "font-size" 627 | } 628 | ], 629 | "tns": [ 630 | { 631 | "class": ".h5", 632 | "attr": "font-size" 633 | } 634 | ] 635 | }, 636 | { 637 | "__comment": "h6 size", 638 | "id": "text-h6-size-px", 639 | "iframe": [ 640 | { 641 | "id": "ui-texts" 642 | } 643 | ], 644 | "web": [ 645 | { 646 | "class": ".text-headings h6", 647 | "attr": "font-size" 648 | } 649 | ], 650 | "tns": [ 651 | { 652 | "class": ".h6", 653 | "attr": "font-size" 654 | } 655 | ] 656 | }, 657 | { 658 | "__comment": "primary color", 659 | "id": "text-primary-color", 660 | "iframe": [ 661 | { 662 | "id": "ui-texts" 663 | } 664 | ], 665 | "web": [ 666 | { 667 | "class": ".text-primary", 668 | "attr": "color" 669 | }, 670 | { 671 | "class": ".text-bg-primary", 672 | "attr": "background-color" 673 | } 674 | ], 675 | "tns": [ 676 | { 677 | "class": ".page label.text-primary, .tab-view label.text-primary", 678 | "attr": "color" 679 | }, 680 | { 681 | "class": ".page label.bg-primary, .tab-view label.bg-primary", 682 | "attr": "background-color" 683 | } 684 | ] 685 | }, 686 | { 687 | "__comment": "danger color", 688 | "id": "text-danger-color", 689 | "iframe": [ 690 | { 691 | "id": "ui-texts" 692 | } 693 | ], 694 | "web": [ 695 | { 696 | "class": ".text-danger", 697 | "attr": "color" 698 | }, 699 | { 700 | "class": ".text-bg-danger", 701 | "attr": "background-color" 702 | } 703 | ], 704 | "tns": [ 705 | { 706 | "class": ".page label.text-danger, .tab-view label.text-danger", 707 | "attr": "color" 708 | }, 709 | { 710 | "class": ".page label.bg-danger, .tab-view label.bg-danger", 711 | "attr": "background-color" 712 | } 713 | ] 714 | }, 715 | { 716 | "__comment": "muted color", 717 | "id": "text-muted-color", 718 | "iframe": [ 719 | { 720 | "id": "ui-texts" 721 | } 722 | ], 723 | "web": [ 724 | { 725 | "class": ".text-muted", 726 | "attr": "color" 727 | } 728 | ], 729 | "tns": [ 730 | { 731 | "class": ".page label.text-muted, .tab-view label.text-muted", 732 | "attr": "color" 733 | } 734 | ] 735 | }, 736 | { 737 | "__comment": "plain button text color", 738 | "id": "buttons-plain-color", 739 | "iframe": [ 740 | { 741 | "id": "ui-buttons" 742 | } 743 | ], 744 | "web": [ 745 | { 746 | "class": ".button.button-positive.button-clear", 747 | "attr": "color" 748 | } 749 | ], 750 | "tns": [ 751 | { 752 | "class": ".btn", 753 | "attr": "color" 754 | } 755 | ] 756 | }, 757 | { 758 | "__comment": "primary button background color", 759 | "id": "buttons-primary-bg-color", 760 | "iframe": [ 761 | { 762 | "id": "ui-buttons" 763 | } 764 | ], 765 | "web": [ 766 | { 767 | "class": ".btn-primary", 768 | "attr": "background-color" 769 | } 770 | ], 771 | "tns": [ 772 | { 773 | "class": ".btn-primary", 774 | "attr": "background-color" 775 | }, 776 | { 777 | "class": ".btn-primary", 778 | "attr": "border-color" 779 | } 780 | ] 781 | }, 782 | { 783 | "__comment": "primary button text color", 784 | "id": "buttons-primary-lbl-color", 785 | "iframe": [ 786 | { 787 | "id": "ui-buttons" 788 | } 789 | ], 790 | "web": [ 791 | { 792 | "class": ".btn-primary", 793 | "attr": "color" 794 | } 795 | ], 796 | "tns": [ 797 | { 798 | "class": ".btn-primary", 799 | "attr": "color" 800 | } 801 | ] 802 | }, 803 | { 804 | "__comment": "outlined button border color", 805 | "id": "buttons-outline-bg-color", 806 | "iframe": [ 807 | { 808 | "id": "ui-buttons" 809 | } 810 | ], 811 | "web": [ 812 | { 813 | "class": ".button-outline", 814 | "attr": "border-color" 815 | } 816 | ], 817 | "tns": [ 818 | { 819 | "class": ".btn-outline", 820 | "attr": "border-color" 821 | } 822 | ] 823 | }, 824 | { 825 | "__comment": "outlined button text color", 826 | "id": "buttons-outline-color", 827 | "iframe": [ 828 | { 829 | "id": "ui-buttons" 830 | } 831 | ], 832 | "web": [ 833 | { 834 | "class": ".button-outline", 835 | "attr": "color" 836 | } 837 | ], 838 | "tns": [ 839 | { 840 | "class": ".btn-outline", 841 | "attr": "color" 842 | } 843 | ] 844 | }, 845 | { 846 | "__comment": "disabled button background color", 847 | "id": "buttons-disabled-bg-color", 848 | "iframe": [ 849 | { 850 | "id": "ui-buttons" 851 | } 852 | ], 853 | "web": [ 854 | { 855 | "class": ".button-disabled", 856 | "attr": "background-color" 857 | } 858 | ], 859 | "tns": [ 860 | { 861 | "class": ".btn[isEnabled=false]", 862 | "attr": "background-color" 863 | }, 864 | { 865 | "class": ".btn[isEnabled=false]", 866 | "attr": "border-color" 867 | } 868 | ] 869 | }, 870 | { 871 | "__comment": "disabled button text color", 872 | "id": "buttons-disabled-lbl-color", 873 | "iframe": [ 874 | { 875 | "id": "ui-buttons" 876 | } 877 | ], 878 | "web": [ 879 | { 880 | "class": ".button-disabled", 881 | "attr": "color" 882 | } 883 | ], 884 | "tns": [ 885 | { 886 | "class": ".btn[isEnabled=false]", 887 | "attr": "color" 888 | } 889 | ] 890 | }, 891 | { 892 | "__comment": "small rounded button radius", 893 | "id": "buttons-rounded-sm-px", 894 | "iframe": [ 895 | { 896 | "id": "ui-buttons" 897 | } 898 | ], 899 | "web": [ 900 | { 901 | "class": ".button-sm-radius", 902 | "attr": "border-radius" 903 | } 904 | ], 905 | "tns": [ 906 | { 907 | "class": ".btn-rounded-sm", 908 | "attr": "border-radius" 909 | } 910 | ] 911 | }, 912 | { 913 | "__comment": "large rounded button radius", 914 | "id": "buttons-rounded-lg-px", 915 | "iframe": [ 916 | { 917 | "id": "ui-buttons" 918 | } 919 | ], 920 | "web": [ 921 | { 922 | "class": ".button-lg-radius", 923 | "attr": "border-radius" 924 | } 925 | ], 926 | "tns": [ 927 | { 928 | "class": ".btn-rounded-lg", 929 | "attr": "border-radius" 930 | } 931 | ] 932 | }, 933 | { 934 | "__comment": "label text size", 935 | "id": "form-label-text-px", 936 | "iframe": [ 937 | { 938 | "id": "ui-forms" 939 | } 940 | ], 941 | "web": [ 942 | { 943 | "class": ".input-label", 944 | "attr": "font-size" 945 | } 946 | ], 947 | "tns": [ 948 | { 949 | "class": ".label", 950 | "attr": "font-size" 951 | } 952 | ] 953 | }, 954 | { 955 | "__comment": "placeholder/input text size", 956 | "id": "form-placeholder-text-px", 957 | "iframe": [ 958 | { 959 | "id": "ui-forms" 960 | } 961 | ], 962 | "web": [ 963 | { 964 | "class": "input[type=text]", 965 | "attr": "font-size" 966 | } 967 | ], 968 | "tns": [ 969 | { 970 | "class": ".input", 971 | "attr": "font-size" 972 | } 973 | ] 974 | }, 975 | { 976 | "__comment": "rounded input radius", 977 | "id": "form-input-radius-px", 978 | "iframe": [ 979 | { 980 | "id": "ui-forms" 981 | } 982 | ], 983 | "web": [ 984 | { 985 | "class": ".form-input-rounded", 986 | "attr": "border-radius" 987 | } 988 | ], 989 | "tns": [ 990 | { 991 | "class": ".input-rounded", 992 | "attr": "border-radius" 993 | } 994 | ] 995 | }, 996 | { 997 | "__comment": "tab label text size (NOT CURRENTLY USE DUE TO CSS ISSUES)", 998 | "id": "tab-label-text-px", 999 | "iframe": [ 1000 | { 1001 | "id": "ui-tabs" 1002 | }, 1003 | { 1004 | "id": "ui-listviews" 1005 | } 1006 | ], 1007 | "web": [ 1008 | { 1009 | "class": ".tab-item", 1010 | "attr": "font-size" 1011 | } 1012 | ] 1013 | }, 1014 | { 1015 | "__comment": "tab label text color", 1016 | "id": "tab-label-text-color", 1017 | "iframe": [ 1018 | { 1019 | "id": "ui-tabs" 1020 | }, 1021 | { 1022 | "id": "ui-listviews" 1023 | } 1024 | ], 1025 | "web": [ 1026 | { 1027 | "class": ".tab-item", 1028 | "attr": "color" 1029 | }, 1030 | { 1031 | "class": ".tab-title", 1032 | "attr": "color" 1033 | } 1034 | ], 1035 | "tns": [ 1036 | { 1037 | "class": ".tab-view", 1038 | "attr": "selected-tab-text-color" 1039 | }, 1040 | { 1041 | "class": ".tab-view", 1042 | "attr": "tab-text-color" 1043 | } 1044 | ] 1045 | }, 1046 | { 1047 | "__comment": "tab bar color", 1048 | "id": "tab-bar-color", 1049 | "iframe": [ 1050 | { 1051 | "id": "ui-tabs" 1052 | }, 1053 | { 1054 | "id": "ui-listviews" 1055 | } 1056 | ], 1057 | "web": [ 1058 | { 1059 | "class": ".tabs", 1060 | "attr": "background-color" 1061 | } 1062 | ], 1063 | "tns": [ 1064 | { 1065 | "class": ".tab-view", 1066 | "attr": "tab-background-color" 1067 | } 1068 | ] 1069 | }, 1070 | { 1071 | "__comment": "tab border color (android)", 1072 | "id": "tab-android-highlight-color-ab", 1073 | "iframe": [ 1074 | { 1075 | "id": "ui-tabs" 1076 | }, 1077 | { 1078 | "id": "ui-listviews" 1079 | } 1080 | ], 1081 | "web": [ 1082 | { 1083 | "class": ".tab-item.tab-item-active", 1084 | "attr": "border-color" 1085 | } 1086 | ], 1087 | "tns": [ 1088 | { 1089 | "class": ".tab-view", 1090 | "attr": "android-selected-tab-highlight-color" 1091 | } 1092 | ] 1093 | }, 1094 | { 1095 | "__comment": "drawer header background color", 1096 | "id": "drawer-header-ab", 1097 | "iframe": [ 1098 | { 1099 | "id": "ui-tabs" 1100 | } 1101 | ], 1102 | "web": [ 1103 | { 1104 | "class": ".menu .bar-positive", 1105 | "attr": "background-color" 1106 | }, 1107 | { 1108 | "class": ".menu .bar-positive", 1109 | "attr": "border-color" 1110 | } 1111 | ], 1112 | "tns": [ 1113 | { 1114 | "class": ".sidedrawer-header", 1115 | "attr": "background-color" 1116 | } 1117 | ] 1118 | }, 1119 | { 1120 | "__comment": "drawer header text color", 1121 | "id": "drawer-header-text-color", 1122 | "iframe": [ 1123 | { 1124 | "id": "ui-tabs" 1125 | } 1126 | ], 1127 | "web": [ 1128 | { 1129 | "class": ".menu .title", 1130 | "attr": "color" 1131 | } 1132 | ], 1133 | "tns": [ 1134 | { 1135 | "class": ".sidedrawer-header-brand", 1136 | "attr": "color" 1137 | } 1138 | ] 1139 | }, 1140 | { 1141 | "__comment": "drawer item background color", 1142 | "id": "drawer-item-bg", 1143 | "iframe": [ 1144 | { 1145 | "id": "ui-tabs" 1146 | } 1147 | ], 1148 | "web": [ 1149 | { 1150 | "class": ".menu-wrapper .list .item", 1151 | "attr": "background-color" 1152 | } 1153 | ], 1154 | "tns": [ 1155 | { 1156 | "class": ".sidedrawer-content", 1157 | "attr": "background-color" 1158 | } 1159 | ] 1160 | }, 1161 | { 1162 | "__comment": "drawer item text color", 1163 | "id": "drawer-item-text-color", 1164 | "iframe": [ 1165 | { 1166 | "id": "ui-tabs" 1167 | } 1168 | ], 1169 | "web": [ 1170 | { 1171 | "class": ".menu-wrapper .list .item", 1172 | "attr": "color" 1173 | } 1174 | ], 1175 | "tns": [ 1176 | { 1177 | "class": ".sidedrawer-list-item", 1178 | "attr": "color" 1179 | } 1180 | ] 1181 | }, 1182 | { 1183 | "__comment": "selected drawer item bg color (NO WEB EQUIVALENT)", 1184 | "id": "drawer-item-sel-bg", 1185 | "iframe": [ 1186 | { 1187 | "id": "ui-tabs" 1188 | } 1189 | ], 1190 | "tns": [ 1191 | { 1192 | "class": ".sidedrawer-list-item.active", 1193 | "attr": "background-color" 1194 | } 1195 | ] 1196 | }, 1197 | { 1198 | "__comment": "selected drawer item text color (NO WEB EQUIVALENT)", 1199 | "id": "drawer-item-sel-text-color", 1200 | "iframe": [ 1201 | { 1202 | "id": "ui-tabs" 1203 | } 1204 | ], 1205 | "tns": [ 1206 | { 1207 | "class": ".sidedrawer-list-item.active", 1208 | "attr": "color" 1209 | } 1210 | ] 1211 | } 1212 | ] -------------------------------------------------------------------------------- /scripts/icheck.min.js: -------------------------------------------------------------------------------- 1 | /*! iCheck v1.0.2 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */ 2 | (function(f){function A(a,b,d){var c=a[0],g=/er/.test(d)?_indeterminate:/bl/.test(d)?n:k,e=d==_update?{checked:c[k],disabled:c[n],indeterminate:"true"==a.attr(_indeterminate)||"false"==a.attr(_determinate)}:c[g];if(/^(ch|di|in)/.test(d)&&!e)x(a,g);else if(/^(un|en|de)/.test(d)&&e)q(a,g);else if(d==_update)for(var f in e)e[f]?x(a,f,!0):q(a,f,!0);else if(!b||"toggle"==d){if(!b)a[_callback]("ifClicked");e?c[_type]!==r&&q(a,g):x(a,g)}}function x(a,b,d){var c=a[0],g=a.parent(),e=b==k,u=b==_indeterminate, 3 | v=b==n,s=u?_determinate:e?y:"enabled",F=l(a,s+t(c[_type])),B=l(a,b+t(c[_type]));if(!0!==c[b]){if(!d&&b==k&&c[_type]==r&&c.name){var w=a.closest("form"),p='input[name="'+c.name+'"]',p=w.length?w.find(p):f(p);p.each(function(){this!==c&&f(this).data(m)&&q(f(this),b)})}u?(c[b]=!0,c[k]&&q(a,k,"force")):(d||(c[b]=!0),e&&c[_indeterminate]&&q(a,_indeterminate,!1));D(a,e,b,d)}c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"default");g[_add](B||l(a,b)||"");g.attr("role")&&!u&&g.attr("aria-"+(v?n:k),"true"); 4 | g[_remove](F||l(a,s)||"")}function q(a,b,d){var c=a[0],g=a.parent(),e=b==k,f=b==_indeterminate,m=b==n,s=f?_determinate:e?y:"enabled",q=l(a,s+t(c[_type])),r=l(a,b+t(c[_type]));if(!1!==c[b]){if(f||!d||"force"==d)c[b]=!1;D(a,e,s,d)}!c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"pointer");g[_remove](r||l(a,b)||"");g.attr("role")&&!f&&g.attr("aria-"+(m?n:k),"false");g[_add](q||l(a,s)||"")}function E(a,b){if(a.data(m)){a.parent().html(a.attr("style",a.data(m).s||""));if(b)a[_callback](b);a.off(".i").unwrap(); 5 | f(_label+'[for="'+a[0].id+'"]').add(a.closest(_label)).off(".i")}}function l(a,b,f){if(a.data(m))return a.data(m).o[b+(f?"":"Class")]}function t(a){return a.charAt(0).toUpperCase()+a.slice(1)}function D(a,b,f,c){if(!c){if(b)a[_callback]("ifToggled");a[_callback]("ifChanged")[_callback]("if"+t(f))}}var m="iCheck",C=m+"-helper",r="radio",k="checked",y="un"+k,n="disabled";_determinate="determinate";_indeterminate="in"+_determinate;_update="update";_type="type";_click="click";_touch="touchbegin.i touchend.i"; 6 | _add="addClass";_remove="removeClass";_callback="trigger";_label="label";_cursor="cursor";_mobile=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);f.fn[m]=function(a,b){var d='input[type="checkbox"], input[type="'+r+'"]',c=f(),g=function(a){a.each(function(){var a=f(this);c=a.is(d)?c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),g(this),c.each(function(){var c= 7 | f(this);"destroy"==a?E(c,"ifDestroyed"):A(c,!0,a);f.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var e=f.extend({checkedClass:k,disabledClass:n,indeterminateClass:_indeterminate,labelHover:!0},a),l=e.handle,v=e.hoverClass||"hover",s=e.focusClass||"focus",t=e.activeClass||"active",B=!!e.labelHover,w=e.labelHoverClass||"hover",p=(""+e.increaseArea).replace("%","")|0;if("checkbox"==l||l==r)d='input[type="'+l+'"]';-50>p&&(p=-50);g(this);return c.each(function(){var a=f(this);E(a);var c=this, 8 | b=c.id,g=-p+"%",d=100+2*p+"%",d={position:"absolute",top:g,left:g,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},g=_mobile?{position:"absolute",visibility:"hidden"}:p?d:{position:"absolute",opacity:0},l="checkbox"==c[_type]?e.checkboxClass||"icheckbox":e.radioClass||"i"+r,z=f(_label+'[for="'+b+'"]').add(a.closest(_label)),u=!!e.aria,y=m+"-"+Math.random().toString(36).substr(2,6),h='
")[_callback]("ifCreated").parent().append(e.insert);d=f('').css(d).appendTo(h);a.data(m,{o:e,s:a.attr("style")}).css(g);e.inheritClass&&h[_add](c.className||"");e.inheritID&&b&&h.attr("id",m+"-"+b);"static"==h.css("position")&&h.css("position","relative");A(a,!0,_update);if(z.length)z.on(_click+".i mouseover.i mouseout.i "+_touch,function(b){var d=b[_type],e=f(this);if(!c[n]){if(d==_click){if(f(b.target).is("a"))return; 10 | A(a,!1,!0)}else B&&(/ut|nd/.test(d)?(h[_remove](v),e[_remove](w)):(h[_add](v),e[_add](w)));if(_mobile)b.stopPropagation();else return!1}});a.on(_click+".i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[_type];b=b.keyCode;if(d==_click)return!1;if("keydown"==d&&32==b)return c[_type]==r&&c[k]||(c[k]?q(a,k):x(a,k)),!1;if("keyup"==d&&c[_type]==r)!c[k]&&x(a,k);else if(/us|ur/.test(d))h["blur"==d?_remove:_add](s)});d.on(_click+" mousedown mouseup mouseover mouseout "+_touch,function(b){var d= 11 | b[_type],e=/wn|up/.test(d)?t:v;if(!c[n]){if(d==_click)A(a,!1,!0);else{if(/wn|er|in/.test(d))h[_add](e);else h[_remove](e+" "+t);if(z.length&&B&&e==v)z[/ut|nd/.test(d)?_remove:_add](w)}if(_mobile)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto); 12 | -------------------------------------------------------------------------------- /scripts/remodal.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Remodal - v1.1.1 3 | * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking. 4 | * http://vodkabears.github.io/remodal/ 5 | * 6 | * Made by Ilya Makarov 7 | * Under MIT License 8 | */ 9 | 10 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return b(a,c)}):"object"==typeof exports?b(a,require("jquery")):b(a,a.jQuery||a.Zepto)}(this,function(a,b){"use strict";function c(a){if(w&&"none"===a.css("animation-name")&&"none"===a.css("-webkit-animation-name")&&"none"===a.css("-moz-animation-name")&&"none"===a.css("-o-animation-name")&&"none"===a.css("-ms-animation-name"))return 0;var b,c,d,e,f=a.css("animation-duration")||a.css("-webkit-animation-duration")||a.css("-moz-animation-duration")||a.css("-o-animation-duration")||a.css("-ms-animation-duration")||"0s",g=a.css("animation-delay")||a.css("-webkit-animation-delay")||a.css("-moz-animation-delay")||a.css("-o-animation-delay")||a.css("-ms-animation-delay")||"0s",h=a.css("animation-iteration-count")||a.css("-webkit-animation-iteration-count")||a.css("-moz-animation-iteration-count")||a.css("-o-animation-iteration-count")||a.css("-ms-animation-iteration-count")||"1";for(f=f.split(", "),g=g.split(", "),h=h.split(", "),e=0,c=f.length,b=Number.NEGATIVE_INFINITY;eb&&(b=d);return b}function d(){if(b(document).height()<=b(window).height())return 0;var a,c,d=document.createElement("div"),e=document.createElement("div");return d.style.visibility="hidden",d.style.width="100px",document.body.appendChild(d),a=d.offsetWidth,d.style.overflow="scroll",e.style.width="100%",d.appendChild(e),c=e.offsetWidth,d.parentNode.removeChild(d),a-c}function e(){if(!x){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)||(c=b(document.body),a=parseInt(c.css("padding-right"),10)+d(),c.css("padding-right",a+"px"),e.addClass(f))}}function f(){if(!x){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)&&(c=b(document.body),a=parseInt(c.css("padding-right"),10)-d(),c.css("padding-right",a+"px"),e.removeClass(f))}}function g(a,b,c,d){var e=k("is",b),f=[k("is",u.CLOSING),k("is",u.OPENING),k("is",u.CLOSED),k("is",u.OPENED)].join(" ");a.$bg.removeClass(f).addClass(e),a.$overlay.removeClass(f).addClass(e),a.$wrapper.removeClass(f).addClass(e),a.$modal.removeClass(f).addClass(e),a.state=b,!c&&a.$modal.trigger({type:b,reason:d},[{reason:d}])}function h(a,d,e){var f=0,g=function(a){a.target===this&&f++},h=function(a){a.target===this&&0===--f&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())};b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].on(r,g).on(s,h)}),a(),0===c(e.$bg)&&0===c(e.$overlay)&&0===c(e.$wrapper)&&0===c(e.$modal)&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())}function i(a){a.state!==u.CLOSED&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(b,c){a[c].off(r+" "+s)}),a.$bg.removeClass(a.settings.modifier),a.$overlay.removeClass(a.settings.modifier).hide(),a.$wrapper.hide(),f(),g(a,u.CLOSED,!0))}function j(a){var b,c,d,e,f={};for(a=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,","),b=a.split(","),e=0,c=b.length;e").addClass(k("overlay")+" "+k("is",u.CLOSED)).hide(),e.append(f.$overlay)),f.$bg=b("."+k("bg")).addClass(k("is",u.CLOSED)),f.$modal=a.addClass(q+" "+k("is-initialized")+" "+f.settings.modifier+" "+k("is",u.CLOSED)).attr("tabindex","-1"),f.$wrapper=b("
").addClass(k("wrapper")+" "+f.settings.modifier+" "+k("is",u.CLOSED)).hide().append(f.$modal),e.append(f.$wrapper),f.$wrapper.on("click."+q,'[data-remodal-action="close"]',function(a){a.preventDefault(),f.close()}),f.$wrapper.on("click."+q,'[data-remodal-action="cancel"]',function(a){a.preventDefault(),f.$modal.trigger(v.CANCELLATION),f.settings.closeOnCancel&&f.close(v.CANCELLATION)}),f.$wrapper.on("click."+q,'[data-remodal-action="confirm"]',function(a){a.preventDefault(),f.$modal.trigger(v.CONFIRMATION),f.settings.closeOnConfirm&&f.close(v.CONFIRMATION)}),f.$wrapper.on("click."+q,function(a){var c=b(a.target);c.hasClass(k("wrapper"))&&f.settings.closeOnOutsideClick&&f.close()})}var n,o,p="remodal",q=a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.NAMESPACE||p,r=b.map(["animationstart","webkitAnimationStart","MSAnimationStart","oAnimationStart"],function(a){return a+"."+q}).join(" "),s=b.map(["animationend","webkitAnimationEnd","MSAnimationEnd","oAnimationEnd"],function(a){return a+"."+q}).join(" "),t=b.extend({hashTracking:!0,closeOnConfirm:!0,closeOnCancel:!0,closeOnEscape:!0,closeOnOutsideClick:!0,modifier:"",appendTo:null},a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.DEFAULTS),u={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened"},v={CONFIRMATION:"confirmation",CANCELLATION:"cancellation"},w=function(){var a=document.createElement("div").style;return void 0!==a.animationName||void 0!==a.WebkitAnimationName||void 0!==a.MozAnimationName||void 0!==a.msAnimationName||void 0!==a.OAnimationName}(),x=/iPad|iPhone|iPod/.test(navigator.platform);m.prototype.open=function(){var a,c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&(a=c.$modal.attr("data-remodal-id"),a&&c.settings.hashTracking&&(o=b(window).scrollTop(),location.hash=a),n&&n!==c&&i(n),n=c,e(),c.$bg.addClass(c.settings.modifier),c.$overlay.addClass(c.settings.modifier).show(),c.$wrapper.show().scrollTop(0),c.$modal.focus(),h(function(){g(c,u.OPENING)},function(){g(c,u.OPENED)},c))},m.prototype.close=function(a){var c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&c.state!==u.CLOSED&&(c.settings.hashTracking&&c.$modal.attr("data-remodal-id")===location.hash.substr(1)&&(location.hash="",b(window).scrollTop(o)),h(function(){g(c,u.CLOSING,!1,a)},function(){c.$bg.removeClass(c.settings.modifier),c.$overlay.removeClass(c.settings.modifier).hide(),c.$wrapper.hide(),f(),g(c,u.CLOSED,!1,a)},c))},m.prototype.getState=function(){return this.state},m.prototype.destroy=function(){var a,c=b[p].lookup;i(this),this.$wrapper.remove(),delete c[this.index],a=b.grep(c,function(a){return!!a}).length,0===a&&(this.$overlay.remove(),this.$bg.removeClass(k("is",u.CLOSING)+" "+k("is",u.OPENING)+" "+k("is",u.CLOSED)+" "+k("is",u.OPENED)))},b[p]={lookup:[]},b.fn[p]=function(a){var c,d;return this.each(function(e,f){d=b(f),null==d.data(p)?(c=new m(d,a),d.data(p,c.index),c.settings.hashTracking&&d.attr("data-remodal-id")===location.hash.substr(1)&&c.open()):c=b[p].lookup[d.data(p)]}),c},b(document).ready(function(){b(document).on("click","[data-remodal-target]",function(a){a.preventDefault();var c=a.currentTarget,d=c.getAttribute("data-remodal-target"),e=b('[data-remodal-id="'+d+'"]');b[p].lookup[e.data(p)].open()}),b(document).find("."+q).each(function(a,c){var d=b(c),e=d.data("remodal-options");e?("string"==typeof e||e instanceof String)&&(e=j(e)):e={},d[p](e)}),b(document).on("keydown."+q,function(a){n&&n.settings.closeOnEscape&&n.state===u.OPENED&&27===a.keyCode&&n.close()}),b(window).on("hashchange."+q,l)})}); -------------------------------------------------------------------------------- /scripts/spectrum.min.js: -------------------------------------------------------------------------------- 1 | !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports&&"object"==typeof module?module.exports=a(require("jquery")):a(jQuery)}(function(a,b){"use strict";function i(b,c,d,e){for(var g=[],h=0;h')}else{var n="sp-clear-display";g.push(a("
").append(a('').attr("title",e.noColorSelectedText)).html())}}return"
"+g.join("")+"
"}function j(){for(var a=0;aMath.abs(b-e);S=f?"x":"y"}}else S=null;var g=!S||"x"===S,h=!S||"y"===S;g&&(J=parseFloat(a/A)),h&&(K=parseFloat((B-b)/B)),va=!1,n.showAlpha||(L=1),Qa()},Ea,Fa),ra?(Na(ra),Ra(),ta=n.preferredFormat||tinycolor(ra).format,Aa(ra)):Ra(),p&&Ia();var d=e?"mousedown.spectrum":"click.spectrum touchstart.spectrum";fa.on(d,".sp-thumb-el",c),ga.on(d,".sp-thumb-el:nth-child(1)",{ignore:!0},c)}function za(){if(u&&window.localStorage){try{var b=window.localStorage[u].split(",#");b.length>1&&(delete window.localStorage[u],a.each(b,function(a,b){Aa(b)}))}catch(a){}try{P=window.localStorage[u].split(";")}catch(a){}}}function Aa(b){if(t){var c=tinycolor(b).toRgbString();if(!O[c]&&a.inArray(c,P)===-1)for(P.push(c);P.length>Q;)P.shift();if(u&&window.localStorage)try{window.localStorage[u]=P.join(";")}catch(a){}}}function Ba(){var a=[];if(n.showPalette)for(var b=0;bj&&j>e?Math.abs(m+e-j):0),n-=Math.min(n,n+f>k&&k>f?Math.abs(f+g-d):d),{top:n,bottom:l.bottom,left:m,right:l.right,width:l.width,height:l.height}}function n(){}function o(a){a.stopPropagation()}function p(a,b){var c=Array.prototype.slice,d=c.call(arguments,2);return function(){return a.apply(b,d.concat(c.call(arguments)))}}function q(b,c,d,f){function n(a){a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a.returnValue=!1}function o(a){if(h){if(e&&g.documentMode<9&&!a.button)return q();var d=a.originalEvent&&a.originalEvent.touches&&a.originalEvent.touches[0],f=d&&d.pageX||a.pageX,m=d&&d.pageY||a.pageY,o=Math.max(0,Math.min(f-i.left,k)),p=Math.max(0,Math.min(m-i.top,j));l&&n(a),c.apply(b,[o,p,a])}}function p(c){var e=c.which?3==c.which:2==c.button;e||h||d.apply(b,arguments)!==!1&&(h=!0,j=a(b).height(),k=a(b).width(),i=a(b).offset(),a(g).on(m),a(g.body).addClass("sp-dragging"),o(c),n(c))}function q(){h&&(a(g).off(m),a(g.body).removeClass("sp-dragging"),setTimeout(function(){f.apply(b,arguments)},0)),h=!1}c=c||function(){},d=d||function(){},f=f||function(){};var g=document,h=!1,i={},j=0,k=0,l="ontouchstart"in window,m={};m.selectstart=n,m.dragstart=n,m["touchmove mousemove"]=o,m["touchend mouseup"]=q,a(b).on("touchstart mousedown",p)}function r(a,b,c){var d;return function(){var e=this,f=arguments,g=function(){d=null,a.apply(e,f)};c&&clearTimeout(d),!c&&d||(d=setTimeout(g,b))}}function s(){return a.fn.spectrum.inputTypeColorSupport()}var c={beforeShow:n,move:n,change:n,show:n,hide:n,color:!1,flat:!1,showInput:!1,allowEmpty:!1,showButtons:!0,clickoutFiresChange:!0,showInitial:!1,showPalette:!1,showPaletteOnly:!1,hideAfterPaletteSelect:!1,togglePaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:7,cancelText:"cancel",chooseText:"choose",togglePaletteMoreText:"more",togglePaletteLessText:"less",clearText:"Clear Color Selection",noColorSelectedText:"No Color Selected",preferredFormat:!1,className:"",containerClassName:"",replacerClassName:"",showAlpha:!1,theme:"sp-light",palette:[["#ffffff","#000000","#ff0000","#ff8000","#ffff00","#008000","#0000ff","#4b0082","#9400d3"]],selectionPalette:[],disabled:!1,offset:null},d=[],e=!!/msie/i.exec(window.navigator.userAgent),f=function(){function a(a,b){return!!~(""+a).indexOf(b)}var b=document.createElement("div"),c=b.style;return c.cssText="background-color:rgba(0,0,0,.5)",a(c.backgroundColor,"rgba")||a(c.backgroundColor,"hsla")}(),g=["
","
","
","
"].join(""),h=function(){var a="";if(e)for(var b=1;b<=6;b++)a+="
";return["
","
","
","
","","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
",a,"
","
","
","
","
","","
","
","
","","","
","
","
"].join("")}(),t="spectrum.id";a.fn.spectrum=function(b,c){if("string"==typeof b){var e=this,f=Array.prototype.slice.call(arguments,1);return this.each(function(){var c=d[a(this).data(t)];if(c){var g=c[b];if(!g)throw new Error("Spectrum: no such method: '"+b+"'");"get"==b?e=c.get():"container"==b?e=c.container:"option"==b?e=c.option.apply(c,f):"destroy"==b?(c.destroy(),a(this).removeData(t)):g.apply(c,f)}}),e}return this.spectrum("destroy").each(function(){var c=a.extend({},a(this).data(),b),d=l(this,c);a(this).data(t,d.id)})},a.fn.spectrum.load=!0,a.fn.spectrum.loadOpts={},a.fn.spectrum.draggable=q,a.fn.spectrum.defaults=c,a.fn.spectrum.inputTypeColorSupport=function b(){if("undefined"==typeof b._cachedResult){var c=a("")[0];b._cachedResult="color"===c.type&&""!==c.value}return b._cachedResult},a.spectrum={},a.spectrum.localization={},a.spectrum.palettes={},a.fn.spectrum.processNativeColorInputs=function(){var b=a("input[type=color]");b.length&&!s()&&b.spectrum({preferredFormat:"hex6"})},function(){function j(a){var b={r:0,g:0,b:0},c=1,d=!1,e=!1;return"string"==typeof a&&(a=S(a)),"object"==typeof a&&(a.hasOwnProperty("r")&&a.hasOwnProperty("g")&&a.hasOwnProperty("b")?(b=k(a.r,a.g,a.b),d=!0,e="%"===String(a.r).substr(-1)?"prgb":"rgb"):a.hasOwnProperty("h")&&a.hasOwnProperty("s")&&a.hasOwnProperty("v")?(a.s=O(a.s),a.v=O(a.v),b=o(a.h,a.s,a.v),d=!0,e="hsv"):a.hasOwnProperty("h")&&a.hasOwnProperty("s")&&a.hasOwnProperty("l")&&(a.s=O(a.s),a.l=O(a.l),b=m(a.h,a.s,a.l),d=!0,e="hsl"),a.hasOwnProperty("a")&&(c=a.a)),c=H(c),{ok:d,format:a.format||e,r:f(255,g(b.r,0)),g:f(255,g(b.g,0)),b:f(255,g(b.b,0)),a:c}}function k(a,b,c){return{r:255*I(a,255),g:255*I(b,255),b:255*I(c,255)}}function l(a,b,c){a=I(a,255),b=I(b,255),c=I(c,255);var h,i,d=g(a,b,c),e=f(a,b,c),j=(d+e)/2;if(d==e)h=i=0;else{var k=d-e;switch(i=j>.5?k/(2-d-e):k/(d+e),d){case a:h=(b-c)/k+(b1&&(c-=1),c<1/6?a+6*(b-a)*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a}var d,e,f;if(a=I(a,360),b=I(b,100),c=I(c,100),0===b)d=e=f=c;else{var h=c<.5?c*(1+b):c+b-c*b,i=2*c-h;d=g(i,h,a+1/3),e=g(i,h,a),f=g(i,h,a-1/3)}return{r:255*d,g:255*e,b:255*f}}function n(a,b,c){a=I(a,255),b=I(b,255),c=I(c,255);var h,i,d=g(a,b,c),e=f(a,b,c),j=d,k=d-e;if(i=0===d?0:k/d,d==e)h=0;else{switch(d){case a:h=(b-c)/k+(b>1)+720)%360;--b;)d.h=(d.h+e)%360,f.push(i(d));return f}function D(a,b){b=b||6;for(var c=i(a).toHsv(),d=c.h,e=c.s,f=c.v,g=[],h=1/b;b--;)g.push(i({h:d,s:e,v:f})),f=(f+h)%1;return g}function G(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[a[c]]=c);return b}function H(a){return a=parseFloat(a),(isNaN(a)||a<0||a>1)&&(a=1),a}function I(a,b){L(a)&&(a="100%");var c=M(a);return a=f(b,g(0,parseFloat(a))),c&&(a=parseInt(a*b,10)/100),d.abs(a-b)<1e-6?1:a%b/parseFloat(b)}function J(a){return f(1,g(0,a))}function K(a){return parseInt(a,16)}function L(a){return"string"==typeof a&&a.indexOf(".")!=-1&&1===parseFloat(a)}function M(a){return"string"==typeof a&&a.indexOf("%")!=-1}function N(a){return 1==a.length?"0"+a:""+a}function O(a){return a<=1&&(a=100*a+"%"),a}function P(a){return Math.round(255*parseFloat(a)).toString(16)}function Q(a){return K(a)/255}function S(c){c=c.replace(a,"").replace(b,"").toLowerCase();var d=!1;if(E[c])c=E[c],d=!0;else if("transparent"==c)return{r:0,g:0,b:0,a:0,format:"name"};var e;return(e=R.rgb.exec(c))?{r:e[1],g:e[2],b:e[3]}:(e=R.rgba.exec(c))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=R.hsl.exec(c))?{h:e[1],s:e[2],l:e[3]}:(e=R.hsla.exec(c))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=R.hsv.exec(c))?{h:e[1],s:e[2],v:e[3]}:(e=R.hsva.exec(c))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=R.hex8.exec(c))?{a:Q(e[1]),r:K(e[2]),g:K(e[3]),b:K(e[4]),format:d?"name":"hex8"}:(e=R.hex6.exec(c))?{r:K(e[1]),g:K(e[2]),b:K(e[3]),format:d?"name":"hex"}:!!(e=R.hex3.exec(c))&&{r:K(e[1]+""+e[1]),g:K(e[2]+""+e[2]),b:K(e[3]+""+e[3]),format:d?"name":"hex"}}var a=/^[\s,#]+/,b=/\s+$/,c=0,d=Math,e=d.round,f=d.min,g=d.max,h=d.random,i=function(a,b){if(a=a?a:"",b=b||{},a instanceof i)return a;if(!(this instanceof i))return new i(a,b);var d=j(a);this._originalInput=a,this._r=d.r,this._g=d.g,this._b=d.b,this._a=d.a,this._roundA=e(1e3*this._a)/1e3,this._format=b.format||d.format,this._gradientType=b.gradientType,this._r<1&&(this._r=e(this._r)),this._g<1&&(this._g=e(this._g)),this._b<1&&(this._b=e(this._b)),this._ok=d.ok,this._tc_id=c++};i.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var a=this.toRgb();return(299*a.r+587*a.g+114*a.b)/1e3},setAlpha:function(a){return this._a=H(a),this._roundA=e(1e3*this._a)/1e3,this},toHsv:function(){var a=n(this._r,this._g,this._b);return{h:360*a.h,s:a.s,v:a.v,a:this._a}},toHsvString:function(){var a=n(this._r,this._g,this._b),b=e(360*a.h),c=e(100*a.s),d=e(100*a.v);return 1==this._a?"hsv("+b+", "+c+"%, "+d+"%)":"hsva("+b+", "+c+"%, "+d+"%, "+this._roundA+")"},toHsl:function(){var a=l(this._r,this._g,this._b);return{h:360*a.h,s:a.s,l:a.l,a:this._a}},toHslString:function(){var a=l(this._r,this._g,this._b),b=e(360*a.h),c=e(100*a.s),d=e(100*a.l);return 1==this._a?"hsl("+b+", "+c+"%, "+d+"%)":"hsla("+b+", "+c+"%, "+d+"%, "+this._roundA+")"},toHex:function(a){return p(this._r,this._g,this._b,a)},toHexString:function(a){return"#"+this.toHex(a)},toHex8:function(){return q(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:e(this._r),g:e(this._g),b:e(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+e(this._r)+", "+e(this._g)+", "+e(this._b)+")":"rgba("+e(this._r)+", "+e(this._g)+", "+e(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:e(100*I(this._r,255))+"%",g:e(100*I(this._g,255))+"%",b:e(100*I(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+e(100*I(this._r,255))+"%, "+e(100*I(this._g,255))+"%, "+e(100*I(this._b,255))+"%)":"rgba("+e(100*I(this._r,255))+"%, "+e(100*I(this._g,255))+"%, "+e(100*I(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(F[p(this._r,this._g,this._b,!0)]||!1)},toFilter:function(a){var b="#"+q(this._r,this._g,this._b,this._a),c=b,d=this._gradientType?"GradientType = 1, ":"";if(a){var e=i(a);c=e.toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+d+"startColorstr="+b+",endColorstr="+c+")"},toString:function(a){var b=!!a;a=a||this._format;var c=!1,d=this._a<1&&this._a>=0,e=!b&&d&&("hex"===a||"hex6"===a||"hex3"===a||"name"===a);return e?"name"===a&&0===this._a?this.toName():this.toRgbString():("rgb"===a&&(c=this.toRgbString()),"prgb"===a&&(c=this.toPercentageRgbString()),"hex"!==a&&"hex6"!==a||(c=this.toHexString()),"hex3"===a&&(c=this.toHexString(!0)),"hex8"===a&&(c=this.toHex8String()),"name"===a&&(c=this.toName()),"hsl"===a&&(c=this.toHslString()),"hsv"===a&&(c=this.toHsvString()),c||this.toHexString())},_applyModification:function(a,b){var c=a.apply(null,[this].concat([].slice.call(b)));return this._r=c._r,this._g=c._g,this._b=c._b,this.setAlpha(c._a),this},lighten:function(){return this._applyModification(u,arguments)},brighten:function(){return this._applyModification(v,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(r,arguments)},saturate:function(){return this._applyModification(s,arguments)},greyscale:function(){return this._applyModification(t,arguments)},spin:function(){return this._applyModification(x,arguments)},_applyCombination:function(a,b){return a.apply(null,[this].concat([].slice.call(b)))},analogous:function(){return this._applyCombination(C,arguments)},complement:function(){return this._applyCombination(y,arguments)},monochromatic:function(){return this._applyCombination(D,arguments)},splitcomplement:function(){return this._applyCombination(B,arguments)},triad:function(){return this._applyCombination(z,arguments)},tetrad:function(){return this._applyCombination(A,arguments)}},i.fromRatio=function(a,b){if("object"==typeof a){var c={};for(var d in a)a.hasOwnProperty(d)&&("a"===d?c[d]=a[d]:c[d]=O(a[d]));a=c}return i(a,b)},i.equals=function(a,b){return!(!a||!b)&&i(a).toRgbString()==i(b).toRgbString()},i.random=function(){return i.fromRatio({r:h(),g:h(),b:h()})},i.mix=function(a,b,c){c=0===c?0:c||50;var j,d=i(a).toRgb(),e=i(b).toRgb(),f=c/100,g=2*f-1,h=e.a-d.a;j=g*h==-1?g:(g+h)/(1+g*h),j=(j+1)/2;var k=1-j,l={r:e.r*j+d.r*k,g:e.g*j+d.g*k,b:e.b*j+d.b*k,a:e.a*f+d.a*(1-f)};return i(l)},i.readability=function(a,b){var c=i(a),d=i(b),e=c.toRgb(),f=d.toRgb(),g=c.getBrightness(),h=d.getBrightness(),j=Math.max(e.r,f.r)-Math.min(e.r,f.r)+Math.max(e.g,f.g)-Math.min(e.g,f.g)+Math.max(e.b,f.b)-Math.min(e.b,f.b);return{brightness:Math.abs(g-h),color:j}},i.isReadable=function(a,b){var c=i.readability(a,b);return c.brightness>125&&c.color>500},i.mostReadable=function(a,b){for(var c=null,d=0,e=!1,f=0;f125&&g.color>500,j=3*(g.brightness/125)+g.color/500;(h&&!e||h&&e&&j>d||!h&&!e&&j>d)&&(e=h,d=j,c=i(b[f]))}return c};var E=i.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},F=i.hexNames=G(E),R=function(){var a="[-\\+]?\\d+%?",b="[-\\+]?\\d*\\.\\d+%?",c="(?:"+b+")|(?:"+a+")",d="[\\s|\\(]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")\\s*\\)?",e="[\\s|\\(]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")\\s*\\)?";return{rgb:new RegExp("rgb"+d),rgba:new RegExp("rgba"+e),hsl:new RegExp("hsl"+d),hsla:new RegExp("hsla"+e),hsv:new RegExp("hsv"+d),hsva:new RegExp("hsva"+e),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();window.tinycolor=i}(),a(function(){a.fn.spectrum.load&&a.fn.spectrum.processNativeColorInputs()})}); -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | http://www.nativescriptthemebuilder.com/ 5 | 2018-12-03 6 | monthly 7 | 1.0 8 | 9 | -------------------------------------------------------------------------------- /styles/app.css: -------------------------------------------------------------------------------- 1 | /************************************************** 2 | * App-wide Styles 3 | */ 4 | 5 | html, body { 6 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; 7 | height: 100%; 8 | overflow: hidden; 9 | color: #575859; 10 | } 11 | 12 | ul { 13 | list-style: none; 14 | } 15 | 16 | .row { 17 | margin: 0 0 30px; 18 | } 19 | 20 | .remodal p { 21 | font-size: 16px; 22 | } 23 | 24 | .remodal a:hover { 25 | color: darkgrey; 26 | text-decoration: none; 27 | } 28 | 29 | .remodal pre { 30 | padding: 0px; 31 | } 32 | 33 | .remodal code { 34 | color: #444; 35 | background-color: #f5f5f5; 36 | } 37 | 38 | /*************************************************** 39 | * SIDE PANEL 40 | */ 41 | 42 | .side-panel { 43 | position: absolute; 44 | left: 0; 45 | width: 325px; 46 | height: 100%; 47 | } 48 | 49 | .side-panel section::-webkit-scrollbar { 50 | display: none; 51 | } 52 | 53 | .enable-txt { 54 | float: right; 55 | margin-right: 10px; 56 | width: 50px; 57 | } 58 | 59 | .enable-select { 60 | float: right; 61 | margin-right: 5px; 62 | } 63 | 64 | /** 65 | * HEADER 66 | */ 67 | 68 | .side-panel>header { 69 | display: inline-block; 70 | width: 100%; 71 | height: 55px; 72 | line-height: 55px; 73 | color: white; 74 | background-color: #3f60f9; 75 | z-index: 10; 76 | } 77 | 78 | .side-panel>header .logo { 79 | float: left; 80 | padding-left: 10px; 81 | height: 45px; 82 | padding-top: 8px; 83 | vertical-align: middle; 84 | } 85 | 86 | .side-panel>header .logo-title { 87 | float: left; 88 | margin-left: 10px; 89 | font-weight: bold; 90 | font-size: 20px; 91 | } 92 | 93 | /** 94 | * BUTTON ROW 95 | */ 96 | 97 | .side-panel .sub-header { 98 | background: #ffffff; 99 | height: 50px; 100 | line-height: 50px; 101 | text-align: center; 102 | border-right: solid #ecf0f6 1px; 103 | margin-top: -5px; 104 | width: 100%; 105 | border-bottom: 1px solid #ecf0f6; 106 | z-index: 10; 107 | box-shadow: -2px 4px 8px rgba(250, 250, 250, 0.7); 108 | -webkit-box-shadow: -2px 4px 8px rgba(250, 250, 250, 0.7); 109 | -moz-box-shadow: -2px 4px 8px rgba(250, 250, 250, 0.7); 110 | } 111 | 112 | .sub-header .button-row { 113 | display: inline-block; 114 | margin: 0; 115 | } 116 | 117 | .sub-header .button-row a { 118 | color: #575859; 119 | display: inline-block; 120 | border: 1px solid #575859; 121 | text-decoration: none; 122 | height: 30px; 123 | line-height: 30px; 124 | text-transform: uppercase; 125 | letter-spacing: 1px; 126 | font-weight: 200; 127 | width: 130px; 128 | font-size: 12px; 129 | cursor: pointer; 130 | -webkit-transition: 200ms; 131 | -moz-transition: 200ms; 132 | -ms-transition: 200ms; 133 | -o-transition: 200ms; 134 | transition: 200ms; 135 | } 136 | 137 | .sub-header .button-row a:first-child { 138 | border-radius: 5px 0 0 5px; 139 | border-right: none; 140 | } 141 | 142 | .sub-header .button-row a:last-child { 143 | margin-left: -5px; 144 | border-radius: 0 5px 5px 0; 145 | } 146 | 147 | .sub-header .button-row a.selected { 148 | background-color: #575859; 149 | color: #ffffff; 150 | -webkit-transition: 200ms; 151 | -moz-transition: 200ms; 152 | -ms-transition: 200ms; 153 | -o-transition: 200ms; 154 | transition: 200ms; 155 | } 156 | 157 | /** 158 | * SIDE SECTION 159 | */ 160 | 161 | .side-panel section { 162 | position: absolute; 163 | height: 93%; 164 | width: 100%; 165 | overflow: auto; 166 | border-right: solid #ecf0f6 1px; 167 | } 168 | 169 | .side-panel .side-section-download { 170 | padding: 14px 20px 20px 20px; 171 | } 172 | 173 | .side-panel .btn-download { 174 | width: 100%; 175 | background-color: #3f60f9; 176 | color: #fff; 177 | font-size: 15px; 178 | letter-spacing: 1px; 179 | font-weight: 200; 180 | text-transform: uppercase; 181 | border: 1px solid #3f60f9; 182 | -webkit-transition: all 0.2s ease-in-out; 183 | -moz-transition: all 0.2s ease-in-out; 184 | -ms-transition: all 0.2s ease-in-out; 185 | -o-transition: all 0.2s ease-in-out; 186 | } 187 | 188 | .side-panel .btn-download a { 189 | color: white; 190 | } 191 | 192 | .side-panel .btn-download:hover a { 193 | color: #6795f5; 194 | } 195 | 196 | .side-panel .btn-download:hover, .side-panel .btn-download:focus { 197 | outline: none; 198 | border: 1px solid #6795f5; 199 | color: #6795f5; 200 | background-color: #ffffff; 201 | -webkit-transition: all 0.2s ease-in-out; 202 | -moz-transition: all 0.2s ease-in-out; 203 | -ms-transition: all 0.2s ease-in-out; 204 | -o-transition: all 0.2s ease-in-out; 205 | } 206 | 207 | /* side-section - headers */ 208 | 209 | .side-section-header:hover { 210 | cursor: pointer; 211 | } 212 | 213 | .side-section .side-section-header { 214 | display: inline-block; 215 | background-color: #f3f5f7; 216 | width: 100%; 217 | height: 40px; 218 | line-height: 40px; 219 | letter-spacing: 2px; 220 | font-size: 13px; 221 | padding: 2px 10px 0px 10px; 222 | font-weight: bold; 223 | text-transform: uppercase; 224 | border-top: 1px solid #dfe0e1; 225 | } 226 | 227 | .side-section .btn-revert { 228 | font-size: 1.1em; 229 | position: relative; 230 | float: right; 231 | margin-right: 8px; 232 | /*display: inline-block;*/ 233 | display: none; 234 | background-color: transparent; 235 | padding-top: 5px; 236 | border: none; 237 | outline: none; 238 | } 239 | 240 | .side-section .btn-revert:hover, .side-section .btn-revert:active { 241 | color: #3f60f9; 242 | } 243 | 244 | /* side-section - colors */ 245 | 246 | .side-section ul { 247 | list-style: none; 248 | padding-left: 20px; 249 | } 250 | 251 | .side-section li { 252 | padding: 10px 0; 253 | border-bottom: 1px solid #ecf0f6; 254 | } 255 | 256 | .side-section li:last-child { 257 | border-bottom: none; 258 | margin-bottom: 15px; 259 | } 260 | 261 | .side-section .section-color-preview { 262 | float: right; 263 | color: #93969f; 264 | margin-right: 10px; 265 | } 266 | 267 | .side-section-input { 268 | float: right; 269 | text-align: right; 270 | width: 70px; 271 | margin-right: 20px; 272 | border: 1px solid #ecf0f6; 273 | border-radius: 2px; 274 | padding-right: 5px; 275 | padding-top: 2px; 276 | padding-bottom: 2px; 277 | -webkit-transition: all 0.3s ease-in-out; 278 | -moz-transition: all 0.3s ease-in-out; 279 | -ms-transition: all 0.3s ease-in-out; 280 | -o-transition: all 0.3s ease-in-out; 281 | } 282 | 283 | .side-section-input:focus, .side-section-input:hover { 284 | border: 1px solid #6795f5; 285 | outline: none; 286 | } 287 | 288 | .side-section-select { 289 | float: right; 290 | text-align: right; 291 | width: 120px; 292 | margin-right: 20px; 293 | border: 1px solid #ecf0f6; 294 | border-radius: 2px; 295 | padding-right: 5px; 296 | padding-top: 3px; 297 | padding-bottom: 2px; 298 | -webkit-transition: all 0.3s ease-in-out; 299 | -moz-transition: all 0.3s ease-in-out; 300 | -ms-transition: all 0.3s ease-in-out; 301 | -o-transition: all 0.3s ease-in-out; 302 | } 303 | 304 | .side-section-select:focus, .side-section-select:hover { 305 | border: 1px solid #6795f5; 306 | outline: none; 307 | } 308 | 309 | /* side-section - footer */ 310 | 311 | .side-section-footer { 312 | position: absolute; 313 | background-color: #2b3442; 314 | padding-top: 8px; 315 | text-align: center; 316 | width: 100%; 317 | color: white; 318 | height: 75px; 319 | } 320 | 321 | .side-section-footer h4 { 322 | font-weight: lighter !important; 323 | /*font-size: 14px;*/ 324 | letter-spacing: 1px; 325 | } 326 | 327 | /**************************************************** 328 | * COLOR PICKER 329 | */ 330 | 331 | .sp-replacer { 332 | float: right; 333 | margin-right: 5px !important; 334 | margin-top: -5px !important; 335 | border-color: #aaa !important; 336 | } 337 | 338 | .sp-container { 339 | background-color: #eff1f5 !important; 340 | border: 1px solid #eceef0 !important; 341 | border-radius: 2px !important; 342 | } 343 | 344 | .sp-container input { 345 | background-color: #ffffff; 346 | border: 1px solid #aaa; 347 | border-radius: 1px; 348 | padding: 5px; 349 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important; 350 | font-size: 14px !important; 351 | } 352 | 353 | .sp-cancel, .sp-choose { 354 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important; 355 | } 356 | 357 | /**************************************************** 358 | * MAIN PANEL 359 | */ 360 | 361 | .main-panel { 362 | position: absolute; 363 | top: 0; 364 | left: 325px; 365 | bottom: 0; 366 | right: 0; 367 | height: 100%; 368 | } 369 | 370 | /* Main - tabs */ 371 | 372 | .main-panel-tabs { 373 | list-style: none; 374 | height: 55px; 375 | line-height: 55px; 376 | color: white; 377 | background-color: #3f60f9; 378 | font-weight: lighter; 379 | letter-spacing: 1px; 380 | z-index: 10; 381 | } 382 | 383 | .main-panel-tabs>li { 384 | font-size: 18px; 385 | list-style: none; 386 | box-sizing: border-box; 387 | margin-right: 40px; 388 | display: inline-block; 389 | border-top: 2px solid transparent; 390 | cursor: pointer; 391 | } 392 | 393 | .main-panel-tabs>li:hover { 394 | border-top: 2px solid white; 395 | cursor: pointer; 396 | } 397 | 398 | .main-panel-tabs>li.active { 399 | border-top: 2px solid white; 400 | cursor: pointer; 401 | } 402 | 403 | .main-panel-tabs .tabs-left { 404 | float: right; 405 | } 406 | 407 | .main-panel-tabs .tabs-left>.btn-login { 408 | background-color: transparent; 409 | border: none; 410 | color: white !important; 411 | text-decoration: none; 412 | } 413 | 414 | .main-panel-tabs .tabs-left>.btn-login:hover, .main-panel-tabs .tabs-left>.btn-login:focus { 415 | border: none; 416 | outline: none; 417 | } 418 | 419 | .main-panel .main-panel-view { 420 | position: absolute; 421 | top: 55px; 422 | right: 0; 423 | bottom: 0; 424 | left: 0; 425 | overflow: auto; 426 | width: 100%; 427 | overflow-x: hidden; 428 | } 429 | 430 | .main-panel-view .preview-card { 431 | height: 150px; 432 | border-top: 3px solid #93969f; 433 | box-shadow: 0 1px 3px #e0e4ea; 434 | margin: 0 8px 34px 8px; 435 | list-style: none; 436 | display: inline-block; 437 | width: 300px; 438 | } 439 | 440 | .preview-card .card-header { 441 | background-color: #ecf0f6; 442 | padding: 5px; 443 | font-size: 15px; 444 | font-weight: bold; 445 | } 446 | 447 | .preview-card .card-content { 448 | padding: 5px; 449 | } 450 | 451 | /**************************************************** 452 | * DEVICE PREVIEW 453 | */ 454 | 455 | .device-header { 456 | text-align: center; 457 | } 458 | 459 | .device-bg { 460 | background-image: url('../images/ios.png'); 461 | background-size: 320px 654px; 462 | height: 654px; 463 | width: 320px; 464 | margin-left: auto; 465 | margin-right: auto; 466 | position: relative; 467 | z-index: 100; 468 | } 469 | 470 | .device-bg-android { 471 | background-image: url('../images/android.png'); 472 | } 473 | 474 | .device-screen { 475 | position: relative; 476 | z-index: 0; 477 | top: 19px; 478 | left: 20px; 479 | width: 281px; 480 | height: 616px; 481 | border-right: 2px solid #22272d; 482 | border-left: 2px solid #22272d; 483 | border-top: 0px; 484 | border-bottom: 2px solid #22272d; 485 | background-color: white; 486 | border-radius: 32px; 487 | } 488 | 489 | .device-screen-android { 490 | top: 49px; 491 | left: 13px; 492 | width: 291px; 493 | height: 560px; 494 | border: 2px solid #000; 495 | border-radius: 16px; 496 | } 497 | 498 | .icon-lg { 499 | font-size: 1.75em; 500 | line-height: 1; 501 | } 502 | 503 | .iphonex-time { 504 | color: white; 505 | position: absolute; 506 | top: 26px; 507 | left: 48px; 508 | font-size: 10.5px; 509 | z-index: 100; 510 | font-family: 'San Francisco'; 511 | } 512 | 513 | .iphonex-icons { 514 | color: white; 515 | position: absolute; 516 | z-index: 100; 517 | font-size: 15px; 518 | } 519 | 520 | .iphonex-bars { 521 | top: 22px; 522 | left: 240px; 523 | } 524 | 525 | .iphonex-wifi { 526 | top: 22px; 527 | left: 256px; 528 | } 529 | 530 | .iphonex-battery { 531 | top: 22px; 532 | left: 274px; 533 | } -------------------------------------------------------------------------------- /styles/font-sf.css: -------------------------------------------------------------------------------- 1 | /** 2 | * http://applemusic.tumblr.com/ 3 | * https://jsfiddle.net/xq56dmrh/ 4 | */ 5 | 6 | /** Ultra Light */ 7 | @font-face { 8 | font-family: "San Francisco"; 9 | font-weight: 100; 10 | src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-ultralight-webfont.woff"); 11 | } 12 | 13 | /** Thin */ 14 | @font-face { 15 | font-family: "San Francisco"; 16 | font-weight: 200; 17 | src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-thin-webfont.woff"); 18 | } 19 | 20 | /** Regular */ 21 | @font-face { 22 | font-family: "San Francisco"; 23 | font-weight: 400; 24 | src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-regular-webfont.woff"); 25 | } 26 | 27 | /** Medium */ 28 | @font-face { 29 | font-family: "San Francisco"; 30 | font-weight: 500; 31 | src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-medium-webfont.woff"); 32 | } 33 | 34 | /** Semi Bold */ 35 | @font-face { 36 | font-family: "San Francisco"; 37 | font-weight: 600; 38 | src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-semibold-webfont.woff"); 39 | } 40 | 41 | /** Bold */ 42 | @font-face { 43 | font-family: "San Francisco"; 44 | font-weight: 700; 45 | src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-bold-webfont.woff"); 46 | } -------------------------------------------------------------------------------- /styles/images/input-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/images/input-checked.png -------------------------------------------------------------------------------- /styles/images/input-unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/images/input-unchecked.png -------------------------------------------------------------------------------- /styles/ionic-hacks-buttons.css: -------------------------------------------------------------------------------- 1 | @import url("ionic-hacks-global.css"); 2 | .button-no-radius { 3 | border-radius: 0px; 4 | } 5 | 6 | .button-lg-radius { 7 | border-radius: 30px; 8 | } 9 | 10 | .button-disabled { 11 | background-color: #e0e0e0; 12 | color: #899299; 13 | opacity: 1 !important; 14 | } 15 | 16 | .button-sm-text { 17 | font-size: 13px; 18 | } 19 | 20 | .btn-android-shadow { 21 | box-shadow: 0 0 5px #999; 22 | } 23 | 24 | .btn-android-text { 25 | text-transform: uppercase; 26 | font-size: 14px; 27 | } 28 | 29 | /*.button-non-active { 30 | border-color: transparent !important; 31 | background-color: #387ef5 !important; 32 | } 33 | 34 | .button-non-active:active { 35 | color: #6795f5 !important; 36 | } 37 | 38 | .button-outline-non-active { 39 | background-color: inherit !important; 40 | }.button-outline-non-active:active { 41 | color: #6795f5 !important; 42 | } 43 | 44 | .button-clear-active { 45 | width: 100%; 46 | border-radius: 0px; 47 | } 48 | 49 | .button-active:active { 50 | background-color: lightblue; 51 | } 52 | */ -------------------------------------------------------------------------------- /styles/ionic-hacks-form.css: -------------------------------------------------------------------------------- 1 | @import url("ionic-hacks-global.css"); 2 | .form-input-rounded { 3 | border-radius: 30px; 4 | } 5 | 6 | .form-input-disabled { 7 | background-color: #f8f8f8; 8 | } -------------------------------------------------------------------------------- /styles/ionic-hacks-global.css: -------------------------------------------------------------------------------- 1 | body, h1, h2, h3, h4, h5, h6, button, .tab-item, div { 2 | font-family: 'San Francisco'; 3 | } 4 | 5 | .header-md::after { 6 | position: absolute; 7 | bottom: -5px; 8 | left: 0; 9 | width: 100%; 10 | height: 5px; 11 | background-image: url('../images/header-md.png'); 12 | background-repeat: repeat-x; 13 | background-position: 0 -1px; 14 | content: ''; 15 | } 16 | 17 | .header-md .title { 18 | text-align: left; 19 | } 20 | 21 | .bar .title { 22 | font-size: 19px; 23 | padding-top: 19px; 24 | overflow: visible; 25 | background: url('../images/ios-notch.png') no-repeat top; 26 | } 27 | 28 | .no-notch { 29 | background: none !important; 30 | padding-top: 0px !important; 31 | } 32 | 33 | /* .bar { 34 | background-image: none !important; 35 | } */ 36 | 37 | .bar-header { 38 | height: 60px; 39 | } 40 | 41 | .header-md { 42 | height: 44px; 43 | } 44 | 45 | .scroll-content { 46 | margin-top: 15px; 47 | } 48 | 49 | .scroll-content-android { 50 | margin-top: -1px !important; 51 | } -------------------------------------------------------------------------------- /styles/ionic-hacks-list.css: -------------------------------------------------------------------------------- 1 | @import url("ionic-hacks-global.css"); 2 | .list-tabs-content { 3 | padding-top: 44px; 4 | } 5 | 6 | .list-tabs-content-android { 7 | padding-top: 88px !important; 8 | } 9 | 10 | .item-thumbnail-left img { 11 | border-radius: 5px; 12 | } 13 | 14 | .tab-title { 15 | font-size: 14px; 16 | } 17 | 18 | .tabs { 19 | border-color: #b2b2b2 !important; 20 | } 21 | 22 | .has-tabs.pane { 23 | height: fit-content !important; 24 | } -------------------------------------------------------------------------------- /styles/ionic-hacks-tabs.css: -------------------------------------------------------------------------------- 1 | @import url("ionic-hacks-global.css"); 2 | .header-md .title { 3 | padding-left: 40px; 4 | } 5 | 6 | .tab-title { 7 | font-size: 14px; 8 | } 9 | 10 | .tabs { 11 | border-color: #b2b2b2 !important; 12 | } 13 | 14 | .item-text-center { 15 | display: -webkit-box; 16 | display: -webkit-flex; 17 | display: -moz-box; 18 | display: -moz-flex; 19 | display: -ms-flexbox; 20 | display: flex; 21 | -webkit-box-align: center; 22 | -ms-flex-align: center; 23 | -webkit-align-items: center; 24 | -moz-align-items: center; 25 | align-items: center; 26 | position: absolute; 27 | top: 0; 28 | height: 100%; 29 | } 30 | 31 | .tabs-content { 32 | padding: 50px 10px 0px 10px; 33 | } 34 | 35 | .tabs-content-android { 36 | padding-top: 100px; 37 | } 38 | 39 | .bar .button { 40 | margin-top: 20px; 41 | } 42 | 43 | .tabs-bar-button-android { 44 | margin-top: 0px !important; 45 | } 46 | 47 | .no-notch-items { 48 | background: none !important; 49 | padding-top: 19px !important; 50 | } 51 | 52 | .no-notch-items-android { 53 | padding-top: 0px !important; 54 | } 55 | 56 | /* 57 | .tabs { 58 | border-color: #b2b2b2 !important; 59 | }*/ -------------------------------------------------------------------------------- /styles/ionic-hacks-text.css: -------------------------------------------------------------------------------- 1 | @import url("ionic-hacks-global.css"); 2 | hr { 3 | display: block; 4 | height: 1px; 5 | border: 0; 6 | border-top: 1px solid #ccc; 7 | margin: 1em 0; 8 | padding: 0; 9 | } 10 | 11 | .text-body, .text-body2, .text-footnote { 12 | color: #6f6f6f; 13 | } 14 | 15 | .text-body2 { 16 | font-size: 16px; 17 | } 18 | 19 | .text-footnote { 20 | font-size: 10px; 21 | } 22 | 23 | .text-bold { 24 | font-weight: bold; 25 | } 26 | 27 | .text-italic { 28 | font-style: italic; 29 | } 30 | 31 | .text-primary { 32 | color: #30bcff; 33 | } 34 | 35 | .text-danger { 36 | color: #d9534f; 37 | } 38 | 39 | .text-muted { 40 | color: #a2a2a2; 41 | } 42 | 43 | .text-bg-primary { 44 | background-color: #30bcff; 45 | color: white; 46 | } 47 | 48 | .text-bg-danger { 49 | background-color: #d9534f; 50 | color: white; 51 | } -------------------------------------------------------------------------------- /styles/ionic-hacks-widgets.css: -------------------------------------------------------------------------------- 1 | @import url("ionic-hacks-global.css"); 2 | .scroll-content { 3 | margin-right: -15px; 4 | } 5 | 6 | .segment-margin { 7 | margin: 10px; 8 | width: 95%; 9 | } 10 | 11 | .toggle-small input:checked+.track .handle { 12 | background-color: white; 13 | } 14 | 15 | .ui-search { 16 | background-color: #c9c9ce; 17 | margin: 10px 0px; 18 | } 19 | 20 | .ui-search-input { 21 | background-color: white; 22 | } 23 | 24 | .pace { 25 | -webkit-pointer-events: none; 26 | pointer-events: none; 27 | -webkit-user-select: none; 28 | -moz-user-select: none; 29 | user-select: none; 30 | } 31 | 32 | .pace-inactive { 33 | display: none; 34 | } 35 | 36 | .pace .pace-progress { 37 | background: #29d; 38 | position: fixed; 39 | z-index: 2000; 40 | top: 100; 41 | right: 100%; 42 | width: 100%; 43 | height: 2px; 44 | } 45 | 46 | .slider-knob { 47 | background-color: white !important; 48 | box-shadow: 0 3px 1px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .13), 0 0 0 1px rgba(0, 0, 0, .02); 49 | } -------------------------------------------------------------------------------- /styles/remodal-default-theme.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Remodal - v1.1.1 3 | * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking. 4 | * http://vodkabears.github.io/remodal/ 5 | * 6 | * Made by Ilya Makarov 7 | * Under MIT License 8 | */ 9 | 10 | /* ========================================================================== 11 | Remodal's default mobile first theme 12 | ========================================================================== */ 13 | 14 | /* Default theme styles for the background */ 15 | 16 | .remodal-bg.remodal-is-opening, 17 | .remodal-bg.remodal-is-opened { 18 | -webkit-filter: blur(3px); 19 | filter: blur(3px); 20 | } 21 | 22 | /* Default theme styles of the overlay */ 23 | 24 | .remodal-overlay { 25 | background: rgba(43, 46, 56, 0.9); 26 | } 27 | 28 | .remodal-overlay.remodal-is-opening, 29 | .remodal-overlay.remodal-is-closing { 30 | -webkit-animation-duration: 0.3s; 31 | animation-duration: 0.3s; 32 | -webkit-animation-fill-mode: forwards; 33 | animation-fill-mode: forwards; 34 | } 35 | 36 | .remodal-overlay.remodal-is-opening { 37 | -webkit-animation-name: remodal-overlay-opening-keyframes; 38 | animation-name: remodal-overlay-opening-keyframes; 39 | } 40 | 41 | .remodal-overlay.remodal-is-closing { 42 | -webkit-animation-name: remodal-overlay-closing-keyframes; 43 | animation-name: remodal-overlay-closing-keyframes; 44 | } 45 | 46 | /* Default theme styles of the wrapper */ 47 | 48 | .remodal-wrapper { 49 | padding: 10px 10px 0; 50 | } 51 | 52 | /* Default theme styles of the modal dialog */ 53 | 54 | .remodal { 55 | box-sizing: border-box; 56 | width: 100%; 57 | margin-bottom: 10px; 58 | padding: 35px; 59 | 60 | -webkit-transform: translate3d(0, 0, 0); 61 | transform: translate3d(0, 0, 0); 62 | 63 | color: #2b2e38; 64 | background: #fff; 65 | } 66 | 67 | .remodal.remodal-is-opening, 68 | .remodal.remodal-is-closing { 69 | -webkit-animation-duration: 0.3s; 70 | animation-duration: 0.3s; 71 | -webkit-animation-fill-mode: forwards; 72 | animation-fill-mode: forwards; 73 | } 74 | 75 | .remodal.remodal-is-opening { 76 | -webkit-animation-name: remodal-opening-keyframes; 77 | animation-name: remodal-opening-keyframes; 78 | } 79 | 80 | .remodal.remodal-is-closing { 81 | -webkit-animation-name: remodal-closing-keyframes; 82 | animation-name: remodal-closing-keyframes; 83 | } 84 | 85 | /* Vertical align of the modal dialog */ 86 | 87 | .remodal, 88 | .remodal-wrapper:after { 89 | vertical-align: middle; 90 | } 91 | 92 | /* Close button */ 93 | 94 | .remodal-close { 95 | position: absolute; 96 | top: 0; 97 | left: 0; 98 | 99 | display: block; 100 | overflow: visible; 101 | 102 | width: 35px; 103 | height: 35px; 104 | margin: 0; 105 | padding: 0; 106 | 107 | cursor: pointer; 108 | -webkit-transition: color 0.2s; 109 | transition: color 0.2s; 110 | text-decoration: none; 111 | 112 | color: #95979c; 113 | border: 0; 114 | outline: 0; 115 | background: transparent; 116 | } 117 | 118 | .remodal-close:hover, 119 | .remodal-close:focus { 120 | color: #2b2e38; 121 | } 122 | 123 | .remodal-close:before { 124 | font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif !important; 125 | font-size: 25px; 126 | line-height: 35px; 127 | 128 | position: absolute; 129 | top: 0; 130 | left: 0; 131 | 132 | display: block; 133 | 134 | width: 35px; 135 | 136 | content: "\00d7"; 137 | text-align: center; 138 | } 139 | 140 | /* Dialog buttons */ 141 | 142 | .remodal-confirm, 143 | .remodal-cancel { 144 | font: inherit; 145 | 146 | display: inline-block; 147 | overflow: visible; 148 | 149 | min-width: 110px; 150 | margin: 0; 151 | padding: 12px 0; 152 | 153 | cursor: pointer; 154 | -webkit-transition: background 0.2s; 155 | transition: background 0.2s; 156 | text-align: center; 157 | vertical-align: middle; 158 | text-decoration: none; 159 | 160 | border: 0; 161 | outline: 0; 162 | } 163 | 164 | .remodal-confirm { 165 | color: #fff; 166 | background: #81c784; 167 | } 168 | 169 | .remodal-confirm:hover, 170 | .remodal-confirm:focus { 171 | background: #66bb6a; 172 | } 173 | 174 | .remodal-cancel { 175 | color: #fff; 176 | background: #e57373; 177 | } 178 | 179 | .remodal-cancel:hover, 180 | .remodal-cancel:focus { 181 | background: #ef5350; 182 | } 183 | 184 | /* Remove inner padding and border in Firefox 4+ for the button tag. */ 185 | 186 | .remodal-confirm::-moz-focus-inner, 187 | .remodal-cancel::-moz-focus-inner, 188 | .remodal-close::-moz-focus-inner { 189 | padding: 0; 190 | 191 | border: 0; 192 | } 193 | 194 | /* Keyframes 195 | ========================================================================== */ 196 | 197 | @-webkit-keyframes remodal-opening-keyframes { 198 | from { 199 | -webkit-transform: scale(1.05); 200 | transform: scale(1.05); 201 | 202 | opacity: 0; 203 | } 204 | to { 205 | -webkit-transform: none; 206 | transform: none; 207 | 208 | opacity: 1; 209 | 210 | -webkit-filter: blur(0); 211 | filter: blur(0); 212 | } 213 | } 214 | 215 | @keyframes remodal-opening-keyframes { 216 | from { 217 | -webkit-transform: scale(1.05); 218 | transform: scale(1.05); 219 | 220 | opacity: 0; 221 | } 222 | to { 223 | -webkit-transform: none; 224 | transform: none; 225 | 226 | opacity: 1; 227 | 228 | -webkit-filter: blur(0); 229 | filter: blur(0); 230 | } 231 | } 232 | 233 | @-webkit-keyframes remodal-closing-keyframes { 234 | from { 235 | -webkit-transform: scale(1); 236 | transform: scale(1); 237 | 238 | opacity: 1; 239 | } 240 | to { 241 | -webkit-transform: scale(0.95); 242 | transform: scale(0.95); 243 | 244 | opacity: 0; 245 | 246 | -webkit-filter: blur(0); 247 | filter: blur(0); 248 | } 249 | } 250 | 251 | @keyframes remodal-closing-keyframes { 252 | from { 253 | -webkit-transform: scale(1); 254 | transform: scale(1); 255 | 256 | opacity: 1; 257 | } 258 | to { 259 | -webkit-transform: scale(0.95); 260 | transform: scale(0.95); 261 | 262 | opacity: 0; 263 | 264 | -webkit-filter: blur(0); 265 | filter: blur(0); 266 | } 267 | } 268 | 269 | @-webkit-keyframes remodal-overlay-opening-keyframes { 270 | from { 271 | opacity: 0; 272 | } 273 | to { 274 | opacity: 1; 275 | } 276 | } 277 | 278 | @keyframes remodal-overlay-opening-keyframes { 279 | from { 280 | opacity: 0; 281 | } 282 | to { 283 | opacity: 1; 284 | } 285 | } 286 | 287 | @-webkit-keyframes remodal-overlay-closing-keyframes { 288 | from { 289 | opacity: 1; 290 | } 291 | to { 292 | opacity: 0; 293 | } 294 | } 295 | 296 | @keyframes remodal-overlay-closing-keyframes { 297 | from { 298 | opacity: 1; 299 | } 300 | to { 301 | opacity: 0; 302 | } 303 | } 304 | 305 | /* Media queries 306 | ========================================================================== */ 307 | 308 | @media only screen and (min-width: 641px) { 309 | .remodal { 310 | max-width: 700px; 311 | } 312 | } 313 | 314 | /* IE8 315 | ========================================================================== */ 316 | 317 | .lt-ie9 .remodal-overlay { 318 | background: #2b2e38; 319 | } 320 | 321 | .lt-ie9 .remodal { 322 | width: 700px; 323 | } 324 | -------------------------------------------------------------------------------- /styles/remodal.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Remodal - v1.1.1 3 | * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking. 4 | * http://vodkabears.github.io/remodal/ 5 | * 6 | * Made by Ilya Makarov 7 | * Under MIT License 8 | */ 9 | 10 | /* ========================================================================== 11 | Remodal's necessary styles 12 | ========================================================================== */ 13 | 14 | /* Hide scroll bar */ 15 | 16 | html.remodal-is-locked { 17 | overflow: hidden; 18 | 19 | -ms-touch-action: none; 20 | touch-action: none; 21 | } 22 | 23 | /* Anti FOUC */ 24 | 25 | .remodal, 26 | [data-remodal-id] { 27 | display: none; 28 | } 29 | 30 | /* Necessary styles of the overlay */ 31 | 32 | .remodal-overlay { 33 | position: fixed; 34 | z-index: 9999; 35 | top: -5000px; 36 | right: -5000px; 37 | bottom: -5000px; 38 | left: -5000px; 39 | 40 | display: none; 41 | } 42 | 43 | /* Necessary styles of the wrapper */ 44 | 45 | .remodal-wrapper { 46 | position: fixed; 47 | z-index: 10000; 48 | top: 0; 49 | right: 0; 50 | bottom: 0; 51 | left: 0; 52 | 53 | display: none; 54 | overflow: auto; 55 | 56 | text-align: center; 57 | 58 | -webkit-overflow-scrolling: touch; 59 | } 60 | 61 | .remodal-wrapper:after { 62 | display: inline-block; 63 | 64 | height: 100%; 65 | margin-left: -0.05em; 66 | 67 | content: ""; 68 | } 69 | 70 | /* Fix iPad, iPhone glitches */ 71 | 72 | .remodal-overlay, 73 | .remodal-wrapper { 74 | -webkit-backface-visibility: hidden; 75 | backface-visibility: hidden; 76 | } 77 | 78 | /* Necessary styles of the modal dialog */ 79 | 80 | .remodal { 81 | position: relative; 82 | 83 | outline: none; 84 | 85 | -webkit-text-size-adjust: 100%; 86 | -ms-text-size-adjust: 100%; 87 | text-size-adjust: 100%; 88 | } 89 | 90 | .remodal-is-initialized { 91 | /* Disable Anti-FOUC */ 92 | display: inline-block; 93 | } 94 | -------------------------------------------------------------------------------- /styles/skins/minimal/_all.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin 2 | ----------------------------------- */ 3 | .icheckbox_minimal, 4 | .iradio_minimal { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(minimal.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 53 | .icheckbox_minimal, 54 | .iradio_minimal { 55 | background-image: url(minimal@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } 60 | 61 | /* red */ 62 | .icheckbox_minimal-red, 63 | .iradio_minimal-red { 64 | display: inline-block; 65 | *display: inline; 66 | vertical-align: middle; 67 | margin: 0; 68 | padding: 0; 69 | width: 18px; 70 | height: 18px; 71 | background: url(red.png) no-repeat; 72 | border: none; 73 | cursor: pointer; 74 | } 75 | 76 | .icheckbox_minimal-red { 77 | background-position: 0 0; 78 | } 79 | .icheckbox_minimal-red.hover { 80 | background-position: -20px 0; 81 | } 82 | .icheckbox_minimal-red.checked { 83 | background-position: -40px 0; 84 | } 85 | .icheckbox_minimal-red.disabled { 86 | background-position: -60px 0; 87 | cursor: default; 88 | } 89 | .icheckbox_minimal-red.checked.disabled { 90 | background-position: -80px 0; 91 | } 92 | 93 | .iradio_minimal-red { 94 | background-position: -100px 0; 95 | } 96 | .iradio_minimal-red.hover { 97 | background-position: -120px 0; 98 | } 99 | .iradio_minimal-red.checked { 100 | background-position: -140px 0; 101 | } 102 | .iradio_minimal-red.disabled { 103 | background-position: -160px 0; 104 | cursor: default; 105 | } 106 | .iradio_minimal-red.checked.disabled { 107 | background-position: -180px 0; 108 | } 109 | 110 | /* HiDPI support */ 111 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 112 | .icheckbox_minimal-red, 113 | .iradio_minimal-red { 114 | background-image: url(red@2x.png); 115 | -webkit-background-size: 200px 20px; 116 | background-size: 200px 20px; 117 | } 118 | } 119 | 120 | /* green */ 121 | .icheckbox_minimal-green, 122 | .iradio_minimal-green { 123 | display: inline-block; 124 | *display: inline; 125 | vertical-align: middle; 126 | margin: 0; 127 | padding: 0; 128 | width: 18px; 129 | height: 18px; 130 | background: url(green.png) no-repeat; 131 | border: none; 132 | cursor: pointer; 133 | } 134 | 135 | .icheckbox_minimal-green { 136 | background-position: 0 0; 137 | } 138 | .icheckbox_minimal-green.hover { 139 | background-position: -20px 0; 140 | } 141 | .icheckbox_minimal-green.checked { 142 | background-position: -40px 0; 143 | } 144 | .icheckbox_minimal-green.disabled { 145 | background-position: -60px 0; 146 | cursor: default; 147 | } 148 | .icheckbox_minimal-green.checked.disabled { 149 | background-position: -80px 0; 150 | } 151 | 152 | .iradio_minimal-green { 153 | background-position: -100px 0; 154 | } 155 | .iradio_minimal-green.hover { 156 | background-position: -120px 0; 157 | } 158 | .iradio_minimal-green.checked { 159 | background-position: -140px 0; 160 | } 161 | .iradio_minimal-green.disabled { 162 | background-position: -160px 0; 163 | cursor: default; 164 | } 165 | .iradio_minimal-green.checked.disabled { 166 | background-position: -180px 0; 167 | } 168 | 169 | /* HiDPI support */ 170 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 171 | .icheckbox_minimal-green, 172 | .iradio_minimal-green { 173 | background-image: url(green@2x.png); 174 | -webkit-background-size: 200px 20px; 175 | background-size: 200px 20px; 176 | } 177 | } 178 | 179 | /* blue */ 180 | .icheckbox_minimal-blue, 181 | .iradio_minimal-blue { 182 | display: inline-block; 183 | *display: inline; 184 | vertical-align: middle; 185 | margin: 0; 186 | padding: 0; 187 | width: 18px; 188 | height: 18px; 189 | background: url(blue.png) no-repeat; 190 | border: none; 191 | cursor: pointer; 192 | } 193 | 194 | .icheckbox_minimal-blue { 195 | background-position: 0 0; 196 | } 197 | .icheckbox_minimal-blue.hover { 198 | background-position: -20px 0; 199 | } 200 | .icheckbox_minimal-blue.checked { 201 | background-position: -40px 0; 202 | } 203 | .icheckbox_minimal-blue.disabled { 204 | background-position: -60px 0; 205 | cursor: default; 206 | } 207 | .icheckbox_minimal-blue.checked.disabled { 208 | background-position: -80px 0; 209 | } 210 | 211 | .iradio_minimal-blue { 212 | background-position: -100px 0; 213 | } 214 | .iradio_minimal-blue.hover { 215 | background-position: -120px 0; 216 | } 217 | .iradio_minimal-blue.checked { 218 | background-position: -140px 0; 219 | } 220 | .iradio_minimal-blue.disabled { 221 | background-position: -160px 0; 222 | cursor: default; 223 | } 224 | .iradio_minimal-blue.checked.disabled { 225 | background-position: -180px 0; 226 | } 227 | 228 | /* HiDPI support */ 229 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 230 | .icheckbox_minimal-blue, 231 | .iradio_minimal-blue { 232 | background-image: url(blue@2x.png); 233 | -webkit-background-size: 200px 20px; 234 | background-size: 200px 20px; 235 | } 236 | } 237 | 238 | /* aero */ 239 | .icheckbox_minimal-aero, 240 | .iradio_minimal-aero { 241 | display: inline-block; 242 | *display: inline; 243 | vertical-align: middle; 244 | margin: 0; 245 | padding: 0; 246 | width: 18px; 247 | height: 18px; 248 | background: url(aero.png) no-repeat; 249 | border: none; 250 | cursor: pointer; 251 | } 252 | 253 | .icheckbox_minimal-aero { 254 | background-position: 0 0; 255 | } 256 | .icheckbox_minimal-aero.hover { 257 | background-position: -20px 0; 258 | } 259 | .icheckbox_minimal-aero.checked { 260 | background-position: -40px 0; 261 | } 262 | .icheckbox_minimal-aero.disabled { 263 | background-position: -60px 0; 264 | cursor: default; 265 | } 266 | .icheckbox_minimal-aero.checked.disabled { 267 | background-position: -80px 0; 268 | } 269 | 270 | .iradio_minimal-aero { 271 | background-position: -100px 0; 272 | } 273 | .iradio_minimal-aero.hover { 274 | background-position: -120px 0; 275 | } 276 | .iradio_minimal-aero.checked { 277 | background-position: -140px 0; 278 | } 279 | .iradio_minimal-aero.disabled { 280 | background-position: -160px 0; 281 | cursor: default; 282 | } 283 | .iradio_minimal-aero.checked.disabled { 284 | background-position: -180px 0; 285 | } 286 | 287 | /* HiDPI support */ 288 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 289 | .icheckbox_minimal-aero, 290 | .iradio_minimal-aero { 291 | background-image: url(aero@2x.png); 292 | -webkit-background-size: 200px 20px; 293 | background-size: 200px 20px; 294 | } 295 | } 296 | 297 | /* grey */ 298 | .icheckbox_minimal-grey, 299 | .iradio_minimal-grey { 300 | display: inline-block; 301 | *display: inline; 302 | vertical-align: middle; 303 | margin: 0; 304 | padding: 0; 305 | width: 18px; 306 | height: 18px; 307 | background: url(grey.png) no-repeat; 308 | border: none; 309 | cursor: pointer; 310 | } 311 | 312 | .icheckbox_minimal-grey { 313 | background-position: 0 0; 314 | } 315 | .icheckbox_minimal-grey.hover { 316 | background-position: -20px 0; 317 | } 318 | .icheckbox_minimal-grey.checked { 319 | background-position: -40px 0; 320 | } 321 | .icheckbox_minimal-grey.disabled { 322 | background-position: -60px 0; 323 | cursor: default; 324 | } 325 | .icheckbox_minimal-grey.checked.disabled { 326 | background-position: -80px 0; 327 | } 328 | 329 | .iradio_minimal-grey { 330 | background-position: -100px 0; 331 | } 332 | .iradio_minimal-grey.hover { 333 | background-position: -120px 0; 334 | } 335 | .iradio_minimal-grey.checked { 336 | background-position: -140px 0; 337 | } 338 | .iradio_minimal-grey.disabled { 339 | background-position: -160px 0; 340 | cursor: default; 341 | } 342 | .iradio_minimal-grey.checked.disabled { 343 | background-position: -180px 0; 344 | } 345 | 346 | /* HiDPI support */ 347 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 348 | .icheckbox_minimal-grey, 349 | .iradio_minimal-grey { 350 | background-image: url(grey@2x.png); 351 | -webkit-background-size: 200px 20px; 352 | background-size: 200px 20px; 353 | } 354 | } 355 | 356 | /* orange */ 357 | .icheckbox_minimal-orange, 358 | .iradio_minimal-orange { 359 | display: inline-block; 360 | *display: inline; 361 | vertical-align: middle; 362 | margin: 0; 363 | padding: 0; 364 | width: 18px; 365 | height: 18px; 366 | background: url(orange.png) no-repeat; 367 | border: none; 368 | cursor: pointer; 369 | } 370 | 371 | .icheckbox_minimal-orange { 372 | background-position: 0 0; 373 | } 374 | .icheckbox_minimal-orange.hover { 375 | background-position: -20px 0; 376 | } 377 | .icheckbox_minimal-orange.checked { 378 | background-position: -40px 0; 379 | } 380 | .icheckbox_minimal-orange.disabled { 381 | background-position: -60px 0; 382 | cursor: default; 383 | } 384 | .icheckbox_minimal-orange.checked.disabled { 385 | background-position: -80px 0; 386 | } 387 | 388 | .iradio_minimal-orange { 389 | background-position: -100px 0; 390 | } 391 | .iradio_minimal-orange.hover { 392 | background-position: -120px 0; 393 | } 394 | .iradio_minimal-orange.checked { 395 | background-position: -140px 0; 396 | } 397 | .iradio_minimal-orange.disabled { 398 | background-position: -160px 0; 399 | cursor: default; 400 | } 401 | .iradio_minimal-orange.checked.disabled { 402 | background-position: -180px 0; 403 | } 404 | 405 | /* HiDPI support */ 406 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 407 | .icheckbox_minimal-orange, 408 | .iradio_minimal-orange { 409 | background-image: url(orange@2x.png); 410 | -webkit-background-size: 200px 20px; 411 | background-size: 200px 20px; 412 | } 413 | } 414 | 415 | /* yellow */ 416 | .icheckbox_minimal-yellow, 417 | .iradio_minimal-yellow { 418 | display: inline-block; 419 | *display: inline; 420 | vertical-align: middle; 421 | margin: 0; 422 | padding: 0; 423 | width: 18px; 424 | height: 18px; 425 | background: url(yellow.png) no-repeat; 426 | border: none; 427 | cursor: pointer; 428 | } 429 | 430 | .icheckbox_minimal-yellow { 431 | background-position: 0 0; 432 | } 433 | .icheckbox_minimal-yellow.hover { 434 | background-position: -20px 0; 435 | } 436 | .icheckbox_minimal-yellow.checked { 437 | background-position: -40px 0; 438 | } 439 | .icheckbox_minimal-yellow.disabled { 440 | background-position: -60px 0; 441 | cursor: default; 442 | } 443 | .icheckbox_minimal-yellow.checked.disabled { 444 | background-position: -80px 0; 445 | } 446 | 447 | .iradio_minimal-yellow { 448 | background-position: -100px 0; 449 | } 450 | .iradio_minimal-yellow.hover { 451 | background-position: -120px 0; 452 | } 453 | .iradio_minimal-yellow.checked { 454 | background-position: -140px 0; 455 | } 456 | .iradio_minimal-yellow.disabled { 457 | background-position: -160px 0; 458 | cursor: default; 459 | } 460 | .iradio_minimal-yellow.checked.disabled { 461 | background-position: -180px 0; 462 | } 463 | 464 | /* HiDPI support */ 465 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 466 | .icheckbox_minimal-yellow, 467 | .iradio_minimal-yellow { 468 | background-image: url(yellow@2x.png); 469 | -webkit-background-size: 200px 20px; 470 | background-size: 200px 20px; 471 | } 472 | } 473 | 474 | /* pink */ 475 | .icheckbox_minimal-pink, 476 | .iradio_minimal-pink { 477 | display: inline-block; 478 | *display: inline; 479 | vertical-align: middle; 480 | margin: 0; 481 | padding: 0; 482 | width: 18px; 483 | height: 18px; 484 | background: url(pink.png) no-repeat; 485 | border: none; 486 | cursor: pointer; 487 | } 488 | 489 | .icheckbox_minimal-pink { 490 | background-position: 0 0; 491 | } 492 | .icheckbox_minimal-pink.hover { 493 | background-position: -20px 0; 494 | } 495 | .icheckbox_minimal-pink.checked { 496 | background-position: -40px 0; 497 | } 498 | .icheckbox_minimal-pink.disabled { 499 | background-position: -60px 0; 500 | cursor: default; 501 | } 502 | .icheckbox_minimal-pink.checked.disabled { 503 | background-position: -80px 0; 504 | } 505 | 506 | .iradio_minimal-pink { 507 | background-position: -100px 0; 508 | } 509 | .iradio_minimal-pink.hover { 510 | background-position: -120px 0; 511 | } 512 | .iradio_minimal-pink.checked { 513 | background-position: -140px 0; 514 | } 515 | .iradio_minimal-pink.disabled { 516 | background-position: -160px 0; 517 | cursor: default; 518 | } 519 | .iradio_minimal-pink.checked.disabled { 520 | background-position: -180px 0; 521 | } 522 | 523 | /* HiDPI support */ 524 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 525 | .icheckbox_minimal-pink, 526 | .iradio_minimal-pink { 527 | background-image: url(pink@2x.png); 528 | -webkit-background-size: 200px 20px; 529 | background-size: 200px 20px; 530 | } 531 | } 532 | 533 | /* purple */ 534 | .icheckbox_minimal-purple, 535 | .iradio_minimal-purple { 536 | display: inline-block; 537 | *display: inline; 538 | vertical-align: middle; 539 | margin: 0; 540 | padding: 0; 541 | width: 18px; 542 | height: 18px; 543 | background: url(purple.png) no-repeat; 544 | border: none; 545 | cursor: pointer; 546 | } 547 | 548 | .icheckbox_minimal-purple { 549 | background-position: 0 0; 550 | } 551 | .icheckbox_minimal-purple.hover { 552 | background-position: -20px 0; 553 | } 554 | .icheckbox_minimal-purple.checked { 555 | background-position: -40px 0; 556 | } 557 | .icheckbox_minimal-purple.disabled { 558 | background-position: -60px 0; 559 | cursor: default; 560 | } 561 | .icheckbox_minimal-purple.checked.disabled { 562 | background-position: -80px 0; 563 | } 564 | 565 | .iradio_minimal-purple { 566 | background-position: -100px 0; 567 | } 568 | .iradio_minimal-purple.hover { 569 | background-position: -120px 0; 570 | } 571 | .iradio_minimal-purple.checked { 572 | background-position: -140px 0; 573 | } 574 | .iradio_minimal-purple.disabled { 575 | background-position: -160px 0; 576 | cursor: default; 577 | } 578 | .iradio_minimal-purple.checked.disabled { 579 | background-position: -180px 0; 580 | } 581 | 582 | /* HiDPI support */ 583 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 584 | .icheckbox_minimal-purple, 585 | .iradio_minimal-purple { 586 | background-image: url(purple@2x.png); 587 | -webkit-background-size: 200px 20px; 588 | background-size: 200px 20px; 589 | } 590 | } -------------------------------------------------------------------------------- /styles/skins/minimal/aero.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, aero 2 | ----------------------------------- */ 3 | .icheckbox_minimal-aero, 4 | .iradio_minimal-aero { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(aero.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-aero { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-aero.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-aero.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-aero.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-aero.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-aero { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-aero.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-aero.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-aero.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-aero.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-aero, 54 | .iradio_minimal-aero { 55 | background-image: url(aero@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/aero.png -------------------------------------------------------------------------------- /styles/skins/minimal/aero@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/aero@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/blue.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, blue 2 | ----------------------------------- */ 3 | .icheckbox_minimal-blue, 4 | .iradio_minimal-blue { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(blue.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-blue { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-blue.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-blue.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-blue.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-blue.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-blue { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-blue.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-blue.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-blue.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-blue.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-blue, 54 | .iradio_minimal-blue { 55 | background-image: url(blue@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/blue.png -------------------------------------------------------------------------------- /styles/skins/minimal/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/blue@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/green.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, green 2 | ----------------------------------- */ 3 | .icheckbox_minimal-green, 4 | .iradio_minimal-green { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(green.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-green { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-green.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-green.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-green.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-green.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-green { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-green.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-green.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-green.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-green.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-green, 54 | .iradio_minimal-green { 55 | background-image: url(green@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/green.png -------------------------------------------------------------------------------- /styles/skins/minimal/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/green@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/grey.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, grey 2 | ----------------------------------- */ 3 | .icheckbox_minimal-grey, 4 | .iradio_minimal-grey { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(grey.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-grey { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-grey.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-grey.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-grey.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-grey.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-grey { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-grey.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-grey.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-grey.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-grey.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-grey, 54 | .iradio_minimal-grey { 55 | background-image: url(grey@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/grey.png -------------------------------------------------------------------------------- /styles/skins/minimal/grey@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/grey@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/minimal.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, black 2 | ----------------------------------- */ 3 | .icheckbox_minimal, 4 | .iradio_minimal { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(minimal.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal, 54 | .iradio_minimal { 55 | background-image: url(minimal@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/minimal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/minimal.png -------------------------------------------------------------------------------- /styles/skins/minimal/minimal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/minimal@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/orange.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, orange 2 | ----------------------------------- */ 3 | .icheckbox_minimal-orange, 4 | .iradio_minimal-orange { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(orange.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-orange { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-orange.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-orange.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-orange.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-orange.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-orange { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-orange.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-orange.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-orange.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-orange.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-orange, 54 | .iradio_minimal-orange { 55 | background-image: url(orange@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/orange.png -------------------------------------------------------------------------------- /styles/skins/minimal/orange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/orange@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/pink.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, pink 2 | ----------------------------------- */ 3 | .icheckbox_minimal-pink, 4 | .iradio_minimal-pink { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(pink.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-pink { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-pink.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-pink.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-pink.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-pink.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-pink { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-pink.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-pink.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-pink.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-pink.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-pink, 54 | .iradio_minimal-pink { 55 | background-image: url(pink@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/pink.png -------------------------------------------------------------------------------- /styles/skins/minimal/pink@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/pink@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/purple.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, purple 2 | ----------------------------------- */ 3 | .icheckbox_minimal-purple, 4 | .iradio_minimal-purple { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(purple.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-purple { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-purple.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-purple.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-purple.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-purple.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-purple { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-purple.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-purple.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-purple.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-purple.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-purple, 54 | .iradio_minimal-purple { 55 | background-image: url(purple@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/purple.png -------------------------------------------------------------------------------- /styles/skins/minimal/purple@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/purple@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/red.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, red 2 | ----------------------------------- */ 3 | .icheckbox_minimal-red, 4 | .iradio_minimal-red { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(red.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-red { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-red.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-red.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-red.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-red.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-red { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-red.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-red.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-red.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-red.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-red, 54 | .iradio_minimal-red { 55 | background-image: url(red@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/red.png -------------------------------------------------------------------------------- /styles/skins/minimal/red@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/red@2x.png -------------------------------------------------------------------------------- /styles/skins/minimal/yellow.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin Minimal skin, yellow 2 | ----------------------------------- */ 3 | .icheckbox_minimal-yellow, 4 | .iradio_minimal-yellow { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 18px; 11 | height: 18px; 12 | background: url(yellow.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_minimal-yellow { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_minimal-yellow.hover { 21 | background-position: -20px 0; 22 | } 23 | .icheckbox_minimal-yellow.checked { 24 | background-position: -40px 0; 25 | } 26 | .icheckbox_minimal-yellow.disabled { 27 | background-position: -60px 0; 28 | cursor: default; 29 | } 30 | .icheckbox_minimal-yellow.checked.disabled { 31 | background-position: -80px 0; 32 | } 33 | 34 | .iradio_minimal-yellow { 35 | background-position: -100px 0; 36 | } 37 | .iradio_minimal-yellow.hover { 38 | background-position: -120px 0; 39 | } 40 | .iradio_minimal-yellow.checked { 41 | background-position: -140px 0; 42 | } 43 | .iradio_minimal-yellow.disabled { 44 | background-position: -160px 0; 45 | cursor: default; 46 | } 47 | .iradio_minimal-yellow.checked.disabled { 48 | background-position: -180px 0; 49 | } 50 | 51 | /* HiDPI support */ 52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) { 53 | .icheckbox_minimal-yellow, 54 | .iradio_minimal-yellow { 55 | background-image: url(yellow@2x.png); 56 | -webkit-background-size: 200px 20px; 57 | background-size: 200px 20px; 58 | } 59 | } -------------------------------------------------------------------------------- /styles/skins/minimal/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/yellow.png -------------------------------------------------------------------------------- /styles/skins/minimal/yellow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rdlauer/nativescript-theme-builder/aea033424d16320ca5743c3a5858b834bc24d273/styles/skins/minimal/yellow@2x.png -------------------------------------------------------------------------------- /styles/spectrum.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Spectrum Colorpicker v1.8.0 3 | https://github.com/bgrins/spectrum 4 | Author: Brian Grinstead 5 | License: MIT 6 | ***/ 7 | 8 | .sp-container { 9 | position:absolute; 10 | top:0; 11 | left:0; 12 | display:inline-block; 13 | *display: inline; 14 | *zoom: 1; 15 | /* https://github.com/bgrins/spectrum/issues/40 */ 16 | z-index: 9999994; 17 | overflow: hidden; 18 | } 19 | .sp-container.sp-flat { 20 | position: relative; 21 | } 22 | 23 | /* Fix for * { box-sizing: border-box; } */ 24 | .sp-container, 25 | .sp-container * { 26 | -webkit-box-sizing: content-box; 27 | -moz-box-sizing: content-box; 28 | box-sizing: content-box; 29 | } 30 | 31 | /* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */ 32 | .sp-top { 33 | position:relative; 34 | width: 100%; 35 | display:inline-block; 36 | } 37 | .sp-top-inner { 38 | position:absolute; 39 | top:0; 40 | left:0; 41 | bottom:0; 42 | right:0; 43 | } 44 | .sp-color { 45 | position: absolute; 46 | top:0; 47 | left:0; 48 | bottom:0; 49 | right:20%; 50 | } 51 | .sp-hue { 52 | position: absolute; 53 | top:0; 54 | right:0; 55 | bottom:0; 56 | left:84%; 57 | height: 100%; 58 | } 59 | 60 | .sp-clear-enabled .sp-hue { 61 | top:33px; 62 | height: 77.5%; 63 | } 64 | 65 | .sp-fill { 66 | padding-top: 80%; 67 | } 68 | .sp-sat, .sp-val { 69 | position: absolute; 70 | top:0; 71 | left:0; 72 | right:0; 73 | bottom:0; 74 | } 75 | 76 | .sp-alpha-enabled .sp-top { 77 | margin-bottom: 18px; 78 | } 79 | .sp-alpha-enabled .sp-alpha { 80 | display: block; 81 | } 82 | .sp-alpha-handle { 83 | position:absolute; 84 | top:-4px; 85 | bottom: -4px; 86 | width: 6px; 87 | left: 50%; 88 | cursor: pointer; 89 | border: 1px solid black; 90 | background: white; 91 | opacity: .8; 92 | } 93 | .sp-alpha { 94 | display: none; 95 | position: absolute; 96 | bottom: -14px; 97 | right: 0; 98 | left: 0; 99 | height: 8px; 100 | } 101 | .sp-alpha-inner { 102 | border: solid 1px #333; 103 | } 104 | 105 | .sp-clear { 106 | display: none; 107 | } 108 | 109 | .sp-clear.sp-clear-display { 110 | background-position: center; 111 | } 112 | 113 | .sp-clear-enabled .sp-clear { 114 | display: block; 115 | position:absolute; 116 | top:0px; 117 | right:0; 118 | bottom:0; 119 | left:84%; 120 | height: 28px; 121 | } 122 | 123 | /* Don't allow text selection */ 124 | .sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-clear, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button { 125 | -webkit-user-select:none; 126 | -moz-user-select: -moz-none; 127 | -o-user-select:none; 128 | user-select: none; 129 | } 130 | 131 | .sp-container.sp-input-disabled .sp-input-container { 132 | display: none; 133 | } 134 | .sp-container.sp-buttons-disabled .sp-button-container { 135 | display: none; 136 | } 137 | .sp-container.sp-palette-buttons-disabled .sp-palette-button-container { 138 | display: none; 139 | } 140 | .sp-palette-only .sp-picker-container { 141 | display: none; 142 | } 143 | .sp-palette-disabled .sp-palette-container { 144 | display: none; 145 | } 146 | 147 | .sp-initial-disabled .sp-initial { 148 | display: none; 149 | } 150 | 151 | 152 | /* Gradients for hue, saturation and value instead of images. Not pretty... but it works */ 153 | .sp-sat { 154 | background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0))); 155 | background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0)); 156 | background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); 157 | background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); 158 | background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); 159 | background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0)); 160 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)"; 161 | filter : progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81'); 162 | } 163 | .sp-val { 164 | background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0))); 165 | background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0)); 166 | background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); 167 | background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); 168 | background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); 169 | background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0)); 170 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)"; 171 | filter : progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000'); 172 | } 173 | 174 | .sp-hue { 175 | background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); 176 | background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); 177 | background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); 178 | background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000)); 179 | background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); 180 | background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); 181 | } 182 | 183 | /* IE filters do not support multiple color stops. 184 | Generate 6 divs, line them up, and do two color gradients for each. 185 | Yes, really. 186 | */ 187 | .sp-1 { 188 | height:17%; 189 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00'); 190 | } 191 | .sp-2 { 192 | height:16%; 193 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00'); 194 | } 195 | .sp-3 { 196 | height:17%; 197 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff'); 198 | } 199 | .sp-4 { 200 | height:17%; 201 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff'); 202 | } 203 | .sp-5 { 204 | height:16%; 205 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff'); 206 | } 207 | .sp-6 { 208 | height:17%; 209 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000'); 210 | } 211 | 212 | .sp-hidden { 213 | display: none !important; 214 | } 215 | 216 | /* Clearfix hack */ 217 | .sp-cf:before, .sp-cf:after { content: ""; display: table; } 218 | .sp-cf:after { clear: both; } 219 | .sp-cf { *zoom: 1; } 220 | 221 | /* Mobile devices, make hue slider bigger so it is easier to slide */ 222 | @media (max-device-width: 480px) { 223 | .sp-color { right: 40%; } 224 | .sp-hue { left: 63%; } 225 | .sp-fill { padding-top: 60%; } 226 | } 227 | .sp-dragger { 228 | border-radius: 5px; 229 | height: 5px; 230 | width: 5px; 231 | border: 1px solid #fff; 232 | background: #000; 233 | cursor: pointer; 234 | position:absolute; 235 | top:0; 236 | left: 0; 237 | } 238 | .sp-slider { 239 | position: absolute; 240 | top:0; 241 | cursor:pointer; 242 | height: 3px; 243 | left: -1px; 244 | right: -1px; 245 | border: 1px solid #000; 246 | background: white; 247 | opacity: .8; 248 | } 249 | 250 | /* 251 | Theme authors: 252 | Here are the basic themeable display options (colors, fonts, global widths). 253 | See http://bgrins.github.io/spectrum/themes/ for instructions. 254 | */ 255 | 256 | .sp-container { 257 | border-radius: 0; 258 | background-color: #ECECEC; 259 | border: solid 1px #f0c49B; 260 | padding: 0; 261 | } 262 | .sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue, .sp-clear { 263 | font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; 264 | -webkit-box-sizing: border-box; 265 | -moz-box-sizing: border-box; 266 | -ms-box-sizing: border-box; 267 | box-sizing: border-box; 268 | } 269 | .sp-top { 270 | margin-bottom: 3px; 271 | } 272 | .sp-color, .sp-hue, .sp-clear { 273 | border: solid 1px #666; 274 | } 275 | 276 | /* Input */ 277 | .sp-input-container { 278 | float:right; 279 | width: 100px; 280 | margin-bottom: 4px; 281 | } 282 | .sp-initial-disabled .sp-input-container { 283 | width: 100%; 284 | } 285 | .sp-input { 286 | font-size: 12px !important; 287 | border: 1px inset; 288 | padding: 4px 5px; 289 | margin: 0; 290 | width: 100%; 291 | background:transparent; 292 | border-radius: 3px; 293 | color: #222; 294 | } 295 | .sp-input:focus { 296 | border: 1px solid orange; 297 | } 298 | .sp-input.sp-validation-error { 299 | border: 1px solid red; 300 | background: #fdd; 301 | } 302 | .sp-picker-container , .sp-palette-container { 303 | float:left; 304 | position: relative; 305 | padding: 10px; 306 | padding-bottom: 300px; 307 | margin-bottom: -290px; 308 | } 309 | .sp-picker-container { 310 | width: 172px; 311 | border-left: solid 1px #fff; 312 | } 313 | 314 | /* Palettes */ 315 | .sp-palette-container { 316 | border-right: solid 1px #ccc; 317 | } 318 | 319 | .sp-palette-only .sp-palette-container { 320 | border: 0; 321 | } 322 | 323 | .sp-palette .sp-thumb-el { 324 | display: block; 325 | position:relative; 326 | float:left; 327 | width: 24px; 328 | height: 15px; 329 | margin: 3px; 330 | cursor: pointer; 331 | border:solid 2px transparent; 332 | } 333 | .sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active { 334 | border-color: orange; 335 | } 336 | .sp-thumb-el { 337 | position:relative; 338 | } 339 | 340 | /* Initial */ 341 | .sp-initial { 342 | float: left; 343 | border: solid 1px #333; 344 | } 345 | .sp-initial span { 346 | width: 30px; 347 | height: 25px; 348 | border:none; 349 | display:block; 350 | float:left; 351 | margin:0; 352 | } 353 | 354 | .sp-initial .sp-clear-display { 355 | background-position: center; 356 | } 357 | 358 | /* Buttons */ 359 | .sp-palette-button-container, 360 | .sp-button-container { 361 | float: right; 362 | } 363 | 364 | /* Replacer (the little preview div that shows up instead of the ) */ 365 | .sp-replacer { 366 | margin:0; 367 | overflow:hidden; 368 | cursor:pointer; 369 | padding: 4px; 370 | display:inline-block; 371 | *zoom: 1; 372 | *display: inline; 373 | border: solid 1px #91765d; 374 | background: #eee; 375 | color: #333; 376 | vertical-align: middle; 377 | } 378 | .sp-replacer:hover, .sp-replacer.sp-active { 379 | border-color: #F0C49B; 380 | color: #111; 381 | } 382 | .sp-replacer.sp-disabled { 383 | cursor:default; 384 | border-color: silver; 385 | color: silver; 386 | } 387 | .sp-dd { 388 | padding: 2px 0; 389 | height: 16px; 390 | line-height: 16px; 391 | float:left; 392 | font-size:10px; 393 | } 394 | .sp-preview { 395 | position:relative; 396 | width:25px; 397 | height: 20px; 398 | border: solid 1px #222; 399 | margin-right: 5px; 400 | float:left; 401 | z-index: 0; 402 | } 403 | 404 | .sp-palette { 405 | *width: 220px; 406 | max-width: 220px; 407 | } 408 | .sp-palette .sp-thumb-el { 409 | width:16px; 410 | height: 16px; 411 | margin:2px 1px; 412 | border: solid 1px #d0d0d0; 413 | } 414 | 415 | .sp-container { 416 | padding-bottom:0; 417 | } 418 | 419 | 420 | /* Buttons: http://hellohappy.org/css3-buttons/ */ 421 | .sp-container button { 422 | background-color: #eeeeee; 423 | background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc); 424 | background-image: -moz-linear-gradient(top, #eeeeee, #cccccc); 425 | background-image: -ms-linear-gradient(top, #eeeeee, #cccccc); 426 | background-image: -o-linear-gradient(top, #eeeeee, #cccccc); 427 | background-image: linear-gradient(to bottom, #eeeeee, #cccccc); 428 | border: 1px solid #ccc; 429 | border-bottom: 1px solid #bbb; 430 | border-radius: 3px; 431 | color: #333; 432 | font-size: 14px; 433 | line-height: 1; 434 | padding: 5px 4px; 435 | text-align: center; 436 | text-shadow: 0 1px 0 #eee; 437 | vertical-align: middle; 438 | } 439 | .sp-container button:hover { 440 | background-color: #dddddd; 441 | background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb); 442 | background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb); 443 | background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb); 444 | background-image: -o-linear-gradient(top, #dddddd, #bbbbbb); 445 | background-image: linear-gradient(to bottom, #dddddd, #bbbbbb); 446 | border: 1px solid #bbb; 447 | border-bottom: 1px solid #999; 448 | cursor: pointer; 449 | text-shadow: 0 1px 0 #ddd; 450 | } 451 | .sp-container button:active { 452 | border: 1px solid #aaa; 453 | border-bottom: 1px solid #888; 454 | -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; 455 | -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; 456 | -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; 457 | -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; 458 | box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; 459 | } 460 | .sp-cancel { 461 | font-size: 11px; 462 | color: #d93f3f !important; 463 | margin:0; 464 | padding:2px; 465 | margin-right: 5px; 466 | vertical-align: middle; 467 | text-decoration:none; 468 | 469 | } 470 | .sp-cancel:hover { 471 | color: #d93f3f !important; 472 | text-decoration: underline; 473 | } 474 | 475 | 476 | .sp-palette span:hover, .sp-palette span.sp-thumb-active { 477 | border-color: #000; 478 | } 479 | 480 | .sp-preview, .sp-alpha, .sp-thumb-el { 481 | position:relative; 482 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); 483 | } 484 | .sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner { 485 | display:block; 486 | position:absolute; 487 | top:0;left:0;bottom:0;right:0; 488 | } 489 | 490 | .sp-palette .sp-thumb-inner { 491 | background-position: 50% 50%; 492 | background-repeat: no-repeat; 493 | } 494 | 495 | .sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner { 496 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=); 497 | } 498 | 499 | .sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner { 500 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=); 501 | } 502 | 503 | .sp-clear-display { 504 | background-repeat:no-repeat; 505 | background-position: center; 506 | background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==); 507 | } 508 | -------------------------------------------------------------------------------- /web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | --------------------------------------------------------------------------------