Index: wp-content/themes/twentyeleven/inc/theme-customizer.js
===================================================================
--- wp-content/themes/twentyeleven/inc/theme-customizer.js	(revision 0)
+++ wp-content/themes/twentyeleven/inc/theme-customizer.js	(revision 0)
@@ -0,0 +1,17 @@
+( function( $ ){
+	wp.customize( 'blogname', function( value ) {
+		value.bind( function( to ) {
+			$( '#site-title a' ).html( to );
+		} );
+	} );
+	wp.customize( 'blogdescription', function( value ) {
+		value.bind( function( to ) {
+			$( '#site-description' ).html( to );
+		} );
+	} );
+	wp.customize( 'header_textcolor', function( value ) {
+		value.bind( function( to ) {
+			$( '#site-title a, #site-description' ).css( 'color', to ? '#' + to : '' );
+		} );
+	} );
+} )( jQuery );
\ No newline at end of file
Index: wp-content/themes/twentyeleven/inc/theme-options.php
===================================================================
--- wp-content/themes/twentyeleven/inc/theme-options.php	(revision 20851)
+++ wp-content/themes/twentyeleven/inc/theme-options.php	(working copy)
@@ -447,4 +447,113 @@
 
 	return array_merge( $existing_classes, $classes );
 }
-add_filter( 'body_class', 'twentyeleven_layout_classes' );
\ No newline at end of file
+add_filter( 'body_class', 'twentyeleven_layout_classes' );
+
+/**
+ * Implements Twenty Eleven theme options into Theme Customizer
+ *
+ * @param $wp_customize Theme Customizer object
+ * @return void
+ *
+ * @since Twenty Eleven 1.3
+ */
+function twentyeleven_customize_register( $wp_customize ) {
+	if ( ! isset( $wp_customize ) )
+		return;
+
+	$wp_customize->get_setting( 'blogname' )->transport='postMessage';
+	$wp_customize->get_setting( 'blogdescription' )->transport='postMessage';
+	$wp_customize->get_setting( 'header_textcolor' )->transport='postMessage';
+
+	// Color Scheme
+	$wp_customize->add_section( 'twentyeleven_color_scheme', array(
+		'title'    => __( 'Color Scheme', 'twentyeleven' ),
+		'priority' => 35,
+	) );
+
+	$options  = twentyeleven_get_theme_options();
+	$defaults = twentyeleven_get_default_theme_options();
+
+	$wp_customize->add_setting( 'twentyeleven_theme_options[color_scheme]', array(
+		'default'    => $defaults['color_scheme'],
+		'type'       => 'option',
+		'capability' => 'edit_theme_options',
+	) );
+
+	$schemes = twentyeleven_color_schemes();
+	$choices = array();
+	foreach ( $schemes as $scheme ) {
+		$choices[$scheme['value']] = $scheme['label'];
+	}
+
+	$wp_customize->add_control( 'twentyeleven_color_scheme', array(
+		'label'    => __( 'Color Scheme', 'twentyeleven' ),
+		'section'  => 'twentyeleven_color_scheme',
+		'settings' => 'twentyeleven_theme_options[color_scheme]',
+		'type'     => 'radio',
+		'choices'  => $choices,
+	) );
+
+	// Link Color (added to Color Scheme section in Theme Customizer)
+	$wp_customize->add_setting( 'twentyeleven_theme_options[link_color]', array(
+		'default'           => twentyeleven_get_default_link_color( $options['color_scheme'] ),
+		'type'              => 'option',
+		'sanitize_callback' => 'twentyeleven_sanitize_hexcolor',
+		'capability'        => 'edit_theme_options',
+	) );
+
+	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
+		'label'    => __( 'Link Color', 'twentyeleven' ),
+		'section'  => 'twentyeleven_color_scheme',
+		'settings' => 'twentyeleven_theme_options[link_color]',
+	) ) );
+
+	// Default Layout
+	$wp_customize->add_section( 'twentyeleven_layout', array(
+		'title'    => __( 'Default Layout', 'twentyeleven' ),
+		'priority' => 40,
+	) );
+
+	$wp_customize->add_setting( 'twentyeleven_theme_options[theme_layout]', array(
+		'type'              => 'option',
+		'default'           => $defaults['theme_layout'],
+		'sanitize_callback' => 'sanitize_key',
+	) );
+
+	$layouts = twentyeleven_layouts();
+	$choices = array();
+	foreach ( $layouts as $layout ) {
+		$choices[$layout['value']] = $layout['label'];
+	}
+
+	$wp_customize->add_control( 'twentyeleven_theme_options[theme_layout]', array(
+		'section'    => 'twentyeleven_layout',
+		'type'       => 'radio',
+		'choices'    => $choices,
+	) );
+
+	if ( $wp_customize->is_preview() )
+		add_action( 'wp_enqueue_scripts', 'twentyeleven_customize_preview_js' );
+}
+add_action( 'customize_register', 'twentyeleven_customize_register' );
+
+/**
+ * Sanitize user input hex color value
+ *
+ * @uses sanitize_hexcolor()
+ * @param $color string
+ * @return string sanitized with prefixed # character
+ */
+function twentyeleven_sanitize_hexcolor( $color ) {
+	return '#' . sanitize_hexcolor( $color );
+}
+
+/**
+ * Bind JS handlers to make Theme Customizer preview reload changes asynchronously.
+ * Used with blogname, blogdescription, and header_textcolor -- see twentyeleven_customize_register().
+ *
+ * @since Twenty Eleven 1.3
+ */
+function twentyeleven_customize_preview_js() {
+	wp_enqueue_script( 'twentyeleven-customizer', get_template_directory_uri() . '/inc/theme-customizer.js', array( 'jquery' ), '20120523', true );
+}
\ No newline at end of file
