diff --git a/src/controls/doc/qtquickcontrols.qdocconf b/src/controls/doc/qtquickcontrols.qdocconf
index 7cf1ee54e1853983a6ec19cd566850a76a7ae436..ab321a747c2ddf93031507c8eb787e4d53948d0d 100644
--- a/src/controls/doc/qtquickcontrols.qdocconf
+++ b/src/controls/doc/qtquickcontrols.qdocconf
@@ -18,18 +18,13 @@ qhp.QtQuickControls.filterAttributes    = qtcontrols $QT_VERSION qtrefdoc
 qhp.QtQuickControls.customFilters.Qt.name = QtQuickControls $QT_VERSION
 qhp.QtQuickControls.customFilters.Qt.filterAttributes = qtquickcontrols $QT_VERSION
 
-qhp.QtQuickControls.subprojects = qtquickcontrolsqmltypes styleqmltypes
+qhp.QtQuickControls.subprojects = qtquickcontrolsqmltypes
 qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.title = QML Types
 qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.indexTitle = Qt Quick Controls QML Types
 qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.selectors = class fake:qmlclass
 qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.sortPages = true
 
-qhp.QtQuickControls.subprojects.styleqmltypes.title = Styles QML Types
-qhp.QtQuickControls.subprojects.styleqmltypes.indexTitle = Qt Quick Controls Styles QML Types
-qhp.QtQuickControls.subprojects.styleqmltypes.selectors = class fake:qmlclass
-qhp.QtQuickControls.subprojects.styleqmltypes.sortPages = true
-
-depends = qtqml qtquick qtwidgets qtdoc qtquicklayouts
+depends = qtqml qtquick qtwidgets qtdoc qtquicklayouts qtquickcontrolsstyles
 
 exampledirs += ../../../examples/quick/controls
 
@@ -37,21 +32,15 @@ exampledirs += ../../../examples/quick/controls
 examplesinstallpath = quick/controls
 
 headerdirs += ../
-headerdirs += ../ ../../styles/Base
 
 sourcedirs += ../
-sourcedirs += ../ ../../styles/Base
 
-sources += ../../private/qstyleitem.cpp \
-           ../../private/AbstractCheckable.qml \
+sources += ../../private/AbstractCheckable.qml \
            ../../private/BasicButton.qml \
            ../../private/FocusFrame.qml \
            ../../private/ModalPopupBehavior.qml \
            ../../private/ScrollBar.qml \
            ../../private/TabBar.qml \
            ../../private/Control.qml \
-           ../../private/Style.qml \
-           ../../private/qquickabstractstyle.h \
-           ../../private/qquickabstractstyle.cpp
 
 imagedirs += images
diff --git a/src/controls/doc/src/qtquickcontrols-index.qdoc b/src/controls/doc/src/qtquickcontrols-index.qdoc
index 658d117ba79ad401352b0678b18da9df8e0a4f73..0272755f8efea754d4289ea73a110770f4999f42 100644
--- a/src/controls/doc/src/qtquickcontrols-index.qdoc
+++ b/src/controls/doc/src/qtquickcontrols-index.qdoc
@@ -84,7 +84,12 @@
 
     \section2 Styles
     \list
-     \li \l {Qt Quick Controls Styles QML Types}
+     \li \l {Qt Quick Controls Styles}
+    \endlist
+
+    \section2 Styles
+    \list
+     \li \l {Qt Quick Layouts}
     \endlist
 
 */
diff --git a/src/styles/Base/ButtonStyle.qml b/src/styles/Base/ButtonStyle.qml
index b1fabb866ee8ef5b2247f82ff29ff86b849be00e..3144a1a686017c4ea35b688660955a7662dc4a5d 100644
--- a/src/styles/Base/ButtonStyle.qml
+++ b/src/styles/Base/ButtonStyle.qml
@@ -45,6 +45,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype ButtonStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for Button
 
     You can create a custom button by replacing the "background" delegate
diff --git a/src/styles/Base/CheckBoxStyle.qml b/src/styles/Base/CheckBoxStyle.qml
index 65b5450b294530a42880c0556a04d26f1b07438b..aa24a94a4ecafd194eb3c9373e49125df15d03fa 100644
--- a/src/styles/Base/CheckBoxStyle.qml
+++ b/src/styles/Base/CheckBoxStyle.qml
@@ -45,13 +45,14 @@ import QtQuick.Controls.Private 1.0
     \qmltype CheckBoxStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for CheckBox
 
     Example:
     \qml
     CheckBox {
         text: "Check Box"
-        style: CheckBoxStyle{
+        style: CheckBoxStyle {
             indicator: Rectangle {
                     implicitWidth: 16
                     implicitHeight: 16
@@ -66,7 +67,6 @@ import QtQuick.Controls.Private 1.0
                         anchors.margins: 4
                         anchors.fill: parent
                     }
-                }
             }
         }
     }
diff --git a/src/styles/Base/ComboBoxStyle.qml b/src/styles/Base/ComboBoxStyle.qml
index 982ce00efc7d1c258213e6c5778f5e3a55a61a13..241f3550338dc72b453568a453f3da8732e76011 100644
--- a/src/styles/Base/ComboBoxStyle.qml
+++ b/src/styles/Base/ComboBoxStyle.qml
@@ -46,6 +46,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype ComboBoxStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for ComboBox
 */
 
diff --git a/src/styles/Base/GroupBoxStyle.qml b/src/styles/Base/GroupBoxStyle.qml
index db0c3bf6d3a4cb631833e324fedb4aa85c97d868..1c3acadab6089dc1f0081d702e13499e55766c36 100644
--- a/src/styles/Base/GroupBoxStyle.qml
+++ b/src/styles/Base/GroupBoxStyle.qml
@@ -45,6 +45,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype GroupBoxStyle
     \internal
     \inqmlmodule QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \since QtQuick.Controls.Styles 1.0
 */
 Style {
diff --git a/src/styles/Base/MenuBarStyle.qml b/src/styles/Base/MenuBarStyle.qml
index e5b91be61069c29002012430af0a46d33cfa51e4..4effd6eecf3bb054b9e6018cf79307fa3c904869 100644
--- a/src/styles/Base/MenuBarStyle.qml
+++ b/src/styles/Base/MenuBarStyle.qml
@@ -45,6 +45,7 @@ import "../../Private/style.js" as StyleHelpers
 /*!
     \qmltype MenuBarStyle
     \internal
+    \ingroup applicationwindowstyling
     \inqmlmodule QtQuick.Controls.Styles 1.0
 */
 
diff --git a/src/styles/Base/MenuStyle.qml b/src/styles/Base/MenuStyle.qml
index 69dffc7325582af1e63c4609b0a5e325afea6852..eab18f7df8ed468c329e754d1162ff9b19d79d30 100644
--- a/src/styles/Base/MenuStyle.qml
+++ b/src/styles/Base/MenuStyle.qml
@@ -43,6 +43,13 @@ import QtQuick.Controls 1.0
 import QtQuick.Controls.Private 1.0
 import "../../Private/style.js" as StyleHelpers
 
+/*!
+    \qmltype MenuStyle
+    \internal
+    \ingroup menusstyling
+    \inqmlmodule QtQuick.Controls.Styles 1.0
+*/
+
 Style {
     id: styleRoot
 
diff --git a/src/styles/Base/ProgressBarStyle.qml b/src/styles/Base/ProgressBarStyle.qml
index eab286f09d50dd89b824c4cfeb952a051247bdd2..ada97c101d18d10ad21f06f59d65b4e09de3a305 100644
--- a/src/styles/Base/ProgressBarStyle.qml
+++ b/src/styles/Base/ProgressBarStyle.qml
@@ -47,6 +47,7 @@ import QtQuick.Controls.Private 1.0
 
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for ProgressBar
 
     Example:
@@ -94,6 +95,9 @@ Style {
     */
     padding { top: 0 ; left: 0 ; right: 0 ; bottom: 0 }
 
+    /*! \qmlproperty Component ProgressBarStyle::progress
+        The progress component for this style.
+    */
     property Component progress: Rectangle {
         property color progressColor: "#49d"
         anchors.fill: parent
@@ -129,6 +133,9 @@ Style {
         }
     }
 
+    /*! \qmlproperty Component ProgressBarStyle::background
+        The background component for this style.
+    */
     property Component background: Item {
         implicitWidth: 200
         implicitHeight: 24
@@ -145,6 +152,9 @@ Style {
         }
     }
 
+    /*! \qmlproperty Component ProgressBarStyle::panel
+        The panel component for this style.
+    */
     property Component panel: Item{
         property bool horizontal: control.orientation == Qt.Horizontal
         implicitWidth: horizontal ? backgroundLoader.implicitWidth : backgroundLoader.implicitHeight
diff --git a/src/styles/Base/RadioButtonStyle.qml b/src/styles/Base/RadioButtonStyle.qml
index d87f57c7c9a2d2b5347a2490cc60dabb08645a51..b42ac1bdac5cf01702899705a5c3b6e7e94ed907 100644
--- a/src/styles/Base/RadioButtonStyle.qml
+++ b/src/styles/Base/RadioButtonStyle.qml
@@ -45,13 +45,14 @@ import QtQuick.Controls.Private 1.0
     \qmltype RadioButtonStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for RadioButton
 
     Example:
     \qml
     RadioButton {
         text: "Radio Button"
-        style: RadioButtonStyle{
+        style: RadioButtonStyle {
             indicator: Rectangle {
                     implicitWidth: 16
                     implicitHeight: 16
@@ -65,10 +66,9 @@ import QtQuick.Controls.Private 1.0
                         radius: 9
                         anchors.margins: 4
                     }
-                }
             }
         }
-    }
+     }
     \endqml
 */
 
diff --git a/src/styles/Base/ScrollViewStyle.qml b/src/styles/Base/ScrollViewStyle.qml
index 3d1f8d26d2656878c4daa3ec49d4472ed8b16881..ed7dd171fd1031690dad298cee795cd2ce617660 100644
--- a/src/styles/Base/ScrollViewStyle.qml
+++ b/src/styles/Base/ScrollViewStyle.qml
@@ -45,6 +45,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype ScrollViewStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup viewsstyling
     \brief Provides custom styling for ScrollView
 */
 Style {
diff --git a/src/styles/Base/SliderStyle.qml b/src/styles/Base/SliderStyle.qml
index a17de0a1fda88de976a3c3c87bfd44907b63468c..e21936a2a8c6c52fd60f4e1021746d3416e416a6 100644
--- a/src/styles/Base/SliderStyle.qml
+++ b/src/styles/Base/SliderStyle.qml
@@ -45,6 +45,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype SliderStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for Slider
 
     The slider style allows you to create a custom appearance for
diff --git a/src/styles/Base/SpinBoxStyle.qml b/src/styles/Base/SpinBoxStyle.qml
index c239483e2feac9a1c65a1a148839495803d7d6dd..931db588bc685a46804295ee7ac3c0aee231b235 100644
--- a/src/styles/Base/SpinBoxStyle.qml
+++ b/src/styles/Base/SpinBoxStyle.qml
@@ -46,6 +46,7 @@ import QtQuick.Controls.Private 1.0
     \internal
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for SpinBox
 */
 
diff --git a/src/styles/Base/StatusBarStyle.qml b/src/styles/Base/StatusBarStyle.qml
index e8abe19ba273d37f199e2aa8b7283d4fd5cf6788..f8ffffd900ed41e1fb0de56712bb30048a538066 100644
--- a/src/styles/Base/StatusBarStyle.qml
+++ b/src/styles/Base/StatusBarStyle.qml
@@ -44,6 +44,7 @@ import QtQuick.Controls.Private 1.0
 /*!
     \qmltype StatusBarStyle
     \internal
+    \ingroup applicationwindowstyling
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
 */
diff --git a/src/styles/Base/TabViewStyle.qml b/src/styles/Base/TabViewStyle.qml
index 04e34d4c92fa8b9dfd3a211e95bb745afaf8416e..f5cd1047bf95371da275a66d4f96c40eb033c02e 100644
--- a/src/styles/Base/TabViewStyle.qml
+++ b/src/styles/Base/TabViewStyle.qml
@@ -45,6 +45,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype TabViewStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup viewsstyling
     \brief Provides custom styling for TabView
 
 \qml
diff --git a/src/styles/Base/TableViewStyle.qml b/src/styles/Base/TableViewStyle.qml
index a7b3ba491921636cd788cef95975b1d3ce3a314a..1a0605dc1438bb99eeda3af7db63c97b81a9b1b0 100644
--- a/src/styles/Base/TableViewStyle.qml
+++ b/src/styles/Base/TableViewStyle.qml
@@ -45,6 +45,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype TableViewStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup viewsstyling
     \brief Provides custom styling for TableView
 
     Note that this class derives from \l ScrollViewStyle
@@ -73,7 +74,9 @@ ScrollViewStyle {
 
     padding.top: control.headerVisible ? 0 : 1
 
-    /* Delegate for header. This delegate is described in \l TableView::headerDelegate */
+    /*! \qmlproperty Component TableViewStyle::headerDelegate
+    Delegate for header. This delegate is described in \l {TableView::headerDelegate}
+    */
     property Component headerDelegate: BorderImage {
         source: "images/header.png"
         border.left: 4
@@ -97,7 +100,9 @@ ScrollViewStyle {
         }
     }
 
-    /* Delegate for header. This delegate is described in \l TableView::rowDelegate */
+    /*! \qmlproperty Component TableViewStyle::rowDelegate
+    Delegate for header. This delegate is described in \l {TableView::rowDelegate}
+    */
     property Component rowDelegate: Rectangle {
         height: 20
         property color selectedColor: styleData.hasActiveFocus ? "#38d" : "#999"
@@ -126,7 +131,9 @@ ScrollViewStyle {
         }
     }
 
-    /* Delegate for header. This delegate is described in \l TableView::itemDelegate */
+    /*! \qmlproperty Component TableViewStyle::rowDelegate
+    Delegate for item. This delegate is described in \l {TableView::itemDelegate}
+    */
     property Component itemDelegate: Item {
         height: Math.max(16, label.implicitHeight)
         property int implicitWidth: sizehint.paintedWidth + 20
diff --git a/src/styles/Base/TextFieldStyle.qml b/src/styles/Base/TextFieldStyle.qml
index 7b0ba6b2ad9930986c27391213e206106fc2881e..16d0fe94cdee083e47159e09c3009c43a642ddb7 100644
--- a/src/styles/Base/TextFieldStyle.qml
+++ b/src/styles/Base/TextFieldStyle.qml
@@ -45,6 +45,7 @@ import QtQuick.Controls.Private 1.0
     \qmltype TextFieldStyle
     \inqmlmodule QtQuick.Controls.Styles 1.0
     \since QtQuick.Controls.Styles 1.0
+    \ingroup controlsstyling
     \brief Provides custom styling for TextField.
 
     Example:
diff --git a/src/styles/Base/ToolBarStyle.qml b/src/styles/Base/ToolBarStyle.qml
index 835f821965b4ea08dd37d9860126caec036e36c3..a5c03e7a1b7d146ea4566517466a65efa8851a4b 100644
--- a/src/styles/Base/ToolBarStyle.qml
+++ b/src/styles/Base/ToolBarStyle.qml
@@ -44,6 +44,7 @@ import QtQuick.Controls.Private 1.0
 /*!
     \qmltype ToolBarStyle
     \internal
+    \ingroup applicationwindowstyling
     \inqmlmodule QtQuick.Controls.Styles 1.0
 */
 Style {
diff --git a/src/styles/Base/ToolButtonStyle.qml b/src/styles/Base/ToolButtonStyle.qml
index e8d05d6ca9412cc22f70719c0676cd3a58da1dba..0ead07504cd39be60fdef2b68be93e0d6af71dbb 100644
--- a/src/styles/Base/ToolButtonStyle.qml
+++ b/src/styles/Base/ToolButtonStyle.qml
@@ -44,6 +44,7 @@ import QtQuick.Controls.Private 1.0
 /*!
     \qmltype ToolButtonStyle
     \internal
+    \ingroup controlsstyling
     \inqmlmodule QtQuick.Controls.Styles 1.0
 */
 Style {
diff --git a/src/styles/doc/qtquickcontrolsstyles.qdocconf b/src/styles/doc/qtquickcontrolsstyles.qdocconf
new file mode 100644
index 0000000000000000000000000000000000000000..e559dcc4881ed41577dbe5794466b2d62d88b32b
--- /dev/null
+++ b/src/styles/doc/qtquickcontrolsstyles.qdocconf
@@ -0,0 +1,43 @@
+include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+
+project                 = QtQuickControlsStyles
+description             = Qt Quick Controls Styles Reference Documentation
+url                     = http://qt-project.org/doc/qt-$QT_VER/qtquickcontrolsstyles/
+version                 = $QT_VERSION
+
+qhp.projects            = QtQuickControlsStyles
+
+qhp.QtQuickControlsStyles.file          = qtquickcontrolsstyles.qhp
+qhp.QtQuickControlsStyles.namespace     = org.qt-project.qtquickcontrolsstyles.$QT_VERSION_TAG
+qhp.QtQuickControlsStyles.virtualFolder = qtquickcontrolsstyles
+qhp.QtQuickControlsStyles.indexTitle    = Qt Quick Controls Styles
+qhp.QtQuickControlsStyles.indexRoot     =
+#qhp.QtQuickControlsStyles.extraFiles = style/qtquickcontrolsstyles.css
+
+qhp.QtQuickControlsStyles.filterAttributes    = qtcontrolsstyles $QT_VERSION qtrefdoc
+qhp.QtQuickControlsStyles.customFilters.Qt.name = QtQuickControlsStyles $QT_VERSION
+qhp.QtQuickControlsStyles.customFilters.Qt.filterAttributes = qtquickcontrolsstyles $QT_VERSION
+
+qhp.QtQuickControlsStyles.subprojects = qtquickcontrolsstylesqmltypes
+qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.title = QML Types
+qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.indexTitle = Qt Quick Controls Styles QML Types
+qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.selectors = class fake:qmlclass
+qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.sortPages = true
+
+depends = qtqml qtquick qtwidgets qtdoc qtquicklayouts qtquickcontrols
+
+exampledirs += ../../../examples/quick/controlsstyles
+
+# Specify the install path under QT_INSTALL_EXAMPLES
+examplesinstallpath = quick/controlsstyles
+
+headerdirs += ../Base
+
+sourcedirs += ../Base
+
+sources += ../../private/qquickstyleitem.cpp \
+           ../../private/Style.qml \
+           ../../private/qquickabstractstyle.h \
+           ../../private/qquickabstractstyle.cpp
+
+imagedirs += images
diff --git a/src/controls/doc/src/styles.qdoc b/src/styles/doc/src/qtquickcontrolsstyles-index.qdoc
similarity index 61%
rename from src/controls/doc/src/styles.qdoc
rename to src/styles/doc/src/qtquickcontrolsstyles-index.qdoc
index 4080941421f1df7a89eed37d900f8ad056da60d9..b2205bfcdb853822d6d53c882a5013171c90fb0c 100644
--- a/src/controls/doc/src/styles.qdoc
+++ b/src/styles/doc/src/qtquickcontrolsstyles-index.qdoc
@@ -25,6 +25,63 @@
 **
 ****************************************************************************/
 
+
+
+/*!
+    \group applicationwindowstyling
+    \title Styling Application Window
+    \internal
+*/
+
+/*!
+    \group viewsstyling
+    \title Styling Views
+*/
+
+/*!
+    \group controlsstyling
+    \title Styling Controls
+*/
+
+/*!
+    \group menusstyling
+    \title Styling Menus
+    \internal
+*/
+
+
+/*!
+    \page qtquickcontrolsstyles-index.html
+    \title Qt Quick Controls Styles
+    \brief The Qt Quick Controls Styles submodule provides custom styles for Qt Quick Controls.
+
+    The Qt Quick Controls Styles submodule allows custom styling for \l {Qt Quick Controls}.
+
+    The submodule is new in Qt 5.1 and requires \l{Qt Quick} 2.1.
+
+    \section1 Getting started
+
+    The QML types can be imported into your application using the following import statement in your \c {.qml} file.
+
+    \code
+    import QtQuick.Controls.Styles 1.0
+    \endcode
+
+    \section1 Styling Views
+    \annotatedlist viewsstyling
+
+    \section1 Styling Controls
+    \annotatedlist controlsstyling
+
+    \section1 Related information
+
+    \section2 QML Types
+     \list
+      \li \l{Qt Quick Controls Styles QML Types}
+     \endlist
+
+*/
+
 /*!
     \qmlmodule QtQuick.Controls.Styles 1
     \title Qt Quick Controls Styles QML Types
diff --git a/src/styles/styles.pro b/src/styles/styles.pro
index 4c0ee5d38434e5d4b4ddcc35975be16ddb071771..158c1dd135da11189ab3a613dc3ebbebe7831f7d 100644
--- a/src/styles/styles.pro
+++ b/src/styles/styles.pro
@@ -1,5 +1,7 @@
 TARGETPATH = QtQuick/Controls/Styles
 
+QMAKE_DOCS = $$PWD/doc/qtquickcontrolsstyles.qdocconf
+
 # Base
 QML_FILES = \
     Base/ButtonStyle.qml \