Add experimental style browser ui

This commit is contained in:
MrOtherGuy 2020-06-01 20:24:22 +03:00
parent 5e0e6e150e
commit f7922f419a
6 changed files with 484 additions and 0 deletions

110
add_style.py Normal file
View file

@ -0,0 +1,110 @@
#!/usr/bin/env python3
#
# usage:
# add_style.py <file_name> <tags>
# where <tags> is a space-separated list of tags to apply for that style (1 minimum)
# OR
# add_style-py --update-only
#
# When called with <file_name> <tags> it will create a new file to chrome/ folder and
# update tags.csv and docs/tagmap.json
#
# With --update-only it will only update docs/tagmap.json based on tags.csv
import sys, os
def filterEmpty(list):
for i in range(2,len(list)):
if list[i] == "":
del list[i]
def createJSON(tagmap,filename,args,onlyupdate):
charBuffer = "{\n"
map_last = len(tagmap) - 1
n_line=0
for line in tagmap:
tokens = line.rsplit(",")
filterEmpty(tokens)
if len(tokens) < 2:
continue
charBuffer += "\"{}\":[".format(tokens[0])
for t in range(1,len(tokens)):
# if len(tokens[t]) > 0:
charBuffer += "\"{}\"".format(tokens[t])
if t < len(tokens)-1:
charBuffer += ","
if(n_line < map_last):
charBuffer += "],\n"
else:
if onlyupdate:
charBuffer += "]\n}"
break
else:
charBuffer += "],\n"
n_line += 1
if not(onlyupdate):
charBuffer += "\"{}\":[".format(filename)
for t in range(0,len(args)):
charBuffer += "\"{}\"".format(args[t])
if t < len(args) - 1:
charBuffer += ","
charBuffer += "]\n}"
with open("html_resources/tagmap.json","w") as json:
print(charBuffer,file=json)
print("wrote JSON\n")
def searchFile(tagmap,name):
for line in tagmap:
if name in line:
return True
return False
def createNewFile(name):
text = "/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/{} made available under Mozilla Public License v. 2.0\nSee the above repository for updates as well as full license text. */\n".format(name)
if os.path.isfile("chrome/{}".format(name)):
confirm = input("File {} already exists! proceed (will overwrite) ? [y/N] ".format(name))
if confirm != "y":
print("Aborted")
return False
with open("chrome/{}".format(name),"w") as css:
print(text,file=css)
print("Created chrome/{}".format(name))
return True
if __name__ == "__main__":
if len(sys.argv) < (2 + (0 if (sys.argv[1] == "--update-only") else 1)):
print("usage: add_file.py <filename> <list_of_tags>")
exit()
args = []
for i in range (2,(len(sys.argv))):
args.append(sys.argv[i])
name = sys.argv[1]
update_only = name == "--update-only"
file = open("tags.csv")
tagmap = file.read().lstrip().splitlines()
file.close()
if not(update_only) and searchFile(tagmap,name):
print(name + "exist already")
else:
if not(update_only):
exists = createNewFile(name)
file = open("tags.csv","a")
file.write(name+","+",".join(args)+"\n")
file.close()
else:
print("Only update json")
createJSON(tagmap,name,args,update_only)
print("Done")
exit(0)

3
chrome/test.css Normal file
View file

@ -0,0 +1,3 @@
/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/test.css made available under Mozilla Public License v. 2.0
See the above repository for updates as well as full license text. */

44
html_resources/main.css Normal file
View file

@ -0,0 +1,44 @@
body{background-color: rgb(60,50,70); color: silver; margin: 0px }
#ui{ display: flex; }
#categories{
padding-block: 1em;
box-sizing: border-box;
border-inline-end: 1px solid gold;
background-color: rgb(60,60,70);
max-height: 100vh;
overflow-y: auto;
min-width: 18ch
}
a{ color: rgb(100,150,200); margin-inline-start: 1ch }
a:visited{ color: rgb(150,100,200) }
a:hover{ color: rgb(200,150,100) }
pre:empty{ display: none }
.category{ padding: 0.2em 1em; cursor: pointer }
.currentCategory,
.category:hover{ background-color: grey }
.target{
margin: 0.2em;
background-color: rgb(60,60,70);
padding: 0.5em;
border: 1px solid rgb(40,40,40);
border-radius: 4px;
max-width: 50ch;
cursor: pointer
}
.target:hover{ background-color: rgb(80,80,90) }
#targets{ display: flex; flex-wrap: wrap }
pre{
white-space: pre-wrap;
margin: 1em;
border: 2px inset;
padding: 0.5em;
background-color: rgb(40,50,50)
}
.hidden{ display: none !important }
.target{ display: flex; justify-content: space-between }

139
html_resources/selector.js Normal file
View file

@ -0,0 +1,139 @@
'use strict';
let DB = null;
function initDB(obj){
DB = obj;
Object.defineProperty(DB,"query",{value:function (q,list){
let nlist = [];
for(let key of list || Object.keys(this)){
if(this[key].includes(q)){
nlist.push(key)
}
}
return nlist
}});
return true
}
let previousCategory = new (function(){
let current = null;
this.set = function(t){
current&&current.classList.remove("currentCategory");
current = t;
current.classList.add("currentCategory");
};
return this
})()
function getText(node){
return node.childNodes[0].textContent
}
async function onCategoryClicked(categoryNode){
previousCategory.set(categoryNode);
let names = DB.query(categoryNode.textContent);
for(let c of Array.from(document.querySelectorAll(".target"))){
names.includes(getText(c)) ? c.classList.remove("hidden") : c.classList.add("hidden");
}
}
async function onTargetClicked(targetNode){
const codeBlock = document.querySelector("pre");
let file = await fetch(`chrome/${getText(targetNode)}`);
let t = await file.text();
codeBlock.textContent = t;
}
function onSomeClicked(e){
let cl = e.target.parentNode.id;
switch(cl){
case "categories":
onCategoryClicked(e.target);
break;
case "targets":
onTargetClicked(e.target);
break;
default:
break;
}
}
function createCategories(){
const CAT_PARENT = document.getElementById("categories");
CAT_PARENT.addEventListener("click",onSomeClicked)
const TAR_PARENT = document.getElementById("targets");
TAR_PARENT.addEventListener("click",onSomeClicked);
const createNode = function(name,type){
let node = document.createElement("div");
node.classList.add(type);
node.textContent = name;
if(type === "target"){
let link = node.appendChild(document.createElement("a"));
node.classList.add("hidden");
link.href = `https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/${name}`;
link.textContent = "Github";
}
return node;
}
const createCategory = name => createNode(name,"category");
const createTarget = name => createNode(name,"target");
const CAT_NAMES = (function(){
let list = [];
for(let key of Object.keys(DB)){
TAR_PARENT.appendChild(createNode(key,"target"));
let things = DB[key];
for(let t of things){
list.push(t)
}
}
list.sort();
let ret = [];
let ns = [0];
ret[0] = list[0];
let i = 0;
for(let item of list){
if(ret[i]!=item){
ret[++i]=item;
ns[i]=0;
}else{
ns[i]++
}
}
let map = ret.map((a,i)=>({name:a,value:ns[i]}))
return map.sort((a,b)=>(a.value > b.value?-1:a.value < b.value ? 1:0))
})();
for(let cat of CAT_NAMES){
CAT_PARENT.appendChild(createCategory(cat.name))
}
}
document.onreadystatechange = (function () {
if (document.readyState === "complete") {
fetch("html_resources/tagmap.json")
.then(response => {
const contentType = response.headers.get('content-type');
if (!contentType || !contentType.includes('application/json')) {
throw new TypeError("Oops, we haven't got JSON!");
}
return response.json();
})
.then(json=>(initDB(json)))
.then(()=>createCategories())
.catch(e=>{console.log(e);document.getElementById("ui").textContent = "FAILURE, Database could not be loaded"});
}
});

View file

@ -0,0 +1,95 @@
{
"Fx65_tabs_on_bottom.css":["tabs","toolbars","classic"],
"Fx65_tabs_on_bottom_menubar_on_top_patch.css":["tabs","menubar","toolbars","classic","patch"],
"autohide_bookmarks_and_main_toolbars.css":["autohide","bookmarks","toolbars","nav-bar","toolbox"],
"autohide_bookmarks_toolbar.css":["autohide","bookmarks","toolbars"],
"autohide_menubar.css":["autohide","menubar","toolbars"],
"autohide_navigation_button.css":["autohide","minimal","navigation","buttons"],
"autohide_sidebar.css":["autohide","sidebar"],
"autohide_tabstoolbar.css":["autohide","tabs","toolbars"],
"autohide_toolbox.css":["autohide","toolbox","toolbars","fullscreen"],
"blank_page_background.css":["dark-mode","flash","blank","background"],
"bookmarksbar_on_new_tabs_only.css":["legacy"],
"button_effect_icon_glow.css":["buttons","effect","minimal"],
"button_effect_scale_onclick.css":["buttons","effect","minimal"],
"button_effect_scale_onhover.css":["buttons","effect","minimal"],
"classic_grid_main_menu_popup.css":["classic","grid","menu","popup"],
"click_selected_tab_to_focus_urlbar.css":["hack","tabs","urlbar"],
"color_variable_template.css":["theme","color","variables"],
"combined_favicon_and_tab_close_button.css":["tab","icon","close"],
"combined_tabs_and_main_toolbars.css":["minimal","tabs","toolbars"],
"compact_urlbar_megabar.css":["urlbar","minimal"],
"dark_additional_windows.css":["windows","dark-mode"],
"dark_checkboxes_and_radios.css":["widgets","dark-mode"],
"dark_context_menus.css":["dark-mode","menus"],
"dark_theme_aware_statuspanel.css":["staus","dark-mode"],
"disable_newtab_on_middle_click.css":["hack","newtab","tab"],
"fake_statusbar.css":["hack","status","toolbar"],
"floating_findbar_on_top.css":["findbar","overlay"],
"full_width_urlbar_popup.css":["ulrbar","popup"],
"google_style_urlbar_popup.css":["urlbar","popup"],
"grid_overflow_menu.css":["popup","menu"],
"hide_statuspanel_when_fullscreen.css":["status","fullscreen","hiding"],
"hide_tabs_toolbar.css":["hiding","tabs","toolbars"],
"hide_tabs_with_one_tab.css":["hiding","tabs","toolbars"],
"hide_tabs_with_one_tab_w_window_controls.css":["hiding","tabs","toolbars"],
"hide_toolbox_top_bottom_borders.css":["toolbox","hiding"],
"hide_urlbar_first_row.css":["urlbar","popup","hiding"],
"linux_gtk_window_control_patch.css":["patch","window-control"],
"menubar_in_toolbar.css":["toolbars","minimal"],
"menubar_in_toolbar_oneliner_compatible.css":["toolbars","minimal"],
"minimal_in-UI_scrollbars.css":["minimal","scrollbar"],
"minimal_text_fields.css":["minimal","urlbar","searchbar"],
"minimal_toolbarbuttons.css":["minimal","buttons"],
"minimal_toolbarbuttons_v2.css":["minimal","buttons"],
"minimal_toolbarbuttons_v3.css":["minimal","buttons"],
"more_visible_tab_icon.css":["tab","icon"],
"multi-row_bookmarks.css":["multi-row","bookmarks"],
"multi-row_oneliner_combo_patch.css":["multi-row","patch","1-line","minimal"],
"multi-row_tabs.css":["tabs","multi-row","toolbars"],
"multi-row_tabs_Fx66%2B.css":["legacy"],
"multi-row_tabs_below_content.css":["multi-row","tabs","toolbars"],
"multi-row_tabs_below_content_legacy.css":["legacy"],
"multi-row_tabs_legacy.css":["legacy"],
"multi-row_tabs_window_control_patch.css":["patch","multi-row","window-control"],
"navbar_below_content.css":["nav-bar","toolbars"],
"navbar_tabs_oneliner.css":["1-line","minimal","tabs","nav-bar","toolbars"],
"navbar_tabs_oneliner_menu_buttons_on_right.css":["1-line","minimal","tabs","nav-bar","toolbars","patch","menubar"],
"navbar_tabs_oneliner_tabs_on_left.css":["1-line","minimal","tabs","nav-bar","toolbar"],
"navbar_tabs_responsive_oneliner.css":["1-line","minimal","tabs","nav-bar","toolbars"],
"navigation_buttons_inside_urlbar.css":["navigation","buttons","urlbar"],
"numbered_tabs.css":["tabs"],
"overlay_menubar.css":["menubar"],
"overlay_scrollbars.as.css":["scrollbar"],
"page_action_buttons_on_hover.css":["urlbar","minimal","effect"],
"pinned_tabs_on_right.css":["tabs"],
"scrollable_menupopups.css":["scrollbar","popup","menu"],
"scrollable_urlbar_popup.css":["scrollbar","popup","urlbar"],
"show_navbar_on_focus_only.css":["urlbar","nav-bar","toolbar","hiding"],
"show_window_title_in_menubar.css":["windows","menubar"],
"status_inside_urlbar.css":["status","urlbar","hack"],
"tab_close_button_always_on_hover.css":["tab","close"],
"tab_loading_progress_throbber.css":["tab","icon","animation"],
"tabs_animated_gradient_border.css":["hack","animation"],
"tabs_below_content.css":["toolbars","tabs"],
"tabs_fill_available_width.css":["tab","tabs"],
"textual_context_navigation.css":["navigation","popup","menu"],
"theme_additional_windows.css":["legacy"],
"theme_color_variables.css":["legacy"],
"theme_popups_and_menus.css":["legacy"],
"theme_sidebar.css":["legacy"],
"theme_toolbars.css":["legacy"],
"toggle_bookmarksbar_with_alt.css":["legacy"],
"toggle_tabs_toolbar_with_alt.css":["hack","tabs","menubar"],
"toolbarbuttons_icon%2Blabel.css":["buttons","icon"],
"toolbars_below_content.css":["tabs","toolbox","toolbars"],
"urlbar_and_popup_equal_width.css":["legacy"],
"urlbar_centered_text.css":["urlbar"],
"urlbar_full_width.css":["urlbar","popup"],
"urlbar_results_in_two_rows.css":["urlbar","popup"],
"urlbar_visible_on_active_tab_click.css":["hack","urlbar"],
"vertical_context_navigation.css":["navigation","menu","popup"],
"vertical_context_navigation_v2.css":["navigation","menu","popup"],
"vertical_menubar.css":["menubar","hack"],
"window_control_placeholder_support.css":["window-control","patch"]
}

93
tags.csv Normal file
View file

@ -0,0 +1,93 @@
Fx65_tabs_on_bottom.css,tabs,toolbars,classic
Fx65_tabs_on_bottom_menubar_on_top_patch.css,tabs,menubar,toolbars,classic,patch
autohide_bookmarks_and_main_toolbars.css,autohide,bookmarks,toolbars,nav-bar,toolbox
autohide_bookmarks_toolbar.css,autohide,bookmarks,toolbars
autohide_menubar.css,autohide,menubar,toolbars
autohide_navigation_button.css,autohide,minimal,navigation,buttons
autohide_sidebar.css,autohide,sidebar
autohide_tabstoolbar.css,autohide,tabs,toolbars
autohide_toolbox.css,autohide,toolbox,toolbars,fullscreen
blank_page_background.css,dark-mode,flash,blank,background
bookmarksbar_on_new_tabs_only.css,legacy
button_effect_icon_glow.css,buttons,effect,minimal
button_effect_scale_onclick.css,buttons,effect,minimal
button_effect_scale_onhover.css,buttons,effect,minimal
classic_grid_main_menu_popup.css,classic,grid,menu,popup
click_selected_tab_to_focus_urlbar.css,hack,tabs,urlbar
color_variable_template.css,theme,color,variables
combined_favicon_and_tab_close_button.css,tab,icon,close
combined_tabs_and_main_toolbars.css,minimal,tabs,toolbars
compact_urlbar_megabar.css,urlbar,minimal
dark_additional_windows.css,windows,dark-mode
dark_checkboxes_and_radios.css,widgets,dark-mode
dark_context_menus.css,dark-mode,menus
dark_theme_aware_statuspanel.css,staus,dark-mode
disable_newtab_on_middle_click.css,hack,newtab,tab
fake_statusbar.css,hack,status,toolbar
floating_findbar_on_top.css,findbar,overlay
full_width_urlbar_popup.css,ulrbar,popup
google_style_urlbar_popup.css,urlbar,popup
grid_overflow_menu.css,popup,menu
hide_statuspanel_when_fullscreen.css,status,fullscreen,hiding
hide_tabs_toolbar.css,hiding,tabs,toolbars
hide_tabs_with_one_tab.css,hiding,tabs,toolbars
hide_tabs_with_one_tab_w_window_controls.css,hiding,tabs,toolbars
hide_toolbox_top_bottom_borders.css,toolbox,hiding
hide_urlbar_first_row.css,urlbar,popup,hiding
linux_gtk_window_control_patch.css,patch,window-control
menubar_in_toolbar.css,toolbars,minimal
menubar_in_toolbar_oneliner_compatible.css,toolbars,minimal
minimal_in-UI_scrollbars.css,minimal,scrollbar
minimal_text_fields.css,minimal,urlbar,searchbar
minimal_toolbarbuttons.css,minimal,buttons
minimal_toolbarbuttons_v2.css,minimal,buttons
minimal_toolbarbuttons_v3.css,minimal,buttons
more_visible_tab_icon.css,tab,icon
multi-row_bookmarks.css,multi-row,bookmarks
multi-row_oneliner_combo_patch.css,multi-row,patch,1-line,minimal
multi-row_tabs.css,tabs,multi-row,toolbars
multi-row_tabs_Fx66%2B.css,legacy
multi-row_tabs_below_content.css,multi-row,tabs,toolbars
multi-row_tabs_below_content_legacy.css,legacy
multi-row_tabs_legacy.css,legacy
multi-row_tabs_window_control_patch.css,patch,multi-row,window-control
navbar_below_content.css,nav-bar,toolbars
navbar_tabs_oneliner.css,1-line,minimal,tabs,nav-bar,toolbars
navbar_tabs_oneliner_menu_buttons_on_right.css,1-line,minimal,tabs,nav-bar,toolbars,patch,menubar
navbar_tabs_oneliner_tabs_on_left.css,1-line,minimal,tabs,nav-bar,toolbar
navbar_tabs_responsive_oneliner.css,1-line,minimal,tabs,nav-bar,toolbars
navigation_buttons_inside_urlbar.css,navigation,buttons,urlbar
numbered_tabs.css,tabs
overlay_menubar.css,menubar
overlay_scrollbars.as.css,scrollbar
page_action_buttons_on_hover.css,urlbar,minimal,effect
pinned_tabs_on_right.css,tabs
scrollable_menupopups.css,scrollbar,popup,menu
scrollable_urlbar_popup.css,scrollbar,popup,urlbar
show_navbar_on_focus_only.css,urlbar,nav-bar,toolbar,hiding
show_window_title_in_menubar.css,windows,menubar
status_inside_urlbar.css,status,urlbar,hack
tab_close_button_always_on_hover.css,tab,close
tab_loading_progress_throbber.css,tab,icon,animation
tabs_animated_gradient_border.css,hack,animation
tabs_below_content.css,toolbars,tabs
tabs_fill_available_width.css,tab,tabs
textual_context_navigation.css,navigation,popup,menu
theme_additional_windows.css,legacy
theme_color_variables.css,legacy,
theme_popups_and_menus.css,legacy
theme_sidebar.css,legacy
theme_toolbars.css,legacy
toggle_bookmarksbar_with_alt.css,legacy
toggle_tabs_toolbar_with_alt.css,hack,tabs,menubar
toolbarbuttons_icon%2Blabel.css,buttons,icon
toolbars_below_content.css,tabs,toolbox,toolbars
urlbar_and_popup_equal_width.css,legacy
urlbar_centered_text.css,urlbar
urlbar_full_width.css,urlbar,popup
urlbar_results_in_two_rows.css,urlbar,popup
urlbar_visible_on_active_tab_click.css,hack,urlbar
vertical_context_navigation.css,navigation,menu,popup
vertical_context_navigation_v2.css,navigation,menu,popup
vertical_menubar.css,menubar,hack
window_control_placeholder_support.css,window-control,patch
1 Fx65_tabs_on_bottom.css,tabs,toolbars,classic
2 Fx65_tabs_on_bottom_menubar_on_top_patch.css,tabs,menubar,toolbars,classic,patch
3 autohide_bookmarks_and_main_toolbars.css,autohide,bookmarks,toolbars,nav-bar,toolbox
4 autohide_bookmarks_toolbar.css,autohide,bookmarks,toolbars
5 autohide_menubar.css,autohide,menubar,toolbars
6 autohide_navigation_button.css,autohide,minimal,navigation,buttons
7 autohide_sidebar.css,autohide,sidebar
8 autohide_tabstoolbar.css,autohide,tabs,toolbars
9 autohide_toolbox.css,autohide,toolbox,toolbars,fullscreen
10 blank_page_background.css,dark-mode,flash,blank,background
11 bookmarksbar_on_new_tabs_only.css,legacy
12 button_effect_icon_glow.css,buttons,effect,minimal
13 button_effect_scale_onclick.css,buttons,effect,minimal
14 button_effect_scale_onhover.css,buttons,effect,minimal
15 classic_grid_main_menu_popup.css,classic,grid,menu,popup
16 click_selected_tab_to_focus_urlbar.css,hack,tabs,urlbar
17 color_variable_template.css,theme,color,variables
18 combined_favicon_and_tab_close_button.css,tab,icon,close
19 combined_tabs_and_main_toolbars.css,minimal,tabs,toolbars
20 compact_urlbar_megabar.css,urlbar,minimal
21 dark_additional_windows.css,windows,dark-mode
22 dark_checkboxes_and_radios.css,widgets,dark-mode
23 dark_context_menus.css,dark-mode,menus
24 dark_theme_aware_statuspanel.css,staus,dark-mode
25 disable_newtab_on_middle_click.css,hack,newtab,tab
26 fake_statusbar.css,hack,status,toolbar
27 floating_findbar_on_top.css,findbar,overlay
28 full_width_urlbar_popup.css,ulrbar,popup
29 google_style_urlbar_popup.css,urlbar,popup
30 grid_overflow_menu.css,popup,menu
31 hide_statuspanel_when_fullscreen.css,status,fullscreen,hiding
32 hide_tabs_toolbar.css,hiding,tabs,toolbars
33 hide_tabs_with_one_tab.css,hiding,tabs,toolbars
34 hide_tabs_with_one_tab_w_window_controls.css,hiding,tabs,toolbars
35 hide_toolbox_top_bottom_borders.css,toolbox,hiding
36 hide_urlbar_first_row.css,urlbar,popup,hiding
37 linux_gtk_window_control_patch.css,patch,window-control
38 menubar_in_toolbar.css,toolbars,minimal
39 menubar_in_toolbar_oneliner_compatible.css,toolbars,minimal
40 minimal_in-UI_scrollbars.css,minimal,scrollbar
41 minimal_text_fields.css,minimal,urlbar,searchbar
42 minimal_toolbarbuttons.css,minimal,buttons
43 minimal_toolbarbuttons_v2.css,minimal,buttons
44 minimal_toolbarbuttons_v3.css,minimal,buttons
45 more_visible_tab_icon.css,tab,icon
46 multi-row_bookmarks.css,multi-row,bookmarks
47 multi-row_oneliner_combo_patch.css,multi-row,patch,1-line,minimal
48 multi-row_tabs.css,tabs,multi-row,toolbars
49 multi-row_tabs_Fx66%2B.css,legacy
50 multi-row_tabs_below_content.css,multi-row,tabs,toolbars
51 multi-row_tabs_below_content_legacy.css,legacy
52 multi-row_tabs_legacy.css,legacy
53 multi-row_tabs_window_control_patch.css,patch,multi-row,window-control
54 navbar_below_content.css,nav-bar,toolbars
55 navbar_tabs_oneliner.css,1-line,minimal,tabs,nav-bar,toolbars
56 navbar_tabs_oneliner_menu_buttons_on_right.css,1-line,minimal,tabs,nav-bar,toolbars,patch,menubar
57 navbar_tabs_oneliner_tabs_on_left.css,1-line,minimal,tabs,nav-bar,toolbar
58 navbar_tabs_responsive_oneliner.css,1-line,minimal,tabs,nav-bar,toolbars
59 navigation_buttons_inside_urlbar.css,navigation,buttons,urlbar
60 numbered_tabs.css,tabs
61 overlay_menubar.css,menubar
62 overlay_scrollbars.as.css,scrollbar
63 page_action_buttons_on_hover.css,urlbar,minimal,effect
64 pinned_tabs_on_right.css,tabs
65 scrollable_menupopups.css,scrollbar,popup,menu
66 scrollable_urlbar_popup.css,scrollbar,popup,urlbar
67 show_navbar_on_focus_only.css,urlbar,nav-bar,toolbar,hiding
68 show_window_title_in_menubar.css,windows,menubar
69 status_inside_urlbar.css,status,urlbar,hack
70 tab_close_button_always_on_hover.css,tab,close
71 tab_loading_progress_throbber.css,tab,icon,animation
72 tabs_animated_gradient_border.css,hack,animation
73 tabs_below_content.css,toolbars,tabs
74 tabs_fill_available_width.css,tab,tabs
75 textual_context_navigation.css,navigation,popup,menu
76 theme_additional_windows.css,legacy
77 theme_color_variables.css,legacy,
78 theme_popups_and_menus.css,legacy
79 theme_sidebar.css,legacy
80 theme_toolbars.css,legacy
81 toggle_bookmarksbar_with_alt.css,legacy
82 toggle_tabs_toolbar_with_alt.css,hack,tabs,menubar
83 toolbarbuttons_icon%2Blabel.css,buttons,icon
84 toolbars_below_content.css,tabs,toolbox,toolbars
85 urlbar_and_popup_equal_width.css,legacy
86 urlbar_centered_text.css,urlbar
87 urlbar_full_width.css,urlbar,popup
88 urlbar_results_in_two_rows.css,urlbar,popup
89 urlbar_visible_on_active_tab_click.css,hack,urlbar
90 vertical_context_navigation.css,navigation,menu,popup
91 vertical_context_navigation_v2.css,navigation,menu,popup
92 vertical_menubar.css,menubar,hack
93 window_control_placeholder_support.css,window-control,patch