diff --git a/app/extensions/brave/img/newtab/private_tab_pagearea_icon.svg b/app/extensions/brave/img/newtab/private_tab_pagearea_icon.svg
new file mode 100644
index 00000000000..51917219b68
--- /dev/null
+++ b/app/extensions/brave/img/newtab/private_tab_pagearea_icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/extensions/brave/locales/en-US/newtab.properties b/app/extensions/brave/locales/en-US/newtab.properties
index d0a5c5633b4..2dd08c8b491 100644
--- a/app/extensions/brave/locales/en-US/newtab.properties
+++ b/app/extensions/brave/locales/en-US/newtab.properties
@@ -34,3 +34,7 @@ thumbRemoved=Thumb Removed.
undoRemoved=Undo
restoreAll=Restore All
close.title=Close notification
+privateTabTitle=This is a Private Tab
+privateTabText1=Private tabs are not logged in page history. They are not counted in Brave Payments calculations and they can not be reopened with Command + Shift + T.
+privateTabText2=If you click on a page link from within a Private Tab, it will also be private. You can open as many private tabs as you need and they will coexist with normal tabs.
+privateTabText3=When you close Brave, all of your private tabs will vanish, forgotten forever.
diff --git a/app/renderer/components/styles/global.js b/app/renderer/components/styles/global.js
index 05aa5468e16..5d3a117f76e 100644
--- a/app/renderer/components/styles/global.js
+++ b/app/renderer/components/styles/global.js
@@ -5,6 +5,7 @@ const globalStyles = {
breakpointExtensionButtonPadding: '720px',
breakpointSmallWin32: '650px',
breakpointTinyWin32: '500px',
+ breakpointNewPrivateTab: '890px',
tab: {
large: '120px',
largeMedium: '83px',
@@ -72,7 +73,8 @@ const globalStyles = {
statsLightGray: '#999999',
defaultIconBackground: '#F7F7F7',
almostInvisible: 'rgba(255,255,255,0.01)',
- urlBarOutline: '#bbb'
+ urlBarOutline: '#bbb',
+ alphaWhite: 'rgba(255,255,255,0.8)'
},
radius: {
borderRadius: '4px',
@@ -124,7 +126,8 @@ const globalStyles = {
dialogTopOffset: '30px',
paymentsMargin: '20px',
modalPanelHeaderMarginBottom: '.5em',
- paddingHorizontal: '30px'
+ paddingHorizontal: '30px',
+ privateTabPadding: '40px'
},
shadow: {
switchShadow: 'inset 0 1px 4px rgba(0, 0, 0, 0.35)',
diff --git a/js/about/newprivatetab.js b/js/about/newprivatetab.js
new file mode 100644
index 00000000000..0c3411ebce5
--- /dev/null
+++ b/js/about/newprivatetab.js
@@ -0,0 +1,110 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+const React = require('react')
+const {StyleSheet, css} = require('aphrodite')
+const globalStyles = require('../../app/renderer/components/styles/global')
+const Stats = require('./newTabComponents/stats')
+const Clock = require('./newTabComponents/clock')
+const privateTabIcon = require('../../app/extensions/brave/img/newtab/private_tab_pagearea_icon.svg')
+// TODO: remove it once we use Aphrodite on stats and clock components
+require('../../less/about/newtab.less')
+
+class NewPrivateTab extends React.Component {
+ render () {
+ if (!this.props.newTabData) {
+ return null
+ }
+
+ return