cascade icon indicating copy to clipboard operation
cascade copied to clipboard

Add Sidebery / Tree Style Tabs integration

Open Zabooby opened this issue 2 years ago • 48 comments

I'm curious to know your reasoning for adding TCR integration instead of the much more popular and feature rich Sidebery or even Tree Style Tabs?

Zabooby avatar Apr 08 '23 20:04 Zabooby

I gotta be honest – I don't really care much about vertical tabs myself. The TCR integration exists because at some point a friend sent me some half-baked code from their setup for it, and I've just polished that for the v3-rework of Cascade. If someone would want to make a working integration for Sidebery or/and TST I wouldn't mind putting it up, but it's also a lot of work I can't really justify for myself as of rn.

unseen-ninja avatar Apr 08 '23 21:04 unseen-ninja

I am planning to update this Sidebery setup.

Would you then be interested in integrating it into Cascade?

Zabooby avatar Apr 09 '23 07:04 Zabooby

Oh, yeah! That would be lovely actually. Feel free to reach out and share that once done and then we can make it into a full integration on the repo here. c:

unseen-ninja avatar Apr 09 '23 10:04 unseen-ninja

I've decided to switch to TST, after updating most of the Sidebery setup I have come across multiple (small) bugs that were annoying my ocd brain.

TST has way less bugs (still a few kinks to figure out) and has a bigger community around it and I'm making quick progress in making a setup similar to the one above.

Would you still be interested in integration?

Zabooby avatar Apr 13 '23 19:04 Zabooby

Yeah sure! I don't mind either way, and it's not going to be possible to please everyone anyway. So either implementation is fine in my book. ^—^

unseen-ninja avatar Apr 14 '23 11:04 unseen-ninja

Ok so here is what I have so far, I've tried to keep the code as minimal as possible to avoid conflicts: userChrome.css TST settings

Here are all the issues I'm not sure how to fix:

  • Only the first pinned tab is visible when the side bar is collapsed any others are hidden - image - image

  • If an unpinned tabs is playing audio/muted the icon is only visible when sidebar is expanded, not an issue for pinned tabs (not sure if this is meant to be a feature) - image - image

  • There is a weird overlapping effect with pinned tabs when switching to the new tab page, this only happens when switching from any other page to the new tab page only. -image

  • The right click menu on tabs doesn't match themes or css customisations, but I've opened an issue in the TST repo for this - piroor/treestyletab/issues/3322

  • Also how do you expand the url bar to fill the space when horizontal tabs are disabled?

Other than that, animations are silky smooth and everything else works as expected!

Zabooby avatar Apr 19 '23 08:04 Zabooby

Hmm, these are indeed some issues that would need to be ironed out. But apart from that it really does look nice! Thank you so much for this. Could you maybe raise a (drafted) PR for the changes? That way I could take a look and contribute with potential fixes straight to your fork.

Also how do you expand the url bar to fill the space when horizontal tabs are disabled?

I just set it to the full width, and completely hide the Tab Bar.

#TabsToolbar { display: none !important; }
#nav-bar { width: 100vw !important; }

unseen-ninja avatar Apr 19 '23 09:04 unseen-ninja

Just to clarify, can you reproduce all the issues I mentioned?

Zabooby avatar Apr 19 '23 09:04 Zabooby

I can, yeah. I also now have issues with the sidebar not collapsing properly at all after I have restarted Firefox.

Okay.. so a Firefox update just completely borked everything for whatever reason. Screenshot 2023-04-19 at 12 15 05

unseen-ninja avatar Apr 19 '23 10:04 unseen-ninja

Weird, I just restarted Firefox multiple times and have not seen any additional issues

image

I'm on version 112.0.1, you?

Also it doesn't look like you added the TST settings from here. Have you copied it here: image

Zabooby avatar Apr 19 '23 10:04 Zabooby

It's getting weirder and weirder. I just updated to 112.0.1 whcich broke it. The CSS for TST also is put in place, but it doesn't load for me rn. Screenshot 2023-04-19 at 12 35 47

I guess I'll go on a little bit of a debugging hunt! :D

unseen-ninja avatar Apr 19 '23 10:04 unseen-ninja

Okay.. resetting everything and then slowly adding stuff back step by step at least gets me this far. Not quite what you have, but it's a lot better than what I had in the screenshot above. Screenshot 2023-04-19 at 13 11 25

unseen-ninja avatar Apr 19 '23 11:04 unseen-ninja

A couple questions:

  • Are you on Windows
  • Are you still getting the issues I mentioned earlier
  • Could you share you're new css files

Zabooby avatar Apr 19 '23 11:04 Zabooby

I'm not, no. Currently I'm on a Mac, but I can give the whole thing a shot at home on a Windows PC later today. But since the Sidebar doesn't collapse at all for me rn I can't reproduce the issues mentioned above. Juding by the behaviour I get I would assume that they still persist tho.

This is how things are with just the default Cascade Stuff, and the TST CSS added on top.

https://user-images.githubusercontent.com/35840154/233070187-a9bce523-0a80-4fe1-a4f8-152a5934d6c8.mov

Turns out I had some of the TCR Styles enabled on my end, which caused some weird behaviour in the beginning. Not having that results in what can be seen above. And on my machine nothing from your userChrome.css seems to have any effect on how the Sidebar behaves. o:

unseen-ninja avatar Apr 19 '23 12:04 unseen-ninja

So from line 47 till the end is in the addons settings, correct?

Is your userChrome empty other than the Cascade stuff?

This is the code for autohiding the sidebar (add to userChrome):

/* Shrink sidebar until hovered, when using Tree Style Tab */
:root {
  --thin-tab-width: 30px;
  --wide-tab-width: 200px;
}

#sidebar-box:not([sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]) {
  min-width: var(--wide-tab-width) !important;
  max-width: none !important;
}

#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] {
  overflow: hidden !important;
  position: relative !important;
  transition: all 0.2s var(--tst-sidepanel-hide-delay) !important;
  min-width: var(--thin-tab-width) !important;
  max-width: var(--thin-tab-width) !important;
  z-index: 2;
}
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:hover,
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar {
  transition-delay: 0s !important;
  min-width: var(--wide-tab-width) !important;
  max-width: var(--wide-tab-width) !important;
  z-index: 1;
}
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:hover {
  margin-right: calc((var(--wide-tab-width) - var(--thin-tab-width)) * -1) !important;
}

does everything break when you add it?

Zabooby avatar Apr 19 '23 12:04 Zabooby

The stuff from this file is in my userChrome.css file, and these are in the TST-Addon settings; right? It seems to look like that's the way is should be, both from your description and the code itself.

Okay.. Update! I've once again started from a blank slate (new FF profile) and with this it does in fact work like intended! So something is borked with my default profile. I can now (again) reproduce all the mentioned issues aside from:

There is a weird overlapping effect with pinned tabs when switching to the new tab page, this only happens when switching from any other page to the new tab page only.

unseen-ninja avatar Apr 19 '23 12:04 unseen-ninja

Only the first pinned tab is visible when the side bar is collapsed any others are hidden

For fixing this I'd opt to prompt the users to just disable the faviconisation for pinned tabs in the addon settings. That results in them just being treated like normal tabs displaywise. image

Before: image

After: Screenshot 2023-04-19 at 15 27 53

unseen-ninja avatar Apr 19 '23 13:04 unseen-ninja

I like you're solution as it also stops the weird overlapping effect, but then there is no way to discern if a tab is pinned or not, could there be a way to keep pinned tabs distinct maybe using a separator?

Also I found a related bug to the overlapping effect, if you have bookmarks toolbar enabled, as well as pinned tabs, switching to the ntp causes them to overlap.

https://user-images.githubusercontent.com/78969986/233093983-33d8c39a-744e-4193-b930-8daa3713e192.mp4

In the clip I switched from the tst tab to a new tab.

Zabooby avatar Apr 19 '23 13:04 Zabooby

Hmm.. I still cant reproduce the weird clipping behaviour at all. It might be something that happens only because of the windows config? I'll check on that later.

Regarding the pinned tabs – I'm struggeling a little to select the last pinned tab, as it won't work with :last-of-type or :nth-last-child etc. But we can always just take the first non-pinned tab via .tab.pinned + :not(.tab.pinned) and give it a border on top or something similar. What annoys me a little is that the tab content isn't vertically centered in it's surrounding box.

.tab.pinned + :not(.tab.pinned) { background: pink; }
Screenshot 2023-04-19 at 16 02 48

unseen-ninja avatar Apr 19 '23 14:04 unseen-ninja

It is vertically centred for me: image

Zabooby avatar Apr 19 '23 14:04 Zabooby

I hate Firefox so much sometimes. FroggySad

unseen-ninja avatar Apr 19 '23 14:04 unseen-ninja

Proposal tox fix the centering:

.tab,
.tab.pinned {
-  height: 2.8em;
+  padding: .6rem 0;
}

unseen-ninja avatar Apr 19 '23 14:04 unseen-ninja

It looks fine to me.

Zabooby avatar Apr 19 '23 14:04 Zabooby

/*** Hide fake context menu, when right clicking empty area***/
ul[id="tabContextMenu"] {
  display: none;
}

This part of the CSS seems to have some unintended side effects that break the usability of the integration, as it still opens the context menu – it's just not visible. Resulting in a non-hovered yet hovered state.

https://user-images.githubusercontent.com/35840154/233112215-7e28e5b7-f0b0-451a-b501-2342c0e0a11a.mov

unseen-ninja avatar Apr 19 '23 14:04 unseen-ninja

Ok we should remove that line then, I will also mention it in the issue I opened in the tst repo.

Zabooby avatar Apr 19 '23 14:04 Zabooby

Another thing I've found is that if the cursor is right between two pinned tabs it does not count as hovered for the #tabbar as well. :/

https://user-images.githubusercontent.com/35840154/233141924-eb1786d6-46fb-47b9-aec7-e4873b372749.mov

unseen-ninja avatar Apr 19 '23 16:04 unseen-ninja

I think that's happening because of this:

.tab,
.tab.pinned {
  padding: .6rem 0;
}

Without it I can't hover between tabs.

Also have you checked out the snippets from the wiki there might be some helpful stuff?

Maybe this alternate method to hide the sidebar could fix some issues?

Zabooby avatar Apr 19 '23 16:04 Zabooby

I spent some time testing the alternate method to hide the sidebar (taken from the wiki), at it seems to fix the pinned tab issues, they are now all visible when auto hiding.

https://user-images.githubusercontent.com/78969986/233316857-bc26e7ce-3c22-4541-a0d6-706e5378fc11.mp4

This method can also fix the sound/mute icon issue, but it still needs some tweaking. image

The icon overlapping effect doesn't happen and although the bookmarks toolbar still overlaps it slides down to fix itself.

Now the only problem I occasionally get is this weird diagonal effect with pinned tabs. image

Other than that I have no other issues.

Zabooby avatar Apr 20 '23 09:04 Zabooby

Lovely; that really does look primising! Could you update the repo with your code like it is now? c:

I still think that while the pinned tabs may work like this (most of the time) it's still cleaner to use the settings to not faviconise them. They take up the vertical space anyway, so why not just have them be there all the way.

Regarding the sound icon … I'm wondering if it's possible to recreate the icon Cascade uses for the regular tabs? As this would positioned on top of the favicon by default it wouldn't cause issues with the collapsed sidebar.

unseen-ninja avatar Apr 20 '23 10:04 unseen-ninja

Fair enough, do you have the code to have a border to separate them?

Sounds like a great idea, but remember to have the icon in the same position as they appear with pinned tabs.

Zabooby avatar Apr 20 '23 12:04 Zabooby