diff --git a/.github/actions/node-setup/action.yml b/.github/actions/node-setup/action.yml
index 9848f55..f0f138e 100644
--- a/.github/actions/node-setup/action.yml
+++ b/.github/actions/node-setup/action.yml
@@ -4,9 +4,10 @@ runs:
using: "composite"
steps:
# https://github.com/actions/cache/blob/main/examples.md#node---yarn
+ # https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
- name: Get yarn cache directory path
id: yarn-cache-dir-path
- run: echo "::set-output name=dir::$(yarn cache dir)"
+ run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
shell: bash
- name: Node cache
diff --git a/CREDITS b/CREDITS
index 62fdfd5..6d832b4 100644
--- a/CREDITS
+++ b/CREDITS
@@ -43,6 +43,9 @@ W: https://github.com/nikkehtine
N: OSS.kr
W: https://www.oss.kr/
+N: ZachKnife1
+W: https://github.com/ZachKnife1
+
----------
Contributors
@@ -108,6 +111,10 @@ W: https://github.com/MarNicGit
N: Oondanomala
W: https://github.com/Oondanomala
+N: Patricek
+E: pk22.games@gmail.com
+W: https://github.com/Patricek0056
+
N: ph3b3
E: phoebeleong8@gmail.com
W: https://phoebe-leong.github.io/
diff --git a/README.org b/README.org
index 9ca05b0..856d897 100644
--- a/README.org
+++ b/README.org
@@ -72,7 +72,7 @@ You [[https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solu
- Panel
- Menu
- Density
- - Others...
+ - Others…
- *Tab Bar Layouts*
- Tabs on Bottom
- One Liner
@@ -84,7 +84,7 @@ You [[https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solu
- Context Line: like Photon
- Bottom Rounding: Natural
- MultiSelected
- - Adjust Color: Easily recognizable.
+ - Adjust Color: Easily recognizable
- Unselect:
- Divide Line: like Photon
- Unloaded:
@@ -97,7 +97,7 @@ You [[https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solu
- Show Favicon: Always show favicon
- PIP Icon
- Container Tab:
- - Highlight line position: Displayed under tab.
+ - Highlight line position: Displayed under tab
- *Button Design*
- New tab: like Photon
- *Activity Stream Design*
@@ -151,7 +151,7 @@ Windows users: Run with powershell ([[https://github.com/black7375/Firefox-UI-Fi
- Create a new directory inside your profile directory called =chrome=
- Copy the remaining files from the extracted zip-file into previously created the =chrome= directory
4. Restart Firefox
- - Click the =Clear startup cache...= at the top of =about:support=
+ - Click the =Clear startup cache…= at the top of =about:support=
If you prefer Proton(89 or above), see [[https://github.com/black7375/Firefox-UI-Fix][Original Lepton]].\\
If you prefer Proton tab shape, see [[https://github.com/black7375/Firefox-UI-Fix/tree/proton-style][Lepton's proton-style]].
@@ -202,6 +202,7 @@ Thanks to all sponsors & contributors to this project for providing help and dev
[[https://www.oss.kr/][https://user-images.githubusercontent.com/25581533/203210367-9f2eed69-666a-4218-acde-128892aa09d8.png]]
[[https://github.com/ojaha065][@@html:
@@]]
[[https://github.com/DPS0340][@@html:
@@]]
+[[https://github.com/ZachKnife1][@@html:
@@]]
[[https://github.com/kanlukasz][@@html:
@@]]
[[https://github.com/nikkehtine][@@html:
@@]]
diff --git a/css/leptonChrome.css b/css/leptonChrome.css
index db99d2d..c95be05 100644
--- a/css/leptonChrome.css
+++ b/css/leptonChrome.css
@@ -1542,7 +1542,8 @@
}
#PopupAutoComplete > richlistbox > richlistitem[originaltype="generatedPassword"] > .two-line-wrapper > .ac-site-icon,
#PopupAutoComplete > richlistbox > richlistitem[originaltype="loginWithOrigin"] > .two-line-wrapper > .ac-site-icon,
- #PopupAutoComplete > richlistbox > richlistitem[originaltype="login"] > .ac-site-icon {
+ #PopupAutoComplete > richlistbox > richlistitem[originaltype="login"] > .ac-site-icon,
+ #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"] > .ac-site-icon {
fill: GrayText !important;
}
#PopupAutoComplete > richlistbox > richlistitem[originaltype="loginsFooter"] {
@@ -1558,6 +1559,15 @@
hsla(0deg, 0%, 80%, 0.5)
) !important; /* Original: hsla(0,0%,80%,.5), match arrowpanel-dimmed-further */
}
+ #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"] {
+ background-color: var(--panel-bgcolor) !important; /* Original: var(--arrowpanel-dimmed) */
+ }
+ #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"]:hover {
+ background-color: var(--arrowpanel-dimmed, hsla(0deg, 0%, 80%, 0.35)) !important;
+ }
+ #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"] > .ac-title {
+ color: var(--arrowpanel-color, var(--in-content-page-color)) !important; /* Original: var(--grey-60) */
+ }
/* New Folder Button */
#editBMPanel_newFolderButton {
appearance: none;
@@ -2009,6 +2019,7 @@
font-weight: 600 !important;
}
dropmarker {
+ display: flex !important;
display: -moz-box !important;
appearance: none !important;
width: 12px !important;
@@ -2188,6 +2199,7 @@
font-size: inherit !important;
}
xul|menulist::part(dropmarker) {
+ display: flex;
display: -moz-box;
margin-block: 6px !important;
}
@@ -2201,6 +2213,7 @@
display: none !important;
}
xul|menulist::part(dropmarker) {
+ display: flex !important;
display: -moz-box !important;
margin-block: 1px !important;
}
@@ -2282,6 +2295,9 @@
fill: currentColor !important;
color: var(--in-content-deemphasized-text) !important; /* FieldText */
}
+ #viewGroup > radio .radio-icon {
+ background-image: none !important;
+ }
@supports not -moz-bool-pref("userChrome.rounding.square_button") {
#viewGroup > radio {
border-radius: 8px !important;
@@ -2806,7 +2822,13 @@
#identity-popup-more-info,
#unified-extensions-manage-extensions,
.unified-extensions-item-open-menu,
- .unified-extensions-item-menu-button.subviewbutton {
+ .unified-extensions-item-menu-button.subviewbutton,
+ #PopupAutoComplete
+ > richlistbox
+ > richlistitem[originaltype="insecureWarning"]
+ > .ac-title
+ > .ac-text-overflow-container
+ > .ac-title-text {
cursor: pointer !important;
}
}
@@ -3030,6 +3052,7 @@
will-change: margin-inline-start, opacity, visibility;
}
#sidebar-box[hidden="true"] {
+ display: flex !important;
display: -moz-box !important;
margin-inline-start: -18em;
opacity: 0;
@@ -3181,6 +3204,16 @@
border-radius: 0 !important;
}
}
+@supports -moz-bool-pref("userChrome.rounding.square_toolbar") {
+ :root {
+ --uc-rounding-toolbar: 0;
+ }
+ .container.infobar,
+ .container.infobar::before,
+ notification-message {
+ border-radius: var(--uc-rounding-toolbar) !important;
+ }
+}
@supports -moz-bool-pref("userChrome.rounding.square_field") {
input:not([type="radio"], [type="checkbox"]),
textarea,
@@ -4237,7 +4270,7 @@
}
#nav-bar {
--toolbarbutton-inner-padding: 6px; /* Original: 8px */
- border-radius: var(--tab-border-radius, 4px);
+ border-radius: var(--uc-rounding-toolbar, var(--tab-border-radius, 4px));
}
#nav-bar,
#nav-bar-customization-target {
@@ -4339,7 +4372,7 @@
}
#nav-bar {
--toolbarbutton-inner-padding: 6px; /* Original: 8px */
- border-radius: var(--tab-border-radius, 4px);
+ border-radius: var(--uc-rounding-toolbar, var(--tab-border-radius, 4px));
}
#nav-bar,
#nav-bar-customization-target {
@@ -5927,6 +5960,7 @@
:root:not([tabsintitlebar="true"])
#tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow="true"])
~ #new-tab-button {
+ display: flex !important;
display: -moz-box !important;
}
}
@@ -5982,6 +6016,7 @@
> #tabbrowser-arrowscrollbox
> #tabbrowser-arrowscrollbox-periphery
> #tabs-newtab-button {
+ display: flex !important;
display: -moz-box !important;
}
#alltabs-button,
@@ -6561,6 +6596,7 @@
}
@supports -moz-bool-pref("userChrome.tab.photon_like_contextline") {
.tab-context-line {
+ display: inline-flex !important;
display: -moz-inline-box !important;
height: 2px !important;
border-radius: var(--tab-border-radius, 4px) var(--tab-border-radius, 4px) 0 0 !important;
@@ -7073,6 +7109,12 @@
background-color: transparent !important;
}
}
+ /* Fix tab overlap #678 */
+ @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") {
+ tab:where([visuallyselected="true"]) {
+ z-index: 1;
+ }
+ }
}
/*= New tab button - Smaller button ==========================================*/
@supports -moz-bool-pref("userChrome.tab.newtab_button_smaller") {
@@ -7138,6 +7180,7 @@
> .tab-stack
> .tab-content
> .tab-close-button:not([selected="true"]) {
+ display: inline-flex !important;
display: -moz-inline-box !important;
}
#tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([visuallyselected]) .tab-close-button {
@@ -7225,8 +7268,9 @@
}
.tabbrowser-tab[pinned][visuallyselected]:not([style*="transform: translateX"]):hover:not([busy])
.tab-close-button {
+ display: flex !important;
display: -moz-box !important;
- order: 0 !important;
+ order: -1 !important;
-moz-box-ordinal-group: 0 !important;
/* Looks like hover */
width: var(--uc-close-button-size) !important;
@@ -7244,8 +7288,9 @@
}
@supports -moz-bool-pref("userChrome.tab.close_button_at_pinned.always") {
.tabbrowser-tab[pinned][visuallyselected]:not([busy]) .tab-close-button {
+ display: flex !important;
display: -moz-box !important;
- order: 0 !important;
+ order: -1 !important;
-moz-box-ordinal-group: 0 !important;
/* Looks like hover */
width: var(--uc-close-button-size) !important;
@@ -7264,8 +7309,9 @@
}
@supports -moz-bool-pref("userChrome.tab.close_button_at_pinned.background") {
.tabbrowser-tab[pinned]:not([style*="transform: translateX"]):hover:not([busy]) .tab-close-button {
+ display: flex !important;
display: -moz-box !important;
- order: 0 !important;
+ order: -1 !important;
-moz-box-ordinal-group: 0 !important;
/* Looks like hover */
width: var(--uc-close-button-size) !important;
@@ -7292,6 +7338,7 @@
/** Clipped tabs - Always show tab icon ***************************************/
@supports -moz-bool-pref("userChrome.tab.always_show_tab_icon") {
.tab-icon-image:not([src], [pinned], [crashed], [busy]) {
+ display: inline-flex !important;
display: -moz-inline-box !important;
}
}
@@ -7307,6 +7354,7 @@
/*= Sound Tab - Show Label ===================================================*/
@supports -moz-bool-pref("userChrome.tab.sound_show_label") {
.tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) {
+ display: flex !important;
display: -moz-box !important;
}
}
@@ -7484,6 +7532,7 @@
}
.tabbrowser-tab[pictureinpicture]:not([pinned]) .tab-content::after {
/* Shape */
+ display: inline-flex !important;
display: -moz-inline-box !important;
width: 14px;
height: 14px;
@@ -8183,15 +8232,8 @@
}
@supports -moz-bool-pref("userChrome.combined.nav_button") or -moz-bool-pref("userChrome.combined.urlbar.nav_button") {
@supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") or
- (
- not
- (
- -moz-bool-pref("userChrome.combined.sub_button.as_normal") and -moz-bool-pref(
- "userChrome.combined.nav_button"
- )
- and -moz-bool-pref("userChrome.combined.urlbar.home_button")
- )
- ) {
+ (not -moz-bool-pref("userChrome.combined.sub_button.as_normal")) or
+ (-moz-bool-pref("userChrome.combined.nav_button") and -moz-bool-pref("userChrome.combined.urlbar.home_button")) {
#nav-bar-customization-target > #forward-button {
--uc-forward-button-margin: calc(-1 * var(--uc-toolbarbutton-boundary) + 1px);
z-index: 2;
@@ -8690,6 +8732,7 @@
counter-reset: bookmark-counts 0;
}
menupopup[placespopup="true"] > menu.bookmark-item::after {
+ display: inline-flex;
display: -moz-inline-box;
content: "(" counter(bookmark-counts) ")";
}
@@ -8711,7 +8754,7 @@
z-index: 1;
}
findbar {
- order: 0;
+ order: -1;
-moz-box-ordinal-group: 0;
position: relative;
height: 0 !important;
@@ -8726,7 +8769,9 @@
}
findbar::before {
content: "";
+ display: flex;
display: -moz-box;
+ position: absolute;
flex: 200;
-moz-box-flex: 200;
}
@@ -8742,13 +8787,15 @@
flex-direction: row-reverse;
-moz-box-direction: reverse;
border-width: 0 0 1px 1px;
- border-radius: var(--toolbarbutton-border-radius) 0 0 var(--toolbarbutton-border-radius) !important;
+ border-radius: var(--uc-rounding-toolbar, var(--toolbarbutton-border-radius)) 0 0
+ var(--uc-rounding-toolbar, var(--toolbarbutton-border-radius)) !important;
}
.findbar-container > .findbar-find-fast {
padding: var(--toolbarbutton-inner-padding) 1px;
margin: 0 !important;
}
.findbar-container > .findbar-find-status {
+ display: flex;
display: -moz-box;
overflow: hidden;
text-overflow: ellipsis;
@@ -9601,7 +9648,7 @@
}
@supports -moz-bool-pref("userChrome.autohide.fill_urlbar") {
#nav-bar:not(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) #urlbar-container {
- order: 0;
+ order: -1;
-moz-box-ordinal-group: 0;
min-width: calc(
var(--uc-navbar-width, 100vw) -
@@ -9922,6 +9969,7 @@
list-style-image: url("chrome://global/skin/icons/delete.svg") !important;
}
#clearDownloadsButton > .toolbarbutton-icon {
+ display: inline-flex !important;
display: -moz-inline-box !important;
margin-top: 0;
margin-bottom: 0;
@@ -9958,7 +10006,7 @@
:root {
--arrowpanel-menuicon-padding: 8px;
--arrowpanel-menublank-padding: calc(
- var(--arrowpanel-menuicon-padding) * 2 + var(var(--arrowpanel-menuitem-padding-inline))
+ var(--arrowpanel-menuicon-padding) * 2 + var(--arrowpanel-menuitem-padding-inline)
) !important;
--arrowpanel-menuimageblank-padding: calc(var(--arrowpanel-menuitem-padding-inline) - 2px) !important;
--arrowpanel-menuimageblank-padding-block: calc(var(--arrowpanel-menuitem-padding-block) - 2px) !important;
@@ -9999,6 +10047,7 @@
}
#appMenu-multiView .subviewbutton::before,
#appMenu-proton-update-banner::before {
+ display: inline-flex;
display: -moz-inline-box;
margin-inline-end: var(--arrowpanel-menuicon-padding);
width: 16px;
@@ -10051,9 +10100,10 @@
}
/*= Panel - Main =============================================================*/
#appMenu-proton-addon-banners > .addon-banner-item > .toolbarbutton-icon {
+ display: inline-flex !important;
display: -moz-inline-box !important;
margin-inline-start: var(--arrowpanel-menuicon-padding);
- order: 0 !important;
+ order: -1 !important;
-moz-box-ordinal-group: 0 !important;
}
#appMenu-proton-update-banner::before {
@@ -10176,6 +10226,7 @@
/* Default */
#fxa-manage-account-button::before {
content: "";
+ display: inline-flex;
display: -moz-inline-box;
width: 32px !important;
height: 32px !important;
@@ -10198,15 +10249,15 @@
}
.syncNowBtn {
visibility: visible !important;
- order: 1 !important;
- -moz-box-ordinal-group: 1 !important;
+ order: -1 !important;
+ -moz-box-ordinal-group: 0 !important;
margin-inline-end: var(--arrowpanel-menuicon-padding);
}
#PanelUI-fxa-menu-setup-sync-button {
list-style-image: url("chrome://browser/skin/sync.svg");
}
#PanelUI-fxa-menu-connect-device-button {
- list-style-image: url("chrome://browser/skin/fxa/add-device.svg");
+ list-style-image: url("../icons/add-device.svg");
}
#PanelUI-fxa-menu-sendtab-button {
list-style-image: url("../icons/send-to-device.svg");
@@ -10241,13 +10292,14 @@
/* Change Separator */
#PanelUI-fxa-menu::before {
content: "";
+ display: flex;
display: -moz-box;
border-bottom: 1px solid var(--panel-separator-color);
margin: var(--panel-separator-margin);
padding: 0;
}
#PanelUI-fxa-menu > :first-child {
- order: 0;
+ order: -1;
-moz-box-ordinal-group: 0;
}
#PanelUI-sign-out-separator {
@@ -10394,6 +10446,7 @@
list-style-image: url("chrome://browser/skin/downloads/downloads.svg");
}
#downloadsHistory .box-inherit.button-box {
+ display: inline-flex !important;
display: -moz-inline-box !important;
}
/*= Toolbar - Overflow Menu ==================================================*/
@@ -10423,6 +10476,9 @@
#BMB_viewBookmarksSidebar[data-l10n-args='{"isVisible":true}'] {
--menuitem-image: url("chrome://global/skin/icons/close.svg");
}
+ #BMB_searchBookmarks {
+ --menuitem-image: url("chrome://global/skin/icons/search-glass.svg");
+ }
#BMB_bookmarksShowAllTop,
#BMB_bookmarksShowAll {
--menuitem-image: url("chrome://browser/skin/bookmark-star-on-tray.svg");
@@ -10435,6 +10491,7 @@
list-style-image: url("chrome://browser/skin/bookmark-star-on-tray.svg") !important;
}
#BMB_bookmarksShowAllTop > .menu-iconic-left {
+ display: flex !important;
display: -moz-box !important;
}
}
@@ -10537,7 +10594,7 @@
/* Color */
-moz-context-properties: fill, fill-opacity, stroke !important;
fill: currentColor !important;
- stroke: transparent;
+ stroke: currentColor;
/* Layout */
background-size: 16px !important;
background-repeat: no-repeat !important;
@@ -10942,6 +10999,7 @@
#tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab,
#sidebartabs_asamuzak_jp-menuitem-_muteTab {
--menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-muted-small.svg");
+ stroke: transparent !important;
}
#context_toggleMuteTab[muted],
#context_toggleMuteSelectedTabs[muted],
@@ -11177,7 +11235,7 @@
}
#context-viewsource-highlightSyntax {
/* checkbox */
- --menuitem-image: url("../icons/code.svg");
+ --menuitem-image: url("../icons/highlight.svg");
}
#spell-no-suggestions {
--menuitem-image: url("../icons/text-proofing-tools.svg");
@@ -11349,6 +11407,9 @@
#context-selectall {
--menuitem-image: url("../icons/select-all-on.svg");
}
+ #context-reveal-password {
+ --menuitem-image: url("../icons/eye-show.svg");
+ }
#context-print-selection {
--menuitem-image: url("chrome://global/skin/icons/print.svg");
}
@@ -11780,6 +11841,9 @@
--menuitem-image: url("chrome://global/skin/icons/settings.svg");
}
/*= unified-extensions-context-menu ==========================================*/
+ .unified-extensions-context-menu-pin-to-toolbar {
+ --menuitem-image: url("../icons/pin-tab.svg");
+ }
.unified-extensions-context-menu-manage-extension {
--menuitem-image: url("chrome://global/skin/icons/settings.svg");
}
@@ -11940,9 +12004,11 @@
/* viewFullZoomMenu sub menu */
#menu_zoomEnlarge {
--menuitem-image: url("chrome://browser/skin/add-circle-fill.svg");
+ stroke: transparent !important;
}
#menu_zoomReduce {
--menuitem-image: url("chrome://browser/skin/subtract-circle-fill.svg");
+ stroke: transparent !important;
}
#menu_zoomReset {
--menuitem-image: url("../icons/resize.svg");
diff --git a/css/leptonContent.css b/css/leptonContent.css
index 327a24c..d342475 100644
--- a/css/leptonContent.css
+++ b/css/leptonContent.css
@@ -252,7 +252,7 @@
/* Color */
-moz-context-properties: fill, fill-opacity, stroke !important;
fill: currentColor !important;
- stroke: transparent;
+ stroke: currentColor;
/* Layout */
background-size: 16px !important;
background-repeat: no-repeat !important;
@@ -410,6 +410,7 @@
}
#contentSearchSettingsButton::before {
content: url("chrome://global/skin/icons/settings.svg") !important;
+ display: inline-flex;
display: -moz-inline-box;
/* Color */
-moz-context-properties: fill, fill-opacity !important;
@@ -2171,6 +2172,7 @@
list-style-image: url("chrome://global/skin/icons/delete.svg") !important;
}
#clearDownloadsButton > .toolbarbutton-icon {
+ display: inline-flex !important;
display: -moz-inline-box !important;
margin-top: 0;
margin-bottom: 0;
@@ -2790,10 +2792,9 @@
@supports -moz-bool-pref("userChrome.rounding.square_button") {
@-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$")
{
- button,
+ button:not(.toggle-button),
.close-icon,
.action-icon::before,
- .web-appearance-choice,
.page-section-header > .twisty,
.closed-tab-li-main,
#categories > .category,
@@ -2869,7 +2870,9 @@
treecols,
listheader,
richlistbox,
- search-textbox {
+ search-textbox,
+ .web-appearance-choice,
+ .content-blocking-category {
border-radius: 0 !important;
}
}
@@ -2920,6 +2923,28 @@
}
}
}
+@supports -moz-bool-pref("userChrome.rounding.square_infobox") {
+ @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$")
+ {
+ /*
+ * .container is inside shadow DOM,
+ * and it does not have any other classes,
+ * but there may be other elements with the same class,
+ * hence the weird selector.
+ */
+ link[href="chrome://global/content/elements/message-bar.css"] + .container,
+ .info-box-container:not(.content-blocking-category),
+ .options-container,
+ #sanitizeEverythingWarningBox {
+ border-radius: 0 !important;
+ }
+ }
+ @-moz-document url-prefix("about:debugging") {
+ .message {
+ border-radius: 0 !important;
+ }
+ }
+}
@-moz-document url("chrome://browser/content/places/places.xhtml")
{
/*= Library ==============================================================*/
@@ -2967,7 +2992,7 @@
/* Color */
-moz-context-properties: fill, fill-opacity, stroke !important;
fill: currentColor !important;
- stroke: transparent;
+ stroke: currentColor;
/* Layout */
background-size: 16px !important;
background-repeat: no-repeat !important;
diff --git a/docs/Project_Structure.md b/docs/Project_Structure.md
index 3ef1f04..f0550ce 100644
--- a/docs/Project_Structure.md
+++ b/docs/Project_Structure.md
@@ -45,7 +45,7 @@ Most of them are made in SVG.
Except for illustrations, there must be an `fill="context-fill" fill-opacity="context-fill-opacity"` property to dynamically determine color and transparency.
-Icons are mainly [FirefoxUX/photon-icons](https://github.com/FirefoxUX/photon-icons)
+Icons are mainly [FirefoxUX/acorn-icons](https://github.com/FirefoxUX/acorn-icons), [FirefoxUX/photon-icons](https://github.com/FirefoxUX/photon-icons)
or [microsoft/fluentui-system-icons](https://github.com/microsoft/fluentui-system-icons).
Although not yet used, [tabler/tabler-icons](https://github.com/tabler/tabler-icons) and [feathericons/feather](https://github.com/feathericons/feather) can also be referred to.
diff --git a/docs/Smart_Bookmarks.md b/docs/Smart_Bookmarks.md
index b3de43f..3727eea 100644
--- a/docs/Smart_Bookmarks.md
+++ b/docs/Smart_Bookmarks.md
@@ -87,7 +87,7 @@ Here's a list of the parameters available that you can look for.
| | | `PLACES_ROOT`: The Places root folder. |
| | | `BOOKMARKS_MENU`: The Bookmarks menu. |
| | | `TOOLBAR`: The bookmarks toolbar. |
-| | | `TAGS`: Tags |
+| | | `TAGS`: Tags. |
| | | `UNFILED_BOOKMARKS`: Unfiled bookmarks |
| `!annotation` | `boolean` | Indicates whether to include or reject items matching the annotation specified by `annotation`. If `true`, items that don't have the specified annotation are rejected. |
| `annotation` | `string` | The annotation to match when querying. |
@@ -113,38 +113,38 @@ The following attributes allow you to control the results more precisely.
| `maxResults` | `unsigned long` | The maximum number of results to return. This doesn't work when sorting by title. The result is `0`, which means that all results are returned. |
| `originalTitle` | `string` | Retrieves the original page title. |
| `queryType` | `unsigned short` | The type of search to use when querying the database. This attribute is only honored by query nodes. It's ignored for simple folder queries. |
-| | | `0`: History |
-| | | `1`: Bookmarks |
-| | | `2`: Both history and bookmarks (**Not yet implemented** -- see [bug 378798](https://bugzilla.mozilla.org/show_bug.cgi?id=378798)) |
+| | | `0`: History. |
+| | | `1`: Bookmarks. |
+| | | `2`: Both history and bookmarks (**Not yet implemented** -- see [bug 378798](https://bugzilla.mozilla.org/show_bug.cgi?id=378798)). |
| `resolveNullBookmarkTitles` | `boolean` | If `true`, bookmarks with null titles get their page titles fetched from history if possible. This doesn't apply to bookmarks with empty titles. The default is `false`. |
| `showSessions` | `boolean` | If `true`, session information is used to group history items. This only makes a difference when sorting by date. The default is `false`. |
| `sort` | `unsigned short` | The sort order to use for the results. |
-| | | `0`: Natural bookmark order |
-| | | `1`: Sort by title, A-Z |
-| | | `2`: Sort by title, Z-A |
-| | | `3`: Sort by visit date, most recent last |
-| | | `4`: Sort by visit date, most recent first |
-| | | `5`: Sort by uri, A-Z |
-| | | `6`: Sort by uri, Z-A |
-| | | `7`: Sort by visit count, ascending |
-| | | `8`: Sort by visit count, descending |
-| | | `9`: Sort by keyword, A-Z |
-| | | `10`: Sort by keyword, Z-A |
-| | | `11`: Sort by date added, most recent last |
-| | | `12`: Sort by date added, most recent first |
-| | | `13`: Sort by last modified date, most recent last |
-| | | `14`: Sort by last modified date, most recent first |
-| | | `17`: Sort by tags, ascending |
-| | | `18`: Sort by tags, descending |
-| | | `19`: Sort by annotation, ascending |
-| | | `20`: Sort by annotation, descending |
+| | | `0`: Natural bookmark order. |
+| | | `1`: Sort by title, A-Z. |
+| | | `2`: Sort by title, Z-A. |
+| | | `3`: Sort by visit date, most recent last. |
+| | | `4`: Sort by visit date, most recent first. |
+| | | `5`: Sort by uri, A-Z. |
+| | | `6`: Sort by uri, Z-A. |
+| | | `7`: Sort by visit count, ascending. |
+| | | `8`: Sort by visit count, descending. |
+| | | `9`: Sort by keyword, A-Z. |
+| | | `10`: Sort by keyword, Z-A. |
+| | | `11`: Sort by date added, most recent last. |
+| | | `12`: Sort by date added, most recent first. |
+| | | `13`: Sort by last modified date, most recent last. |
+| | | `14`: Sort by last modified date, most recent first. |
+| | | `17`: Sort by tags, ascending. |
+| | | `18`: Sort by tags, descending. |
+| | | `19`: Sort by annotation, ascending. |
+| | | `20`: Sort by annotation, descending. |
| `sortingAnnotation` | `string` | The annotation to use when sorting by annotation. |
| `type` | `unsigned short` | The type of results to return. |
| | | `0`: Results as URI ("URI" results, one for each URI visited in the range). |
| | | `1`: Results as visit ("visit" results, with one for each time a page was visited this will often give you multiple results for one URI). |
-| | | `2`: Results as full visits (like "visit", but returns all attributes for each result) |
-| | | `3`: Results as date query (returns results for given date range) |
-| | | `4`: Results as site query (returns last visit for each url in the given host) |
-| | | `5`: Results as date+site query (returns list of hosts visited in the given period) |
-| | | `6`: Results as tag query (returns list of bookmarks with the given tag) |
-| | | `7`: Results as tag container (returns bookmarks with given tag; for same uri uses last modified. `folder=tag_folder_id` must be present in the query |
+| | | `2`: Results as full visits (like "visit", but returns all attributes for each result). |
+| | | `3`: Results as date query (returns results for given date range). |
+| | | `4`: Results as site query (returns last visit for each url in the given host). |
+| | | `5`: Results as date+site query (returns list of hosts visited in the given period). |
+| | | `6`: Results as tag query (returns list of bookmarks with the given tag). |
+| | | `7`: Results as tag container (returns bookmarks with given tag; for same uri uses last modified. `folder=tag_folder_id` must be present in the query. |
diff --git a/icons/add-device.svg b/icons/add-device.svg
new file mode 100644
index 0000000..10fef2b
--- /dev/null
+++ b/icons/add-device.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/icons/highlight.svg b/icons/highlight.svg
new file mode 100644
index 0000000..74105a7
--- /dev/null
+++ b/icons/highlight.svg
@@ -0,0 +1,3 @@
+
diff --git a/icons/link.svg b/icons/link.svg
index e3a0ae8..cbc15a2 100644
--- a/icons/link.svg
+++ b/icons/link.svg
@@ -1,8 +1,6 @@
-
\ No newline at end of file
+
diff --git a/icons/pin-tab.svg b/icons/pin-tab.svg
index 719eeed..2a30c3f 100644
--- a/icons/pin-tab.svg
+++ b/icons/pin-tab.svg
@@ -1,6 +1,6 @@
-