diff --git a/src/pdf/quick/qml/+material/PdfStyle.qml b/src/pdf/quick/qml/+material/PdfStyle.qml
new file mode 100644
index 0000000000000000000000000000000000000000..12df304666e8fd1796cf98524539b234fe40997c
--- /dev/null
+++ b/src/pdf/quick/qml/+material/PdfStyle.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtPDF module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQml 2.14
+import QtQuick.Controls 2.14
+import QtQuick.Controls.Material 2.14
+import QtQuick.Shapes 1.14
+
+QtObject {
+    property Control prototypeControl: Control { }
+    function withAlpha(color, alpha) {
+        return Qt.hsla(color.hslHue, color.hslSaturation, color.hslLightness, alpha)
+    }
+    property color selectionColor: withAlpha(prototypeControl.palette.highlight, 0.5)
+    property color pageSearchResultsColor: withAlpha(Qt.lighter(Material.accentColor, 1.5), 0.5)
+    property color currentSearchResultStrokeColor: Material.accentColor
+    property real currentSearchResultStrokeWidth: 2
+    property color linkUnderscoreColor: prototypeControl.palette.link
+    property real linkUnderscoreStrokeWidth: 1
+    property var linkUnderscoreStrokeStyle: ShapePath.DashLine
+    property var linkUnderscoreDashPattern: [ 1, 4 ]
+}
diff --git a/src/pdf/quick/qml/+universal/PdfStyle.qml b/src/pdf/quick/qml/+universal/PdfStyle.qml
new file mode 100644
index 0000000000000000000000000000000000000000..e92f2a080aa6c203750118e9a602bef954af09aa
--- /dev/null
+++ b/src/pdf/quick/qml/+universal/PdfStyle.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtPDF module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQml 2.14
+import QtQuick 2.14
+import QtQuick.Controls 2.14
+import QtQuick.Controls.Universal 2.14
+import QtQuick.Shapes 1.14
+
+QtObject {
+    property Control prototypeControl: Control { }
+    function withAlpha(color, alpha) {
+        return Qt.hsla(color.hslHue, color.hslSaturation, color.hslLightness, alpha)
+    }
+    property color selectionColor: withAlpha(prototypeControl.palette.highlight, 0.5)
+    property color pageSearchResultsColor: withAlpha(Qt.lighter(Universal.accent, 1.5), 0.5)
+    property color currentSearchResultStrokeColor: Universal.accent
+    property real currentSearchResultStrokeWidth: 2
+    property color linkUnderscoreColor: prototypeControl.palette.link
+    property real linkUnderscoreStrokeWidth: 1
+    property var linkUnderscoreStrokeStyle: ShapePath.DashLine
+    property var linkUnderscoreDashPattern: [ 1, 4 ]
+}
diff --git a/src/pdf/quick/qml/PdfMultiPageView.qml b/src/pdf/quick/qml/PdfMultiPageView.qml
index 9d9e2800af992b1927049a42a62bf65577e190f8..579c9a1ce9270859ae98dbaa76edf4a161bf8b77 100644
--- a/src/pdf/quick/qml/PdfMultiPageView.qml
+++ b/src/pdf/quick/qml/PdfMultiPageView.qml
@@ -105,6 +105,7 @@ Item {
     function searchForward() { ++searchModel.currentResult }
 
     id: root
+    PdfStyle { id: style }
     TableView {
         id: tableView
         anchors.fill: parent
@@ -174,13 +175,11 @@ Item {
                 }
                 Shape {
                     anchors.fill: parent
-                    opacity: 0.25
                     visible: image.status === Image.Ready
                     onVisibleChanged: searchHighlights.update()
                     ShapePath {
-                        strokeWidth: 1
-                        strokeColor: "cyan"
-                        fillColor: "steelblue"
+                        strokeWidth: -1
+                        fillColor: style.pageSearchResultsColor
                         scale: Qt.size(paper.pageScale, paper.pageScale)
                         PathMultiline {
                             id: searchHighlights
@@ -197,22 +196,21 @@ Item {
                         function onCurrentPageBoundingPolygonsChanged() { searchHighlights.update() }
                     }
                     ShapePath {
-                        fillColor: "orange"
+                        strokeWidth: -1
+                        fillColor: style.selectionColor
                         scale: Qt.size(paper.pageScale, paper.pageScale)
                         PathMultiline {
-                            id: selectionBoundaries
                             paths: selection.geometry
                         }
                     }
                 }
                 Shape {
                     anchors.fill: parent
-                    opacity: 0.5
                     visible: image.status === Image.Ready && searchModel.currentPage === index
                     ShapePath {
-                        strokeWidth: 1
-                        strokeColor: "blue"
-                        fillColor: "cyan"
+                        strokeWidth: style.currentSearchResultStrokeWidth
+                        strokeColor: style.currentSearchResultStrokeColor
+                        fillColor: "transparent"
                         scale: Qt.size(paper.pageScale, paper.pageScale)
                         PathMultiline {
                             paths: searchModel.currentResultBoundingPolygons
@@ -288,10 +286,10 @@ Item {
                         width: rect.width * paper.pageScale
                         height: rect.height * paper.pageScale
                         ShapePath {
-                            strokeWidth: 1
-                            strokeColor: "steelblue"
-                            strokeStyle: ShapePath.DashLine
-                            dashPattern: [ 1, 4 ]
+                            strokeWidth: style.linkUnderscoreStrokeWidth
+                            strokeColor: style.linkUnderscoreColor
+                            strokeStyle: style.linkUnderscoreStrokeStyle
+                            dashPattern: style.linkUnderscoreDashPattern
                             startX: 0; startY: height
                             PathLine { x: width; y: height }
                         }
diff --git a/src/pdf/quick/qml/PdfScrollablePageView.qml b/src/pdf/quick/qml/PdfScrollablePageView.qml
index 2d335849d32c5927cc3f05d67dc063fc9f995722..4c43972c97c8057321a1c53cf9d17872c159ea5c 100644
--- a/src/pdf/quick/qml/PdfScrollablePageView.qml
+++ b/src/pdf/quick/qml/PdfScrollablePageView.qml
@@ -101,6 +101,7 @@ Flickable {
 
     // implementation
     id: root
+    PdfStyle { id: style }
     contentWidth: paper.width
     contentHeight: paper.height
     ScrollBar.vertical: ScrollBar {
@@ -178,28 +179,26 @@ Flickable {
 
             Shape {
                 anchors.fill: parent
-                opacity: 0.25
                 visible: image.status === Image.Ready
                 ShapePath {
-                    strokeWidth: 1
-                    strokeColor: "cyan"
-                    fillColor: "steelblue"
+                    strokeWidth: -1
+                    fillColor: style.pageSearchResultsColor
                     scale: Qt.size(image.pageScale, image.pageScale)
                     PathMultiline {
                         paths: searchModel.currentPageBoundingPolygons
                     }
                 }
                 ShapePath {
-                    strokeWidth: 1
-                    strokeColor: "orange"
-                    fillColor: "cyan"
+                    strokeWidth: style.currentSearchResultStrokeWidth
+                    strokeColor: style.currentSearchResultStrokeColor
+                    fillColor: "transparent"
                     scale: Qt.size(image.pageScale, image.pageScale)
                     PathMultiline {
                         paths: searchModel.currentResultBoundingPolygons
                     }
                 }
                 ShapePath {
-                    fillColor: "orange"
+                    fillColor: style.selectionColor
                     scale: Qt.size(image.pageScale, image.pageScale)
                     PathMultiline {
                         paths: selection.geometry
@@ -219,10 +218,10 @@ Flickable {
                     width: rect.width * image.pageScale
                     height: rect.height * image.pageScale
                     ShapePath {
-                        strokeWidth: 1
-                        strokeColor: "steelblue"
-                        strokeStyle: ShapePath.DashLine
-                        dashPattern: [ 1, 4 ]
+                        strokeWidth: style.linkUnderscoreStrokeWidth
+                        strokeColor: style.linkUnderscoreColor
+                        strokeStyle: style.linkUnderscoreStrokeStyle
+                        dashPattern: style.linkUnderscoreDashPattern
                         startX: 0; startY: height
                         PathLine { x: width; y: height }
                     }
diff --git a/src/pdf/quick/qml/PdfStyle.qml b/src/pdf/quick/qml/PdfStyle.qml
new file mode 100644
index 0000000000000000000000000000000000000000..090465ce6b6edd7408e20b8df3ec29d17a41677e
--- /dev/null
+++ b/src/pdf/quick/qml/PdfStyle.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtPDF module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQml 2.14
+import QtQuick 2.14
+import QtQuick.Controls 2.14
+import QtQuick.Shapes 1.14
+
+QtObject {
+    property Control prototypeControl: Control { }
+    function withAlpha(color, alpha) {
+        return Qt.hsla(color.hslHue, color.hslSaturation, color.hslLightness, alpha)
+    }
+    property color selectionColor: withAlpha(prototypeControl.palette.highlight, 0.5)
+    property color pageSearchResultsColor: "#80B0C4DE"
+    property color currentSearchResultStrokeColor: "cyan"
+    property real currentSearchResultStrokeWidth: 2
+    property color linkUnderscoreColor: prototypeControl.palette.link
+    property real linkUnderscoreStrokeWidth: 1
+    property var linkUnderscoreStrokeStyle: ShapePath.DashLine
+    property var linkUnderscoreDashPattern: [ 1, 4 ]
+}
diff --git a/src/pdf/quick/resources.qrc b/src/pdf/quick/resources.qrc
index 20cac48270f51830e1aa419a5d34191c7831ddd7..8270a202887a2e76a3fc26c081d534ff35edbd0a 100644
--- a/src/pdf/quick/resources.qrc
+++ b/src/pdf/quick/resources.qrc
@@ -1,5 +1,8 @@
 <RCC>
   <qresource prefix="/qt-project.org/qtpdf">
+    <file>qml/+material/PdfStyle.qml</file>
+    <file>qml/+universal/PdfStyle.qml</file>
+    <file>qml/PdfStyle.qml</file>
     <file>qml/PdfMultiPageView.qml</file>
     <file>qml/PdfPageView.qml</file>
     <file>qml/PdfScrollablePageView.qml</file>