win32ss / supermium

Chromium fork for Windows XP/2003 and up
https://win32subsystem.live/supermium/
BSD 3-Clause "New" or "Revised" License
1.84k stars 61 forks source link

Classic theme problems #627

Open oleedd opened 1 month ago

oleedd commented 1 month ago

The authentic look: image

Your variant: image

Your variant is very similar to the default tabs look (big sizes), and the add button is too small. Please add the authentic variant using the Chromium code (69 and previous).

oleedd commented 1 month ago

Now I see that it has a small width mode, but it has too small height what annoys and is even worse (than big tabs). image And I don't know how to combine it with the modern round url bar what I like.

oleedd commented 1 month ago

Please fix the height using the Chromium value (version 69-).

And there are some hover color problems. Original: image Supermium: image The add button becomes lighter, difinitely not black.

And the tab border should be lighter and continue here: image Originally: image

win32ss commented 1 month ago

Earlier in Chrome's history, the tab heights were closer to the Supermium #compact-ui preset. But in the end, I see that flags will not be sufficient to cover all cases, so the metrics will be user-customizable with various presets for different versions.

XakerTwo commented 1 month ago

looking at screenshots i see few issues

  1. math issue - tab in compact mode looking as normal tab, while non-compact looking as trapezoid with top edge raised, but width of that edge is not adjusted. Math for saving original shape is pretty simple: imagine trapezoid as rectangle with right triangles on sides, calculate ratio between catets of that triangles and hardcode it. Then on raising top edge adjust top points using ratio, so the angle of side edges will remain the same.
    left_top.x = left_bottom.x + tab_height * ratio
    right_top.x = right_bottom.x - tab_height * ratio
  2. new tab button looks as vertically centered, but seems should remain on same position relative to the right_bottom point of the trapezoid of the last tab. If necessary button can be enlarged in right and up direction, using ratio of course
  3. distance between tabs is exactly base of right triangle, so x-coord of bottom-left point of next tab should be next dot after x-coord of top-right point of previouse tab. (this is not marked on screenshots below)

i took oleedd' screenshots, measured some distances in paint, and put it back with some numbers don't think these rules changed between versions, probably exact numbers, but the layout remained the same

Chrome v69

chrome69_tab_general btw ratio here is an original ratio and can be used, but better calculate it from values in code

Supermium in compact mode (similar to original and aligned with new tab button)

supermium_tab_compact

Supermium in standard mode (completely different and misaligned)

supermium_tab_normal

I don't want to add more work to you buuuut early chrome(at least i have my own screenshot of 36.0.1985.49 beta from 2014) has rounded trapezoid tabs that i like more that others... :innocent: and cuz you noted that you works on user customization, would be nice to have skinning option, so such(any) shapes can be possible sure it can be framed as request


EDIT: oops seems i looked at wrong number when measuring chrome 69, anyway only exact numbers changed, logic still same

win32ss commented 1 month ago

Good attention to detail. Another thing is that Chromium used to draw its tabs so that inactive tabs to the right of the first tab would only be drawn at the end of the overlap with the tab to the left. Also, the metrics for tab gaps and tab heights are stored and used in completely different locations from where the tab shape is determined, so coordination is not as simple as it should be. But if all metrics originate from a central location, then it should be easy to do this and maintain constant ratios.

And ultimately ratios may not be an issue if the user can simply specify a set of rules to create the tab shapes (as they are generated by Chromium with a series of Skia shape calls), with possible variations for inactive, active and possibly first tab if inactive.

oleedd commented 1 month ago

Tbh, the screenshots are from Chrome 65. I found that the height is a bit higher in 69: image And the red circle is available there (whereas the big tabs have grey there). And no borders there.

Upd: it looks like the same height as the Supermium big trapezoidal tabs, but the slope is bigger what is more correct and looks nice.

bluedragon-cairo commented 3 weeks ago

will it be possible to make the tab corners round like in Chrome 1-52 version? (DocR keep closes such issues)