yikuansun / progenflares

procedurally generated lens flares
https://lunalgraphics.github.io/about-progenflares
6 stars 0 forks source link

UI/UX of the plugin #1

Open mustafaGFX opened 3 years ago

mustafaGFX commented 3 years ago

hi we can start developing the UI/UX of this plugin as soon as possible :)

yikuansun commented 3 years ago

@mustafaGFX Sure! What are your ideas?

mustafaGFX commented 3 years ago

my ideas about the user experience aren't very deep and Not affecting the general programming of the plugin, and the user interface as well, so what do you think of start improving the UX/after finishing The basics of the plugin

cus I notice that it's not giving The expected outcome

mustafaGFX commented 3 years ago

My thoughts about the UX are related to the:

My thoughts about the UI are related to the:

but I think that the priority is back to the back end first, I don't want you to get distracted by the front end while the back end still needs some working

mustafaGFX commented 3 years ago

look I will tell you my thoughts about the user experience development, in case you needed them

as for the result preview I noticed that the result takes a while to be done when updating it or even when open the plugin for the first time.... and sometimes it go slow In the case of large documents

and I believe that The size of the preview image does not need to be the same size as the final result layer, Not only in our case, but in all cases the preview is so much smaller than the final result to make the using process easier and faster

so what do you think of adding a finish button next to the update the document button? and this finish button tells the plugin to send the final high-quality image with the same size of the document to photopea And swap it with the preview image

Screenshot (187) . . . .

if that was done, we can dispense the update the document button and make the document updated automatically after completing the task (Raise the mouse button or press Enter)

Screenshot (187) (1)

mustafaGFX commented 3 years ago

when I said :

and make the document updated automatically after completing the task (Raise the mouse button or press Enter)

I was mean that :

photopea-online-photo-editor-2021-06-01-23-12-50_3TJkf8xk (1)

mustafaGFX commented 3 years ago

almost all the input boxes and the buttons will be replaced with sliders and icons, butwe can make them buttons as an elementary form for now and let the UI to the end

yikuansun commented 3 years ago

if that was done, we can dispense the update the document button and make the document updated automatically after completing the task (Raise the mouse button or press Enter)

Almost done with this... lowering the resolution makes the preview smaller, I am planning on making it resize the preview to be big enough but for some reason the layer.resize script isn't working

mustafaGFX commented 3 years ago

great work :)

Almost done with this... lowering the resolution makes the preview smaller, I am planning on making it resize the preview to be big enough but for some reason the layer. resize script isn't working

ask iavn maybe he can help you

but I have an idea and I'm not sure if it can make any sense or not, Instead of lowering the resolution of the original image to make it smaller, why doesn't it create a different image with a small size and send it first, I mean the preview image has nothing to do with the final image

and after the user finish the editing and ask for the final image you generate the final image for the first time I'm not sure if this makes sense or can be done, but I thought it might help you

mustafaGFX commented 3 years ago

oh sorry I miss understood

I am planning on making it resize the preview to be big enough but for some reason the layer.resize script isn't working

now I got it maybe Ivan can help you

yikuansun commented 3 years ago

@mustafaGFX

I fixed the problem, now the low quality preview is fully functional, the preview is added automatically after values are changed, and there is only a finish button which sends the high quality image.

What should we do next?

mustafaGFX commented 3 years ago

great really great❤️ the next step is the ease of use, and let's let the layout to the end (UI design stage)

ease of use includes some points which are :

Control places by clicking:

here is my idea : when the mouse curser get close to the light point, the visual control appears (like a hover), and the same thing happens to the point of multi iris light

https://user-images.githubusercontent.com/70863817/121427228-bf6e5380-c974-11eb-9ee8-9ba742039999.mp4

https://user-images.githubusercontent.com/70863817/121428846-8e8f1e00-c976-11eb-81b7-8b0bffa43872.mp4

. . .

regarding the ring, its visual control works in the same way, but with a ring instead of a line

gif psd

sliders :

It's tiring to put every value by typing, we can use the sliders instead of that, we can use the same default browser sliders as photopea does without any look customization Screenshot (189) (1) (1)

I will start working on the UI design and the branding and visual identity of the plugin, it will be highly professional :) also, I have some ideas like safe settings as default, save preset, and chose the flare look (by blending modes), but for now, Ease of use is worth working on

mustafaGFX commented 3 years ago

What should we do next?

so the next steps are:

BTW I found the best points visual control is just a little circle like photoshop

Screenshot (145) (1)

New Project (39)

https://www.photopea.com/#iTN68GlKH

yikuansun commented 3 years ago

@mustafaGFX Great, I'll start working on these! The point controls seem easiest so I'll probably roll those out first.

You mentioned that you had ideas about save preset... in my non-plugin version (I developed the plugin so that there is flexibility to use the same code for a standalone app), which you can see at https://yikuansun.github.io/progenflares/, I have a very primitive save system. One of the export options is JSON, and you can copy the text in the outputted file into the landing page. As I said, this is very primitive (and it doesn't even work in the plugin version), so I'm open to your ideas. 😃

mustafaGFX commented 3 years ago

One of the export options is JSON, and you can copy the text in the outputted file into the landing page

yea I have tried that, and I think it can be very much better, I have a good idea that can solve this problem efficiently and get two birds by one stone, but I'm not sure if it can be done

my idea is to save the last values that the user has set to the next time, the next time the user changes these values is updated itself to the next time... And so on... I have read an article about how to set default values in javascript https://dev.to/samanthaming/3-ways-to-set-default-value-in-javascript-2253

we can add an extra feature (and I think it the easiest) if the user clicks on (save as default) the values become default until he clicks on the button again

regarding the preset export, we can use JSON files as the file extension for the preset, when the user drag and drop the JSON that has each value, the plugin import it and set the values automatically, and when he clicks onsave preset the plugin export a JSON file that has all values

save preset is an extra feature, which means we can put the button into a menu or by a small icon, we will reach the perfect look and experience after the UI stage,

now I work on the branding, and after I finished I will start developing the UI, I have a little experience with HTML and CSS, would you like me to work on it, or would you rather type all codes by yourself?

I'm not sure if my skills in coding allow me to work on a full project, but I can try and if I couldn't I will tell you

yikuansun commented 3 years ago

@mustafaGFX I added save as default and save as preset. save as default Isn't perfect 'cause it uses the cookies API, which is pretty horrible. I also added both of the visual point controls (not the ring yet, though).

You may write the HTML and CSS on your own and use a fork and pull request. This may be a bit difficult, especially since some of the UI is JS controlled. If you find it to be too hard, you can send pictures of the layout and I will implement them.

yikuansun commented 3 years ago

Also, I noticed that video editors like Hitfilm have "invisible sliders" - you can drag input boxes left and right to change the number value, as if there was an invisible slider on top of the box. Do you think that using this kind of control, rather than normal sliders, would work okay? I think they are good in terms of space and they don't have upper and lower bounds.

mustafaGFX commented 3 years ago

added save as default and save as preset. save as default Isn't perfect 'cause it uses the cookies API, which is pretty horrible

that's pretty mind-blowing, but I think that the save as default doesn't work with the plugin version, I am not even sure that it can be work with the plugin version, but it would be super useful if w find some way to do that . . . .

ou may write the HTML and CSS on your own and use a fork and pull request. This may be a bit difficult, especially since some of the UI is JS controlled. If you find it to be too hard, you can send pictures of the layout and I will implement them.

I find it more difficult than I was thinking. I will design the UI and send you the link, BTW it would be so much better to send the full UI/UX instead of sending pictures, I will send you a link that has the whole plug-in experience and you can try it before implementing them. and I will send it as soon as can, but I want to start working on the branding first

. . . .

lso, I noticed that video editors like Hitfilm have "invisible sliders" - you can drag input boxes left and right to change the number value, as if there was an invisible slider on top of the box. Do you think that using this kind of control, rather than normal sliders, would work okay? I think they are good in terms of space and they don't have upper and lower bounds.

photopea has both, also photoshop and affinity design. we can use both too, the regular sliders for beginners "cuz it's clear", and the invisible sliders for all

mustafaGFX commented 3 years ago

we can use both too

Photopea _ Online Photo Editor 2021-06-15 23-57-07

mustafaGFX commented 3 years ago

any news?

yikuansun commented 3 years ago

any news?

@mustafaGFX The input box dragging system is now fully operational so you can grab the numbers and drag to change, I made the preview faster by using lower-quality JPG for the preview and full size PNG for the final, and I also made some more technical improvements that will help me write code but do not make changes noticeable by normal users. For the web app version I made JPG an export option.

The sliders have been a technical challenge for me due to code structure. Basically, my code updates values by checking all of the input boxes, and this system does not allow for multiple inputs changing the same value. I am thinking about changing the system and I will try my best to get in those sliders :)

yikuansun commented 3 years ago

@mustafaGFX One more thing... while reading about the JPG export, I learned that you can change the quality of the JPG rendered using Javascript, and therefore I am using this method for the low quality preview. Much better than my old way of making an image with actual smaller dimensions and scaling it up, which took a little time. The preview feels much smoother and faster now.

mustafaGFX commented 3 years ago

One more thing... while reading about the JPG export, I learned that you can change the quality of the JPG rendered using Javascript, and therefore I am using this method for the low-quality preview. Much better than my old way of making an image with actual smaller dimensions and scaling it up, which took a little time. The preview feels much smoother and faster now.

yes I have been thinking about this for a long time... at the very beginning, it was taking 1 step to preview the result by just sending the final image.... then we made the preview smaller but it took 2 steps (send and scale-up)... and it wasn't very efficient now it's perfect, I tried it now, and it just surprised me, super-fast, super smooth :)

BTW, if it too hard to use multiple inputs sliders because of the way you write the code at the beginning, I feel the visual slider has the 1st priority, which makes the plugin has the same feeling as the original program (photopea)

today a new plugin has been published by @hxim and it was the same look and feel of photopea, I feel that is a cool thing, what do you thing

also, I am planning to make the plugin has its own identity, but a little bit close to photopea as well, I will start on that after finishing my exams :(

mustafaGFX commented 3 years ago

today a new plugin has been published by @hxim and it was the same look and feel of photopea

you can try this plugin by going to window>more>QR code maker

yikuansun commented 3 years ago

@mustafaGFX I saw that plugin yesterday, it is very good. I like the mimicking-Photopea aesthetic, but I don't think our plugin has to be exactly the same. I actually think that the mimicking-Photopea aesthetic also falls a part a little bit when different themes or configurations are used (even when I set my Photopea theme to super dark instead of dark, it looks a tad bit strange). Also, my plugin has a standalone version, so it'd best not be 100% reminiscent of Photopea. I like your idea of "make the plugin has its own identity, but a little bit close to photopea as well."

yikuansun commented 3 years ago

@mustafaGFX I added the sliders! In case you ever want to use linked slider/number input in your own projects, the JS library is here: https://github.com/yikuansun/advanced-slider

mustafaGFX commented 3 years ago

fantastic I can't wait to finish my exams to enjoy working on this project and some ideas :(