diff --git a/core/images/home-button.tid b/core/images/home-button.tid
new file mode 100644
index 000000000..95450bf21
--- /dev/null
+++ b/core/images/home-button.tid
@@ -0,0 +1,4 @@
+title: $:/core/images/home-button
+tags: $:/tags/Image
+
+
diff --git a/core/images/menu-button.tid b/core/images/menu-button.tid
new file mode 100644
index 000000000..32f6239cb
--- /dev/null
+++ b/core/images/menu-button.tid
@@ -0,0 +1,4 @@
+title: $:/core/images/menu-button
+tags: $:/tags/Image
+
+
diff --git a/core/ui/PageTemplate/topleftbar.tid b/core/ui/PageTemplate/topleftbar.tid
new file mode 100644
index 000000000..4ad37e974
--- /dev/null
+++ b/core/ui/PageTemplate/topleftbar.tid
@@ -0,0 +1,6 @@
+title: $:/core/ui/PageTemplate/topleftbar
+tags: $:/tags/PageTemplate
+
+
+<$list filter="[is[shadow]!has[draft.of]tag[$:/tags/TopLeftBar]] [!is[shadow]!has[draft.of]tag[$:/tags/TopLeftBar]] +[tag[$:/tags/TopLeftBar]]" variable="listItem"><$transclude tiddler=<>/>$list>
+
diff --git a/core/ui/PageTemplate/toprightbar.tid b/core/ui/PageTemplate/toprightbar.tid
new file mode 100644
index 000000000..a1dc77564
--- /dev/null
+++ b/core/ui/PageTemplate/toprightbar.tid
@@ -0,0 +1,6 @@
+title: $:/core/ui/PageTemplate/toprightbar
+tags: $:/tags/PageTemplate
+
+
+<$list filter="[is[shadow]!has[draft.of]tag[$:/tags/TopRightBar]] [!is[shadow]!has[draft.of]tag[$:/tags/TopRightBar]] +[tag[$:/tags/TopRightBar]]" variable="listItem"><$transclude tiddler=<>/>$list>
+
diff --git a/core/ui/TopLeftBar/home.tid b/core/ui/TopLeftBar/home.tid
new file mode 100644
index 000000000..6194ae923
--- /dev/null
+++ b/core/ui/TopLeftBar/home.tid
@@ -0,0 +1,4 @@
+title: $:/core/ui/TopBar/home
+tags: $:/tags/TopLeftBar
+
+<$button message="tw-home" class="btn-invisible">{{$:/core/images/home-button}}$button>
\ No newline at end of file
diff --git a/core/ui/TopRightBar/menu.tid b/core/ui/TopRightBar/menu.tid
new file mode 100644
index 000000000..7da757947
--- /dev/null
+++ b/core/ui/TopRightBar/menu.tid
@@ -0,0 +1,4 @@
+title: $:/core/ui/TopBar/menu
+tags: $:/tags/TopRightBar
+
+<$button message="tw-new-tiddler" class="btn-invisible">{{$:/core/images/menu-button}}$button>
\ No newline at end of file
diff --git a/core/wiki/tags/PageTemplate.tid b/core/wiki/tags/PageTemplate.tid
index 38839744f..8c2df9428 100644
--- a/core/wiki/tags/PageTemplate.tid
+++ b/core/wiki/tags/PageTemplate.tid
@@ -1,3 +1,3 @@
title: $:/tags/PageTemplate
-list: [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]
+list: [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]] [[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]]
diff --git a/themes/tiddlywiki/snowwhite/base.tid b/themes/tiddlywiki/snowwhite/base.tid
index 8314e1e67..e61c46a44 100644
--- a/themes/tiddlywiki/snowwhite/base.tid
+++ b/themes/tiddlywiki/snowwhite/base.tid
@@ -7,10 +7,6 @@ tags: [[$:/tags/stylesheet]]
text-shadow: 0 1px 0 <>;
}
-.tw-page-controls svg {
- <>
-}
-
.tw-tiddler-info {
<>
}
@@ -27,7 +23,7 @@ tags: [[$:/tags/stylesheet]]
}
}
-.tw-tiddler-controls button svg {
+.tw-page-controls button svg, .tw-tiddler-controls button svg, .tw-topbar button svg {
<>
}
diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid
index 0a434839d..df9f18da7 100644
--- a/themes/tiddlywiki/vanilla/base.tid
+++ b/themes/tiddlywiki/vanilla/base.tid
@@ -316,6 +316,33 @@ a.tw-tiddlylink-external:hover {
** Page layout
*/
+.tw-topbar {
+ position: fixed;
+ z-index: 1200;
+}
+
+.tw-topbar-left {
+ left: 0;
+ top: 0;
+}
+
+.tw-topbar-right {
+ top: 0;
+ right: 0;
+}
+
+.tw-topbar button {
+ padding: 8px;
+}
+
+.tw-topbar svg {
+ fill: <>;
+}
+
+.tw-topbar svg:hover {
+ fill: <>;
+}
+
.sidebar-header {
color: <>;
}