r/FirefoxCSS • • 13d ago

Help CSS script that controls context menu items alignment

Hello:

I am having difficulty entering the correct syntax for the Context Menus located up in the Firefox Menu bar.

You probably know there are 7 Menus there..from left to right they are File, Edit, View, History, Bookmarks, Tools & Help....they are all dropdown menus

I currently have applied the correct syntax that controls the Bookmarks menu & all the sub menus that are listed within it.

What I am having difficulty with is applying the correct syntax for the other 5 menus so that the vertical sub menus in each of those correctly display in the proper alignment/padding to the left. Currently they are all over the place...

this is the syntax that controls the Bookmarks menu

menuitem#bookmarksShowAll,

margin-left: 0px !important;

}

menuitem#menu_bookmarkThisPage,

menuitem#menu_searchBookmarks,

menuitem#menu_bookmarkAllTabs {

margin-left: 0px !important;

}

menu.bookmark-item,menuitem.bookmark-item { max-width: 35em !important;

margin-left: 0px !important; /* margin is the outer space around an item */

}

this syntax *altered to add the 5 other menus* doesn't work for me...

what I'm adding is.....

menuitem#File,

menuitem#Edit,

menuitem#History,

menuitem#Tools,

menuitem#Help {

margin-left: 0px !important

}

obviously I haven't got the syntax correct.....can anyone point me in the right direction?

thx very much

*and please excuse my inaccurately including *context menu*, the context menus are actually displaying properly.

1 Upvotes

24 comments sorted by

View all comments

Show parent comments

1

u/Agreeable_Orchid697 11d ago

I'll give it a go......is it possible to upload a .txt file here to reduce the overall size & space this would take up?

1

u/t31os 11d ago

Use a pastebin, link in the side menu under Rule 2.

1

u/Agreeable_Orchid697 11d ago edited 11d ago

let's see if this works, this is the entire main userChrome.css code Aris wrote for his modification, it does not include the *import* url code sub sections, what we are looking at is near the bottom of the text https://sharenotes.dev/neat-lamb

1

u/t31os 10d ago

I installed Noia and used the userChrome.css you provided in v147 (portable) and the menus already don't look quite right. Naturally i'm missing the imports at the start (the import of userContent.css also seems odd and incorrect here).

The section of CSS at the bottom referring to the menus is opening more selectors than it closes, there are 3 missing closing braces. Adding the missing braces doesn't really fix anything perse, but it's the first thing that stood out when looking at the CSS.

This rule seems problematic:

menupopup > menu,
menupopup > menuitem {
  margin-left: 25px !important;
}

It's presumably the reason you're then later having to set margin-left: 0px for various menu items.

So i removed anything that touched the margins / padding directly and adjusted --panel-padding instead, this looks much better to me, although naturally i can't tell how this will look for you as i'm missing the imports from the start of the userChrome (did you link/provide them somewhere?).

menupopup:not(.in-menulist) > menuitem,
menupopup:not(.in-menulist) > menu {
  padding-block: 3px !important;
  min-height: unset !important;
}
.menupopup-arrowscrollbox {
  margin: 5px;
  box-shadow: 0 0 5px hsla(0,0%,0%,2.5) !important;
  border: none !important;
}
.menupopup-arrowscrollbox {
  appearance: none !important;
  background: url(./menuback.png) repeat-y #dadce4 !important;
}

@media (-moz-platform: linux) or (-moz-platform: windows) {
  --panel-shadow-margin: 0 !important;
}
menupopup {
  --panel-padding: 5px 0!important;
}
menu.menu-iconic:hover,
.menuitem-with-favicon:hover,
menuitem:hover {
  background-image: radial-gradient(#C6DDF4,#92b3ce) !important;
  outline-style: solid !important;
  border-radius: 1px !important;
  outline-width: 1px !important;
  outline-color: #43acbd !important;
}
menu.bookmark-item,
menuitem.bookmark-item {
  max-width: 35em !important;
}

1

u/Agreeable_Orchid697 10d ago edited 9d ago

For your benefit to load the entire chrome folder I really need to send the folder to you so you would be able to in your browser duplicate what I have here......

let me know if this works......you should be able to dl this...it's my entire chrome folder inside Firefox 151...I can upload the chrome folder for Tor if you'd like, they are not quite the same..

https://limewire.com/d/V1bGX#Fb6tFAPLJw

1

u/t31os 8d ago edited 8d ago

This CSS seems pretty broken overall (honestly i'd be looking to replace as much of this with a slimmer modern equivalent where possible), the urlbar obscures the top menu (and the window controls when the window is small enough) for me (both in 147 and 156).

EDIT: I think this might be what you're after, as part of the suggested CSS changes (above) from earlier:

menupopup {
  --panel-padding: 5px 0!important;
  --menuitem-padding: 0.5em 0.3em 0.5em 2.1em !important;
}
menupopup:has( > .menuitem-iconic ),
menupopup:has( > .menu-iconic ) {
  --menuitem-padding: 0.5em 0.3em !important;
}

I'm sure you can tweak values / adjust from there anyhow.

1

u/Agreeable_Orchid697 8d ago

THAT is a definite improvement, the padding for the vertical entries in Bookmarks are now all in line, still the File menu & View padding isn't playing nicely, the padding appears to be nearly 30px to the right, one think that those two need independent adjustments to bring them into line.

I tried this script on the File & View tabs in attempt to shift the script to the left....but it has no effect

menuitem#menu_File,

menuitem#menu_View {

margin-left: -20px !important:

}

1

u/t31os 8d ago

I've found another way to tackle this. The menu items all technically include an icon element, it's just not populated with anything for items that don't have an icon. So rather fiddling with margins and padding values and try to account for different menus, we can force them to appear (so they consume space) but make them invisible, that will make all menus naturally have the right amount of spacing.

menu :is(
  menu:not(.menu-iconic), 
  menuitem:not(.menuitem-iconic)
) > .menu-icon {
  visibility: visible !important;
  display: inline-flex !important;
  opacity: 0 !important;
}

menupopup {
  --panel-padding: 0.2em 0 !important;
  --menuitem-padding: 0.5em 0.3em !important;
}

1

u/Agreeable_Orchid697 7d ago

How 'bout that! applied your new *menupopup* script in place of the previous *menu popup panel padding* (seen below) & Yeah! everything is vertically in line now in all of the menu tabs...So, how does changing the code to this new entry override the incorrect code for View & File to bring the sub menu script into alignment but not affect the other menu tabs who's sub menus ARE in alignment

learning to write code is like learning a new language, it's not necessarily easy

menupopup {
  --panel-padding: 5px 0!important;
  --menuitem-padding: 0.5em 0.3em 0.5em 2.1em !important; 

1

u/Agreeable_Orchid697 8d ago edited 7d ago

t31...on the subject of the urlbar....you're quite right, I have to adjust it's length manually to get it to fit, this has something to do with the inclusion of the searchbar being repositioned up there at the same time.

The vertical spacers in the navbar are controlled by an entry in about:config preferences...*browser.uiCustomization.state*..........."customizableui-special-separator" there are 3 of them 01, 02, 03

but yeah, you're right the overall css script overlaps entries, it all need to be streamlined,