Index: src/wp-content/themes/twentyfifteen/inc/customizer.php
===================================================================
--- src/wp-content/themes/twentyfifteen/inc/customizer.php	(revision 30834)
+++ src/wp-content/themes/twentyfifteen/inc/customizer.php	(working copy)
@@ -274,19 +274,56 @@
  * @since Twenty Fifteen 1.0
  */
 function twentyfifteen_color_scheme_css_template() {
+	$js_defaults = array(
+		'background_color'            => '{{ data.background_color }}',
+		'header_background_color'     => '{{ data.header_background_color }}',
+		'box_background_color'        => '{{ data.box_background_color }}',
+		'textcolor'                   => '{{ data.textcolor }}',
+		'secondary_textcolor'         => '{{ data.secondary_textcolor }}',
+		'border_color'                => '{{ data.border_color }}',
+		'border_focus_color'          => '{{ data.border_focus_color }}',
+		'sidebar_textcolor'           => '{{ data.sidebar_textcolor }}',
+		'sidebar_border_color'        => '{{ data.sidebar_border_color }}',
+		'sidebar_border_focus_color'  => '{{ data.sidebar_border_focus_color }}',
+		'secondary_sidebar_textcolor' => '{{ data.secondary_sidebar_textcolor }}',
+		'meta_box_background_color'   => '{{ data.meta_box_background_color }}',
+	);
 	?>
 	<script type="text/html" id="tmpl-twentyfifteen-color-scheme">
+	<?php echo twentyfifteen_get_color_scheme_css( $js_defaults ); ?>
+	</script>
+	<?php
+}
+add_action( 'customize_controls_print_footer_scripts', 'twentyfifteen_color_scheme_css_template' );
+
+function twentyfifteen_get_color_scheme_css( $colors = array() ) {
+	$css_vars = wp_parse_args( $colors, array(
+		'background_color'            => '',
+		'header_background_color'     => '',
+		'box_background_color'        => '',
+		'textcolor'                   => '',
+		'secondary_textcolor'         => '',
+		'border_color'                => '',
+		'border_focus_color'          => '',
+		'sidebar_textcolor'           => '',
+		'sidebar_border_color'        => '',
+		'sidebar_border_focus_color'  => '',
+		'secondary_sidebar_textcolor' => '',
+		'meta_box_background_color'   => '',
+	) );
+
+	$css = <<<CSS
 	/* Color Scheme */
 
 	/* Background Color */
 	body {
-		background-color: {{ data.background_color }};
+		background-color: {$css_vars['background_color']};
 	}
 
 	/* Sidebar Background Color */
 	body:before,
 	.site-header {
-		background-color: {{ data.header_background_color }};
+		background-color: {$css_vars['header_background_color']};
 	}
 
 	/* Box Background Color */
@@ -298,7 +335,7 @@
 	.page-header,
 	.page-content,
 	.comments-area {
-		background-color: {{ data.box_background_color }};
+		background-color: {$css_vars['box_background_color']};
 	}
 
 	/* Box Background Color */
@@ -315,7 +352,7 @@
 	.page-links a:hover,
 	.page-links a:focus,
 	.sticky-post {
-		color: {{ data.box_background_color }};
+		color: {$css_vars['box_background_color']};
 	}
 
 	/* Main Text Color */
@@ -328,7 +365,7 @@
 	.widget_calendar tbody a,
 	.page-links a,
 	.sticky-post {
-		background-color: {{ data.textcolor }};
+		background-color: {$css_vars['textcolor']};
 	}
 
 	/* Main Text Color */
@@ -352,7 +389,7 @@
 	.comment-list .reply a:focus,
 	.site-info a:hover,
 	.site-info a:focus {
-		color: {{ data.textcolor }};
+		color: {$css_vars['textcolor']};
 	}
 
 	/* Main Text Color */
@@ -369,7 +406,7 @@
 	.pingback .edit-link a:hover,
 	.comment-list .reply a:hover,
 	.site-info a:hover {
-		border-color: {{ data.textcolor }};
+		border-color: {$css_vars['textcolor']};
 	}
 
 	/* Secondary Text Color */
@@ -389,8 +426,8 @@
 	.widget_calendar tbody a:focus,
 	.page-links a:hover,
 	.page-links a:focus {
-		background-color: {{ data.textcolor }}; /* Fallback for IE7 and IE8 */
-		background-color: {{ data.secondary_textcolor }};
+		background-color: {$css_vars['textcolor']}; /* Fallback for IE7 and IE8 */
+		background-color: {$css_vars['secondary_textcolor']};
 	}
 
 	/* Secondary Text Color */
@@ -429,8 +466,8 @@
 	.wp-caption-text,
 	.gallery-caption,
 	.comment-list .reply a {
-		color: {{ data.textcolor }}; /* Fallback for IE7 and IE8 */
-		color: {{ data.secondary_textcolor }};
+		color: {$css_vars['textcolor']}; /* Fallback for IE7 and IE8 */
+		color: {$css_vars['secondary_textcolor']};
 	}
 
 	/* Secondary Text Color */
@@ -437,8 +474,8 @@
 	blockquote,
 	.logged-in-as a:hover,
 	.comment-author a:hover {
-		border-color: {{ data.textcolor }}; /* Fallback for IE7 and IE8 */
-		border-color: {{ data.secondary_textcolor }};
+		border-color: {$css_vars['textcolor']}; /* Fallback for IE7 and IE8 */
+		border-color: {$css_vars['secondary_textcolor']};
 	}
 
 	/* Border Color */
@@ -445,8 +482,8 @@
 	hr,
 	.dropdown-toggle:hover,
 	.dropdown-toggle:focus {
-		background-color: {{ data.textcolor }}; /* Fallback for IE7 and IE8 */
-		background-color: {{ data.border_color }};
+		background-color: {$css_vars['textcolor']}; /* Fallback for IE7 and IE8 */
+		background-color: {$css_vars['border_color']};
 	}
 
 	/* Border Color */
@@ -481,8 +518,8 @@
 	.comment-list .trackback,
 	.comment-list .reply a,
 	.no-comments {
-		border-color: {{ data.textcolor }}; /* Fallback for IE7 and IE8 */
-		border-color: {{ data.border_color }};
+		border-color: {$css_vars['textcolor']}; /* Fallback for IE7 and IE8 */
+		border-color: {$css_vars['border_color']};
 	}
 
 	/* Border Focus Color */
@@ -489,59 +526,59 @@
 	a:focus,
 	button:focus,
 	input:focus {
-		outline-color: {{ data.textcolor }}; /* Fallback for IE7 and IE8 */
-		outline-color: {{ data.border_focus_color }};
+		outline-color: {$css_vars['textcolor']}; /* Fallback for IE7 and IE8 */
+		outline-color: {$css_vars['border_focus_color']};
 	}
 
 	input:focus,
 	textarea:focus {
-		border-color: {{ data.textcolor }}; /* Fallback for IE7 and IE8 */
-		border-color: {{ data.border_focus_color }};
+		border-color: {$css_vars['textcolor']}; /* Fallback for IE7 and IE8 */
+		border-color: {$css_vars['border_focus_color']};
 	}
 
 	/* Sidebar Link Color */
 	.secondary-toggle:before {
-		color: {{ data.sidebar_textcolor }};
+		color: {$css_vars['sidebar_textcolor']};
 	}
 
 	.site-title a,
 	.site-description {
-		color: {{ data.sidebar_textcolor }};
+		color: {$css_vars['sidebar_textcolor']};
 	}
 
 	/* Sidebar Text Color */
 	.site-title a:hover,
 	.site-title a:focus {
-		color: {{ data.secondary_sidebar_textcolor }};
+		color: {$css_vars['secondary_sidebar_textcolor']};
 	}
 
 	/* Sidebar Border Color */
 	.secondary-toggle {
-		border-color: {{ data.sidebar_textcolor }}; /* Fallback for IE7 and IE8 */
-		border-color: {{ data.sidebar_border_color }};
+		border-color: {$css_vars['sidebar_textcolor']}; /* Fallback for IE7 and IE8 */
+		border-color: {$css_vars['sidebar_border_color']};
 	}
 
 	/* Sidebar Border Focus Color */
 	.secondary-toggle:hover,
 	.secondary-toggle:focus {
-		border-color: {{ data.sidebar_textcolor }}; /* Fallback for IE7 and IE8 */
-		border-color: {{ data.sidebar_border_focus_color }};
+		border-color: {$css_vars['sidebar_textcolor']}; /* Fallback for IE7 and IE8 */
+		border-color: {$css_vars['sidebar_border_focus_color']};
 	}
 
 	.site-title a {
-		outline-color: {{ data.sidebar_textcolor }}; /* Fallback for IE7 and IE8 */
-		outline-color: {{ data.sidebar_border_focus_color }};
+		outline-color: {$css_vars['sidebar_textcolor']}; /* Fallback for IE7 and IE8 */
+		outline-color: {$css_vars['sidebar_border_focus_color']};
 	}
 
 	/* Meta Background Color */
 	.entry-footer {
-		background-color: {{ data.meta_box_background_color }};
+		background-color: {$css_vars['meta_box_background_color']};
 	}
 
 	@media screen and (min-width: 38.75em) {
 		/* Main Text Color */
 		.page-header {
-			border-color: {{ data.textcolor }};
+			border-color: {$css_vars['textcolor']};
 		}
 	}
 
@@ -560,7 +597,7 @@
 		.widget_calendar tbody a,
 		.widget_calendar tbody a:hover,
 		.widget_calendar tbody a:focus {
-			color: {{ data.header_background_color }};
+			color: {$css_vars['header_background_color']};
 		}
 
 		/* Sidebar Link Color */
@@ -569,7 +606,7 @@
 		.widget-title,
 		.widget blockquote cite,
 		.widget blockquote small {
-			color: {{ data.sidebar_textcolor }};
+			color: {$css_vars['sidebar_textcolor']};
 		}
 
 		.widget button,
@@ -577,11 +614,11 @@
 		.widget input[type="reset"],
 		.widget input[type="submit"],
 		.widget_calendar tbody a {
-			background-color: {{ data.sidebar_textcolor }};
+			background-color: {$css_vars['sidebar_textcolor']};
 		}
 
 		.textwidget a {
-			border-color: {{ data.sidebar_textcolor }};
+			border-color: {$css_vars['sidebar_textcolor']};
 		}
 
 		/* Sidebar Text Color */
@@ -592,7 +629,7 @@
 		.widget blockquote,
 		.widget .wp-caption-text,
 		.widget .gallery-caption {
-			color: {{ data.secondary_sidebar_textcolor }};
+			color: {$css_vars['secondary_sidebar_textcolor']};
 		}
 
 		.widget button:hover,
@@ -605,11 +642,11 @@
 		.widget input[type="submit"]:focus,
 		.widget_calendar tbody a:hover,
 		.widget_calendar tbody a:focus {
-			background-color: {{ data.secondary_sidebar_textcolor }};
+			background-color: {$css_vars['secondary_sidebar_textcolor']};
 		}
 
 		.widget blockquote {
-			border-color: {{ data.secondary_sidebar_textcolor }};
+			border-color: {$css_vars['secondary_sidebar_textcolor']};
 		}
 
 		/* Sidebar Border Color */
@@ -626,26 +663,26 @@
 		.widget_nav_menu .sub-menu,
 		.widget_pages .children,
 		.widget abbr[title] {
-			border-color: {{ data.sidebar_border_color }};
+			border-color: {$css_vars['sidebar_border_color']};
 		}
 
 		.dropdown-toggle:hover,
 		.dropdown-toggle:focus,
 		.widget hr {
-			background-color: {{ data.sidebar_border_color }};
+			background-color: {$css_vars['sidebar_border_color']};
 		}
 
 		.widget input:focus,
 		.widget textarea:focus {
-			border-color: {{ data.sidebar_border_focus_color }};
+			border-color: {$css_vars['sidebar_border_focus_color']};
 		}
 
 		.sidebar a:focus,
 		.dropdown-toggle:focus {
-			outline-color: {{ data.sidebar_border_focus_color }};
+			outline-color: {$css_vars['sidebar_border_focus_color']};
 		}
 	}
-	</script>
-	<?php
-}
-add_action( 'customize_controls_print_footer_scripts', 'twentyfifteen_color_scheme_css_template' );
+CSS;
+
+	return $css;
+}
\ No newline at end of file
