Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Brief 1.0

This is the initial commit to the repository.
  • Loading branch information...
commit aa39d0c2b6fa9836f474e3e579f73d6d486f006d 0 parents
@miekd miekd authored
Showing with 11,150 additions and 0 deletions.
  1. BIN  .DS_Store
  2. +34 −0 Brief.SkypeChatStyle/Contents/Info.plist
  3. +43 −0 Brief.SkypeChatStyle/Contents/Resources/Conversation.html
  4. +37 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/.htaccess
  5. +234 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/base.css
  6. BIN  Brief.SkypeChatStyle/Contents/Resources/css-source/cache
  7. +1,182 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/main.css
  8. +153 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/config.php
  9. +61 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/index.php
  10. BIN  Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/.DS_Store
  11. +4 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/cache/.htaccess
  12. +1 −0  Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/cache/main.css
  13. +484 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/controllers/CSScaffold.php
  14. +131 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/core/Benchmark.php
  15. +618 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/core/CSS.php
  16. +794 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/core/Controller.php
  17. +47 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/core/Exception.php
  18. +52 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/core/Module.php
  19. +227 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/core/Utils.php
  20. +34 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/behaviours/border-radius.htc
  21. +158 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/behaviours/boxsizing.htc
  22. +19 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/grids/960gs.css
  23. +29 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/grids/blueprint.css
  24. +13 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/grids/generic.css
  25. +12 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/background-size.css
  26. +14 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/border-box.css
  27. +57 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/border-radius.css
  28. +10 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/box-shadow.css
  29. +15 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/inline-block.css
  30. +27 −0 ....SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/multi-column-layout.css
  31. +14 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/opacity.css
  32. +9 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/rotate.css
  33. +11 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/css3/text-overflow.css
  34. +36 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/layout/clearfix.css
  35. +14 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/layout/float.css
  36. +147 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/layout/grid.css
  37. +14 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/layout/has-layout.css
  38. +23 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/layout/min-dimensions.css
  39. +7 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/typography/bevel.css
  40. +71 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/typography/fancy-type.css
  41. +122 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/typography/font-stacks.css
  42. +9 −0 ....SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/typography/image-replace.css
  43. +8 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/typography/safari-fix.css
  44. +9 −0 ...f.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/utilities/accessibility.css
  45. +31 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/utilities/images.css
  46. +16 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/utilities/inherit.css
  47. +48 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/utilities/lists.css
  48. +54 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/utilities/position.css
  49. +108 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/utilities/reset.css
  50. +82 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/widgets/buttons.css
  51. +125 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/widgets/lightbox.css
  52. +73 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/mixins/widgets/tabs.css
  53. +27 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/templates/content.css
  54. +5 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/templates/reset.css
  55. +212 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/framework/templates/typography.css
  56. +153 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Constants/Constants.php
  57. +78 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Expression/Expression.php
  58. +67 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/ImageReplace/ImageReplace.php
  59. +95 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Import/Import.php
  60. +111 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Iteration/Iteration.php
  61. +222 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Layout/Layout.php
  62. +49 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Layout/views/Layout_grid.php
  63. +16 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Minify/Minify.php
  64. +242 −0 ...SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Minify/libraries/Minify_Compressor.php
  65. +335 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Mixins/Mixins.php
  66. +191 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/NestedSelectors/NestedSelectors.php
  67. +25 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Typography/Typography.php
  68. +223 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Typography/views/TS_typography.php
  69. +83 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Validate/Validate.php
  70. +10 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/Validate/config.php
  71. +51 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/modules/XML_constants/XML_constants.php
  72. +1,529 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/vendor/FirePHPCore/FirePHP.class.php
  73. +259 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/vendor/FirePHPCore/fb.php
  74. +48 −0 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/views/Scaffold_Exception.php
  75. +1 −0  Brief.SkypeChatStyle/Contents/Resources/css/main.css
  76. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/asset-sprite.png
  77. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/buttons-14.png
  78. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/buttons-32.png
  79. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/buttons-9.png
  80. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/generic-pill-default.png
  81. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/generic-pill-down.png
  82. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/transfer-32.png
  83. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/transfer-multiple-32.png
  84. BIN  Brief.SkypeChatStyle/Contents/Resources/gfx/typing-16x16-white.gif
  85. +152 −0 Brief.SkypeChatStyle/Contents/Resources/js/jquery.min.js
  86. +1,163 −0 Brief.SkypeChatStyle/Contents/Resources/js/main.js
  87. +8 −0 Brief.SkypeChatStyle/Contents/Resources/templates/Alert.html
  88. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/CallEnd.html
  89. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/CallStart.html
  90. +5 −0 Brief.SkypeChatStyle/Contents/Resources/templates/History.html
  91. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/InEmote.html
  92. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/InFollowupMessage.html
  93. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/InMessage.html
  94. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/InSms.html
  95. +14 −0 Brief.SkypeChatStyle/Contents/Resources/templates/InSubTransfer.html
  96. +25 −0 Brief.SkypeChatStyle/Contents/Resources/templates/InTransfer.html
  97. +21 −0 Brief.SkypeChatStyle/Contents/Resources/templates/InVoicemail.html
  98. +6 −0 Brief.SkypeChatStyle/Contents/Resources/templates/MoreHistory.html
  99. +1 −0  Brief.SkypeChatStyle/Contents/Resources/templates/MoreHistoryLink.html
  100. +8 −0 Brief.SkypeChatStyle/Contents/Resources/templates/OutEmote.html
  101. +11 −0 Brief.SkypeChatStyle/Contents/Resources/templates/OutFollowupMessage.html
  102. +11 −0 Brief.SkypeChatStyle/Contents/Resources/templates/OutMessage.html
  103. +6 −0 Brief.SkypeChatStyle/Contents/Resources/templates/OutSms.html
  104. +12 −0 Brief.SkypeChatStyle/Contents/Resources/templates/OutSubTransfer.html
  105. +20 −0 Brief.SkypeChatStyle/Contents/Resources/templates/OutTransfer.html
  106. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/SkypeCallEnd.html
  107. +9 −0 Brief.SkypeChatStyle/Contents/Resources/templates/SkypeCallStart.html
  108. +21 −0 Brief.SkypeChatStyle/Contents/Resources/templates/SkypeInVoicemail.html
  109. +4 −0 Brief.SkypeChatStyle/Contents/Resources/templates/SmsHead.html
  110. +8 −0 Brief.SkypeChatStyle/Contents/Resources/templates/Topic.html
  111. +4 −0 Brief.SkypeChatStyle/Contents/Resources/templates/TransferHead.html
  112. +7 −0 Brief.SkypeChatStyle/Contents/Resources/templates/Typing.html
  113. +1 −0  LICENSE
  114. +17 −0 README
BIN  .DS_Store
Binary file not shown
34 Brief.SkypeChatStyle/Contents/Info.plist
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Panamericana Chat Style</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.skype.skype.panamericana.style</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>1.0</string>
+ <key>CFBundleName</key>
+ <string>Panamericana</string>
+ <key>CFBundlePackageType</key>
+ <string>SKP1</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>DefaultFontFamily</key>
+ <string>Helvetica Neue Light</string>
+ <key>DefaultFontSize</key>
+ <integer>11</integer>
+ <key>DisableCustomBackground</key>
+ <true/>
+ <key>MessageViewVersion</key>
+ <integer>6</integer>
+ <key>ShowsUserIcons</key>
+ <true/>
+ <key>FormattedCopyCompatible</key>
+ <false/>
+ <key>SupportsStoredRender</key>
+ <false/>
+</dict>
+</plist>
43 Brief.SkypeChatStyle/Contents/Resources/Conversation.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html xml:lang="en" lang="en">
+<head>
+
+ <meta charset="utf-8" />
+ <title>Brief Chat Style</title>
+
+ <link rel="stylesheet" href="css/main.css" type="text/css" media="screen" />
+
+ <script src="js/jquery.min.js"></script>
+ <script src="js/main.js"></script>
+ <script>
+ var debug = true;
+ </script>
+
+ <style>
+ @-webkit-keyframes typing-slide-in {
+ 0% { opacity: 0; margin-bottom: -51px; }
+ 100% { opacity: 1; margin-bottom: 4px; }
+ }
+
+ @-webkit-keyframes fade-in {
+ 0% { opacity: 0; }
+ 70% { opacity: 0.8; }
+ 100% { opacity: 1; }
+ }
+ </style>
+
+</head>
+<body>
+ <div id="container">
+ <div id="conversation">
+ <div class="item typing invisible" id="typing">
+ <div class="container">
+ <div class="head">
+ <span class="sender"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</body>
+</html>
37 Brief.SkypeChatStyle/Contents/Resources/css-source/.htaccess
@@ -0,0 +1,37 @@
+####################################################
+#
+# THIS FILE SHOULD BE PLACED IN YOUR CSS DIRECTORY
+#
+####################################################
+
+<IfModule mod_deflate.c>
+ SetOutputFilter DEFLATE
+</IfModule>
+
+<IfModule mod_expires.c>
+ ExpiresActive on
+ ExpiresDefault "access plus 10 years"
+</IfModule>
+
+# To enable invisible parsing of your css, you need to change the path
+# below to find your scaffold/index.php file.
+#
+# By default, Scaffold should be placed in your CSS directory. You should
+# place this .htaccess file in the same directory. If you're setup is
+# fairly average, this should work out of the box.
+#
+# Now, rather than calling http://site.com/css/scaffold/index.php?request=css/master.css
+# you can just call http://site.com/css/master.css and this htaccess file will
+# take care of the routing for you.
+
+<IfModule mod_rewrite.c>
+ RewriteEngine on
+
+ # Anything after .css is used as the output=
+ RewriteCond %{REQUEST_URI} \.css
+ RewriteRule ^(.+)/([^/]+)/?$ scaffold/index.php?request=%{REQUEST_URI}&output=$2&%{QUERY_STRING}
+
+ RewriteCond %{REQUEST_FILENAME} -f
+ RewriteCond %{REQUEST_URI} \.css$
+ RewriteRule ^(.+)$ scaffold/index.php?request=%{REQUEST_URI}&%{QUERY_STRING}
+</IfModule>
234 Brief.SkypeChatStyle/Contents/Resources/css-source/base.css
@@ -0,0 +1,234 @@
+/*
+ -------------
+ CSS Base File
+ -------------
+ Contains many resets, browser fixes and defaults to make life a bit easier.
+ Inspired by the likes of Eric Meyer et al.
+
+
+ Version: 1.8 (a.k.a. Green II)
+ Created: October 13th, 2010
+ Author: Maykel Loomans - www.maykelloomans.com
+
+
+ Changes:
+ Since 1.0 Font-shorthand for basic fonts.
+ Since 1.1 Added input[type=image], input.image
+ Since 1.2 Added input[type=radio], input.radio
+ Since 1.3 Added ::moz-focus-inner to the input[type=submit], input.submit
+ Since 1.4 Added display: block; HTML5 elements: article, section, header, footer, nav
+ Since 1.5 Removed accessibility selectors, added -moz-focus-inner.
+ Since 1.6 Added some form basics.
+ Since 1.7 Updated inputs. Removed some stupid selectors.
+ Since 1.8 Updated basic font-stack. Added some things from HTML Boiler Plate.
+
+ -------------
+*/
+
+
+/* @group - Reset */
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, address, cite, code,
+del, dfn, em, img, ins, kbd, q, samp,
+small, strong, sub, sup, var,
+b, i,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, figure, footer, header,
+hgroup, menu, nav, section, menu,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+
+ vertical-align: baseline;
+ background: transparent;
+}
+
+ /* @group - HTML5 Elements */
+
+ article, aside, figure, footer, header, hgroup, nav, section {
+ display:block;
+ }
+
+ /* @end */
+
+
+/* @end */
+
+
+
+/* @group - Defaults */
+
+:focus { outline: 0; } /* Remember to define focus styles! */
+
+html { -webkit-font-smoothing: antialiased; }
+html, body { height: 100%; }
+body { background: #fff; } /* Putting on pants. */
+
+a img, fieldset { border: none; }
+blockquote:before, blockquote:after, q:before, q:after { content: ""; }
+blockquote, q { quotes: "" ""; } /* Remove possible quote marks (") from <q>, <blockquote>. */
+
+ul, ol { list-style: none; } /* Lists are flexible, define list styles for your site specifically. */
+
+table { border-collapse: separate; border-spacing: 0; } /* Tables still need 'cellspacing="0"' in the markup. */
+caption, th, td { text-align: left; font-weight: normal; }
+table, td, th { vertical-align: middle; }
+
+
+ /* @group - Input Fields */
+
+ input, select, button, textarea {
+ display: inline-block;
+ vertical-align: middle;
+ white-space: normal;
+ background: #fff;
+ line-height: 1;
+
+ margin: 0;
+ padding: 0;
+ border: 0;
+ }
+
+ input[type=submit], input.submit {
+ font-weight:bold;
+ width: auto !important;
+ }
+
+ input[type=submit]::-moz-focus-inner,
+ input[type=reset]::-moz-focus-inner { border: 0; }
+
+ input[type=image], input.image,
+ input[type=radio], input.radio,
+ input[type=checkbox], input.checkbox {
+ background:none !important;
+ border:none !important;
+ height:auto !important;
+ width:auto !important;
+ }
+
+ /* @end */
+
+ /* @group Image Defaults */
+
+ h1 img, h2 img, h3 img, h4 img, h5 img, h6 img { margin: 0; }
+
+ img.left {
+ margin: 4px 20px 4px 4px;
+
+ display:inline;
+ float:left !important;
+ }
+
+ img.right {
+ margin: 4px 4px 4px 20px;
+
+ display:inline;
+ float:right !important;
+ }
+
+ /* @end */
+
+/* @end */
+
+
+
+/* @group - Defaults (Typo) */
+
+ /* @group Default Font */
+
+ body { font: 62.5%/20px sans-serif; color: #222; } /* Resetting the body font for no current reason whatsoever. Let's put it towards 'peace of mind' */
+ input, textarea, button, select { font: 99% sans-serif; }
+ pre,code,tt,kbd,samp { font-family: 'andale mono', 'lucida console', monospace;}
+
+ /* @end */
+
+a { color: #009; text-decoration: underline; }
+a:visited { color: #006; }
+a:focus, a:hover { color: #000; }
+
+del { text-decoration: line-through; }
+pre,code { white-space: pre; }
+
+sup, sub { line-height: 0; }
+strong { font-weight: bold; }
+
+/* @end */
+
+
+
+/* @group - Browser Specifics */
+
+input::-moz-focus-inner,
+button::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/* @end */
+
+
+
+/* @group - Clearing Hacks */
+
+.clear:after {
+ clear:both;
+ content:".";
+ display:block;
+ height:0;
+ visibility:hidden;
+ font-size: 0.01em !important;
+ line-height: 0.01em !important;
+}
+
+.clear { display: inline-block; }
+* html .clear { height:1%; }
+.clear { display:block; }
+
+/* @end */
+
+
+/* @group Custom Stuff */
+
+ /* @group Horizontal Rules */
+
+ .hr {
+ border-bottom:1px solid #ffeae0;
+ clear:both !important;
+ font-size:0.01em !important;
+ height:1px !important;
+ width:100%;
+ margin:3px 0 !important;
+ padding:1px 0;
+ }
+
+ .hr hr { display: none !important; }
+
+ /* @end */
+
+
+
+ /* @group Visibility Switches */
+
+ .hide { display: none !important; }
+ .show { display: block !important; }
+
+ .invisible { visibility: hidden !important; }
+ .visible { visibility: visible !important; }
+
+ /* @end */
+
+
+/* @end */
+
+
+@media screen and (max-device-width: 480px) {
+ /* Prevent iOS, WinMobile from adjusting font size */
+ html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; }
+}
BIN  Brief.SkypeChatStyle/Contents/Resources/css-source/cache
Binary file not shown
1,182 Brief.SkypeChatStyle/Contents/Resources/css-source/main.css
@@ -0,0 +1,1182 @@
+@import "base.css";
+
+@constants {
+ line_color: rgba(40,40,40,0.08);
+
+ bg_color: #fafafa;
+ alt_bg_color: #f3f3f3;
+ //alt_bg_color: rgba(200,200,200,0.8);
+ highlight_bg_color: rgba(255,255,220,0.8);
+
+ text_color: rgba(0,0,0,0.8);
+ lighter_text_color: rgba(0,0,0,0.7);
+ darker_text_color: rgba(0,0,0,0.9);
+}
+
+
+/* @group Typography
+*/
+
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 20px;
+
+ color: !text_color;
+
+ overflow-x: hidden;
+}
+
+.item {
+
+ &:not(.read) {
+ text-shadow: 0 1px 0 rgba(255,255,255,0.8);
+ }
+
+ button.accept,
+ button.decline {
+ font-size: 11px;
+ font-weight: bold;
+ line-height: 16px;
+
+ color: !text_color;
+
+ text-shadow: 0 1px 0 rgba(255,255,255,0.8);
+ }
+
+ .sender {
+ font-weight: bold;
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+ }
+
+ .time {
+ font-size: 11px;
+ color: rgba(0,0,0,0.3);
+
+ line-height: 14px;
+ margin: 3px 0;
+ }
+
+ &.out {
+ color: !darker_text_color;
+ }
+
+ .completed,
+ &.read {
+ color: rgba(0,0,0,0.5);
+ }
+
+ &.transfer {
+ color: rgba(0,0,0,0.7) !important;
+ }
+}
+
+.alert .body {
+ color: rgba(0,0,0,0.4);
+ font-weight: bold;
+}
+
+.duration {
+ color: rgba(0,0,0,0.3);
+}
+
+.transfer {
+ .name {
+ font-size: 11px;
+ }
+}
+
+.emote {
+ color: !darker_text_color;
+
+ .body {
+ font-weight: bold;
+ }
+
+ .body:before {
+ font-size: 15px;
+ font-family: Verdana, sans-serif;
+ font-weight: normal;
+
+ color: rgba(0,0,0,0.40);
+ text-shadow: 0 1px 0 #fff;
+ }
+}
+
+.typing {
+ font-size: 11px;
+}
+
+/* @end */
+
+
+/* @group General UI Elements
+*/
+
+button.accept,
+button.decline {
+ background: #e6e6e6;
+
+ padding: 2px 8px 0;
+
+ border: 1px solid #ddd;
+
+ -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.2), 0 1px 0 rgba(255,255,255,0.5) inset;
+ -webkit-border-radius: 12px;
+
+ position: relative;
+
+ &:hover {
+ background: #eee;
+ -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.2), 0 1px 0 rgba(255,255,255,0.5) inset;
+ }
+
+ &:active {
+ top: 1px;
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.8), 0 1px 1px rgba(0,0,0,0.2) inset;
+ }
+}
+
+.avatar {
+ display: none;
+}
+
+.hidden {
+ display: none;
+}
+
+
+.progressbar {
+ display: block;
+ height: 10px;
+ position: relative;
+ margin: 20px 2px 0 0;
+}
+
+ .progressbar .total {
+ display: block;
+ background: -webkit-gradient(linear, left bottom, left top,
+ color-stop(0, #f0f0f0),
+ color-stop(0.8, #e8e8e8),
+ color-stop(1, #dbdbdb)
+ );
+ border: 1px solid #bfbfbf;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ height: 6px;
+ position: relative;
+ width: 100%;
+ }
+
+ .progressbar .progress {
+ display: block;
+ background: -webkit-gradient(linear, left bottom, left top,
+ color-stop(0, #12b4f0),
+ color-stop(0.4, #2cbbf0),
+ color-stop(0.5, #61ccf3),
+ color-stop(1, #74d1f3)
+ );
+ border: 1px solid;
+ border-color: #45abd1 #0e96c9 #3ba8d1 #3ba8d1;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ height: 6px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ min-width: 6px;
+ }
+
+ .progressbar .progress.hidden {
+ display: none !important;
+ }
+
+ .progressbar .playhead {
+ display: block;
+ border: 1px solid;
+ border-color: #aaa #959595 #888 #959595;
+ -webkit-border-radius: 6px;
+ border-radius: 6px;
+ height: 10px;
+ width: 10px;
+ position: absolute;
+ top: -3px;
+ right: -3px;
+ background: #ececec;
+ }
+
+ .progressbar .playhead span {
+ border: 1px solid;
+ border-color: #f7f7f7 #eaeaea #d3d3d3 #eaeaea;
+ display: block;
+ width: 8px;
+ height: 8px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: -webkit-gradient(linear, left bottom, left top,
+ color-stop(1, #e1e1e1),
+ color-stop(0, #d3d3d3)
+ );
+ }
+
+/* @end */
+
+/* @group Conversation Wrapper
+*/
+
+#conversation {
+ position: relative;
+
+ min-width: 400px;
+
+ border-bottom: 1px solid #ddd;
+}
+
+/* @end */
+
+
+/* @group Chat Item
+*/
+
+.item {
+ position: relative;
+ clear: both;
+
+ background: !bg_color;
+
+ &,
+ &.read + &.followup:not(.read) {
+ .container {
+ margin-top: 0;
+ padding: 10px 0 9px;
+ }
+
+ border-bottom: 1px solid !line_color;
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,1) inset;
+
+ .sender,
+ .avatar {
+ display: block;
+ }
+
+ .time {
+ opacity: 0.8;
+ top: 10px;
+ }
+
+ .edit,
+ .delete {
+ top: 11px;
+ }
+ }
+
+ &.out {
+ background: !alt_bg_color;
+
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.7) inset;
+ }
+
+ &:not(.read) {
+ -webkit-animation-name: fade-in;
+ -webkit-animation-duration: 0.5s;
+ }
+
+
+
+ .head {
+
+ }
+
+ .time {
+ position: absolute;
+ right: 10px;
+ top: 10px;
+
+ -webkit-transition-property: margin, opacity;
+ -webkit-transition-duration: 0.2s, 0.2s;
+ -webkit-transition-timing-function: ease-out, ease-out;
+ }
+
+ .time.sending {
+ padding-right: 22px;
+ background: url(../gfx/buttons-14.png) no-repeat right -14px;
+ }
+
+ .time.failed {
+ padding-right: 22px;
+ background: url(../gfx/buttons-14.png) no-repeat right -28px;
+
+ opacity: 0.5;
+ }
+
+ .time.rejected,
+ .time.missing,
+ .time.cancelled {
+ padding-right: 22px;
+ background: url(../gfx/buttons-14.png) no-repeat right -28px;
+ }
+
+
+
+ .body {
+ overflow: hidden;
+ word-wrap: break-word;
+ }
+
+ .body a {
+ color: #007ec4;
+ text-decoration: none;
+ }
+
+ .body a:hover {
+ color: #007ec4;
+ border-bottom: 1px dotted #007ec4;
+ text-decoration: none;
+ }
+
+
+
+ .delete,
+ .quicklook,
+ .reveal,
+ .cancel,
+ .edit {
+ width: 14px;
+ height: 14px;
+ background: url(../gfx/buttons-14.png) no-repeat 0 0;
+ vertical-align: middle;
+ // display: none;
+ opacity: 0;
+
+ cursor: pointer;
+
+ &:hover {
+ opacity: 0.4 !important;
+ }
+
+ &:active {
+ opacity: 0.6 !important;
+ }
+
+ -webkit-transition-property: opacity;
+ -webkit-transition-duration: 0.3s;
+ -webkit-transition-timing-function: ease-out;
+ }
+
+}
+
+
+/* @end */
+
+
+/* @group Message
+*/
+
+.message {
+ padding: 0 80px 0 15px;
+
+ &:last-child {
+ border-bottom: 1px solid !line_color;
+ }
+
+ &.in:last-child {
+ border-bottom: none;
+ }
+
+ .head {
+ margin-bottom: 5px;
+
+ white-space: nowrap;
+ overflow-x: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .delete,
+ .edit {
+ position: absolute;
+ right: 10px;
+ top: 11px;
+ }
+
+ .delete {
+ background-position: 0 0;
+ margin: 2px 0 0 -14px;
+ }
+
+ .edit {
+ background-position: 0 -70px;
+
+ top: 13px;
+ right: 30px;
+ }
+
+ .body {
+
+ }
+
+ &.followup {
+ border-top: none;
+ -webkit-box-shadow: none;
+
+ .container {
+ padding-top: 0;
+ margin-top: -6px;
+ }
+
+ .head {
+ margin: 0;
+ }
+
+ .sender,
+ .avatar {
+ display: none;
+ }
+
+ .time {
+ top: 0;
+ opacity: 0.2;
+ //display: block;
+ //text-align: center;
+ //overflow: hidden;
+ }
+
+ .delete {
+ top: 1px;
+ }
+
+ .edit {
+ top: 3px;
+ }
+ }
+
+
+ &.editable {
+ &:hover {
+ .delete,
+ .edit {
+ display: block;
+ opacity: 0.15;
+
+ }
+
+ .time {
+ margin-right: 40px;
+ opacity: 0;
+ }
+ }
+
+ &.followup:hover {
+ .time {
+ }
+ }
+ }
+
+
+ &.edited .time {
+ padding-left: 14px;
+ background: url(../gfx/asset-sprite.png) no-repeat 0 -7px;
+ }
+
+ &.read {
+ &, &:hover {
+ .time {
+ opacity: 0.6;
+ }
+ }
+
+ .time {
+ margin-right: 0 !important;
+ }
+
+ .delete, .edit {
+ display: none !important;
+ }
+
+ &.followup .time {
+ display: none !important;
+ }
+ }
+
+}
+
+
+/* @end */
+
+
+/* @group Emote
+*/
+
+
+.emote {
+ padding: 0 10px 0 15px;
+
+ background: !highlight_bg_color;
+
+ .body {
+ position: relative;
+ overflow: visible;
+ // top: -1px;
+
+ padding-left: 20px !important;
+ }
+
+ .body:before {
+ content: "\00bb";
+
+ display: block;
+ position: absolute;
+ left: 0px;
+ top: 50%;
+
+ margin-top: -10px;
+ }
+}
+
+
+/* @end */
+
+
+/* @group Call Notices
+*/
+
+.call {
+ background: !highlight_bg_color;
+
+ .container {
+ overflow: hidden;
+ padding-left: 15px;
+ }
+
+ .head,
+ .body {
+ float: left;
+ }
+
+ .head {
+ min-width: 130px;
+ }
+
+ .body {
+ min-width: 230px;
+
+ position: relative;
+ top: 1px;
+ }
+
+ .duration {
+ margin-left: 1em;
+ }
+}
+
+
+/* @end */
+
+
+/* @group Alert
+*/
+
+.alert {
+ padding: 0 15px;
+}
+
+
+/* @end */
+
+
+/* @group Transfer
+*/
+
+.transfer {
+ padding: 0 10px 0 15px;
+
+ background: #f6f6ff;
+
+ .head {
+ margin: 0 0 5px;
+ }
+ .avatar {
+ float: left;
+ margin: 2px 0 0 -54px;
+ }
+
+ .icon {
+ float: left;
+
+ height: 32px;
+ width: 32px;
+
+ margin: 2px 10px 0 0;
+ }
+
+ .delete,
+ .cancel,
+ .quicklook,
+ .reveal {
+ float: right;
+ margin: 19px 0 0 0;
+ }
+
+ &.out .cancel,
+ .connecting .cancel {
+ display: block;
+ }
+
+ .delete,
+ .cancel {
+ background-position: 0 0;
+ }
+
+ .reveal {
+ background-position: 0 -56px;
+ }
+
+ .quicklook {
+ background-position: 0 -42px;
+ }
+
+ .name {
+ display: block;
+
+ margin: 0;
+ padding-top: 2px;
+
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ .size {
+ font-size: 11px;
+
+ color: rgba(0, 0, 0, 0.30);
+ margin: 1px 0 0;
+
+ display: block;
+ }
+
+ .accept,
+ .decline {
+ top: 2px;
+ left: -1px;
+
+ &:active {
+ top:3px;
+ }
+ }
+
+ /*
+ .accept {
+ float: right;
+ margin: 5px 54px 0 7px;
+ }
+
+ .decline {
+ float: right;
+ margin: 5px 0 0 7px;
+ }
+
+ .sub .accept {
+ margin-top: 15px;
+ }
+
+ .sub .decline {
+ margin-top: 15px;
+ }*/
+
+ .main,
+ .sub {
+ position: relative;
+ }
+
+ .main {
+ min-height: 36px;
+ }
+
+ .main .name {
+ padding-left: 13px;
+ cursor: default;
+ background: url(../gfx/buttons-9.png) no-repeat 0 3px;
+ max-width: 100px;
+ }
+
+ .main .name.open {
+ background: url(../gfx/buttons-9.png) no-repeat 0 -15px;
+ }
+
+ .main:last-child .name {
+ padding-left: 0;
+ background: transparent;
+ cursor: inherit;
+ max-width: 100%;
+ }
+
+ .main.running,
+ .main.connecting,
+ .main.running:last-child {
+ margin-bottom: 0px;
+ }
+
+ .sub {
+ margin: 0;
+ clear: both;
+ height: 0;
+ overflow: hidden;
+ }
+
+ .sub.open {
+ border-top: 1px dotted #dadada;
+ height: auto;
+
+ margin: 5px 0 0;
+ padding: 0 0 3px;
+ }
+
+ .main + .sub {
+ margin-top: 10px;
+ }
+
+ .sub.open:last-child {
+ margin-bottom: 9px;
+
+ border-top: 1px dotted #dadada;
+ }
+
+ .sub.running.open {
+ margin-bottom: 8px;
+ }
+
+ .sub .icon {
+ margin-top: 9px;
+ }
+
+ .sub.running:last-child {
+ margin-bottom: 1px;
+ }
+
+ .sub .size {
+ top: 10px;
+ }
+
+
+
+ .progressbar {
+ margin-top: 2px;
+ margin-left: 42px;
+ }
+
+ &.in .progressbar {
+ display: none;
+ }
+
+ &.in .connecting .progressbar {
+ display: block;
+ }
+
+ &.out .progressbar .progress.hidden,
+ .connecting .progressbar .progress.hidden {
+ width: 100%;
+ display: block !important;
+ background-image: url(../gfx/asset-sprite.png);
+ background-repeat: repeat-x;
+ background-position: 0 0;
+ border: 1px solid rgba(0, 0, 0, 0);
+ opacity: 0.1;
+ }
+
+ .running .progressbar {
+ display: block;
+ margin-bottom: -2px;
+ }
+
+ .connecting .progressbar {
+ display: block;
+ margin-bottom: -2px;
+ }
+
+ &.out .progressbar {
+ margin-bottom: -2px;
+ }
+
+ &.out .running .progressbar .total {
+ background: -webkit-gradient(linear, left bottom, left top,
+ color-stop(0, #f0f0f0),
+ color-stop(0.8, #e8e8e8),
+ color-stop(1, #dbdbdb)
+ );
+ }
+
+ .running .accept,
+ .running .decline {
+ display: none;
+ }
+
+ .running .cancel {
+ display: block;
+ }
+
+
+ .completed {
+ .quicklook,
+ .reveal,
+ .delete {
+ display: block;
+ margin-top: 11px;
+ }
+ }
+
+ .missing {
+ .quicklook,
+ .reveal,
+ .delete {
+ display: none;
+ }
+ }
+
+ .connecting .accept,
+ .connecting .decline {
+ display: none;
+ }
+
+ .sub .quicklook,
+ .sub .reveal,
+ .sub .delete {
+ margin-top: 18px;
+ }
+
+ .main .reveal {
+ display: none;
+ }
+
+ &.in .main.completed:last-child .quicklook,
+ &.in .main.completed:last-child .reveal {
+ display: block;
+ }
+
+ &.out .main.completed:last-child .quicklook,
+ &.out .main.completed:last-child .reveal,
+ &.out .main.cancelled:last-child .quicklook,
+ &.out .main.cancelled:last-child .reveal {
+ display: block;
+ }
+
+ &.in .completed.cancelled .quicklook,
+ &.in .completed.cancelled .reveal,
+ &.in .completed.failed .quicklook,
+ &.in .completed.failed .reveal {
+ display: none !important;
+ }
+
+ .completed .quicklook,
+ .completed .reveal {
+ margin-left: 7px;
+ }
+
+ .completed .accept,
+ .completed .decline {
+ display: none;
+ }
+
+ .missing .accept,
+ .missing .decline {
+ display: none;
+ }
+
+ &.out .completed .cancel {
+ display: none;
+ }
+
+ .missing .name {
+ opacity: 0.65;
+ }
+
+ .missing .icon {
+ opacity: 0.65;
+ }
+
+ &.out .completed .progressbar {
+ display: none;
+ }
+
+}
+
+
+/* @end */
+
+
+/* @group SMS
+*/
+
+.sms {
+ padding: 0 10px 0 15px;
+
+ background: !highlight_bg_color;
+ border-top-color: rgba(255,255,255,0.95)
+}
+
+ .sms.out {
+ background: !bg_color;
+ }
+
+ .sms div.body {
+ padding: 4px 127px 0 0;
+ }
+
+ .sms.read {
+ color: rgba(0, 0, 0, 0.60);
+ }
+
+
+/* @end */
+
+
+/* @group History Block (on the top of the screen)
+*/
+
+.history {
+ padding: 10px 0;
+ border-top: 1px solid #dadada;
+ background: #fff;
+ text-align: center;
+
+ font-size: 11px;
+}
+
+ .history:first-child {
+ border-top: none;
+ }
+
+ .history:last-child {
+ border-bottom: 1px solid #dadada;
+ }
+
+ .history .container {
+ padding: 10px 0;
+ }
+
+ .history div.body {
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.3);
+ }
+
+ .history a {
+ color: rgba(0, 126, 196, 0.9);
+ }
+
+ .history div.body span.history-more {
+ display: block;
+ font-weight: normal;
+ }
+
+ .history div.body span.history-more a {
+
+ }
+
+ .history .vertical-separator {
+ display: inline-block;
+ width: 1px;
+ height: 15px;
+ margin: 0 8px -3px 8px;
+ background: rgba(180, 180, 180, 0.9);
+ }
+
+ .history .vertical-separator:last-child {
+ display: none;
+ }
+
+/* @end */
+
+
+/* @group Typing indicator */
+
+.typing {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+
+ border: none;
+
+ opacity: 1;
+
+ overflow: hidden;
+
+ background: transparent;
+
+ -webkit-box-shadow: none;
+}
+
+ .typing .container {
+ position: relative;
+
+ padding: 4px 0 1px;
+ margin: 6px;
+
+ height: 20px;
+
+ border: 1px solid !line_color;
+
+ background: rgba(255,255,255,0.9) url(../gfx/typing-16x16-white.gif) no-repeat 8px 5px;
+
+ opacity: 1;
+
+ -webkit-transition-property: margin-bottom, opacity;
+ -webkit-transition-duration: 0.3s, 0.3s;
+ -webkit-transition-timing-function: ease-out, ease-out;
+
+ -webkit-border-radius: 4px;
+ -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
+
+ -webkit-animation-name: typing-slide-in;
+ -webkit-animation-duration: 0.4s;
+
+ &:hover {
+ opacity: 0.2;
+ }
+ }
+
+ .typing.invisible .container {
+ margin-bottom: -51px;
+ opacity: 0;
+ }
+
+ .typing .head {
+ padding: 0 15px 0 32px;
+ }
+
+ .typing .sender {
+ font-weight: bold;
+ }
+
+ .message.in + .typing.invisible,
+ .message.in.followup + .typing.invisible,
+ .alert + .typing.invisible {
+ border-top: 1px solid rgba(255, 255, 255, 0);
+ }
+
+/* @end */
+
+
+
+/* @group Media Queries
+*/
+
+@media screen and (max-width: 480px) {
+ .item {
+ .avatar {
+ display: none !important;
+ }
+ }
+}
+
+
+@media screen and (min-width: 480px) {
+
+ #conversation
+ {
+ .avatar {
+ display: block;
+
+ position: absolute;
+ top: 8px;
+ left: 8px;
+
+ width: 22px;
+ }
+
+ .transfer .avatar {
+ display: block;
+ }
+
+ .transfer,
+ .message,
+ .call,
+ .sms {
+ .head,
+ .body {
+ padding-left: 25px !important;
+ }
+ }
+
+ .emote {
+ .body {
+ padding-left: 42px !important;
+ }
+
+ .body:before {
+ left: 25px;
+ }
+ }
+
+ }
+}
+
+
+@media screen and (max-width: 640px) {
+ .message {
+ &.read + &.followup:not(.read) .edit,
+ &:not(.followup) .edit {
+ top: 13px;
+ }
+
+ &:not(.followup) .time {
+ top: 35px !important;
+ }
+ }
+}
+
+
+@media screen and (min-width: 640px) {
+
+ #conversation
+ {
+
+ .message {
+ .container {
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ }
+
+ .head {
+ min-width: 130px;
+ max-width: 130px;
+ margin-bottom: 0;
+
+ .edit {
+ left: 170px;
+ }
+ }
+
+ .time {
+ margin-right: 0px;
+ }
+
+ &.editable:hover .time {
+ margin-right: 20px !important;
+ }
+
+ &.read.editable .time {
+ margin-right: 0 !important;
+ }
+
+ .body {
+ padding-top: 0px;
+ padding-right: 80px;
+ -webkit-box-flex: 1;
+ }
+ }
+
+ .transfer {
+ .size {
+ position: absolute;
+ right: 0;
+ top: 1px;
+ }
+ }
+
+ }
+}
+
+/* @end */
153 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/config.php
@@ -0,0 +1,153 @@
+<?php
+
+/**
+ * The document root for the server. If you're server doesn't set this
+ * variable, you can manually enter in the server path to the document root
+ */
+$path['document_root'] = $_SERVER['DOCUMENT_ROOT'];
+
+/**
+ * CSS directory. This is where you are storing your CSS files.
+ *
+ * This path can be relative to this file or absolute from the document root.
+ */
+$path['css'] = '../';
+
+/**
+ * The path to the system folder.
+ */
+$path['system'] = 'system';
+
+/**
+ * Sets the cache path. By default, this is inside of the system folder.
+ * You can set it to a custom location here. Be aware that when Scaffold
+ * recaches, it empties the whole cache to removes all flagged cache files.
+ */
+$path['cache'] = 'system/cache';
+
+/**
+ * Debug
+ *
+ * Enable Firebug output. You need Firebug and FirePHP for Firefox.
+ * This is handy when you're viewing the page the CSS is used on,
+ * as it will display CSScaffold errors in the console.
+ *
+ */
+$config['debug'] = true;
+
+/**
+ * Mode
+ *
+ * Either 'production' or 'development'. In development the cache is always
+ * refreshed each time you reload the CSS. In production, the cache is locked
+ * and will never be recached. This means the load on your server will be much
+ * less when the site is live.
+ */
+$config['in_production'] = false;
+
+/**
+ * Force Recache
+ *
+ * By default, Scaffold will only recache your CSS if there
+ * have been changes made to the requested file. If you want
+ * it to always recache for development, set this to true.
+ */
+$config['force_recache'] = true;
+
+/**
+ * Show CSS rendering information
+ *
+ * Output information at the top of your cached file.
+ */
+$config['show_header'] = false;
+
+/**
+ * Automatically include mixins
+ *
+ * By default, Scaffold includes any and all mixin files stored
+ * in framework/mixins, to save the user the trouble of including
+ * them by themselves. If you want Scaffold to run faster, you can
+ * include them manually.
+ *
+ * Setting this to false means you need to include the framework/mixins manually.
+ */
+$config['auto_include_mixins'] = true;
+
+/**
+ * Override CSS @import
+ *
+ * Scaffold normally uses @include to import files, rather than
+ * overriding the standard CSS @import. You can change this, and
+ * use @import instead by setting this to true.
+ *
+ * Setting this to true means you'll use @import instead of @include
+ */
+$config['override_import'] = true;
+
+/**
+ * Make all URL paths absolute
+ *
+ * If you're calling CSS using scaffold/index.php?request=path/to/css method,
+ * the relative paths to images will break in the browser, as it will
+ * be looking for the images inside the scaffold folder. To fix this, Scaffold
+ * can make all url() paths absolute.
+ *
+ * If you're having image path issues, set this to true.
+ */
+$config['absolute_urls'] = false;
+
+/**
+ * Use CSS-style constants
+ *
+ * You can use a syntax similar to the proposed CSS variable syntax which is
+ * const(constantname) instead of the SASS-style !constantname
+ *
+ * Setting this to true uses the const(constantname) syntax for constants
+ */
+$config['use_css_constants'] = false;
+
+/**
+ * Minify/Prettify
+ *
+ * You can use the minify library to compress your CSS. Minify strips all
+ * unnecessary whitespace, empty and redundant selectors etc.
+ *
+ * By setting this to false, instead of minifying your CSS, it will prettify it,
+ * making it easier to read instead of worrying about compressing down the size.
+ */
+$config['minify_css'] = false;
+
+/**
+ * Custom Global CSS Constants
+ *
+ * You can set basic constants here that can be access throughout your
+ * entire project. I'd advise that you don't add stylesheet-specific styles
+ * here (like colours), instead, just add any constants you might need,
+ * like $_SERVER variables.
+ *
+ * If you want to add more complex constant-setting logic, create a plugin.
+ */
+$config['constants'] = array
+(
+ 'name' => 'value',
+);
+
+/**
+ * Enabled Plugins
+ *
+ * Set which plugins are currently enabled. Plugins may also have
+ * their own configuration options. Check the plugin folder for a
+ * config.php file to customize the way the plugin works.
+ *
+ * All of these plugins are already installed. This is where you can
+ * turn them on or off.
+ *
+ * To install a new plugin, drop it in scaffold/plugins, then add it to
+ * this list. For more information on any of these plugins, or about
+ * creating your own plugins, check the wiki on Github.
+ *
+ */
+$config['disabled_plugins'] = array
+(
+ 'XML_constants'
+);
61 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/index.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * DO NOT EDIT THIS FILE!
+ *
+ * This file acts as the front controller for CSScaffold.
+ *
+ * It's fairly straightforward. It loads a config file, sets an include path,
+ * and then runs CSScaffold.
+ *
+ * You should be able to pull CSScaffold out and use it however you wish as
+ * long as the config file is in the right format.
+ *
+ * If you're looking to do something unique, like moving files and folders
+ * around, you'll probably need to change this file or create a custom
+ * front controller for Scaffold. Just keep in mind that the run method
+ * NEEDS those three parameters, the SYSPATH constant and all of the required
+ * files. Apart from that, you should be able to drop it into anything.
+ *
+ * @package CSScaffold
+ */
+
+# Errors. This is overridden by the debug option later.
+ini_set('display_errors', TRUE);
+error_reporting(E_ALL & ~E_STRICT);
+
+# Include the config file
+include 'config.php';
+
+# Path to the system directory
+define('SYSPATH', str_replace('\\', '/', realpath($path['system'])). '/');
+
+# Set the server variable for document root
+if(!isset($_SERVER['DOCUMENT_ROOT']))
+{
+ $_SERVER['DOCUMENT_ROOT'] = $path['document_root'];
+}
+
+# Set timezone, just in case it isn't set
+if (function_exists('date_default_timezone_set'))
+{
+ date_default_timezone_set('GMT');
+}
+
+# Include the classes
+require SYSPATH . 'core/Utils.php';
+require SYSPATH . 'core/Benchmark.php';
+require SYSPATH . 'core/Module.php';
+require SYSPATH . 'core/CSS.php';
+require SYSPATH . 'core/Controller.php';
+require SYSPATH . 'core/Exception.php';
+require SYSPATH . 'vendor/FirePHPCore/fb.php';
+require SYSPATH . 'vendor/FirePHPCore/FirePHP.class.php';
+
+# And finally... the one that actually does the work
+require SYSPATH . 'controllers/CSScaffold.php';
+
+# And we're off!
+if(isset($_GET['request']))
+{
+ CSScaffold::run($_GET, $config, $path);
+}
BIN  Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/.DS_Store
Binary file not shown
4 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/cache/.htaccess
@@ -0,0 +1,4 @@
+<IfModule mod_expires.c>
+ ExpiresActive on
+ ExpiresDefault "access plus 10 years"
+</IfModule>
1  Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/cache/main.css
@@ -0,0 +1 @@
+html,
484 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/controllers/CSScaffold.php
@@ -0,0 +1,484 @@
+<?php
+/**
+ * Class CSScaffold
+ * @package CSScaffold
+ */
+
+/**
+ * CSScaffold
+ *
+ * Handles all of the inner workings of the framework and juicy goodness.
+ * This is where the metaphorical cogs of the system reside.
+ *
+ * Requires PHP 5.0.0
+ * Tested on PHP 5.3.0
+ *
+ * @package CSScaffold
+ * @author Anthony Short <anthonyshort@me.com>
+ * @copyright 2009 Anthony Short. All rights reserved.
+ * @license http://opensource.org/licenses/bsd-license.php New BSD License
+ * @link https://github.com/anthonyshort/csscaffold/master
+ */
+class CSScaffold extends Scaffold_Controller
+{
+ /**
+ * CSScaffold Version
+ */
+ const VERSION = '1.5.0';
+
+ /**
+ * Successfully loaded modules
+ *
+ * @var array
+ */
+ private static $loaded_modules;
+
+ /**
+ * Internal cache
+ */
+ private static $internal_cache;
+
+ /**
+ * Sets the initial variables, checks if we need to process the css
+ * and then sends whichever file to the browser.
+ *
+ * @return void
+ * @author Anthony Short
+ **/
+ public static function run($get, $config = array(), $path = array())
+ {
+ static $run;
+
+ # This function can only be run once
+ if ($run === TRUE)
+ return;
+
+ # The default options
+ $default_config = array
+ (
+ 'debug' => false,
+ 'in_production' => false,
+ 'force_recache' => false,
+ 'show_header' => true,
+ 'auto_include_mixins' => true,
+ 'override_import' => false,
+ 'absolute_urls' => false,
+ 'use_css_constants' => false,
+ 'minify_css' => true,
+ 'constants' => array(),
+ 'disabled_plugins' => array()
+ );
+
+ # Merge them with our set options
+ $config = array_merge($default_config, $config);
+
+ # The default paths
+ $default_paths = array
+ (
+ 'document_root' => $_SERVER['DOCUMENT_ROOT'],
+ 'css' => '../',
+ 'system' => 'system',
+ 'cache' => 'cache'
+ );
+
+ # Merge them with our set options
+ $path = array_merge($default_paths, $path);
+
+ # If we want to debug (turn on errors and FirePHP)
+ if($config['debug'])
+ {
+ # Set the error reporting level.
+ error_reporting(E_ALL & ~E_STRICT);
+
+ # Set error handler
+ set_error_handler(array('CSScaffold', 'exception_handler'));
+
+ # Set exception handler
+ set_exception_handler(array('CSScaffold', 'exception_handler'));
+
+ # Turn on FirePHP
+ FB::setEnabled(true);
+ }
+ else
+ {
+ # Turn off errors
+ error_reporting(0);
+ FB::setEnabled(false);
+ }
+
+ # Set the options and paths in the config
+ self::config_set('core', $config);
+
+ # Set the paths in the config
+ self::config_set('core.path.docroot', Utils::fix_path( $path['document_root']) );
+ self::config_set('core.path.system', Utils::fix_path( $path['system']) );
+ self::config_set('core.path.cache', Utils::fix_path( $path['cache']) );
+ self::config_set('core.path.css', Utils::fix_path( $path['css']) );
+ self::config_set('core.url.css', Utils::urlpath( self::config('core.path.css') ));
+ self::config_set('core.url.system', Utils::urlpath( SYSPATH ) );
+
+ # Load the include paths
+ self::include_paths(TRUE);
+
+ # Set the output
+ if(isset($get['output']))
+ self::config_set('core.output', $get['output']);
+
+ # Parse the $_GET['request'] and set it in the config
+ self::config_set('core.request', self::parse_request($get['request']));
+
+ # Get the modified time of the CSS file
+ self::config_set('core.request.mod_time', filemtime(self::config('core.request.path')));
+
+ # Tell CSScaffold where to cache and tell if we want to recache
+ self::cache_set(self::config('core.path.cache'));
+
+ # Set it back to false if it's locked
+ if( $config['in_production'] AND file_exists(self::$cached_file) )
+ {
+ $recache = false;
+ }
+
+ # If we need to recache
+ elseif(
+ $config['force_recache'] OR
+ isset($get['recache']) OR
+ self::config('core.cache.mod_time') <= self::config('core.request.mod_time') OR
+ !file_exists(self::$cached_file)
+ )
+ {
+ $recache = true;
+ self::cache_clear();
+ }
+ else
+ {
+ $recache = false;
+ }
+
+ # Load the modules
+ self::load_modules($config['disabled_plugins']);
+
+ # Create a new CSS object
+ CSS::load( self::config('core.request.path') );
+
+ # Parse it
+ if($recache) self::parse_css();
+
+ # Log to Firebug
+ FB::log(self::config('core'));
+
+ # Output it
+ self::output(CSS::$css);
+
+ # Setup is complete, prevent it from being run again
+ $run = TRUE;
+ }
+
+ private static function parse_request($path)
+ {
+ # Get rid of those pesky slashes
+ $requested_file = Utils::trim_slashes($path);
+
+ # Remove anything after .css - like /typography/
+ $requested_file = preg_replace('/\.css(.*)$/', '.css', $requested_file);
+
+ # Remove the start of the url if it exists (http://www.example.com)
+ $requested_file = preg_replace('/https?\:\/\/[^\/]+/i', '', $requested_file);
+
+ # Add our requested file var to the array
+ $request['file'] = $requested_file;
+
+ # Path to the file, relative to the css directory
+ $request['relative_file'] = Utils::trim_slashes(str_replace( Utils::trim_slashes(self::config('core.url.css')), '', $requested_file));
+
+ # Path to the directory containing the file, relative to the css directory
+ $request['relative_dir'] = pathinfo($request['relative_file'], PATHINFO_DIRNAME);
+
+ # Otherwise we'll try to find it inside the CSS directory
+ $request['path'] = self::find_file($request['relative_dir'], basename($requested_file, '.css'), true, 'css');
+
+ # Set the directory
+ $request['directory'] = dirname($request['path']);
+
+ # If the file doesn't exist
+ if(!file_exists($request['path']))
+ throw new Scaffold_Exception("Requested CSS file doesn't exist:" . $request['file']);
+
+ # or if it's not a css file
+ if (!Utils::is_css($requested_file))
+ throw new Scaffold_Exception("Requested file isn't a css file: $requested_file" );
+
+ # or if the requested file wasn't from the css directory
+ if(!substr(pathinfo($request['path'], PATHINFO_DIRNAME), 0, strlen(self::config('core.path.css'))))
+ throw new Scaffold_Exception("Requested file wasn't within the CSS directory");
+
+ return $request;
+ }
+
+ /**
+ * Loads modules and plugins
+ *
+ * @param $addons An array of addon names
+ * @param $directory The directory to look for these addons in
+ * @return void
+ */
+ private static function load_modules($disabled = array())
+ {
+ # Get each of the folders inside the Plugins and Modules directories
+ $modules = self::list_files('modules');
+
+ foreach($modules as $module)
+ {
+ $name = basename($module);
+
+ if(in_array($name, $disabled))
+ {
+ continue;
+ }
+
+ # The addon folder
+ $folder = $module;
+
+ # The controller for the plugin (Optional)
+ $controller = Utils::join_path($folder,$name.'.php');
+
+ # The config file for the plugin (Optional)
+ $config_file = $folder.'/config.php';
+
+ # Set the paths in the config
+ self::config_set("$name.support", Utils::join_path($folder,'support'));
+ self::config_set("$name.libraries", Utils::join_path($folder,'libraries'));
+
+ # Include the addon controller
+ if(file_exists($controller))
+ {
+ require_once($controller);
+
+ # Any flags this module sets
+ call_user_func(array($name,'flag'));
+
+ # It's loaded
+ self::$loaded_modules[] = $name;
+ }
+
+ # If there is a config file
+ if(file_exists($config_file))
+ {
+ include $config_file;
+
+ foreach($config as $key => $value)
+ {
+ self::config_set($name.'.'.$key, $value);
+ }
+
+ unset($config);
+ }
+ }
+ }
+
+ /**
+ * Output the CSS to the browser
+ *
+ * @return void
+ * @author Anthony Short
+ */
+ public static function output()
+ {
+ if (
+ isset($_SERVER['HTTP_IF_MODIFIED_SINCE'], $_SERVER['SERVER_PROTOCOL']) &&
+ self::config('core.cache.mod_time') <= strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])
+ )
+ {
+ header("{$_SERVER['SERVER_PROTOCOL']} 304 Not Modified");
+ exit;
+ }
+ else
+ {
+ # Set the default headers
+ header('Content-Type: text/css');
+ header("Vary: User-Agent, Accept");
+ header('Last-Modified: '. gmdate('D, d M Y H:i:s', self::config('core.cache.mod_time')) .' GMT');
+
+ echo file_get_contents(self::$cached_file);
+ exit;
+ }
+ }
+
+ /**
+ * Parse the CSS
+ *
+ * @return string - The processes css file as a string
+ * @author Anthony Short
+ */
+ public static function parse_css()
+ {
+ # Start the timer
+ Scaffold_Benchmark::start("parse_css");
+
+ # Compress it before parsing
+ CSS::compress(CSS::$css);
+
+ # Import CSS files
+ if(class_exists('Import'))
+ Import::parse();
+
+ if(self::config('core.auto_include_mixins') === true && class_exists('Mixins'))
+ {
+ # Import the mixins in the plugin/module folders
+ Mixins::import_mixins('framework/mixins');
+ }
+
+ # Parse our css through the plugins
+ foreach(self::$loaded_modules as $module)
+ {
+ call_user_func(array($module,'import_process'));
+ }
+
+ # Compress it before parsing
+ CSS::compress(CSS::$css);
+
+ # Parse the constants
+ if(class_exists('Constants'))
+ Constants::parse();
+
+ foreach(self::$loaded_modules as $module)
+ {
+ call_user_func(array($module,'pre_process'));
+ }
+
+ # Parse the @grid
+ if(class_exists('Layout'))
+ Layout::parse_grid();
+
+ # Replace the constants
+ if(class_exists('Constants'))
+ Constants::replace();
+
+ # Parse @for loops
+ if(class_exists('Iteration'))
+ Iteration::parse();
+
+ foreach(self::$loaded_modules as $module)
+ {
+ call_user_func(array($module,'process'));
+ }
+
+ # Compress it before parsing
+ CSS::compress(CSS::$css);
+
+ # Parse the mixins
+ if(class_exists('Mixins'))
+ Mixins::parse();
+
+ # Find missing constants
+ if(class_exists('Constants'))
+ Constants::replace();
+
+ # Compress it before parsing
+ CSS::compress(CSS::$css);
+
+ foreach(self::$loaded_modules as $module)
+ {
+ call_user_func(array($module,'post_process'));
+ }
+
+ # Parse the expressions
+ if(class_exists('Expression'))
+ Expression::parse();
+
+ # Parse the nested selectors
+ if(class_exists('NestedSelectors'))
+ NestedSelectors::parse();
+
+ # Convert all url()'s to absolute paths if required
+ if(self::config('core.absolute_urls') === true)
+ {
+ CSS::convert_to_absolute_urls();
+ }
+
+ # Replaces url()'s that start with ~ to lead to the CSS directory
+ CSS::replace_css_urls();
+
+ # Add the extra string we've been storing
+ CSS::$css .= CSS::$append;
+
+ # If they want to minify it
+ if(self::config('core.minify_css') === true && class_exists('Minify'))
+ {
+ Minify::compress();
+ }
+
+ # Otherwise, we'll make it pretty
+ else
+ {
+ CSS::pretty();
+ }
+
+ # Formatting hook
+ foreach(self::$loaded_modules as $module)
+ {
+ call_user_func(array($module,'formatting_process'));
+ }
+
+ # Validate the CSS
+ if(class_exists('Validate'))
+ Validate::check();
+
+ # Stop the timer...
+ Scaffold_Benchmark::stop("parse_css");
+
+ if (self::config('core.show_header') === TRUE)
+ {
+ CSS::$css = "/* Processed by CSScaffold on ". gmdate('r') . " in ".Scaffold_Benchmark::get("parse_css", "time")." seconds */\n\n" . CSS::$css;
+ }
+
+ # Write the css file to the cache
+ self::cache_write(CSS::$css,self::$cached_file);
+
+ # Output process hook for plugins to display views.
+ # Doesn't run in production mode.
+ if(self::config('core.in_production') === false)
+ {
+ foreach(self::$loaded_modules as $module)
+ {
+ call_user_func(array($module,'output'));
+ }
+ }
+ }
+
+ /**
+ * Finds a file requested in the CSS
+ *
+ * @author Anthony Short
+ * @param $param
+ * @return return type
+ */
+ public static function find_css_file($path)
+ {
+ if(isset(self::$internal_cache['find_css_file'][$path]))
+ {
+ return self::$internal_cache['find_css_file'][$path];
+ }
+
+ # If the url starts with ~, we'll assume it's from the root of the css directory
+ if($path[0] == "~")
+ {
+ $path = str_replace('~', CSScaffold::config('core.path.css'), $path);
+ }
+
+ # If they're getting an absolute file
+ elseif($path[0] == "/")
+ {
+ $path = Utils::join_path( CSScaffold::config('core.path.docroot'), $path );
+ }
+
+ # Otherwise it's relative to the called CSS file
+ else
+ {
+ $path = Utils::join_path( CSScaffold::config('core.request.directory'), $path );
+ }
+
+ return self::$internal_cache['find_css_file'][$path] = realpath($path);
+ }
+
+}
131 Brief.SkypeChatStyle/Contents/Resources/css-source/scaffold/system/core/Benchmark.php