CSS refactoring (flexbox, animations, skin variants)#3744
CSS refactoring (flexbox, animations, skin variants)#3744muxator merged 70 commits intoether:developfrom
Conversation
#nootherusers, #chatthrob, #focusprotector, #mystatusform, .hotrect, .throbbold
|
Actually, please do not review this PR right now, I will still work a bit on it tomorrow, and also run and fix the tests ! |
f5c7446 to
46c44f1
Compare
|
Note that I also worked on the tests so do pull my branch with fixed tests. |
46c44f1 to
b6ac3f7
Compare
|
I fixed ep_table_of_contents and ep_set_tilte_on_pad, thanks @JohnMcLear for having merged the PR ! Do you see others plugins that might break the UI? I mean plugins which insert content inside the main layout? |
|
ep_webrtc ? |
|
ep_comments / ep_comments2? |
|
Thanks ! Is there an easy way have ep_webrtc working for real in local? |
|
@seballot just install ep_webrtc and install some certs from letsencrypt on a domain. You need to run https, if not maybe it will work in exceptions? |
|
anything on console? |
|
|
|
will check. |
|
Hrm, try remove other plugins and try against latest develop (lots of change lately on develop). It works for me without anything in I could add a protocol check and if it's http mention why it's not working... I just expect everything to be on https nowadays but I guess if you are running locally... |
|
I'd remote any ep_webrtc settings too, might be a bug in that? |
|
Thanks ! but if I just have this message it will not help very much :) I wanted to see the others components of the plugin (like where the video appears etc...) to ensure everything works. You do not know an online instance? Unfortunately settings https on local host in a bit a pain |
|
Amazing ! thanks :) https://video.etherpad.com/p/test |
|
Can I have a brief recap on the status of this and #3726? |
|
Hi muxator ! For this one : etherpad core is now using flexboxes to easily positioning element on the layout (no more absolute positioning with javascript like It simplify a lot the code (both javascript and css) but this change is not compatible with plugins introducing others components in the layout with absolute positioning. I'm am currently fixing those plugins (table_of_content, set_tilte_on_pad, webrtc). But it introduce a compatibility problem between etherpad core version and plugin version, see discussion here about webrtc : ether/ep_webrtc#28 (comment). Your help would be welcome to find a good solution What remain to be done in this PR is fixing the colibris skin re #3726, I will wait this refactor to be done so I could rebase the changes on top of it |
|
@muxator @JohnMcLear I gave more thoughts re the problem of compatibility between core code and plugins Seems to be that the only way to improve the codebase without compatibility problem is to :
WDYT? |
|
I don't mind dragging people up to 1.9 to implement the new CSS. The point is we need to make it clear WHY something is broken if it is, currently it fails silently. That's not good enough.. console.warn("upgrade yo shit"); for example... |
b6ac3f7 to
422088b
Compare
|
Hi ! I fixed all specs (except the slider one), and also the ability to copy the pad text when we are disconnected re the the pad_modal test, actually is was not the gritter popup, but the normal popup like settings or so, and the problem was just how we detect that those popup are open or not But still made some improvement for gritters |
|
Wow great job!! I absolutely can't wait to show people this work |
923fda7 to
b632aa2
Compare
…o modify
In the following commits Sebastian is going to edit three files. This change is
necessary make evident what he is going to modify, because some of them are old
vendorized libraries whose history we might want to reconstruct.
No functional changes.
Command:
sed --in-place 's/[[:space:]]*$//' src/static/js/farbtastic.js
sed --in-place 's/[[:space:]]*$//' src/static/js/gritter.js
sed --in-place 's/[[:space:]]*$//' tests/frontend/specs/change_user_color.js
- rename DOM wrapper because is was blacklisted by some ad blocker - make the template and the lib to add gritter more simple (remove unused option, make template simpler) - add style for gritter error message
b632aa2 to
3886875
Compare
|
It's hard to express the amount of work @seballot has done on this PR. It's gargantuan. I'm focusing on the js changes:
Overall, looking at this PR's diffstat for the js files, it's interesting to observe that the amount of javascript code has indeed decreased, despite the introduction of new functionalities (skin variants, animations). |
|
We should be looking to contribute to gritter and farbtastic with some changes instead of going off piste. |
|
I'm gonna write some front end test code that finds every input and tries to inject some xss |
In general, I totally agree. In this case, these libraries were already vendorized: hopefully who decided to vendorize them had already done a cost/benefit analysis. We are paying that cost now. |
3886875 to
e4077b1
Compare
|
The skin variants builder at http://localhost:9001/p/test#skinvariantsbuilder is super cool. We have to mention it somewhere prominent! |
|
Merged, many thanks for the good work! 🚀 This is an awesome advancement in the quality of the frontend code. |
|
Can I ask something personal? I am not particularly fan of flat buttons with no borders. Would it be terribly difficult to have an options for having light borders on the formatting buttons? It would be ok even if having a border just around the button groups, just not completely flat. Is it possible? |
|
Hi ! thanks for having reviewed the code so quickly, and for the nice and instructives comments. I did not thought of XSS :) re re skin variant, yes I find it also quite fun. I think I will add it in etherpad.org when I will change the screenshots re flat design, yes we could add a variant to enable or not flat design. The non flat design (=skeuomorphism design) could add small shadow on the editor, some border for the buttons etc.. Will think about it ! If you have some good examples of website with nice non flat design, you can give them ! Maybe github is one of those examples? |
|
RE farbtastic and gritter, the point is more that we will need to update those packages periodically and when we do we don't want to lose your customizations.. |
|
@seballot Can we document a few things on new issues. -- Each line item warrants a new issue imho.
|
|
I am not sure if we really need this. Have a look at the git history of It was copied in the repo in 2013 and modified a few times, last one in 2015. Does not feel like something we cared to maintain. And by now it's a very custom thing. |
|
Well at a bare minimum we should mention that it's a modified version of an original project and that the technical debt is ours to maintain and we are unable to commit back. |

As we discuss earlier with @muxator and @JohnMcLear here is a pull request to improve the css code base
Main idea was to simplify the code, i.e. stop using absolute positioning lead by javascript, stop using table for positioning elements, and use flex box instead to make the design more responsive and auto adjustable
Note re the pull request