Index: wp-content/themes/twentyfourteen/content-featured-post.php
===================================================================
--- wp-content/themes/twentyfourteen/content-featured-post.php	(revision 26022)
+++ wp-content/themes/twentyfourteen/content-featured-post.php	(working copy)
@@ -12,16 +12,16 @@
 	<a class="post-thumbnail" href="<?php the_permalink(); ?>" rel="<?php the_ID(); ?>">
 	<?php
 		if ( has_post_thumbnail() ) :
-			if ( 'grid' == get_theme_mod( 'featured_content_layout' ) )
-				the_post_thumbnail( 'post-thumbnail-grid' );
-			else
+			if ( get_theme_mod( 'featured_content_layout' ) )
 				the_post_thumbnail( 'post-thumbnail-slider' );
+			else
+				the_post_thumbnail( 'post-thumbnail-grid' );
 		endif;
 	?>
 	</a>
 
 	<header class="entry-header">
-		<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) &&twentyfourteen_categorized_blog() ) : ?>
+		<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?>
 		<div class="entry-meta">
 			<span class="cat-links"><?php echo get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentyfourteen' ) ); ?></span>
 		</div><!-- .entry-meta -->
Index: wp-content/themes/twentyfourteen/functions.php
===================================================================
--- wp-content/themes/twentyfourteen/functions.php	(revision 26022)
+++ wp-content/themes/twentyfourteen/functions.php	(working copy)
@@ -238,7 +238,7 @@
 	if ( is_active_sidebar( 'sidebar-3' ) )
 		wp_enqueue_script( 'jquery-masonry' );
 
-	if ( 'slider' == get_theme_mod( 'featured_content_layout' ) )
+	if ( is_front_page() && get_theme_mod( 'featured_content_layout' ) )
 		wp_enqueue_script( 'twentyfourteen-slider', get_template_directory_uri() . '/js/slider.js', array( 'jquery' ), '20131028', true );
 
 	wp_enqueue_script( 'twentyfourteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20131102', true );
@@ -396,7 +396,7 @@
 	if ( is_singular() )
 		$classes[] = 'singular';
 
-	if ( is_front_page() && 'slider' == get_theme_mod( 'featured_content_layout' ) )
+	if ( is_front_page() && get_theme_mod( 'featured_content_layout' ) )
 		$classes[] = 'slider';
 	elseif ( is_front_page() )
 		$classes[] = 'grid';
Index: wp-content/themes/twentyfourteen/inc/customizer.php
===================================================================
--- wp-content/themes/twentyfourteen/inc/customizer.php	(revision 26022)
+++ wp-content/themes/twentyfourteen/inc/customizer.php	(working copy)
@@ -28,33 +28,26 @@
 	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'accent_color', array(
 		'label'    => __( 'Accent Color', 'twentyfourteen' ),
 		'section'  => 'colors',
-		'settings' => 'accent_color',
 	) ) );
 
 	add_filter( 'theme_mod_accent_mid',  'twentyfourteen_accent_mid'  );
 	add_filter( 'theme_mod_accent_light', 'twentyfourteen_accent_light' );
 
-	// Add the featured content section.
+	// Add the featured content section in case it's not already there.
 	$wp_customize->add_section( 'featured_content', array(
 		'title'    => __( 'Featured Content', 'twentyfourteen' ),
-		'priority' => 120,
+		'priority' => 130,
 	) );
 
 	// Add the featured content layout setting and control.
 	$wp_customize->add_setting( 'featured_content_layout', array(
-		'default'    => 'grid',
-		'type'       => 'theme_mod',
-		'capability' => 'edit_theme_options',
+		'default' => false,
 	) );
 
 	$wp_customize->add_control( 'featured_content_layout', array(
-		'label'   => __( 'Layout', 'twentyfourteen' ),
+		'label'   => __( 'Display featured content in a nifty slider.', 'twentyfourteen' ),
 		'section' => 'featured_content',
-		'type'    => 'select',
-		'choices' => array(
-			'grid'   => __( 'Grid', 'twentyfourteen' ),
-			'slider' => __( 'Slider', 'twentyfourteen' ),
-		),
+		'type'    => 'checkbox',
 	) );
 }
 add_action( 'customize_register', 'twentyfourteen_customize_register' );
Index: wp-content/themes/twentyfourteen/inc/featured-content.php
===================================================================
--- wp-content/themes/twentyfourteen/inc/featured-content.php	(revision 26022)
+++ wp-content/themes/twentyfourteen/inc/featured-content.php	(working copy)
@@ -68,15 +68,17 @@
 		if ( isset( $theme_support[0]['max_posts'] ) )
 			self::$max_posts = absint( $theme_support[0]['max_posts'] );
 
-		add_filter( $filter,                 array( __CLASS__, 'get_featured_posts' ) );
-		add_action( 'admin_init',            array( __CLASS__, 'register_setting' ) );
-		add_action( 'save_post',             array( __CLASS__, 'delete_transient' ) );
-		add_action( 'delete_post_tag',       array( __CLASS__, 'delete_post_tag' ) );
-		add_action( 'pre_get_posts',         array( __CLASS__, 'pre_get_posts' ) );
+		add_filter( $filter,                              array( __CLASS__, 'get_featured_posts' )    );
+		add_action( 'customize_register',                 array( __CLASS__, 'customize_register' ), 9 );
+		add_action( 'admin_init',                         array( __CLASS__, 'register_setting'   )    );
+		add_action( 'save_post',                          array( __CLASS__, 'delete_transient'   )    );
+		add_action( 'delete_post_tag',                    array( __CLASS__, 'delete_post_tag'    )    );
+		add_action( 'customize_controls_enqueue_scripts', array( __CLASS__, 'enqueue_scripts'    )    );
+		add_action( 'pre_get_posts',                      array( __CLASS__, 'pre_get_posts'      )    );
 
 		// Hide "featured" tag from the front-end.
 		if ( self::get_setting( 'hide-tag' ) ) {
-			add_filter( 'get_terms',     array( __CLASS__, 'hide_featured_term' ), 10, 2 );
+			add_filter( 'get_terms',     array( __CLASS__, 'hide_featured_term'     ), 10, 2 );
 			add_filter( 'get_the_terms', array( __CLASS__, 'hide_the_featured_term' ), 10, 3 );
 		}
 	}
@@ -86,22 +88,18 @@
 	 *
 	 * @uses Featured_Content::get_featured_post_ids()
 	 *
-	 * @return array|bool
+	 * @return array
 	 */
 	public static function get_featured_posts() {
 		$post_ids = self::get_featured_post_ids();
 
-		// User has disabled Featured Content.
-		if ( false === $post_ids )
-			return false;
-
 		// No need to query if there is are no featured posts.
 		if ( empty( $post_ids ) )
 			return array();
 
 		$featured_posts = get_posts( array(
 			'include'        => $post_ids,
-			'posts_per_page' => count( $post_ids )
+			'posts_per_page' => count( $post_ids ),
 		) );
 
 		return $featured_posts;
@@ -115,15 +113,20 @@
 	 *
 	 * Sets the "featured_content_ids" transient.
 	 *
-	 * @return array|false Array of post IDs. false if user has disabled this feature.
+	 * @return array Array of post IDs
 	 */
 	public static function get_featured_post_ids() {
 		$settings = self::get_setting();
 
 		// Return false if the user has disabled this feature.
 		$tag = $settings['tag-id'];
-		if ( empty( $tag ) )
-			return false;
+		if ( empty( $tag ) ) {
+			$term = get_term_by( 'name', 'featured', 'post_tag' );
+			if ( $term )
+				$tag = $term->term_id;
+			else
+				return self::get_sticky_posts();
+		}
 
 		// Return array of cached results if they exist.
 		$featured_ids = get_transient( 'featured_content_ids' );
@@ -142,9 +145,9 @@
 			),
 		) );
 
-		// Return empty array if no Featured Content exists.
+		// Return array with sticky posts if no Featured Content exists.
 		if ( ! $featured )
-			return array();
+			return self::get_sticky_posts();
 
 		// Ensure correct format before save/return.
 		$featured_ids = wp_list_pluck( (array) $featured, 'ID' );
@@ -156,6 +159,16 @@
 	}
 
 	/**
+	 * Returns an array with IDs of posts maked as sticky.
+	 *
+	 * @return array
+	 */
+	public static function get_sticky_posts() {
+		$settings = self::get_setting();
+		return array_slice( get_option( 'sticky_posts', array() ), 0, $settings['quantity'] );
+	}
+
+	/**
 	 * Delete transient
 	 *
 	 * Hooks in the "save_post" action.
@@ -221,10 +234,7 @@
 	public static function delete_post_tag( $tag_id ) {
 		$settings = self::get_setting();
 
-		if ( empty( $settings['tag-id'] ) )
-			return;
-
-		if ( $tag_id != $settings['tag-id'] )
+		if ( empty( $settings['tag-id'] ) || $tag_id != $settings['tag-id'] )
 			return;
 
 		$settings['tag-id'] = 0;
@@ -259,7 +269,7 @@
 
 		foreach( $terms as $order => $term ) {
 			if ( self::get_setting( 'tag-id' ) == $term->term_id && 'post_tag' == $term->taxonomy )
-				unset( $terms[$order] );
+				unset( $terms[ $order ] );
 		}
 
 		return $terms;
@@ -284,7 +294,7 @@
 			return $terms;
 
 		// Make sure we are in the correct taxonomy.
-		if ( ! 'post_tag' == $taxonomy )
+		if ( 'post_tag' != $taxonomy )
 			return $terms;
 
 		// No terms? Return early!
@@ -293,7 +303,7 @@
 
 		foreach( $terms as $order => $term ) {
 			if ( self::get_setting( 'tag-id' ) == $term->term_id )
-				unset( $terms[$term->term_id] );
+				unset( $terms[ $term->term_id ] );
 		}
 
 		return $terms;
@@ -308,46 +318,67 @@
 	 * @return void
 	 */
 	public static function register_setting() {
-		add_settings_field( 'featured-content', __( 'Featured content', 'twentyfourteen' ), array( __CLASS__, 'render_form' ), 'reading' );
-		register_setting( 'reading', 'featured-content', array( __CLASS__, 'validate_settings' ) );
+		register_setting( 'featured-content', 'featured-content', array( __CLASS__, 'validate_settings' ) );
 	}
 
 	/**
-	 * Render the form fields for Settings -> Reading screen
+	 * Add settings to the Customizer.
 	 *
-	 * @return void
+	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
 	 */
-	public static function render_form() {
-		$settings = self::get_setting();
+	public static function customize_register( $wp_customize ) {
+		$wp_customize->add_section( 'featured_content', array(
+			'title'          => __( 'Featured Content', 'twentyfourteen' ),
+			'priority'       => 130,
+			'theme_supports' => 'featured-content',
+		) );
 
-		$tag_name = '';
-		if ( ! empty( $settings['tag-id'] ) ) {
-			$tag = get_term( $settings['tag-id'], 'post_tag' );
-			if ( ! is_wp_error( $tag ) && isset( $tag->name ) )
-				$tag_name = $tag->name;
-		}
+		// Add Featured Content settings.
+		$wp_customize->add_setting( 'featured-content[tag-name]', array(
+			'default' => 'featured',
+			'type'    => 'option',
+		) );
+		$wp_customize->add_setting( 'featured-content[hide-tag]', array(
+			'default' => true,
+			'type'    => 'option',
+		) );
+		$wp_customize->add_setting( 'featured-content[tag-id]', array(
+			'default' => 0,
+			'type'    => 'option',
+		) );
 
-		wp_enqueue_script( 'twentyfourteen-admin', get_template_directory_uri() . '/js/featured-content-admin.js', array( 'jquery', 'suggest' ), '20131016', true );
-		?>
-		<div id="featured-content-ui">
-			<p>
-				<label for="featured-content-tag-name"><?php echo _e( 'Tag name:', 'twentyfourteen' ); ?></label>
-				<input type="text" id="featured-content-tag-name" name="featured-content[tag-name]" value="<?php echo esc_attr( $tag_name ); ?>">
-				<input type="hidden" id="featured-content-tag-id" name="featured-content[tag-id]" value="<?php echo esc_attr( $settings['tag-id'] ); ?>">
-			</p>
-			<p>
-				<label for="featured-content-quantity"><?php _e( 'Number of posts:', 'twentyfourteen' ); ?></label>
-				<input class="small-text" type="number" step="1" min="1" max="<?php echo esc_attr( self::$max_posts ); ?>" id="featured-content-quantity" name="featured-content[quantity]" value="<?php echo esc_attr( $settings['quantity'] ); ?>">
-			</p>
-			<p>
-				<input type="checkbox" id="featured-content-hide-tag" name="featured-content[hide-tag]" <?php checked( $settings['hide-tag'], 1 ); ?>>
-				<label for="featured-content-hide-tag"><?php _e( 'Hide tag from displaying in post meta and tag clouds.', 'twentyfourteen' ); ?></label>
-			</p>
-		</div>
-		<?php
+		// Add Featured Content controls.
+		$wp_customize->add_control( 'featured-content[tag-name]', array(
+			'label'    => __( 'Tag name', 'twentyfourteen' ),
+			'section'  => 'featured_content',
+			'priority' => 20,
+		) );
+		$wp_customize->add_control( 'featured-content[hide-tag]', array(
+			'label'    => __( 'Hide tag from displaying in post meta and tag clouds.', 'twentyfourteen' ),
+			'section'  => 'featured_content',
+			'type'     => 'checkbox',
+			'priority' => 30,
+		) );
+		$wp_customize->add_control( new Featured_Content_Customize_Hidden_Control( $wp_customize, 'featured-content[tag-id]', array(
+			'section'  => 'featured_content',
+			'priority' => 999,
+		) ) );
 	}
 
 	/**
+	 * Enqueue the tag suggestion script.
+	 *
+	 * @since Twenty Fourteen 1.0
+	 */
+	public static function enqueue_scripts() {
+		wp_enqueue_script( 'featured-content-suggest', get_template_directory_uri() . '/js/featured-content-admin.js', array( 'jquery', 'suggest' ), '20131022', true );
+		wp_localize_script( 'featured-content-suggest', 'featuredContent', array(
+			'ajaxurl' => admin_url( 'admin-ajax.php' ),
+		) );
+	}
+
+
+	/**
 	 * Get settings
 	 *
 	 * Get all settings recognized by this module. This function will return
@@ -357,7 +388,7 @@
 	 * In the event that you only require one setting, you may pass its name
 	 * as the first parameter to the function and only that value will be returned.
 	 *
-	 * @uses Featured_Content::self::sanitize_quantity()
+	 * @uses Featured_Content::sanitize_quantity()
 	 *
 	 * @param string $key The key of a recognized setting.
 	 * @return mixed Array of all settings by default. A single value if passed as first parameter.
@@ -375,12 +406,8 @@
 		$options = array_intersect_key( $options, $defaults );
 		$options['quantity'] = self::sanitize_quantity( $options['quantity'] );
 
-		if ( 'all' != $key ) {
-			if ( isset( $options[$key] ) )
-				return $options[$key];
-			else
-				return false;
-		}
+		if ( 'all' != $key )
+			return isset( $options[ $key ] ) ? $options[ $key ] : false;
 
 		return $options;
 	}
@@ -405,20 +432,25 @@
 		if ( isset( $input['tag-id'] ) )
 			$output['tag-id'] = absint( $input['tag-id'] );
 
-		if ( isset( $input['tag-name'] ) && ! empty( $input['tag-name'] ) ) {
-			$new_tag = wp_create_tag( $input['tag-name'] );
-			if ( ! is_wp_error( $new_tag ) && isset( $new_tag['term_id'] ) )
-				$tag = get_term( $new_tag['term_id'], 'post_tag' );
-			if ( isset( $tag->term_id ) )
-				$output['tag-id'] = $tag->term_id;
-		} else {
-			unset( $output['tag-id'] );
+		if ( isset( $input['tag-name'] ) ) {
+			if ( empty( $input['tag-name'] ) ) {
+				$output['tag-id'] = 0;
+			} else {
+				$new_tag = wp_create_tag( $input['tag-name'] );
+				if ( ! is_wp_error( $new_tag ) && isset( $new_tag['term_id'] ) )
+					$tag = get_term( $new_tag['term_id'], 'post_tag' );
+				if ( isset( $tag->term_id ) )
+					$output['tag-id'] = $tag->term_id;
+				if ( is_int( $new_tag ) )
+					$output['tag-id'] = $new_tag;
+				$output['tag-name'] = get_term( $output['tag-id'], 'post_tag' )->name;
+			}
 		}
 
 		if ( isset( $input['quantity'] ) )
 			$output['quantity'] = self::sanitize_quantity( $input['quantity'] );
 
-		$output['hide-tag'] = ( isset( $input['hide-tag'] ) ) ? 1 : 0;
+		$output['hide-tag'] = isset( $input['hide-tag'] ) && $input['hide-tag'] ? 1 : 0;
 
 		self::delete_transient();
 
@@ -445,4 +477,14 @@
 	}
 }
 
+if ( class_exists( 'WP_Customize_Control' ) ) {
+	class Featured_Content_Customize_Hidden_Control extends WP_Customize_Control {
+		public function render_content() {
+			?>
+			<input type="hidden" <?php $this->link(); ?> value="<?php echo esc_attr( $this->value() ); ?>">
+			<?php
+		}
+	}
+}
+
 Featured_Content::setup();
Index: wp-content/themes/twentyfourteen/js/featured-content-admin.js
===================================================================
--- wp-content/themes/twentyfourteen/js/featured-content-admin.js	(revision 26022)
+++ wp-content/themes/twentyfourteen/js/featured-content-admin.js	(working copy)
@@ -1,3 +1,3 @@
-jQuery( document ).ready( function( $ ) {
-	$( '#featured-content-tag-name' ).suggest( ajaxurl + '?action=ajax-tag-search&tax=post_tag', { delay: 500, minchars: 2 } );
-} );
\ No newline at end of file
+jQuery( function( $ ) {
+	$( '#customize-control-featured-content-tag-name input' ).suggest( featuredContent.ajaxurl + '?action=ajax-tag-search&tax=post_tag', { delay: 500, minchars: 2 } );
+} );
