Skip to content

Design - theme widget #24

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
56 tasks done
Mirabrar-21 opened this issue Jul 17, 2024 · 54 comments
Open
56 tasks done

Design - theme widget #24

Mirabrar-21 opened this issue Jul 17, 2024 · 54 comments

Comments

@Mirabrar-21
Copy link

Mirabrar-21 commented Jul 17, 2024

@todo





























@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Jul 17, 2024

tasks - 2024.07.17

  • created wireframe
    • created theme_widget wireframe -2h03min
    • gathered ideas about UX improvement - 2h23min
    • discussion -20min
    • recorded, updated task and worklog -17min
    • @output 📦 theme_widget-v0.0.0

worklog

Worklog-38
theme_widget feature improvement


feedback


proposal

@alyhxn
Copy link

alyhxn commented Jul 18, 2024

feedback - 2024.07.18

Thanks for the feedback. You have discussed two points:

  1. The same thing as we already discussed, besides the tick mark you are saying something else should indicate that changes are to be applied to multiple instances.
  2. Dropdown to apply changes to one instance. I think we can already do this if I get you right.

Now for point one, I guess we can give a generic title such as Editor and between the title and tabs section we can have the tags sections where the selected instances can appear.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Jul 25, 2024

tasks - 2024.07.25

  • Added features
    • made a tree suggestion structure on discord -47min
    • created theme_widget_tree slides -1h57min
    • gathered ideas about UX improvement/action buttons - 3h52min
    • made a rough version of theme_widget editor features wireframe -37min
    • discussion -52min
    • recorded, updated task and worklog -16min
    • @output 📦 theme_widget_tree-v0.0.0

worklog

Worklog-39


feedback


proposal

@serapath
Copy link
Member

serapath commented Aug 2, 2024

feedback 2024.08.02

regarding worklog 38

action graph

The actions in the graph explorer are definitely better.
I'm still not happy about the "inject" and "save preferences" being part of the editor.
They should also somehow move to the tree imho.

actions
This has to change a lot.

  1. First - whether a css file is shared or unique depends on the relationship
    in the graph explorer. Either a css file is connected as a sub or super entry to multiple
    components or not. That is what makes it "unique" or "shared".
    Not an entry in an action menu.

  2. What is the difference between import/export/save/load ?

  3. What is "enter theme name"? Can't we just call it "rename" and when clicked,
    you would edit the name in the graph explorer similar to how you would maybe do it in VScode
    or any other "file explorer"?

  4. What is "Default"? Can't we also solve this by assignment or connecting the right theme?
    To pin it or drag and drop it ot something like that?

The "card file box" emoji 🗃️ is a good idea, but should not be part of the action menu.
It should rather somehow be part of the graph explorer.
For every CSS file we should be able to collapse/expand to see all the themes and components
where it is used.

When it comes to save preference or inject or anything that works on multiple files.
Maybe what needs to be done is to first create a GROUP.
An "super entry" that takes multiple links to sub entries (e.g. like a folder),
and then you can trigger an action on that group (e.g. inject or save preferences).
That way, we never trigger anything on actual multiple items,
but we we trigger it on an entry that represents that group?

checkbox
Regarding the checkbox, i think that should be done by clicking the NAME of an entry.
And CTRL or SHIFT clicking names allows to select one or multiple.

Now on mobile you don't have CTRL or SHIFT, so there needs to be an action,
to trigger those modes and that changes the behavior of the touch gesture,
to either select/unselect many or change selected icon on every click.

Lastly, every entry in the tree that is currently open in the editor can also have a special
color in the name or background or a border around the entry name,
so that it is indicated that those entries are currently open in the editor.

any menu or action bar should be displayed BELOW the editor or explorer, not above

  • same with the file tabs of the editor, let's display them below.

regarding theme widget feedback

theme widget
Here you share how multiple selected component instances and clicking inject should update all of them. While we need this feature, i would highly prefer if we change how this works.

Essentially, we would take all these component instances and:

  • maybe drag'n'drop them
  • or link them to another entry in the graph
  • or link every single one of them one by one?
  • or drag'n'drop a theme or css file group onto them?

I'm not 100% sure how we should do it, but the idea is, that we need in general a way to have one or multiple selected entries, and just like files, which can be cut & pasted or drag'n'dropped to move them into a new folder, we need a way to link them to a "theme" which itself is also an entry and if that is done and/or a theme selected, it is applied.

That is how we indirectly decide that something get's injected.

We basically have 3 types of entries we are dealing with here

  • component instance entries (DOM nodes inside the HTML page)
  • css files (one or many) stored somewhere and maybe visible in one part of the graph explorer as files and folders
  • themes, which somehow define a mapping between a bunch of css files and a bunch of components, for now that's supposed to be json files, that specify which css file will be applied to which component.

We could edit that by doing some interaction inside the file explorer.

tabs
Here for example, the "shared" and "unique" tab are 2 different css files which are both associated with the component, e.g. Nina as an instance of a "profile card component" for example.

Now the thing is, for the Nina instance, it doesn't even matter if a css file is unique or shared. Both get applied to Nina.
This information is more interesting to see in the graph explorer to see all the css files associated with a specific instance (e.g. Nina) without all of them being opened in the editor and then to maybe inspect one of those css files in the graph explorer and see all the themes or other component instances where those css files are used.

lastly, usually one would probably also give css files a name rather than just naming all of them "unique" or "shared" :-)

Basically: The editor, when open, does NOT belong to any specific selected component or components. It just shows the content of one or more files (one or many tabs), each of which are linked to one (=unique) or many (=shared) component instances, but that linking can be defined AFTER a file is edited and saved.

We just have to have different types of entries in the graph explorer

  • component instances, such as the DOM element that represents Nina
  • and files, such as "project.css" or "profile.css" or whatever we call them.
  • lastly we can also have a theme like "light.json" and others

They can all be linked back and forth.

@serapath
Copy link
Member

serapath commented Aug 2, 2024

feedback 2024.08.02

feedback worklog 39

Overall the graph explorer looks great, but of course, what needs refinement are the actions and the menu of actions and also the linking between component instances and themes and css files.

graph explorer

Here for example, in the upper part of the image, the light theme has contributor1 as a sub entry, which has header component as a sub entry.

So one would expect, that header component has contributor1 as a super entry, which in turn has light as a super entry, BUT

in the lower part of the image, you can see that header component has light as a super component, which has contributor1` as a sub component, which could mean, that "contributor1" and "header component" are siblings and both under "light", but that is not the case.

Either way, we have to somehow change this and improve it.

actions

Here for example, the actions are great, but if we look at it on a mobile screen, a user would need to scroll to the right quite a bit.
Next, the specific kinds of actions need to be though through each individually and we might find better ways how to integrate them into the explorer and ideally we can even reduce the amount of actions, by presenting them as relationships in the graph explorer and defining how to link entries in the graph to each other, for example:

  • select theme could just be a link between a component instance and a specific theme and defining a "sub" or "super" link between them.

By the way, every css file in the graph explorer should end with .css just so it is easier to identify them.

themes
This one shows "default" and "dark" and can display many more saved ones like "rainbow" as well. To me this is an indicator we should probably just list them in the graph explorer as independent entries somewhere.
Next, you have actions (add, drop), which again, like any graph explorer entry that can have actions, if we made those themes into entries as well, they would be able to have actions.

All we need is a way to define new and change existing "sub" and "super" links between entries in the graph explorer.

I assume, any action in the tree would need an action to link a new sub or super entry or cut the link between an existing sub or super entry. I'm not sure how exactly it would best fit into the graph explorer, but let's figure it out :-)


file actions

Import is a confusing action to me.
If I want to Import a file, is that really depending on which entry is currently active?
The same with export, because for now, the IMPORT and EXPORT was meant to export all or import all in one file, so we have an easy way for a designer to use the theme widget, customize things the way they want and then export everything into a single downloadable file, which can be sent and submitted as a worklog and then the reviewer or anyone can open the website and import that file in their theme widget to see exactly the same changes.

If anything, i could imagine a specific existing or new theme, such as "rainbow" could have an export button to save only that theme and everything related as a single file.
On the other hand, the "import" action should probably be available when clicking the main "theme" folder.

In general, we should think more about which entry should have which actions available.

The RESET action should be a global action, maybe available under the root entry (playproject.io), because it just resets the entire storage.

The SAVE action should not be necessary, because every change is auto-saved in case your computer crashes, but of course, there should be a way to copy/fork/duplicate an existing css file or theme and give it a new name and then edit that to not change the original.
That might be a lot easier.

What we should consider though is redo/undo buttons or arrows to go back in history in case one typed something by mistake, because not having that would be bad if everything is automatically saved :-)

Of course - many "workflows" are possible, but we have to think about the pro's and con's to keep thing super convenient and minimal. All the above are suggestions, so if you feel strongly about something, please share, so we can discuss and fine the best solution.


tool

The INJECT tool
Again, here, the "inject" tool, like any other actions, should be considers by us.
We are the experts. Let's assume we need to use this "theme widget" to do our work as "css designers" every day. Would you want to click an entry and select tool->inject to inject something? Would you also want a "un-inject" to undo such an injection?

How about clicking a css file and instead of "inject" calling it "activate/deactivate"? Would that be more intuitive?

What about linking or unlinking a file or theme as a "sub" or "super" entry of a component instance in the graph explorer?

Could the linking/unlinking be treated as a activate/deactivate (or inject/uninject)?

What would be the smoothest most convenient workflow to make this happen?

While something is linked (or active), wouldn't it be nice if changes show live automatically?

These are the things we need to consider.


preference
So, you can rename a tab?
and then select something from the dropdown?
and then click save preference?

Isn't that like complicated and horrible UX?
I listened to your explanation, but every time i am still confused and have to think about what this is actually supposed to be doing. Do you find it convenient?

A normal file explorer would allow renaming in the file (or graph explorer) and maybe in the tab. But renaming is one action. save a file is another action.
What is "save preference"? is that the same as "save"?
And why do we need to mark it as unique or shared?

preferneces
Maybe this indicates that there is something missing in the graph explorer?
A components VS. a component instance.
There is Cypher and datdot in the graph explorer - are they the same type of instances?
What type of instances are they?
Can i assign a css file to the instance and another css file to the type?
Is that what unique vs shared means?
Maybe we should just make the component type visible as an entry in the tree.

There can be a component type called "button"
And then there can be instances, such as "alert button" or "cancel button", etc...
All buttons look the same.
But some button instances look different.
We need some better support for that :-)

Especially because it isn't that easy....
There are styles/css that apply to every button, e.g. button { .... }
There are styles/css that apply to only a specific button, e.g. #cta_button { ... }
There are styles/css that apply to a group of specific buttons, e.g. .menu_button { ... }

So let's assume i make a separate css file for each of the above.
Or maybe a theme file as well, for each of the above.
I now want to assign a specific "button stylesheet" to all button instances
I want to assign a specific call to action stylesheet to one specific button instance only
But then i want to apply one specific stylesheet to all buttons in the menubar, but not to any other buttons in the page.

So the last option does not concern the actual css "class name", but more all button instances which are used by the menubar component.


theme widget

The action bar at the bottom is not bar, but is it possible to have that bar below the file explorer? This might allow us to execute actions even if a file is not opened in the editor, but only selected. It would be a bit much to always have to open a file first before you can apply any actions to it.

We can definitely play with this option or even have both options available, just like our idea in the task messenger, where we have the "action wizard bar" at the bottom, but messages in the chat history can have "quick actions", which means here specific "graph explorer entries" could allow some quick actions as well.

actions
So this is good, but it should happend below the editor.

Now still - the actions menu with the option visible here are still having the same issue as what i described above and we should think through which actions we need in what form first.

One option could be that it is a "traveling actionbar", which means it is always visible right below the currently selected graph explorer entry :-)


themes
Here again, just like above - this tells us strongly that themes and css files should just be entries in the graph explorer as well and they allow actions such as load and delete and probably also rename and create new, etc... basically everything that a normal file explorer allows as well including copy/duplicate/fork so we can rename the copy and change it to create theme variations without overwriting the original theme.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Aug 6, 2024

tasks - 2024.08.5

  • updated tree explorer
    • made a tree suggestion structure on hackmd -2h16min
    • created tree on figma -3h10min
    • gathered ideas about UX improvement/action on tree - 4h13min
    • read feedback/gave feedback comments on hackmd and discord-1h53min
    • discussion -2h03min
    • recorded, updated task and worklog and hackmd-40min
    • @output 📦 theme_widget_tree-v0.0.1

worklog

Worklog-40


feedback


proposal

@serapath
Copy link
Member

feedback 2024.08.13

I am okay with the + and - button for expand/collapse.
This should be themable, so we can use different icons in different apps where we use the component, but we can try these as defaults.

Otherwise it looks great.

I do think once we have all remaining features figured out, we need to create a very detailed and accurate interactive clickable prototype, so ali can see and make our real graph explorer work the same.

I would recommend to use the exact dataset we have in the playproject website for that interactive prototype :-)

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Aug 15, 2024

tasks - 2024.08.15

  • updated tree explorer
    • made a tree suggestion structure on discord -27min
    • updated tree on figma -2h35min
    • gathered ideas about UX improvement/action on tree - 4h17min
    • read feedback/gave feedback comments on discord-32min
    • discussion -1h38min
    • recorded, updated task and worklog -18min
    • @output 📦 theme_widget_tree-v0.0.2

worklog

Worklog-41


feedback


proposal

@serapath
Copy link
Member

feedback 2024.08.16

img1
why is there a Night/Header.css super entry inside the (...) ...what is that good for?

Basically, when Header.css is linked, you can just click on the

  │     ││┌🗄️night.json:page/projects/datdot🔗
  │     ││├🗄️light.json:page/projects/datdot🔗
  │     │├📂[✨]◀🖼️header.css

on the folder icon to see where header.css is linked to.

img2
First impression here is to rather have a

🗑️

in the graph explorer and have ALL deleted entries in there to either delete them for good (empty the trash) or restore them.
Seems more intuitive than having those kind of listed as a dropup in a bottom menu bar.
What we need though is something like Header.css<--light or datdot-->Header.css, because most of the time we are deleting links and not entries. The entries might still be all there, but a specific link was deleted and we want to restore it

The undo probably also needs a redo option.
I do think, just like browsers, it would make sense to have < and > arrows in the bottom bar for that. That's how browsers do it

img3
This is your other example.
So if Restore becomes a trash bin
And Edit can be removed as you said it can
Then only Undo remains and we add a Redo and turn both into < and > icons like browsers do it.

Users still have the ❓ to get documentation/help for any element in the app to learn those buttons mean undo/redo if they cant find it out by clicking them :slight_smile:

So the idea is to have some sort of user data structure, which always starts with

📚➖[✨]◀🌐playproject.io
  │  └🔃reset
  ├📁📌▶pins/
  │┌🌐playproject.io🔗
  ├📂📂▶📗themes
  │  ├📁📁▶🎨rainbow.json
  │  ├📁📁▶🎨fantasy.json
  │  ├📁📁▶🎨electro.json
  │  ├📁📁▶🎨light.json
  │  │┌📗themes🔗
  │  └📂📂▶🎨night.json📍
  │     ├🗄️🖇page
  │     ├🗄️🖇page/header
  │     ├🗄️🖇page/header/menu
  │     ├🗄️🖇page/projects
  │     ├🗃️🖇page/projects/datdot
  │     ││┌🗄️night.json:page/projects/datdot🔗
  │     ││├🗄️light.json:page/projects/datdot🔗
  │     │├📂▶🖼️header.css
  │     │└📁▶🖼️1
  │     ├🗄️🖇page/footer
  │     └🗄️🖇page/footer/socials
  │┌➕➕▶🇹app
  ││    ┌🗃️css
  └➖➖[📥🪄]◀🧩page
     │       👇
     ├➕➕[📦✨]◀🧩theme_widget
     │       ├📝rename
     │       ├🕳️unlink
     │       ├📌link[➕➕📦📦🆕]        // link as: [➕super/➕sub/📦input/📦output/🆕new]
     │       ├🖨️copy[➕➕📦📦🆕]        // copy to: [➕super/➕sub/📦input/📦output/🆕new]
     │       └❌delete
     ├➕➕▶🧩topnav
     ├➕➕▶🧩header
     ├➕➖▶🧩projects
     │  │┌➕➕▶🇹itemcard
     │  │├▶🧩projects🔗
     │  ││  ┌🗃️css
     │  ││  ││┌🗄️night.json:page/projects/datdot
     │  ││  ││├🗄️light.json:page/projects/datdot
     │  ││  │├📂▶🖼️header.css🔗
     │  ││  │└📂▶🖼️1🔗
     │  ││  ├🗄️data
     │  ├➖[📥🪄]◀🧩datdot
     │  ├➕▶🧩played
     │  ├➕▶🧩smartcontract_codes
     │  ├➕▶🧩wizardamigos
     │  ├➕▶🧩dat_ecosystem
     │  └➕▶🧩data_shell
     ├➕➕▶🧩supporters
     │┌🧩page🔗
     ├➖➖▶🧩our_contributors
     │  │┌➕➕▶🇹itemcard
     │  ├➖▶🧩Nina
     │  ├➕▶🧩Serapath
     │  ├➕▶🧩Jam
     │  ├➕▶🧩Mauve
     │  ├➕▶🧩Fiona
     │  ├➕▶🧩Toshi
     │  ├➕▶🧩Ailin
     │  ├➕▶🧩Kayla
     │  ├➕▶🧩Tommings
     │  ├➕▶🧩Santies
     │  ├➕▶🧩Pepe
     │  ├➕▶🧩Jannis
     │  ├➕▶🧩Nora
     │  ├➕▶🧩Mimi
     │  ├➕▶🧩Helenphina
     │  ├➕▶🧩ali
     │  ├➕▶🧩Ibrar
     │  └➕▶🧩Cypher
     └➕➕▶🧩footer

actually, duplicate could maybe be renamed to copy, but when you click it, it works like link ...so basically just like the options for "link" it would give you those for "copy" but instead of linking, it would be copying.

Clicking link toggles/selects [link] and allows to press other entries in the graph explorer to create a link to those and when done, just click [link] again to turn it into link again
Clicking copy toggles/selects [copy] and allows to press other entries in the graph explorer to create a copy to those and when done, just click [copy] again to turn it into copy again

By clicking the right icon type behind copy/link you can select as what you copy/or link it, e.g. super/sub/input/output/...

Does that make sense?

There are probably many other variations possible. We can discuss :slight_smile:

Also, if you e.g. link an entry under pins/ folder, you basically get "pin" already, so maybe no need to have a separate action "pin" ...it's just link :slight_smile:

also, maybe we could consider removing the icon and instead expanding/collapsing the actions when a user clicks on the "entry icon", e.g.

🖼️ or 🇹 or 🧩 or 🎨 or 📗 or 🌐 or 📌

is what we have for now. That wouls save us an additional icon per entry to make things more concise

Another thing we haven't talked about yet is the

📍 (1.)

which i just made up to indicate which theme is currently selected and used by the app.
It wasn't supposed to be the same as

📌 (2.)

which i added above as a folder icon to link entries to, so they can be accessed quickly. bookmarks basically.

The behavior of the (1.) is interesting, because selecting a different theme should probably be an action only available for themes.
When they are selected, the theme json file contains the names/id's of all component instances and which css files they use and it updates the linking inside the entire app tree to use the new theme. It's almost like automating the work of manually going to every single instance in the app and unlinking/linking new inputs to them i guess.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Aug 22, 2024

tasks - 2024.08.22

  • updated theme_widget
    • updated theme_widget on figma -1h03min
    • UX suggestion prototype -23min
    • gathered ideas about UX improvement/action on tree - 3h20min
    • read feedback/gave feedback comments on discord-13min
    • discussion -30min
    • recorded, updated task and worklog -16min
    • @output 📦 theme_widget-v0.0.1

worklog

Worklog-43


feedback


proposal

@serapath
Copy link
Member

feedback 2024.08.24

path bar
this is great. we should keep that.

But one thing is important, imagine you selected a super entry or an input or output. The bread crumbs navigation has only a simple > to indicate the next level, but it does not show whether that is e.g. a "sub entry" or an "output".
So maybe we need something more here precise here?


regarding collapsing the graph explorer

you say while working on file content you might want to close or collapse the "graph explorer". I do agree.

I had some additional thoughts on that while looking at the editor menu bar:
editor menu bar

  1. if you click any of the tabs, it might show the graph explorer with that entry in focus
  2. if you click another tab, it shows that graph explorer in focus
  3. if you click on the + it shows a graph explorer with nothign selected and an empty editor which updates while you click around in the graph explorer.
  4. clicking around the graph explorer of one tab is updating the editor only when you click the "name" of an entry
  5. another option is in an existing tab's graph explorer, to click the "open" action, which is similar to the plus in the editor tab bar, but it shows the content of the entry that was opened and that entry in now also selected in the graph explorer of that new tab.

This is how vscode does it.
editor

Here you can see 2 tabs.
There is a breadcrumb bar right below the tabs bar that shows the path of the selected tab.
Inside that bread crumbs path you can select and get an entire expandable file explorer

...or in our case the graph explorer should change the selection to the current tab's content and potentially update it if we select something else in the graph explorer.

The bread crumbs bar in our case is always below (not above).

trash
Now seeing your trash can as well and the history of actions that happened with the option to "undo" or "forget" seems like a history of actions... we have actions always leave a mark in the "task messenger', also when it is not a text message.

  1. Additionally, the "bread crumbs" bar shows the current location, but clicking into it, might turn it into an input field with the entire link to the current location visible so you can edit it with the keyboard instead of clicking the bread crumbs.
  2. When you change it and hit enter, you essentially executed a "NAVIGATION ACTION" to update the graph explorer and maybe editor content.
  3. So you could technically have a history of navigation actions just like you have those delete or unlink actions in the trash can... but if we do have that, then why not have ONE HISTORY of delete, unlink and navigation actions?

So it might make sense to just have a console or log history of all navigation actions.

The current content of the bread crumb bar is just the current preparation for the next navigation or other action.

So it would make sense to EXPAND that breadcrumb bar into a console to show also the history of former navigations and other actions.

IDEA:

  • we could integrate he undo/redo actions into that expanded history list to even jump back to a specific point in time
  • the trash can can be removed because we have that log history of all navigation and unlink and other actions now

This means the bottom bar has only the ? now
Maybe we can put that as the first icon in the bread crumb bar to save space. Its not part of the bread crumb bar but they could go into one line.

Other than that:

Yes, being able to collapse the graph explorer with your button is cool.
Just like we can also additionaly expand the bread crumb bar into the history console and collapse it back into the bread crumb bar.

QUESTION:
If the graph explorer is collapsed, but we edit content of a css file, can we record those changes in the history console as well to potentially undo them?

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Aug 27, 2024

tasks - 2024.08.27

  • updated theme_widget_breadcrumb
    • updated theme_widget_breadcrumb on figma -2h23min
    • UX suggested tree structures on figma -50min
    • gathered ideas about UX improvement/action on tree - 4h32min
    • read feedback/gave feedback comments on discord-17min
    • discussion -2h26min
    • recorded, updated task and worklog -11min
    • @output 📦 theme_widget_breadcrumb

worklog

Worklog-44


feedback


proposal

@serapath
Copy link
Member

feedback 2024.08.28

see discord

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Aug 29, 2024

tasks - 2024.08.28

  • made Theme_widget wireframes
    • made Theme_widget wireframes step by steps navigation on figma -1h58min
    • prototype -18min
    • gathered ideas about UX improvement - 1h11min
    • discussion -14min
    • recorded, updated task and worklog -15min
    • @output 📦 theme_widget_step by step

worklog

Worklog-45


feedback


proposal

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Sep 1, 2024

tasks - 2024.08.31

  • made Theme_widget wireframes
    • made Theme_widget wireframes step by steps navigation on figma -5h35min
    • made a structure suggestion on figma also protoyped -51min
    • prototype -50min
    • gathered ideas about UX improvement - 2h12min
    • discussion -47min
    • recorded, updated task and worklog -18min
    • @output 📦 theme_widget_step by step_v0.0.1

worklog

Worklog-46
structure prototype


feedback


proposal

@serapath
Copy link
Member

serapath commented Sep 2, 2024

feedback 2024.09.02

commandbar
I imagine the "first expand" to be more minimalistic

  • the "icon" (=🪄) would become part of the "command input" field with cursor blinking
    • shows maybe the ❓
    • bread crumbs prompt probably collapsed
      • clicking on it will expand the bread crumbs
      • clicking on a breadcrumb entry (e.g. the root entry) might expand the graph explorer
    • shows an input field after the collapsed or a >_ icon after the expanded bread crumbs
      • clicking the input field or icon collapses the bread crumbs (if expanded)
      • and focuses the blinking cursor into the expanded input field
        • shows maybe an additional icon to expand the "command history/console" to see more
    • typing / into expanded and focused input field shows command list
    • typing any other character (e.g. a into an empty input field auto-prefixes it to /a
      • this also shows the dropup of all commands that start with /a...
    • clicking anywhere outside will collapse it into the 🪄 icon again
    • clicking a file entry in the graph explorer selects an entry and updates bread crumbs bar
    • clicking a selected entry in the graph explorer will open up the editor tab for it

docbox3
docbox2
docbox
The help "doc box" looks good.
Let's design it like that and see how it feels when implemented.
If we figure out issues, we can still change the css styling to put it on the bottom,
but so far it seems it could work to me.

inputfield
This looks good as well, but as described above, maybe it could be merged into the "bread crumb" bar, where the bread crumbs collapse into a single prefix name or icon prompt when the input field has focus.

If a user wants to expand the bread crumbs while the input field is contains text and is active, maybe the input field could move to be positioned above the bread crumbs like you have now. That is actually good.

I just think showing it in the bread crumb bar, by collapsing the bread crumb bar into a small icon/text prompt while the input field is focused makes everything even more minimal.

fileexpolrer
Yes, of course my above feedback stands, but otherwise this seems fine.

console
At first impression it is confusing to me. I realized it is the console, but i think i would expext:

  • the input/breadcrumb bar to be below both (graph explorer & command history)
  • if screen is narrow (e.g. mobile) i still expect that
    • but maybe graph explorer and command history would collapse them to be on top of each other
      • graph explorer
      • command history
      • bread crumb bar

And you could resize them or click an icon to switch between them (like tabs?)

additionally, i do think we could maybe allow to expand the command history console only when the input field is already active, which means that expand button for the console could only become visible when the input field is focused, but hide when the input field is not focused ...maybe.

Just trying to find a good UX that keeps things visually minimal ... hmm

editor
I think on a narrow mobile screen, that is exactly how i would it expext to look
But if there is more space, i could imagine the editor being next to the graph explorer and the bread crumb bar being below both of them.

If the command history was expanded as well, i would actually mostly expect that one to extend/expand the bread crumb input bar and also be below both, the graph explorer and editor tabs, which could be split 50/50 left on top of it.

all
So this is interesting.
If a command history entry is short, then having it like that would make sense, because you can see more of them.
IF a command is quite long, then a wide line makes sense and having it as described above, on top of the input bread crumb bar full width, would make more sense.

In that case, the graph explorer left and editor tabs right 50/50 split on top of the bread crumb input & command history bar would make more sense.

Also: the "doc box" should probably be full width on top of EVERYTHING, not just the editor.

an alternative would be, that the "doc box" opens up a "markdown file" in an editor tab to describe exactly the element that was clicked. That way, every component could always "hard code" the help text (similar to our default theme) inside each component itself. It then populates the database and gets opened in an editor tab as help text when elements are clicked while the ❓ is active. Maybe that would be even better?

In that case, it makes sense to open the "doc box" just as a regular editor tab with markdown content.


The remaining wireframes make sense, but everything i already said applies to them as well.

Now your proposed layouts (e.g. with the console on the side) might make sense too sometimes i guess, but then again, i don't think i would ever split the "command history" from the "command line" (=bread crumb input bar), so that command input field should always be below the command history imho. ...like a normal devtools console or a computer terminal.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Sep 5, 2024

tasks - 2024.09.04

  • made Theme_widget wireframes
    • made Theme_widget wireframes step by steps navigation on figma -6h24min
    • prototype -2h19min
    • gathered ideas about UX improvement - 1h16min
    • discussion -1h
    • recorded, updated task and worklog -17min
    • @output 📦 theme_widget_step by step_v0.0.2

worklog

Worklog-47


feedback


proposal

  • For command history suggestion, specific entries can't be expanded. Actions might become available only after selecting an entry,
    breadcrumb, or graph, with icons appearing when selected.

  • Once the icon appears, clicking on it will expand an input field where the command line can be accessed, allowing actions to be executed based on the selected element.

  • duplicate entries will be colored.

  • can't jump/linked to the super or sub entries.

@serapath
Copy link
Member

serapath commented Sep 5, 2024

feedback 2024.09.05
starticon
Great :-)

commandbar
Great, but:

  • can we remove the 🪄 icon here? ...user can click "outside" to collapse
    • make the 🪄 the icon for the root bread crumb :-)
  • i feel the "undo" and "redo" buttons are not important enough to be shown here
    • file explorers dont have them either, because you only need them when you do a mistake
    • we can expand the "console" to display undo/redo there or make them /... commands
  • the empty space when "undo/redo" are removed could be a little input focus button
    • it could have a little >_ icon or just a narrow smallish unfocused input field?

inputfield
great, but same as above and additionally:

  • the icon at the end of the input field should be an x to exit to input field i think
  • the icon at the beginning would just be the 🪄

graphexplorer

One idea from above would be to use :wand: as an icon for the graph explorer root.

(click to expand more) version 12
🪄➖🌐playproject.io/
  ┠pins/
  ┃┌🌐playproject.io/
  ┠➖themes/
  ┃├🎨fantasy.json
  ┃├🎨electro.json
  ┃├🎨light.json
  ┃│┌themes/
  ┃└➖🎨night.json📍
  ┃ ├🔗page:css
  ┃ ├🔗page/header:css
  ┃ ├🔗page/header/menu:css
  ┃ │┌🎨night.json
  ┃ ├➖page/projects:css
  ┃ │├🖌️header.css
  ┃ │└🖌️1.css
  ┃ ├🔗page/footer:css
  ┃ └🔗page/footer/socials:css
  ┃┌🇹app
  ┃│ ┌🎨night.json
  ┗➖🗃🧩page
   ┠🧩theme_widget
   ┠🧩topnav
   ┠🧩header
   ┠➖🧩projects
   ┃│┌🇹itemcard
   ┃│├🧩projects
   ┃││ ┌➖🔗css
   ┃││ ││┌🔗night:page/header:css
   ┃││ ││├🔗light:page/header:css
   ┃││ │├➖🖌️header.css
   ┃││ │└🖌️1.css
   ┃││ ├🔗data
   ┃├➖🗃🧩datdot
   ┃├🧩played
   ┃├🧩smartcontract_codes
   ┃├🧩wizardamigos
   ┃├🧩dat_ecosystem
   ┃└🧩data_shell
   ┠🧩supporters
   ┃┌🧩page
   ┡➖🧩our_contributors
   │┃┌🇹itemcard
   │┠➖🧩Nina
   │┠🧩Serapath
   │┠🧩Jam
   │┠🧩Mauve
   │┠🧩Fiona
   │┠🧩Toshi
   │┠🧩Ailin
   │┠🧩Kayla
   │┠🧩Tommings
   │┠🧩Santies
   │┠🧩Pepe
   │┠🧩Jannis
   │┠🧩Nora
   │┠🧩Mimi
   │┠🧩Helenphina
   │┠🧩Ali
   │┠🧩Ibrar
   │┃🔼 🔼
   │┗➕━🗄🔨🧩{Cypher}
   │ 🔽 🔽 🔧rename📝
   │       🔧unlink🕳️
   │       🔧link📌
   │       🔧copy🖨️
   │       🔧delete❌
   └🧩footer

↪ │ 🌐playproject.io > themes > 🎨night > 🔗page/project > 🖌️header.css


version 13

🪄┱1[0]playproject.io/
  ┠[1]pins/
  ┃┌[0]playproject.io/
  ┠┼1[1]themes/
  ┃├[2]fantasy.json
  ┃├[2]electro.json
  ┃├[2]light.json
  ┃│┌[1]themes/
  ┃└┼1[2]night.json📍
  ┃ ├[3]page#css
  ┃ ├[3]page/header#css
  ┃ ├[3]page/header/menu#css
  ┃ │┌[2]night.json
  ┃ ├┼1[3]page/projects#css
  ┃ │├[4]header.css
  ┃ │└[4]1.css
  ┃ ├[3]page/footer#css
  ┃ └[3]page/footer/socials#css
  ┃┌[0]app
  ┃│ ┌[2]night.json
  ┗╅1┴2[5]page
   ┠[5]theme_widget
   ┠[5]topnav
   ┠[5]header
   ┠┬1[5]projects
   ┃│┌[0]itemcard
   ┃│├[5]projects
   ┃││ ┌┰1[3]css
   ┃││ ││┌[3]night#page/header#css
   ┃││ ││├[3]light#page/header#css
   ┃││ │├┴1[4]header.css
   ┃││ │└[4]1.css
   ┃││ ├[3]data
   ┃├┴1┴2[5]datdot
   ┃├[5]played
   ┃├[5]smartcontract_codes
   ┃├[5]wizardamigos
   ┃├[5]dat_ecosystem
   ┃└[5]data_shell
   ┠[5]supporters
   ┃┌[0]cardlist
   ┃├[5]page
   ┡╅1[5]our_contributors
   │┃┌[0]itemcard
   │┠┴1[5]Nina
   │┠[5]Serapath
   │┠[5]Jam
   │┠[5]Mauve
   │┠[5]Fiona
   │┠[5]Toshi
   │┠[5]Ailin
   │┠[5]Kayla
   │┠[5]Tommings
   │┠[5]Santies
   │┠[5]Pepe
   │┠[5]Jannis
   │┠[5]Nora
   │┠[5]Mimi
   │┠[5]Helenphina
   │┠[5]Ali
   │┃┌[0]itemcard
   │┃│▽ △
   │┡┷1┯2🛠[5]{Cypher}
   ││ ▽│△
   ││  ├[2]zip
   ││  └[2]zap
   │└[5]Ibrar
   └[5]footer

↪ │ [0]playproject.io > [1]themes > [2]night > [3]page/project > [4]header.css

once that is the case, the 🪄 just becomes the first icon for the first bread crumb and also the root icon in the graph explorer of course.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Sep 8, 2024

tasks - 2024.09.07

  • made Theme_widget wireframes
    • made Theme_widget wireframes step by steps navigation on figma -3h19min
    • prototype -3h02min
    • gathered ideas about UX improvement - 20min
    • discussion -10min
    • recorded, updated task and worklog and hackmd-40min
    • @output 📦 theme_widget_step by step_v0.0.3

worklog

Worklog-48


feedback


proposal

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Sep 21, 2024

tasks - 2024.09.20

  • made Theme_widget wireframes
    • made Theme_widget wireframes step by steps navigation on figma -4h12min
    • prototype -3h09min
    • gathered ideas about UX improvement - 40min
    • discussion -12min
    • recorded, updated task and worklog and hackmd-17min
    • @output 📦 theme_widget_step by step_v0.0.4

worklog

Worklog-49


feedback


proposal

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Oct 8, 2024

tasks - 2024.10.08

  • made Theme_widget terminal UI
    • made Theme_widget terminal UI from scratch step by steps navigation on figma -7h53min
    • varients -1h12min
    • UX suggestion wireframes - 1h34min
    • gathered ideas about UX improvement - 5h13min
    • discussion -2h26min
    • recorded, updated task and worklog -19min
    • @output 📦 theme_widget - Terminal UI-v0.0.1

worklog

Worklog-50


feedback


proposal

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Oct 8, 2024

tasks - 2024.10.08

  • made Theme_widget hackmd slides
    • made Theme_widget hackmd slides step by steps navigation -3h29min
    • recorded, updated task and worklog and hackmd -24min
    • @output 📦 theme_widget

worklog

Worklog-51


feedback


proposal

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Jan 9, 2025

tasks - 2025.01.09


worklog

worklog 53


feedback

Made theme_widget explanation video about , graph explorer, tabs, editor and action wizard


proposal

@serapath
Copy link
Member

feedback 2025.01.19


worklog-47 #24 (comment)

remaining feedback worklog 47

In worklog 47 you share there is a problem with the command list /... when e.g. the night theme is selected, but as you mentioned, YES, when you click the earlier > symbol of another bread crumb segment, e.g. from theme > then the actions would apply to the theme instead of night.
Actualy, the "home" icon shown in the input bar here:
command list
should represent the collapsed breadcrumbs using the icon of the entry that represents the current target for the input field, such as e.g. night theme or themes folder

In worklog 47 you talk about he command history and compare it to devtools and how there is a button to select icons. This is all a perfect idea and it should exactly work like this, but i dont think we need that special "select icon", because if the command history is expanded and you click a different bread crumb or entry in the graph explorer, the command history will automatically adapt its view to it.


create theme suggestion feedback

from: https://www.youtube.com/watch?v=cNgGLqnHeeM

 ------------------------------ -------------------------------
| graph explorer               | editor view                   |
 ------------------------------ -------------------------------
| [>_] [/] | _       ❌➡️| [tab1 x][tab2 x]... [<][>] [10] [?] |
 --------------------------------------------------------------


=(❌)=>


 ------------------------------ -------------------------------
| graph explorer               | editor view                   |
 ------------------------------ -------------------------------
| [>_] [/] |play>theme>night 🔍| [tab1 x] ...  [<][>] [10] [?] |
 --------------------------------------------------------------

=🔍=>


 ------------------------------ -------------------------------
| graph explorer               | editor view                   |
 ------------------------------ -------------------------------
| /new theme (creates a new theme)🕳📌🔘|                         // autocomplete dropup menu
 ------------------------------ -------------------------------
| [>_] [/] | /new    ❌➡️| [tab1 x][tab2 x]... [<][>] [10] [?] |
 --------------------------------------------------------------

inputform
fill out input form as inspiration from discord is nice, but we should cross compare it with
the "steps wizard" from the datdot app! but otherwise, you are on the right track with the direction
this is going into :-) cool.

enter screen
Here you show some options available when the user clicks enter.
Now this is another evidence why we should take a look into the datdot steps wizard.
Every action might need a different kind of custom box like what you show here.
Some actions dont need such a box at all, some others might need even more boxes based
on the decisions in the first box. ...a wizard can have multiple steps.
So we should make this a bit more systematic :-) ...but good points otherwise.

So in the case above, you need multiple form inputs to really specify what will happen

  • theme name
  • theme files or data

So as a "steps wizard" in the datdot sense, this action wiard should have 2 steps before completing/submitting the form and trigger the action execution.

Lastly, the "PREVIEW" should be seperate from the wizard and should get updated with each completed wizard step. Maybe the first step should be to select theme content and the second one to select a name.
Maybe there is a hidden step, which is already prefilled out by the bread crumb which was selected when opening that input field command list.

One thing to notice:
file picker
This UI is a built in browser UI for picking files.
This is not a component built with js/html/css. Its not part of the youtube website.
Any website that allows you to upload files from your computer will use this file picker UI.
Its part of the browser.

But yes - if an action or command requires to get files, then that is something that should happen in
one of the "action wizard steps" that slowly ... step by step ... complete filling out the form required to execute a specific action

In the context shown above, you would probably have a step to first select the "mode"
e.g. "move files" and that would trigger the next step where you pick what to move.
...every step wizard can have different steps custom to the specific action.

another step
Here this graph explorer can be shown also inside the last step of the step wizard for this action.
Its just another instance of the graph explorer specifically to complete this step wizad action form

There should be a fine scroll bar (just like vscode editor tabs bar does it) to indicate that
the input field can be scrolled to show all the steps hidden because of lack of space currently.
But ...lets also see how the steps wizard in datdot does it. Every step has a NAME too :-)


worklog-48 #24 (comment)

action bar
You show this after a user clicks the > in ...🖼️1.css( > ), which makes sense,
but the icon used in the beginning of the command line should now be 🖼️ and
the text should be 1.css represent the bread crumbs with the current active location for the commands.

The icon not, but at least the text is shown correctly in a later version in the worklog:
input bar

It was good, that in the bread crumbs, the 1.css had a slightly different focus highlight color.
Clicking the 🖼️ should toggle the graph explorer and clicking the ❌ should close the input command line and re-expand the bread crumbs bar. There should also be a "submit" icon next to the to actually send a typed command.


command history
This is confusing, i expected clicking the [>_] icon at the end will expand the "command history".
What is this supposed to do? I thought clicking the > next to any of the bread crumbs is already
showing the command line so what other or different "Type here..." would i get when clicking [>_]?

Let me know, but i thought no matter which > bread crumb i clicked to enter command line,
the [>_] can be used to expand/collapse the command history (like a console/terminal history).

Especially later in the worklog you show both at once:
double input line
And i am confused and forgot why we have that and what is the difference between those two input fields?

What i can imagine or see is yet another icon next to e.g. [>_] to popup some sort of 'search/filter/sort' bar instead of a command line to trigger actions, to help us e.g. find and navigate through the graph explorer or find and navigate through the list of possible commands and so on ...


editor
Now this view is interesting when clicking e.g. 1.css.
This is clearly a desktop view and we also have to design how this works when the screen gets small in a mobile context and generally we need to add how components adapt responsively in different size contexts.

Now what this also suggest is, that when the editor is collapsed, we might still want to be able to see and switch or re-open any "open file", such as any of the tabs below the tabbed editor, thus, while an editor should be collapsible, maybe the tabs bar should still be visible.

In fact, each tab, when you click it (lets assume they are different and not all just editor tabs for 1.css, which means when i click a tab with a different content, e.g. such as eh... 2.css, it should change what is visible in the "bread crumbs" bar as well.

  1. we need to be able to scroll the tabs bar when more tabs are open then there is space in the tabs bar
  2. probably the currently active tab should always expand to show a breadcrumbs bar, while
    • the previously open bread crumbs bar of the former active tab should collapse back into just a tab.
  3. we might need some sort of [+] button to dynamically allow a user to click and add an entirely new tab to the tabs bar, where choosing which content to display in the new tab should probably come from a graph explorer popup/overlay/etc... to choose the content file for the new tab :-)

AGAIN - here you mention a problem with the [>_] icon, but in my mind that is just the icon to expand/collapse the "command history" for the currently selected tab. A full width console chat like history that expands above the "action/tabs bar" and below both, graph explorer and editor tiles.

commandline
So in a way what you then continue to show is kinda what i just described, just that it is a single input line instead of the scrollable multi line "command history" view.


question
I can see one problem.
When the ? is toggled and active, anywhere you click should NOT cause any action inside the overall app,
but instead show help information about it in the "doc box".
Now if the "doc box" itself gets opened as a regular tab and we now have the questionmark active.
Of course we can click for example somehwere in the graph explorer (not to select stuff, but to display information about it in the "doc box"), but what if we instead click on the "doc box" tab or try to scroll the doc box? ...do we now get information about the scrollbar or close the tab or does it displa information about it? ...but how can we scroll the doc box? do we first need to click the ? again to cancel "doc box" mode and allow the scrollbar to work? ...but does that mean canceling the ? will keep the "doc box" tab open and we have to close it manually? What if we toggle the ? multiple times in a row?
Will the second one open a second "doc box" tab or re-use the former one?

And what if we toggle ? to make "doc box" inactive, but then or before we click on the "doc box" tab to select different content from the bread crumbs, so it doesnt even show the "doc box" content anymore, but something else? If we now click ? again to make "doc box" active, will it override the different content in the tab formerly used for the last time we made "doc box" active or will we then open a second tab?

...overall, questions over questions. Whats you take on this?

Given that, i kind spontaneously feel like maybe the special extra "doc box" on top of the entire app was better? ...hmm - just brainstorming still.

Also - a bit "meta", but i just had another thought about this:

  1. the "theme widget" shows the playproject code structure and content
  2. on any other app, the "theme widget" would display the code/content of that project.
  3. the "help" button is part of the theme widget UI and the doc box would display help about how the "theme widget" works (e.g. what you can click and do), not how the project you are exploring works.
  4. This means, the markdown files or whatever the help content that gets display is all about:
    • is NOT stored in the current grpah explorer project, like playproject
    • it is instead stored in the "theme widget" codebase itself, because only that knows how the theme widget functions and what to display based on which theme widget feature.
    • so another argument, that it is NOT the same as a tab that displays graph explorer content from the current project
  5. finally, there is ONE exception, which is, if the "theme widget" is used to explore its own code base.
    • in that case, the explored projet and the actual theme widget UI to display help, are kinda the same
    • but this is a special case i would explore when we implemented the theme widget and use it already.

mobile view bar
Interesting that in mobile view the bread crumb bar and tabs bar get displayed on top of each other.
Maybe thats good. I would keep it in the same bar, but of course, on mobile there isnt much space.
So if thats the case, i would still put the "tabs bar" BELOW the "bread crumbs bar".
Why?
Because the bread crumbs are details of one tab, so tab is more overview, while bread crumb bar is more details. The bread crumb is still overview compared to the actual editor with content, which is all the details about the content of a specific file. If we go from more overview towards more details when we go from bottom towards top, then naturally the more overview ui element "tabs" should be below the less overview ui element "bread crumbs bar", which should be below the even more detailed content, the actual "editor content.

Also navigation wise thats true:

  1. navigating to a different bread crumb can change the editor content, just like
  2. navigating to a different tab can change the bread crumbs content

@serapath
Copy link
Member

serapath commented Jan 15, 2025

feedback 2025.01.15

worklog-49 #24 (comment)

comand bar
comand bar
This looks good, but i do think clicking on the initial 🪄 icon should open the command bar
and also directly focus into the command input field ready to autocomplete type a command.

But beyond that, i think we have to take a moment to think about all the things we need to do.
Given a specific breadcrumb path, like what is displayed in the screenshot above, we want to:
0. RESPONSIVENESS - everything should work on a wide desktop screen, but also on mobile!

  • this includes any field that could have more content then the width (or height) of the screen allows. What happens?
  1. enter a command for a specific entry with autocomplete command list already expanded
    • TODO: expand/open autocomplete command list for current entry command input line
    • by e.g. clicking ">" (default focus when initially opening command bar by clicking 🪄)
      • exit into bread crumb bar by clicking ""
      • the entry name is a placehodler text in the background of the input field to indicate
      • or click prefix "🔍" to toggles (=expands/collapses) graph explorer
        • TODO: consider switching from a search to an edit pin icon, e.g. "✏️"
        • turns bread crumbs into editable path.
        • use autocomplete typing to change the breadcrumb path or copy/paste it
        • exit into bread crumb bar by clicking ""
        • exit into bread crumb bar by clicking "➡️/➤/↩/✔/▶" to confirm changed path
      • click command line to focus it again with autocomplete command list expanding
        • start typing to autocomplete fill out a command from autocomplete command list
      • TODO: add "wizard steps" forms for commands with multiple parameters
      • add a "➡️/➤/↩/✔/▶" icon to send/execute a selected command (next to or after "")
  2. open the graph explorer for a specific entry
    • by e.g. clicking the "icon" of a bread crumb - clicking the name again collapses it
    • the root entry, e.g. "playproject" needs its own icon separate from 🪄
  3. change the program to open a specific bread crumb entrys extension area:
    • by e.g. clicking on the "extension" of a bread crumb name
      • e.g. .jpg or .js for a file
      • e.g. postfixing / for a folder
      • default programs for extensions might be set in a config file in the future
  4. collapse command bar back into the "root" symbol 🪄
  • by e.g. clicking 🪄 before bread crumbs to collapse the comand bar into the 🪄 icon again
  • clicking it again, expands the command bar again with the command line input active
  1. click question mark to toogle "doc box" and show help/documentation for any clicked UI/UX
  • just like when you click to highlight what is clickable in a figma prototype:
    • we can give users hints whats clickable to not confuse or hide the option from them to:
      • e.g. be able to click a breadcrumb icon to open the graph explorer
  1. click >_ to toggle expand/collapse command history
    • this isnt meant to be an "input field" or another "command line", but its command history
    • TODO: show the command history (like a chat history)
  2. click on the name of a file to toggle (open/collapse) the view of an entry
    • e.g. open/close an editor to view a css or html or js or json file
  3. if a user clicks somewhere into the expanded graph explorer or editor, then:
    • the breadcrumb bar will collapse into a single icon, just like in the active command line
    • the "free space" will show a list of "action icons" pinned from the command list

command bar
Here you can see night.json tab, but also the initial breadcrumb view for "night" theme.
They should be the same.
tab
0. this should represent the "currently active/focused tab".

  1. clicking a different tab, e.g. 1.css should update the breadcrumb bar.
    • or collapse the previous breadcrumb bar and tab and expand the new tab into breadcrumbs
  2. there should be a way to open a new tab
    • probably this should be combined with the left and right tab navigation and tabs number
      • the left and right switching might be better shown as scrollbar or swipe gesture
        • because clickinf forward/back is very slow when you want to use it
        • swipe and scroll is faster
        • and for precision we can change the "id number" field, see next bullet point
      • the displayed "id" number should probably rather be replaced by the active tab
        • e.g. "night.json" tab
        • but could be an icon/action to get a autocomplete field to type and quickly find/select and switch to a specific tab, especially when there are lots and lots of tabs open
    • maybe clicking it would offer an autocomplete list to quickly switch tabs or scroll too
    • one always visible option in that menu could be the "add tab" action
    • also it should have a button to save the entire set of tabs to a json file
    • or open an entire set of tabs from a json file
      • this makes the tab bar a "bookmark bar", where you can switch the set of bookmarks
  3. given the above, it seems better to have the ? button on the other end, but lets see

@serapath
Copy link
Member

feedback 2025.01.15

worklog-50 #24 (comment)

It looks okay.
I like how bread crumb, magic wand and search button is kinda merged.
Anyway, i think all my feedback for worklog-49 applies.

I do think what matters for the terminal version is to actually draw the UI
in unicode text characters an define "keyboard keys or combos" to navigate,
so that a mouse, touch or clicks are not needed.

Another important aspect of the terminal UI is to define one that works by entering commands.
One command after another.

To explain what i mean:
The popular command line tool git can be used to manage a github repository via commands.
There are popular visual apps to do the same. VScode has it built in, but many tools, such as

Regardless, you can type git commands in a terminal to update a git repository.
You can also type git commands to figure out the status of a git repository.
That way - command by command - sometimes to change and sometimes to query the repo status,
you can work your way through every git feature.

So if all you had were command line commands, how would you "see" or "change" the things
that you could see or change using the theme widget app?

I think that should be the task for maybe ali and/or ahmed.
And we stop the terminal UI/UX for a bit.

Once we have the "web version", we will then try to translate it into a terminal UI as well.
Going forward, lets just try to use a super basic minimalist terminal style theme so we keep it as close as possible to how a terminal UI would later look like.
Essentially, we need ONE UI and it has to work BOTH, in a terminal and in the web.
This also means, we should skip "fancy UX features", which are not possible in the terminal.
You cant scroll or swipe or shouldnt use the mouse, but if we define keyboard shortcuts for all commands and navigations, we can still get there. (e.g. [tab] or [arrow keys] to move around and maybe [space bar] to select and then [enter] or [esc] to confirm or abort).
We also have the [alt], [shift], [ctrl] modifier keys as well. So there should be a way.
The same way should be possible in the web too to navigate purely via keyboard and skip the mouse.

So please continue with this style, but now lets do it for the web again :-)


new theme
enter name
This "new theme" feature is actually a perfect example of what the "steps wizard" in datdot
is all about. There are many commands and all of them have different needs to provide options or configuration or input, basically to fill out a form with 1 or more form fields, each form field could be a simple text input or some more complex input widget, a map, a slider, a color picker, etc... it really depends on what data we need to execute a specific command.

We should work on a general "wizard steps" component, where each action or command, such as "new theme" can define its own set of data requirements, which will then show one or more steps in a step wizard to prompt the user to use the different input widgets to provide the requested data :-)

Next to datdot steps wizard, we can also additionaly take inspiration from discord / commands.

Basically, just think that this kind of "new theme" feature example would work for ANY action and the input prompts can be customized based on actions, but they all have in common, that they will prompt the user to collect data needed to execute the action.

Users need to be able to cancel, confirm, got back and forth, see a preview, etc... when filling out the form step by step before finally submitting to execute or abort the command.

Basically:
steps wizard
you already created some sort of "steps wizard".
Now if this steps wizard had 50 steps, the entire screen would be filled.
Instead, the steps wizard could occupy a second bar, just like the tabs bar and allow scrolling left and right if there are too many steps (or swiping) and re-use the feature to autocomplete search for a step (and maybe display which step we are in e.g. (4/14) steps.
A cancel and confirm button is needed as well.
The "description" as such is not needed in the steps bar, but could be part of the "input widget", which can be a dropdown or a textfield or anything ...and could technically be outsourced to the ? and the doc box description of a field if needed.

The input field in the command bar is probably not the right place for the various possible input widgets, because not all of them would fit in there.

Finally, building up a preview before submitting the action would be good as well, to show somehow what kind of new data entry ot action and effect we are creating by filling out the form.

Technically, if there are different alternative options in a step wizard, then "next steps" could depend on filling out a "previous step". Thats entirely possible :-)
Maybe move/import/copy are an example of that.

language
is another example of that.
I guess more appropriate would be to have steps where

  • language name
  • language emoji/icon
  • language json file content
    is asked for during the step wizard and in the end the files for the new language get created in the correct folder.

custom
In the custom dataset example - i can just say that using the "graph explorer" to select e.g. a css file and then later use it again in another step to chose a component instance to apply it to, etc... is just using the "graph explorer" as input widget to prompt the user to provide or select data in one or more steps, so that when the wizard steps are completed, the action is applied with the data selected or provided by the user :-)
So we should more focus on a step wizard that can be customized for any action we might want to define in the future (which includes defining "input widgets" for specific user input prompts depending on the kind of command or action we want to collect data for to be able to execute it.

figma
Same for the figma command.
No clue how this would work. How do you apply a figma design?
I imagine in worklogs, if a worker wants to provide a figma dataset, they would paste the link to a figma dataset into the step wizard form. anyway - the kinds of actions or commands people might define in the future are hard to predict, so we need a good general steps wizard, that allows to create custom input widgets people can use to define their input prompt steps to get all the data from the user to be able to execute a command.

As you say in the end - a "change theme" command is yet another possible command we can then design :-) ...not just that, there can be many more commands to help do stuff.

Maybe at some point people can install/uninstall those kind of commands with their corresponding steps wizards or even program commands themselves and publish them for others to install those... we'll see. For now we just create the basics to later allow such things.

command history

command history
Thats exatly what i imagined to see when the user clicks >_ button.

command list

command list
Earlier, when the user clicks into the "input field" e.g. the > next to a bread crumb to execute a command, it should already start with the default command steps wizard.
Canceling the default command wizard will provide the "command list" to autocomplete from.
We were further along already, because the command list in the past included an icon to select the default and an icon to "PIN" one or more commands with icons as "quick actions" :-)

high contrast theme

high contrast theme

At last you quickly show the alternative theme with the orange.
These are all good examples, because we would use those to make some default themes users can switch between until they start making their own themes and a high contrast theme makes sense.

@serapath
Copy link
Member

serapath commented Jan 16, 2025

feedback 2025.01.16

worklog-51 #24 (comment)

The hackmd slides look great.
This way we can make sure everything will be possible in a terminal.

command list
A few things are missing is the e.g. "pin" and "default" feature in the command list

Kinda like this...

/🛠commands
-----------------------------
/🗃list                    📌
/📩text                    📌
/🆕🔳task                  🕳️
/🔳subtask                 🕳️
/📨invite                  🕳️
/📥input                   🕳️
/📤output                  🕳️
/😀emoji`                  📌
/📎attach <file>`          📌

You also had already versions with that desinged, like here:
command list
So not showing that seems a "regression".
We should try to really avoid having those regressions.
We need to slowly get towards version controlled components for everything and not forget things we already decided and go backwards. We have to be super systematic to pushg things forward :-)

Anyway, generally, the good part here is, that because options are so limited, it helps us to keep things basic, but as mentioned in the last feedback.
Lets focus on a basic web UI, but keep in mind keyboard navigation and think about the hackmd slides to make sure there wil be a way to represent all of that web UI with a terminal theme as hackmd slides later on too.

console
Also just to remember here, the "console" or "terminal" icon is just to expand/collapse
the command history for otherwise the search/action input for any of the bread crumbs.
It is not itself an "input" field.

So no need to type in /history or whatever.
Clicking the icon will show the command history automatically :-)
It can be scrolled and potentially resized.
In terminal mode we need to think of "hot keys" or commands to do so, because in a terminal,
we might not be able to use a mouse to drag and resize boxes.

layout
When it comes to layout, the layout has to be drawn with unicode characters.

The problem here is that it is hard to show boxes side by side, so instead, it is better
to draw a complex layout in a single hackmd code snippet box using unicode characters to
separate the section from each other, like what i did in my earlier hackmd examples:

Basically what can be seen here:
hackmd-layout
Now this just shows boxes on top of each other, but you could draw them left/right next to each other as well.

mobile command bar
What i like with this (even though its not separated inside the same code snippet by unicode characters), is that it could be a good way to show command bar and tabs on mobile.
Basically by breaking it into 2 lines on top of each other.
I kinda prefer the tabs to be BELOW the tabs though, because the "command bar" shows information about a specific tab and switching the tab changes the content of the command bar.
The editor and graph explorer should probably also be below the editor in this layout.
So the graph explorer can be expanded FROM the command bar to change selection if needed.
The editor shows details in case we select a different entry in the command bar or graph explorer.

Again, repeating feedback from worklog 47 or 48.
The doc box should probably become its entirely separate box and should NOT be an editor tab.

steps wizard
So the "create theme" - just like in the web UI - requires a genreal concept for steps wizard.
One that can deal with all kinds of data.

It also makes me think, that we might NOT create a full blown terminal UI with tiling boxes and all the stuff we designed for the web UI.
Instead, we might need to:

  1. first design the responsive web UI in a terminal like style
  2. we need to implement it to make it work so we can create themes for it too
  3. we then use the javascript functions we used to implement and create a command line tool
  4. the command line tool will just define a bunch of commands to interact with the data step by step, but not in an interactive UI, but instead:
    • you can type some commands to list or show contents
    • and then type some other commands to modify contents

Thats it.


various other things

command bar
I think overall i liked the ? more in front.
The >_ icon is just to expand the command history and it was in the bottom left. I think i wouldnt change it, because maybe we will only show the >_ when we enter the command input line or some other conditions, but no matter what the UI shows, one thing needs to always be there from the beginning and that is the ? - not sure if it should be the first or second icon.
I guess in the feedback above i also mentioned the 🪄 as an icon to open/close the command bar in general.

Or maybe we only have the 🪄 in front and then all other icons in the end like we had it here:
commandbar2

Maybe this has to be considerd in combination with the "tabs bar" and my feedback regarding that and also the difference between a long bottom bar like on desktop and a short one, like on mobile.
We could also try to list pros/cons for different options :-)

high contrast design
Generally, this style of creating the web UI wireframe is great as a basic first theme, so maybe we can keep it as simple as that to get the UX right.

Once we have everything finalized, we can also make a "pretty" theme or multiple :-)

@serapath
Copy link
Member

feedback 2025.01.16

I checked your explanation videos you made for ahmed.
They are great, but of course they arent yet the final version.
Still - given that Ahmed didnt know anything, it definitely gives a good first explanation of what these apps are all about.

I guess we will just need to wait for a new figma iteration that includes all the feedback from worklogs 47-51 :-)

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Jan 21, 2025

tasks - 2025.01.21

  • made Theme_widget wireframes
    • made Theme_widget wireframes step by steps navigation on figma -3h23min
    • gathered ideas about UX improvement - 35min
    • discussion -1h
    • recorded, updated task and worklog -24min
    • @output 📦 theme_widget_step by step_v0.0.5

worklog

Worklog-54


feedback


proposal

@serapath
Copy link
Member

feedback 2025.01.22

Perfect. Shared all feedback on discord.
OVerall. Great job.
I think for ahned we need an interactive prototype including all the ways in which things would be responsive and to break it down into "sub" components and "sub sub" components and so on, so that ahmed can tackled them component by component and not all at once.

You can then at some point also review ahmeds worklog to give him feedback :-)

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Jan 26, 2025

tasks - 2025.01.26

  • updated Theme_widget wireframes
    • updated Theme_widget wireframes step by steps navigation on figma -1h13min
    • gathered ideas about UX improvement - 12min
    • discussion -30min
    • recorded, updated task and worklog -7min
    • @output 📦 theme_widget_step by step_v0.0.6

worklog

Worklog-55


feedback


proposal

@serapath
Copy link
Member

serapath commented Jan 26, 2025

feedback 2025.01.26`

Checked your wireframes first and they look really good. Awesome :-)

I will list a few things that maybe still needs improvement, but otherwise, lets get to the prototype and also lets make each component with all the responsive modes it can be in as

  • interactive prototype
  • independnet figma version controlled components (like we did with datdot)

So here some more feedback:

  1. The "command history" already shows the last used commands in chronological order so we should get rid of the "recently used tabs"
    • a tab can be opened in the tabs bar
    • a tab can quickly be autocompleted from the graph explorer
    • we even have "PINS" if a user really wants to pin an entry
    • => so lets skip the "recently closed tabs" in command history
    • INSTEAD: those "close tab" commands should just show up in the command history :-)
  2. the more tabs dropup looks like this:
  • dropup
  • i feel the dropup symbol ^ could be the number 5 instead and adjust to always show a user how many tabs are open, but otherwise it seems pretty good to me.

You also asked for "pinning" vs. "radio button" when editing bread crumbs.
I think "pinning" is still important, because we will have a "pinned entries" section in the graph explorer (like bookmarks) and "radio button" might be important, because if all tabs are closed and the user only clicks 🪄 to expand the action bar, then which graph explorer entry is by default selected to execute commands in? ...it should be based on the radio button :-)

Otherwise i think its great.

Missing things:

  1. We don't have a demo yet how it looks to switch the "program" by clicking e.g. .json, but otherwise it is fine.

I guess what we need next is the interactive prototype and each component as figma controlled versioned component to have exact instructions for ahmed.
After that we need to spend some time of returning to the "graph explorer" and finalizing that with all the details as well.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Jan 31, 2025

tasks - 2025.01.31

  • Theme_widget Prototype
    • made Theme_widget Prototype step by steps navigation on figma -5h46min
    • gathered ideas about UX improvement - 5min
    • discussion -1h
    • recorded, updated task and worklog -18min
    • @output 📦 theme_widget_step by step_v0.0.7

worklog

Worklog-56


feedback


proposal

@serapath
Copy link
Member

serapath commented Feb 1, 2025

feedback 2025.01.31

Noticed:

  1. when clicking the ? it should immediately open the box that displays help and it shows by default a description of what a user can do while the ? mode is active (they can click ? again to deactivate it, or they can click on stuff to get a description).
    2.there is no example of "program switching" when e.g. / or .json gets clicked
  2. also to not forget:
    • file extension click allows to switch program (that list can also set the default for a specific extension and/or for a specific path in the graph explorer as well) and the "program" chosen will define the breadcrumb icon shown - the program will also later define the kinds of quick actions available for a specific extension and/or graph explorer path
    • clicking the icon opens the graph explorer with the icons bread crumb entry selected AND turns the bread crumbs into an autocomplete editable path (so no special pencil icon) needed anymore. We can remove it. i think thats better and more compact. The input field has an x and v to cancel edit or accept the new entry.
      • clicking an entry in the graph explorer will select and accept that entry in breadcrumbs, but when autocomplete typing, then enter or clicking v selects and accepts it.
      • also the autocomplete for bread crumbs IS a graph explorer instance where typing filters out or hides all entries which do not match what is being typed.
  3. there is no example of clicking a "quick action" to go through the "steps wizard", this should be added for ahmed to wireframe it.
  4. the quick action bar should also allow to click somewhere to enter command input with autocomplate command list in case the action the user wants to choose is not in the quick action list yet.
  5. closing the last remaining tab with x will also collapse the actoin bar into 🪄. The action bar as such already has at least one tab for the current bread crumbs bar, but clicking the x on the last tab will collapse the entire action bar into the single 🪄 icon again. Opening the action bar again using the 🪄 icon will essentially create the first tab and entering it into command input showing the default bread crumbs path
  6. we maybe should replace the pencil icon with an icon to toggle between bread crumbs and quick action bar. Maybe the icon for that should be the 🪄 and the icon to collapse the action bar into a single icon should be a different one? ... how about the icon of the selected default bread crumb, e.g. the squirrel or the moon icon? ... i think that would make more sense :-)

We can discuss the above on discord as well if you have concerns or questions or additional ideas.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Feb 4, 2025

tasks - 2025.02.04

  • Theme_widget Prototype with description
    • made Theme_widget Prototype step by steps navigation with descriptions on figma -7h23min
    • writing descriptions - 1h02min
    • gathered ideas about UX improvement - 17min
    • discussion -45min
    • recorded, updated task and worklog -19min
    • @output 📦 theme_widget_step by step_v0.0.8

worklog

Worklog-57


feedback


proposal

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Feb 17, 2025

tasks - 2025.02.18

  • Theme_widget Mobile Wireframes
    • made Theme_widget Mobile Wireframes step by steps navigation -5h39min
    • gathered ideas about UX improvement - 31min
    • discussion -1h22min
    • recorded, updated task and worklog -18min
    • @output 📦 theme_widget_step by step_v0.0.0

worklog

Worklog-59


feedback


proposal

@serapath
Copy link
Member

feedback 2025.02.19

Sweet. Looks really good.
I also love the responsive mobile design :-)

Here are some things i noticed will going through:

actionbar
The idea would be, that clicking into the input field will give the user the autocomplete command list to execute a command for night json theme, because the moon symbol indicates that this is the current bread crumb.

Additionally, the x looks like it would cancel the comand input, but the user hasnt even focused it yet, so the x maybe needs to be outside/after the input field, but i think the idea last time (check previous feedback number 6.), where the magic wand would toggle into an icon but basically be a switch to move back and forth between quick actions and bread crumbs.
By the way, that toggle icon can be after or before the breadcrumbs/quickactions+commandinput.
You currently have the magic wand after the bread crumbs and thats fine. not sure what would be better.

Next, if clicking the "moon", it would switch back to the bread crumbs but also expand the graph explorer and then turn the bread crumbs into an editable path while the graph explorer is expanded and a changed path can be confirmed or a user can cancel the bread crumbs path edit via the x

So somehow the wireframes dont look like they get this right.

Now what would make sense (even though it still has the missing autocomplete command list, is, if the bread crumbs path is just like a "background placeholder text" for the command input field, so a user again gets reminded where exactly the chosen command will be executed, but then maybe the path should be a bit more grey and less contrast to make it feel more as a "background"

I'm a bit confused, because the last worklog took quite a few hours, which maybe is normal, but then i wonder why wasnt it clear? I kinda had a feeling the above was discussed and expressed and understood, but maybe a misunderstanding. let's try to ask/clarify to avoid things like that in the future :-)


commands
here for example the autocomplete command list is visible, so that should have been the screen for when the user clicks into the "command input field". This or a quick action is the way to start into a "steps wizard" :-)

step wizard
looks like a good start, but my feeling is, that the steps wizard bar should be above the input field, basically those 5 example steps being already "sub steps" to whatever command has been chosen from the "command list" or quickaction.
If too many steps, it also should have a scrollbar, maybe even some sort of scrollable progressbar? maybe color indicator for steps that are completed or uncompleted or have an error or missing data....lots of details here, but yeah, lets see :-)

Actually, once the quick action or right command from the command list has been selected, the input field bar (which should probably be on the bottom) can turn into and have the name of that command and right above is will be the steps wizard bar with all the steps needed to complete the action. ...so while the current command has been locked in, the cancel(x)/submit(v) buttons could also be next to that input field which will become the action label while steps wizard is active and it can also have a "progress" bar to show how many steps are left, what the current step is or maybe even a color (green/yellow/red) indicating if all steps have been completed or are still in progress or some steps have errors.

the confirm(v) action should definitely be not possible unless all required step wizard forms have been filled out correctly.


Also, not to forget the "tabs bar", which i havent seen yet at this point :-)

Now consider this: if i am on a specific tab which runs a specific breadcrumb path file with an app like the editor and displays it and i now go and start an ection from the command list and are half way through the "steps wizard", but then i get an important notification, indicated in another tab (just like tabs or messenger rooms sometimes indicate that there is something important), so i switcH tab to that other important tab and do something there first and then later i switch back to the tab i came from to complete the "steps wizard" ...

That half finished steps wizard or status so to speak, should somehow be indicated in tabs, just like notificatoins should :-) ...it doesnt mean that every tab and every program will actually use notificatoins, but they could if that makes sense.

So given that, it feels to me the "tab" bar should be at the very bottom, which gives us some freedom in terms of positioning the ❔ and/or the 🐿 because they could be next to the "command bar", but with bread crumbs and all the things it is already crowded, so maybe we should carve out some space left and right from the tabs bar for those instead?

Now this is mainly for the mobile proposal. On a tablet or desktop size, this bar can become one bar with tabs/command bar/icons/etc... all next to each other.

tabsbar
actiondesktop

Here you show the desktop version, which is fine, but you say clicking the "TAB" will create the "input field", which should not be the case

  1. the tabs bar stays always visible
  2. pressing the tab will toggle expand/collapse the program of that app (e.g. editor)
  3. pressing the magic wand after the bread crumbs will open the command input, or the > will move to quick action and then command input bar for the currently active tab (such as night.json)

ADDITIONAL IDEA:

  1. every tab has an x which is the icon for the "close command"
  2. you could also execute the command close() from the command list for that tab in the actoin bar
  3. but how about whether a tab has an x or nothing or some other action depends on the user selcting the "default action" and pinning one or more "quick actions"? ...so they can be triggered directly from the tab?

mobile

One thing i remembered or noticed is, that

  1. we said clicking the "name" of a bread crumb will open it in or toggle the editor (or program), which is the same behavior we said will happen for clicking a "tab"
  2. i also tried to share that every tab, when focused should turn into or have an associated breadcrumb/command action bar.

This means we have more than one way to toggle expand/collapse tab content, e.g. editor.
So we can either try to merge them or change the click behavior of one of them, a single bread crumb name or the tab.

if you have suggestoins, please let me know :-)

Furthermore:
mobileinput
here you shorten things via .... Now of course a user can scroll, but also every path starts with the root, so it makes more sense to show the END of a path, like:

  • .../Theme/Rainbow.json

So the user has a faster idea where they are.

And again, same as for the tablet/desktop UI, the bread crumbs ahouls only become editable while the graph explorer is open, basically after togge clicking the "icon" of a bread crumb entry.

command history

Also a quick comment on this.
Its of course great and kinda how it is supposed to be.
But keep in mind, a developer will go through to implement and understand it all.

In this screen you can see a x and > at the end of the input field, which is confusing.

  1. we care currently not having the "graph explorer" expanded, so it should not show an editable path
  2. next is the x and > would look like something can be canceled or submitted and to a developer its not clear what, so either this is a mistake or its not clearly expressed what this is supposed to do.

So lets try to make things so developers can derive how components work by checking the wireframes :-)

graph explorer
Ha, this is a bit funny.
Now when you finally click the icon to expand the graph explorer, where it highlights the selected bread crumb in the graph explorer, which is Themes/ (even though it should probably be "rainbow.json", THEN it would finally make sense to show a x and > to cancel or confirm a new path and while that is the case, it could show the editable path, so a user could autocomplete type instead of clicking through the graph explorer.

...but in your screen, the graph is not editable and you cant confirm/cancel anything, so kinda the wrong way around it feels to me :-)

bothbars

I like it. This is good.
If the user wants just the graph explorer they just collapse the editor
If they suer wants just the editor, they collapse the graph explorer
If they want both, they can see it like you show and resize the section dragging the line between them up or down. Cool.

Now the bars at the bottom is what i mentioned earlier and feels "the wrong way around":

  1. the tabs bar shows all places you can switch to (=overview)
  2. the input bar is a bit more zoomed in by showing a summary about one specific place
  3. the editor itself is even more zoomed in by showing some part of the content of that place

So from overview towards more detailes, where overview is the bottom bar and details are shown towards the top, the direction of the bars should be flipped.

  1. the bottom bar is tabs for overview
  2. then the action bar for control and summary of currently active tab
  3. then editor on top of that to show details of what is selected in the action bar

example
Basically THE OPPISITE of what is shown here.

  1. tabs bar bottom
  2. middle is action bar
    • if the command history expands, its in between action bar and steps wizard
  3. steps wizard on top.
    • on top of stepz wizard (based on selected step) you will have the forms to fill out

ALSO - if the tabs bar is the bottom bar, we should always keep in mind that the ? has to be in the bottom bar too, just like the "wizard hat" or icon that can collapse the entire app, which is good, because while it takes a bit of space away from showing more tabs, it gives us space in the action bar, which is great, because the action bar is really crowded and the tabs bar is anyway expected to use the "autocomplete search" once many tabs are open.

In fact, we could even consider adding the + button into that autocomplete search dropup for tabs, so the list we show to autocomplete from might be again the "graph explorer", because every running app will be represented, thus every tab (which is a running app, such as an editor that opens a specific file) will be there, so by selecting it, it can switch the tab. Closing the tab will close down the program too so it disapears from the graph explorer as a running program.

Now if we - instead of selecting a running programm in the graph explorer, we select a file to spawn a new program, then it is added as a tab and to the list of tabs (which is at the same time listed in the graph explorer as running programs.
That way we save one icon in the tabs bar (the +) which frees up space to add the ? and the "wizard hat" or entire app collapsing icon :-)

Hope that makes sense - if it doesnt, lets discuss.

HA - at minute 10:27 of the video you even suggest this yourself - awesome :-)

You say, it is nice that it "connects with the editor".
I do agree and this is known from many programs, but if you think about it - its not even true.
A browser for example has the "TABS on top" followed by the "action/address bar" right below which changes based on selected tab, followed by the actual browser content window :-)


tab switcher
Which brings me to this drupup menu, where i feel that clicking the (5) button in the screenshot (even if the tabs bar is the bottom bar), might turn the entire tabs bar temporarily into an autocomplete search field with all tabs in the "autocomplete dropup list" (potentially full screen width), so search and complete. ..of course it can be canceled to collapse that "dropup menu" again.

The reasoning is, that while a user is selecting a tab from the tabs bar at the bottom, its okay to temporarily hide all tabs and action bars until the process is completed or canceled, because focusing a specific tab is a prerequisite for doing anything else in e.g. the actionbar or program or whatever...


final pic
So here we definitely need to change stuff.
Clicking the tab will expand/collapse the program, but not open a command menu.
Again, clicking the "night" name in the bread crumbs is supposed to do the same, so there is room for improvement.

My suggestion would be, that - given what was said above - by moving the tabs bar to the bottom and the question mark with it, we wont have the question mark anymore in the "action bar", so we could add an x to CLOSE it. It is just the currently focused tab.

Whichever tab is selected from the tabs bar would "disappear" from the tabs bar and instead be shown as the action bar (closable via x) ...the currently selected/focused tab expands into an action bar. This way we will never have a screen that shows the breadcrumb night.json and the same tab with night.json in 2 different bars, whre clicking on either will toggle the editor or whatever program it runs. This saves us valuable screen estate and makes it more efficient.

THe command input with command list autocomplete is instead entered when pressing the > in the bread crumbs or when clicking the magic wand and then either the command input or one of the quick actions.

@Mirabrar-21
Copy link
Author

tasks - 2025.02.27

  • Theme_widget Mobile Wireframes example

worklog

Worklog-60(example version)


feedback


proposal

@serapath
Copy link
Member

serapath commented Feb 28, 2025

feedback 2025.02.28

first tab
It should not be possible to have no tab.
If there is no tab open, then when a user clicks on that "wizard hat", the default tab has to be opened automatically. The default means whatever is configured or selected as the default in the graph explorer, where a user (just lik for commands in the command list) can "pin" entries, but can also select a "default" entry as well - same logic as for commands.

Which also means, there needs to be a "5" or initially then rather a "1" button as well, not to be able to click and quickly jump to other open tabs (there are none), but to be able to add "new tabs" :-) ....technically, even if there was an option to have no tabs (which i think we shouldnt allow), people still need a way to add tabs and that "5" button in the old wireframe was meant to allow that, so it needs to be there somehow.

In this case, it shows the actionbar in command input mode with command list expanded for Playproject/, which means that is the currently selected entry in terms of issuing a command, so there should be at least a single tab Playproject/ in the bottom tab bar.

Otherwise, it seems correct :-)


cancel command input
This screen shows when a user cancels the command input.

This is fine, but it is confusing that:

  1. there is no > behind the "Theme/"
  2. that it shows "playproject/theme" instead of just "playproject/", because the command input field before was only showing "playroject/" and not "playproject/theme". (if "playproject/theme" is the correct default entry, then the first initial tab in the bottom tabs bar i mentioned earlier should of course show that intead of just "playproject/"

Lastly, while what you show could be an option, i imagined canceling the initial "command input" field would show the "quick actions" and a user would need to click e.g. the magic wand to switch to breadcrumbs, but maybe the way you chose to do it is fine as well - if you think this is good, we can keep it and wait until we have it implemented to see what is more useful in practice.


quickactions
So while functionally i guess what you show here works, to me it feels slightly confusing.

Basically it is great - just the x inside the "command input field button" seems confusing to me, because it feels like clicking would cancel the "command input", but the command input is not supposed to be focused yet. I imagined the x would show after the end of the Themes/ input field to cancel the "quick action mode". Alternatively it would still be a magic wand icon button to toggle back and forth between two equally valid bar modes

  • bread crumbs
  • quick actions

Generally, i think we should show all "pinned" quick actions to the point where a use can scroll or slide - up to them. The "theme/" input field button can shrink further and further until just a small icon sized circle is left.
Which is another reason why the x should not be inside, so that a user can still click it when there are so many quick actions pinned that there is no more space for a large command input button.

corrected
Oh great - a bit further you already fix it yourself. Thanks :-) YES! please like that :P
And you even suggest it could or should be the magic wand instead of the x, which i think i agree as well :-) cool

QUESTION:

  • I notice a small | separator after the first quick action icon. What is it for?
    • If it opens the graph explorer, it should also exit the quick action mode and go back to bread crumbs + turn them of course into the editable pathway while the graph explorer is open.
    • IF that is what it is meant for, then there is 2 ways out of this mode
      1. click the x to cancel quick action mode and go back to bread crumbs
      2. click the 📘 icon in front of quick actions to go back, but graph explorer expanded

You tell me your thoughts, but if wha ti described is how it works, it seems overkill to have 2 slightly different ways back to "bread crumbs", because we have limited space and having 2 icons reserved to do almost exactly the same is not worth it imho - it should be either or i think. ...


cancel

Here you say when canceling the command input, which was entered by clicking the command input in the quick actions, it wouldnt go back to the quick actions, but it would go back to the bread crumbs? ...i find that confusing as well.

If you think thats good, maybe there are advantages to it as well, but in my mind i thought of it as:

  1. either i am in breadcrumb mode and click > which would cause cancel to return to breadcrumbs
  2. or i am in quick action mode and click the "command input button" which would cause cancel to return to the quick actions

Maybe there are even better ways to structure this to make it as intuitive or logical as possible, but yeah - let me know.

UPDATE:

  • just thought about it again and i feel that maybe the "quick action" mode should be the default bar and then a user - on demand - switches to the bread crumbs instead of the other way around? ... like you anyway see in the bottom "tab" what entry is selected and thats probably all you need and you can close the tab or open additional tabs from the tab bar. To switch the pathway of an existing tab is technically not needed.
    • you can just close the tab and open a new tab with the right path
    • but if you want to edit the path, then that could be one of the quick actions for when you want to do that ...and it could be one of the quick actions which you can pin or not pin, depending on how important a user thinks it is... would that make sense?

graph explorer
You also mention that the exampe with theme vs. theme/night.json is confusing and it is just an example, but i think for ahmed or ali to understand and implement it, its important that all details make sense and can serve as a "specification" for what to implement.

Thus - it would have been better to open the graph explorer with Theme/ selected and then in the next screen have the user click on "night.json" to select it and collapse the grpah explorer again which updates the breadcrumbs :-) ...and the corresponding "Tab" in the tab bar as well.


scrolling
Here you say "things like the initial path including "playproject/" has been backscrolled, which is completely correct, BUT ...a user who is new would not see that.
There should in my opinion be some sort of .../Theme/night.json or some other indicator to clearly let a user know they can scroll or click or do something to explore what is there and not come to the idea that something would start with a different root that happens to be "theme/" ...that would just be a source of unnecessary confusion i think.


autocomplete
Wow, here you get to a very important core UX issue i think. How should autocomplete work?

So there are vscode plugins (vscode is one of the most popular code editors) and it has a little file explorer to choose source code files to open them in the editor. You can create files and folders and expand/collapse folders similar to how your graph explorer wireframe currently looks.

Now using that "search/find" plugins, it allows you to "FILTER" through the entire filesystem, which means - as a user types into the search/find field and it auto highlights all files/folders which do contain the typed pathway and also auto-expands collapsed folders temporarily, but shows and highlights only those sub folders and files which are matching and not everything (the highlight is different from the current still selected entry), and those folders are not really fully expanded, but only "pseudo expanded" to show any search query matches. If the user then finally selects one of those highlighted matches as the new entry, the selected file gets shown.

In our case though, it would be the "graph explorer" and when the user selects a new entry, it would collapse the graph explorer or of course the user could cancel the search/find/select process to not change the pathway.

IMPORTANT:
If we follow the idea earlier, that editing an existing tabs pathway is a rare thing and we just make it one of the "commands" (maybe by default listed as quick action), then that would enter a "steps wizard" (probably with a single step) where the steps wizard form is the graph explorer.


instance path

Seeing this and thinking of the tabs bar and having at least one tab or later more.
The 1:night.json or 2:night.json should probably be part of the "tab name", but not the "pathway", because the pathway describes the "night.json" file used by the runnning editor tab.

Similar to how you can have a image file on disk and you can open it in parallel in 3 image editing programs or some programs even allow you to open multiple times the same image independently.

Only the "5" button in the tabs bar could select an existing entry like 5:night.json which would make it jump to that tab in the tabs bar, but we said the pathway edit and graph explorer would not allow you to select such an entry - that would be "greyed out".


split screen

Now we will have split screens for e.g. "doc box" or expanded command history and/or editor or multiple at the same time, BUT, again according to the idea shared earlier, if we make the "graph explorer" a "step wizard step" in the "change pathway" action, then this screen here with a split screen between editor and grpah explorer would not exist.

At most you could have

  1. one "css file" open in one "text editor tab"
  2. one "folder/" open in another "graph explorer tab"

And then you can click on the tabs to switch back and forth between those programs - but thats different from a steps wizard to change the pathway for a particular running tab (also known as "program" or "app") ...basically each tab runs an app, such as a "text editor" :-)

...hope that makes sense. If not, lets discuss.


tabs bar

Ha, finally.
That is correct.
But one more thing. Every tab has an ID ... so it cant be a tab with just night.json.
It has to be 1:night.json and 2:night.json - and of course, both use the same "night.json" file as input, but tabs are ALWAYS running programs, while files are ALWAYS just plain data stored on your drive. There can only be one night.json unless you make a copy, but there can be multiple running programs reading the same file.

So in the picture above, clicking the x to close the pathway would again change based on pathway editing for a tab becoming an action, which solves our issue with the breadcrumb bar vs quick action bar ....its ALWAYS the quick action bar, there is no other bar :P ...because everything else is just a command with a steps wizard :P


program running
So the 1:night.json will be an entry in the graph explorer, but can only be selected in the "5" button in the tabs bar to jump to it and maybe (if we in the future allow to hibernate or pause a program, then we could consider opening a new tab with that file once to resume a program) ....but it would not be possible to select that kind of file from the steps wizard of a pathway edit for a particular running program (=tab)

Imagine:

  1. you have two image editors, e.g. photoshop + microsoft paint
  2. you open an image file in photoshop (think tab1)
  3. you open the same or a different image file in microsoft paint (think tab2)
  4. now imagine you go to your menu in paint to select a different image file and then you ...somehow could select your running "photoshop program" to open that as a ....file...

That would not make any sense. A running program is not a file you can open with an image editor. It is kinda ridiculous to even say it, but that is what it would mean to go to a tab which represents a running "text editor" with a file "night.json" opened and then edit the filepath and select "1:night.json" which would represent not the night.json file, but another running open program in another tab that you would want to open as a file... it doesnt make sense and it unclear what is even supposed to happen as a result...

So hope that clarifies the reasons for all of the above.


MORE:

You also talk about every entry made from night.json will have the same program running.
Now i do think we should have an independent root folder or category in the graph explorer to list all running programs ...similar to a category that contains all "pinned" entries.

This means the path is not .../night.json/1:night.json

Instead - they are both independent entries in the graph explorer with different pathways.
For pins it would be something like:

  • `/pin/night.json
  • /playproject/theme/night.json

The pin bookmark links to the "night.json" file and because our graph explorer is supposed to model inputs/outputs, there is some sort of connection, butthat is extra data we will visualize, but its not directly part of the regular file and folder paths.

Most likely i imagine we will have something like:

  • /tab/1
  • /tab/2
  • ...

Those are some sort of special files or folders ...not really files or folders, because we make a graph explorer and not a normal file explorer for that reason, and inside e.g. /tab/1 and /tab/2, and so on... you would have information what are the input files, e.g. playproject/theme/night.json could be listed inside that /tab/1 entry

**ALSO: inside of /tab/1 there will also be an entry for e.g. /tool/editor and maybe in /tab/2 there will be an entry for /tool/jsonviewer which just means we have 2 tabs, each using "night.json", but one running it in an editor program and the other one in a "jsonviewer" program.

All our running tabs or in the future paused/hibernated tabs have such an entry and we could use our extra graph explorer feature to expand/visualize those input/output connections between files and programs in the graph explorer too.

close editor
Here you were talking about closing the editor.

So there are 2 tabs in the image and both run an independent editor or maybe the second tab is possibly running a different program, maybe that "jsonviewer".
closing a tab closes that program, but the reamining programs (=tabs) are still running.

Pressing the x in that pathway edit ...which is now supposed to be a pathway edit action command with a step wizard according to whats written above .... so it should not close the editor, it just cancel the action and collapses the graph explorer.


steps wizard

yes, pretty good.
Now the x and v buttons to cancel/confirm a step might not be needed i guess, because the "command input field" was or is supposed to become the active "command name" that was selected and it could have those x and v buttons instead, leaving more space for wizard steps in that new bar above, which should also be scrollable/swipable if its many steps.
Each of the steps wizard fields can be imagine as a "form tab" if we imagine each step to be a "form tab" in a form the user has to fill out and that form is being filled out over mange pages or "form tabs" ...each of them indicating if its already filed out correctly or not correctly or still empty ...or whatever the progress is.

And the command name bar (especially when thhere are dozens of wizard steps) would also serve as an overall progress indicator.

Also in this picture the bottom "tabs" disappeared, but they are important, because the active tab will still give the information what tab (=program) we are executing that command for. e.g. 1:night.json tab for example. ...and also the tabs bar needs the so far forgotten "5" button (and we should probably give it a name instead of calling it always "5" button :P

...the button for tab switching or adding new tabs.


graph explorer

Here you say clicking an entry (e.g. night.json) would open new tabs.

The point was that while thats kinda correct for the "5" tabs button in the tabs bar, where you can click a file/folder to open new tabs or an existing 1:night.json or whatever to jump to tabs ...you arent supposed to open new tabs when you edit the pathway of an existing tab. That would just switch the content shown in the current tab ....and you cant click on 1:night.json type of entries, those are "greyed out".

Now where do we show 1:night.json or 2:light.json or in general any entry with a colon separated id is undefined. Above i mentioned maybe /tab/1 (for the 1:... tab and /tab/2 for the 2:... tab could be an option.
Of course - we dont create a normal file/folder explorer, so there can or should be a way to still somehow expand to see what kind of "inputs/outputs are connected to an entry, but that is extra information and not something that can be selected as a "edit pathway" if that makes sense 😅


THE END :P

Just kidding.
Yeah, i think thats the feedback for now. Its a lot, but how else are we supposed to come to a common understanding.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Mar 15, 2025

tasks - 2025.03.15

  • Theme_widget Mobile Wireframes example
    • made Theme_widget Mobile Wireframes step by steps v0.0.1 -3h11min
    • discussion -5h13min
    • gathered UX ideas & suggestions-3h26min
    • made the tree in hackmd - 1h42min
    • recorded, updated task and worklog -14min
    • @output 📦 theme_widget_step by step_v0.0.1

worklog

Worklog-61


feedback


proposal

@serapath
Copy link
Member

serapath commented Mar 15, 2025

feedback 2025.03.15

command input

command input
I think the icon in front of the #1:night.json and even the text itself are redundant

  • the text is already present in the selected tab
  • the icon as you describe here is anyway a quick action too, but we could make it the "app icon" (e.g. use it to switch from text-editor app to image-editor)... even though for some input files, a different program might not work or make sense.
    • also, the "app icon" seems to be present in front of the tab name already

On the other hand, sometimes "less is more", thus we could also just remove stuff that we dont need, maybe no text and icon in that input field to make the UI/UX cleaner?

remove icon
Basically thats what you already more or less showed as well :-)

  • I suppose clicking that x at the end of that input field would show quick actions again, which would make sense to me.

One thing i notices though is that you did not add anything like the "show desktop" vertical line some windows have, which you can click with the mouse or probably on mobile you would need to tap and swipe to "drag" it or indicate that you didnt want to click an icon like the wizard hat or the question mark, but you meant to use that "show desktop" indicator to collapse the task menu bar and everything?


breadcrumbs
This screen does not make much sense to me anymore.
Either we move it into the "quick action" bar and then have something like editable pathway or bread crumbs as part of the step wizard form, or - if we still have it here, then we have to explain why it is still needed and we would need to additionally ask ourselves how you could define more than one input file.

For example - the steps wizard could totally allow a user to select more than one input file and even show a list to add/remove input files :-) ...much more flexible concept imho.


quickactions
I imagine this to be the DEFAULT view for all tabs when they are clicked, but i think we already had a better view. In the past you showed quick actions with an input field at the end and of it, which can be click focused to expand and show an x at the end of the full width focused input field to collapse it back and show quick action bar again with a tiny "unfocused input field button" at the end of the quick actions.

Basically, it should NOT be a "search icon", it should not have an icon at all, but rather just a very tiny short input field barely larger than an icon that can expand when clicked.
If there are no quick actions pinned or maybe only one, then there is more space, thus the input field cna take on more space.

facebook chat
Here for example, the input field is not focused and you first have to click it to expand it and start typing, but when it is unfocused it is technically just a button, but it looks like an input field (even though its small so there is room for "quick actions".
If there were more quick actions, we could make that "input field" appear even smaller, just not so small that it doesnt look like an input field anymore.
If there are fewer quick actions, we can expand that "input field button" further.
When it is clicked to expand and focus to show e.g. command list popup and allow typing, it should have the x at the end to collapse it again and show quick actions :-) ...that's the idea.

I kinda thought or hoped we can better re-use that from previous wireframes where you already did these things in parts :-)

SWITCHING PROGRAMS

Actually switching program is different, because all actions that are available do not depend on the input files, but they depend on the program.
A text editor has actions theoretically could have actions like move cursor, delete line, save file, etc...
An image editor has actions like draw line or fill background color, etc...
So the program is not one of the actions, it enables all the current actions.

So if we keep it the way you show it here, the separation should be stronger than just a | line instead of removing it like you suggested in the worklog video, but otherwise it could also be by clicking/tapping on the program icon that prefixes the tab name - whatever makes the UI/UX smoother i guess. If we make the icon in the tab clickable, then we dont need the switch program action in the quick action bar anymore.


programswitcher
So this kinda seems to make sense if that was the default view when you clicked a tab.
But it is not.
The default view would be quick actions.
If you click the input field then it expands into the view shown here that can be canceled with x

So is the program switching happening when:

  • we click the icon that prefixes the name in the tabs inside the tab bar?
  • or will we have it prefixing the quick actions, but better separated than the | you had

If we can already do it in either of those ways, then it doesnt make sense to first click the "input field button" to focus and expand it and show the command list ...to then also show the program switcher icon. The user could already do that earlier or after they collapse the focused inputfield using x.


graph explorer
So this is a bit random. It is technically correct, but how do we get there and how do we get out of it?

Even if a "one step wizard" is simplified, whats the action/step called?
The step wizard had UX for that. Didn't we go through datdot and all that to make those?
I think this should have been copied/used here to make things as much or as precise as possible and also edit/remove those parts of your wireframes, like the "breadcrumbs" that sometimes show here without being used inside the step wizard ...because its kinda confusing and i will need more words to describe stuff and talk about what should stay and what shouldned.

MAINLY BECAUSE: I cant know if a UI element is still there because you just didnt yet update that part or it is there because it is an actual proposal to keep it that way.

So basically, above, the flow to enter the step wizard did not start by choosing a quick action: "change path" or "edit inputs" or whatever...
If it had started like that, we would need to see the name of the action and then the 1 or more steps navigation, where each step has a form and one step would probably look somewhat like what you show here with the graph explorer to select a different input file.

autocomplete
Also this "fantasy.json" autocomplete was discussed in the past.
The autocomplete should happen by highlighting all the path in the graph that match whatever is currently typed and it could expand/collapse folders as needed to those matching entries.

In a way that is probalby part of designing the graph explorer in more detail, but we also need to do it, because we want ali and ahmed to implement stuff and they will only be able to if they can rely on every detail shown in the wireframes - so lets delay less of it and wireframe more and then copy the parts that are correct over to the next wireframe to really try to get everything completed in detail.

It also means, "pinning" and "default" might be options to be able to select in the graph or these could also be yet other "quick actions", because one thing to keep in mind is:

The "graph explorer" is a program.
That means, we can select any "folder" and open it with the "graph explorer program", which would then open the graph explorer program as a tab, to show it where usually the text-editor is shown and we can start executing quick actions offered by the graph explorer program ...if that makes sense :-)


end of step wizard
SO when the steps wizard is completed and a new file selected, e.g. "fantasy.json", it all depends what that means.

  • did we update an inputs file?
  • did we update an outputs file?
  • are those file paths part of the content of task.json?
  • why do we represent that still as a single breadcrumb file pathway?

Imho, this should show the quick action bar again, so a user can click "edit inputs" or choose it from the command list after clicking the inputs field button to focus and expand the command input field.

If a user wants to know what files are currently selected as input, there could either be another action called "list inputs", or they would click "edit inputs" to see all selected files highlighted and then cancel the action.
A third option might be to open a new tab and select the task.json of another running tab program, which will show the content in the text editor of that new tab and the content would include the list of currently selected input files or output files.


tabs graph explorer

Great, but also slightly confusing, because "tabs" and "running programs" should be the same.
Basically, 0:night.json and 1:night.json means 2 programs are running

  • 0 is a program
  • 1 is a program

In the current displayed way we dont know what program they use, but probably "text editor".
Also, we dont know if the kind of text editor program we run can only open one or many files at once. It seems night.json is the file opened in the text editor, but this way of visualizing it would break down for a text editor that can open MORE than one file.

Also, again, the entries listed under tabs, the 0:night.json and 1:night.json should be able to expand just like running programs to show:

  1. internal state, like what you show further down for others, e.g. task.json, ....
  2. it should also show potential "sub programs" (if a specific program runs such things
  3. it should also show the sub component instances running inside that e.g. text editor program

So i think we need to merge "running programs" with "tabs".
Let's just move all "running programs" under "tabs", because the word is shorter.
It might not be the final word we use, but lets use it for now.

Here are words AI suggests:

Short words or phrases for "running programs" could include:

* Exec (short for execute)
* Run
* Apps (short for applications)
* Procs (short for processes)
* Tasks
* Jobs
* Code (informally, when referring to running code)
* Ops (short for operations)
* Scripts (if referring to running scripts)
* Active (as in active programs)

These terms are often used in technical or informal contexts.

In Linux the running programs are called "procs".

We could also call them "Apps" or "Tasks".
If we call them "apps", we might want to rename "programs" into "sources" or "code", just to differentiate between running programs vs. program source codes.

tree
Basically here you can see.

  1. The root program is always "theme widget" (maybe we give it a different name when everything is done)
    • it lists its sub programs
    • it lists its internal state
    • it lists its internal component (sub) instances
  2. It has one or more sub programs that follow the same pattern including potentially having more sub programs

So, in a way, we can also keep "programs" for source codes, and for active running program tabs we only have the root program, which has a name, e.g. "theme widget" and from there on, its all sub programs ...there cant be more than one root program! ...so having a category might be overkill, because the category would alway only have a single entry, the root program, and all other tabs etc... will be sub programs of that program


confusing tabs bar

Here the bottom bars are very confusing

  1. i expect the bread crumbs to be shown only in a quick action
  2. i expect the tabs bar to be here, but now i can type into it

Now this kinda turning the tabs bar temporarily into an input field would make sense to me if that happens by using the "jump" button, and thinking of the "jump" button as the command input for the theme widget itself, where the tabs bar itself is the tab of the "theme widget" ..and all other programs have tabs in it

  • the background wallpaper program has the "wizard hat"
  • other programs have normal tabs

...but the way it shows here its confusing.

So maybe that is what you meant, but you didnt really say explicitly that the "jump" button was pressed to get to this view. To me, the "jump button" represents in a way the "theme widget tab" itself.

IF it was meant as jump button drop up menu thought, then clicking on any running program would focus it:

  1. clicking on a regular sub program of theme widget would focus close the drop up and focus that tab
  2. clicking on the program 0 inside the sub programs of theme widget would show the wallpaper background program
  3. clicking on theme widget program itself would probably keep drop up open and you would get quick actions for the theme widget to execute commands, etc... such as "open new tab" :P or "close existing tab" (which is an action that can also be triggered by clicking the x on any existing tab in the tabs bar)
  4. clicking on any other file outside of "programs", including folders, could technically launch a new tab program with that file as input ...

...does that make sense?


quickactions
This screen makes sense to me, but not the x after the quick action bar and i thought we went through this last time. Anyway, i tried to describe earlier with that "facebook messenger" screenshot how i imagined it.


stepswizard
sadly in the worklog video you deleted those, but... they to me look most like step wizards.

Now what is missing is, that the field that mentions the action, e.g. #/Delete should also include the x to cancel the entire step wizard and the v to confirm it once everything important has been filled out.

We last time said it should show progress as well for steps, including in each step whether it is completed or uncompleted or maybe has an error.
It might also indicate which steps might be mandatory and which are optional.

We can refine it over time, but this seems like a vital part and also the same UI should be used for single step wizard, where the single step wizard, as you explained, could skip the steps and the action name itself is the single step name, so the UI/UX is cleaner.


FINALLY

I kinda expected some sort of explanation of a "click flow", how i start with clicking the single icon "wizard hat" or maybe rather i swipe or click that modern "show desktop" icon in one bottom corner of the screen, e.g. |

Here is how it shows on Windows11

We can of course also put it on the left side instead of the right side.

@Mirabrar-21
Copy link
Author

tasks - 2025.03.20

  • Theme_widget Mobile Wireframes example
    • made Theme_widget Mobile Wireframes step by steps v0.0.2 -3h57min
    • discussion -15min
    • gathered UX ideas & suggestions-20min
    • recorded, updated task and worklog -21min
    • @output 📦 theme_widget_step by step_v0.0.2

worklog

Worklog-62


feedback


proposal

@serapath
Copy link
Member

serapath commented Mar 20, 2025

feedback 2025.03.20

Q & A

  1. Question: can the "quick action" bar ever be collapsed?
    • Answer: at the moment it cannot and it always shows.
    • Proposal: I was thinking a bit and figured out, maybe we should not ever allow "program" switching. Because it is highly unlikely that a different program would be able to exactly re-use the internal state another program created. This is already a challenge for a new version of the same problem. If you WANT a new program, then just open an new tab and close the old tab and load in that new tab with a different program the kinds of inputs you want to work on. If we do it like that, then we could use the "tab icon" to expand/collapse the quick actions and have them expanded by default.

feedback

"edit pathway" action

edit pathway
I think this isn't ideal yet.

  • Intuitively it looks to me as if "change pathway" was the first step and "select an entry" the next step.
  • if i select multiple entries, how would that input field display it?
  • what does the x do next to the night.json path, remove that path or close the action? i would imagine it cancels or removes the paths, but still allows me to select a new.
  • what if the change pathway name is longer? doesnt that take space away from the step names?
  • if the steps wizard had 10 steps, some of them completed, some of them not yet filled out and some of them filled out in an errornous way, where would i see the overall progress summary? ...i would expact that to be part of the "change pathway" action name bar.

It's okay to have the x and v buttons to abort or in the end confirm the action.
The bar should turn into the overall action name "change pathway" or maybe rather "edit inputs" to support more than one. and it has the x and v next to it, of course the "command history" button can also still be there.
Then above that is the steps wizard with probably a single step, e.g. "select entry", but above that are the custom forms needed for each step in the steps wizard of the action.

  • this will probably show the graph explorer to select stuff
  • but it can also show an input field or a list with the editable pathway: '/playproject/themes/night.json', etc... but this custom stuff for this specific "edit inputs" (or currently still "change pathway" action is custom and above the generic parts, which is from bottom towards top:
  • tabs bar
  • action name with x and v (replacing the quick action bar temporarily)
  • wizard steps
  • custom form

Only the custom form part can be entirely different for each of the steps in any of the actions a user selects to execute.


Regarding typing to select entries (which should be part of the custom form - thus maybe an input field at the bottom or right underneath the graph explorer) to select a new entry.
type pathway
The thing is, this should NOT be a list like shown here, but instead, there can be MANY task.json in many different paths in the graph explorer, so instead of showing a simple dropdown/dropup overlay list, the graph explorer itself should start highlighting all the entries that match what is currently typed in the text field.

Now:

  • if the user types and as shown in the screenshot only /T... is currently visible, then a user should be able to cancel that typing to make it fall back to what was selected before (this cancel should not cancel the entire steps wizard.
  • if some entries are nested in graph explorer" folders that are currently collapsed, then they should be temporarily expanded (maybe indicated with a greyed out color, so that it is clear they are currently not expanded, but the autocompletion process for whats currently typed expands it and only shows those entries matching the autocomplete typed stuff. ...if the user stops typing and expands the grey autoexpanded folder, it could use black color and show ALL sub entries of that expanded folder instead of just the ones that were grey and matched what is currently typed.
    • if the user then selects the entry they want or finishes/completes typing it, then they can "confirm", which selects and "locks in" that entry as the new selected one and now moves on to the next step.

multiselect
This looks good enough.
We anyway need a way to "pin" an entry in the graph explorer
We also need a way to set a "default" entry in the graph explorer as well

If the user completes the typing or clicks on any of the highlighted entries and then complete the selection, that should be good enough - i think we would not need a separate "dropup overlay list". to display the matching entries again.

completion
Its good that the steps shows completion.
Again, if the user shift+selects multiple input entries, then they could also press v or x to complete/accept that step and move on to the next step, unless it is the final step, in which case everything completes.

I guess, change pathways should also as an action pre-select ALL currently selected inputs... the case that there is only one input selected is a special case.
Anyway, displaying and confirming a pathway as a wizard step should happen ABOVE the steps wizard and the "change pathway" name should be shown where usually the quick actions are, together with the cancel option and some overall progress summary of filling out step forms.

The progress bar should be the "change pathway" or rather the "" which - if it is positioned where the screenshot above shows the editable pathway, then it has enough space for additional progress status e.g. 1/2 steps completed or 50% completed and whether there are errors or not, etc...

The steps wizard bar can scroll or swipe sideways when there are too many steps.
The numbers of each step is a progress bar, but its not all visible when there is too many of those steps. Also - mandatory vs. optional steps would be nice to indicate too,
A step can be completed or not yet started or in progress and some are mandatory and some are optional to fill out and sometimes filling out in an invalid way doesnt allow to complete the action, but should also indicate which step has an issue.

EXAMPLE:
When a new tab is created, it is possible to select the initial inputs (pathways) to files to open in the tab, but also an optional tab could allow to change the default name of the new program tab, which is otherwise just a "process number", so that would be an "optional step" :-)

no preview

SO you are right, that completion does now not preview the "themes/" folder as input.
This is true.
In order to see currently active inputs, a user would need to click the "edit inputs" (or you called it still "change pathway") button and that shows them. Pressing x cancel will collapse it again. So it is very easy to reach.

The issue is, that an open program can often easily open more than a single file or folder.

YOu only showed a case with a single folder as input, in which case we could show it somewhere, but the issue is, what if the program supported multiple and the user would have selected 10 folders... would it still work then?

Imagine an "IMAGE GALLERY" program, where the user selected 5 different "image folders"... which would you show?
The user should be able to notice by seing the content updated.

SO if you think this is important, then we maybe need to consider another bar or some sort of extra way to quickly show inputs/outputs of a program tab, not just quick actions.

  • What do you think?

Dont forget, a program which thinks it is important to show inputs or outputs as paths could just show them. The entire "BLACK AREA" above the quick action bar is reserved for the program when it is expanded. Nobody prevents a program from having a bottom bar inside which displays the current inputs/outputs, but maybe that isnt important for every program. Imagine you play a game like "pacman" ...your input file might be the current savegame, but is that really important to show? most games dont show it.

placeholder
While this makes sense in this example situation.

  1. what if you have multiple files and folders as input?
  2. what if there are more quick actions, so that the "input field button" to focus it and make it full width becomes the size of a button - it wouldnt offer enough space to show meaningful text.

WHAT IF the user can click:

  1. we use the tab name to expand/collapse a program view
  2. the tab x to close the tab
  3. the tab icon to expand/collapse the action bar (by default expanded)
  4. the number in front of the tab name to expand/collapse the programs task.json?

That way, its like a toggle

  1. user clicks tab name to show program view
  2. user clicks tab number to show "task.json"

The use can switch back and forth.

  • the program view is different and custom for every program
  • the task.json is the same for any program and the content includes inputs and outputs, such as themes/ folder

Maybe it should even be possible to have both open at the same time, e.g. like chrome devtools and a browser window. each "browser tab" can open both in parallel, the tabs content, e.g. webpage + the tabs devtools, so you dont have to toggle betewen them.

add/remove input
This is brilliant! :-)

  1. here you did not add the action name in front of the steps, but in the action bar, even though the action bar looks like an input field, but the action name is there. cool.
  2. next to the x cancel and v confirm button, you also added a + button which makes sense, but we do have example in datdot steps wizard and i think i shared some links and pictures to show it. Lets make the steps wizard standard and not add a + in random places.

Probably - to be consistent, the graph explorer should just highlight all the currently selected entries and a user should be able to unselect them.

If there is a + needed, then that should be part of the form for a specific step, because, some form steps might need a minus button as well and generally its custom to each step what it needs. But lets double check how datdot does it.


jump button

jump button
Seeing this makes me wonder if the "jump" button shouldnt just count as "theme widget tab", so the action bar and quick actions are not from "theme widget bar" itself, so it has buttons to e.g. trigger opening a new tab or jumping to an existing tab. ...these things open the step wizard for that action.

  • tab switch: click "jump button" -> click "jump action" -> select open tab in graph explorer
  • new tab: click "jump button" -> click "new tab" -> select "program and/or inputs"

Would that be a good way of doing it?

Like this:
jump button
I think thats pretty perfect and the action bar is now just having the relevant quick actions for the "theme widget" (because the "jump button" (=theme widget tab)) is activated.


graph explorer running programs
Perfect - i think this is great and how i imagined it.

Now what might change is the tab name itself, e.g. 0:night.json, because that comes from when we assumed each program can only open a single input file, but that is not the case for all programs, thus a program gets its own launcher folder, named either 0/ and 1/, like the prefix number tabs currently still show, but they can also be "named/renamed" by the user into e.g. 0:foo or 1:bar or whatever they want to make it more meaningful for when they want to close a program, but then later open it again with the same state and configuration ...basically if they want to "resume" it.


double click file
Here you say double clicking the night.json file will open another tab.
If we want to follow our logic really strictly, then we would probably choose the new tab action from the theme widgets quick action bar or the command input field with command list and then select "night.json" in the graph explorer step wizard and confirm it. Maybe we can even create a convention, that a program when it gets launched, based on its initial inputs (e.g. night.json), can generate its own default name if the user did not provide it in an optional wizard step form in the new tab action. That way, it makes sense, that a text editor program would by default use the first input file (e.g. night.json) as its default tab name.


swipe button
Regarding that swipe button.
I think it is cool, but i imagine that "vertical swipe bar" to be part of the tabs bar on the bottom on the left or right end of it. ...probably the left end of it.

swipe collapse
Confusing thought that swiping it collapses everything, but i can still see the tabs bar and the action bar. I imagine those to collapse as well and only am left with the swipe bar, which i can swipe again to restore expand all things.


general feedback

The wireframes are great.
What I am specifically wondering about is:

  1. how to expand/collapse wallpaper background program e.g. playproject
  2. how to expand/collapse theme_widget_bar
  3. how can we collapse theme_widget_bar and only show background program?
  4. how can we collapse background program to only show theme widget bar?
  5. how can we collapse everything - i guess that leaves you with a black screen?

We have:

  • vertical swipe bar - maybe just collapse/expand everything (apart from background program, but dont show any bottom bars
  • wizard hat button - maybe wallpaper background program of theme widget tab
    • the wizard hat button has no name, so it cant toggle background visibility
  • tab buttons - maybe sub programs of theme widget
    • the tab buttons have a name to toggle program visibility
  • jump button - maybe theme widget tab itself
    • the jump button does not have a name, so it cannot toggle theme widget visibility

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Apr 4, 2025

tasks - 2025.04.04

  • Theme_widget Mobile Wireframes
    • made Theme_widget Mobile Wireframes step by steps v0.0.3 -1h31min
    • discussion -14min
    • gathered UX ideas & suggestions-1h22min
    • recorded, updated task and worklog -27min
    • @output 📦 theme_widget_step by step_v0.0.3

worklog

Worklog-63


feedback


proposal

@serapath
Copy link
Member

serapath commented Apr 5, 2025

feedback 2025.04.04


jump button

You said you didnt get that at all.
So if the "jump" button is the "tab" for the theme widget itself

  • it doesnt have an x because it cant be closed
  • it doesnt have a name to on/off toggle any program (e.g. editor) view, because the theme widget is the bottom bar and always visible already
  • it does have an "icon" (5) and clicking it can on/off toggle the actionbar

the actionbar itself has theme widget quick actions, such as "open new tab" or "jump to existing tab" ...


show desktop swipe bar

did you try adding the swipe bar to the the task bar (theme widget bar) just like windows does it?

another alternative would be to have a horizontal small swipe bar on the top or bottom of the task bar and when swiped top to bottom it collapses the task bar down and, but the swipe bar would be still slightly visible and swiping it bottom to top, it expands the task bar again? ...is that better?

you are right that the windows show desktop swipe bar collapses everything, but not the task bar itself. That is true and so if we would do what windows does, it would make sense to keep the task bar. But the thinking is or was, that its not really windows.
We do have a lot of inspiration from how browsers have multiple tabs you can switch between.
Also, we have a "background program" (e.g. playproject) and sometimes maybe the user just wants to browse "playproject" as a background program and not bother with a task bar (=theme widget bar).

So my thinking was, when a user comes to e.g. playproject.io it would only show the background program full screen and if they know and click the swipe bar, it would restore the theme widget bar with whatever was open, clicking it again collapses the theme widget bar.

If the theme widget bar is open, we have tabs for "tab programs", we have the jump button as the "theme widget tab" to be able to execute actions for the theme widget itself instead of e.g. a "tab program". And we have the "wizard hat" button as the button to focus the background program and issue actions to the background program via action bar,... basically actions for playproject website in our example.

It could also be, that the "background program" is a "pinned program" and there can only be one "pinned program" at any time, so by pinning a different program, the background program can be switched and the former background program becomes a normal "tab program" ...

I feel overall, all that i just describe makes more sense than collapsing everything but the task bar. When would a user want to collapse all programs (including background program), but not the task bar? ...But the use case of interacting with one program, like playproject full screen and not being disturbed by a task bar make sense to me.

After all, that is what playproject website is all about, to interact with playproject full screen and not be disturbed by a theme widget that a user might never want to use.

yet another way to think about it:
What if you could always, at any moment, for any tab, slide the "swipe bar" to slide away the task bar? ...and instead what will slide in is a quick action bar with transparent background, which means, if an app doesnt have any pinned quick actions, it wont show any actions.


tab number to show task.json

i think showing task.json could be thought of as "devtools" for that tab.

i do agree with your feedback that the number is small. any other ideas or suggestions?

Maybe we just never collapse the action bar and say the action bar will always be visible (apart from the "swipe bar show desktop" button maybe)? ...especially if we do the thing mentioned above, where a user can at any point use the swipe to get rid of the entire task bar including action bar until they swipe it back in?

Every "program" would then technically be displayed in a container box, which can show

  1. the program view (e.g. editor)
  2. the command history (e.g. expanded terminal)
  3. the task.json "devtools" view

And for every program tab, the user could toggle a combination of those three to be visible.

If we do that, then the "task.json" could be shown by clicking the icon and maybe the number could be part of that, so its one button that include icon + number ...and then the name (which is the second part of the tab) will expand/collapse toggle the program view (e.g. editor)

This also means, the "wizard hat" and the "jump" button dont have a name, because they are anyway always shown. The task bar is shown and expand/collapse cant be toggled by clicking the jump button and the wizard hat can also not expand/collapse toggle the background program, so if the user clicks those, they become active in terms of action bar, but if they are already active and clicked again, that will expand/collapse toggle the "task.json" for those?

Would that make sense? it feels it could bring the UX to a whole new powerful level to do it like that :-) ...and its simple and consistend imho. What do you think? We can discuss on discord :-)

TAB NAME: regarding the tab name:

  1. every program is different, but some programs have multiple inputs
  • this means, it makes not always sense to show the "filename", because what if there are multiple?
  1. instead, i think every program should display a custom "name", which is generated and even updated by the program, which means, if an editor has a single filepath as an input, then the editor could use the filepath to display the tab name, but in other programs, e.g. an "audio player", maybe displaying the currently running song makes a lot more sense? ...its up to the program, but the program does the default ...basically the name would be custom just like a browser tab "title" that can be set by the webpage that is open in that tab. I think that would solve it :-)

steps wizard

select entry action
select entry
I think the progress bar takes too much space here.
the "#edit input" field is mostly empty and while the steps wizard is active and the user fills out the form, nothing is gonna happen in that long unused space apart from showing the name of the current command that triggered the steps wizard.

So i do think it should have all these "status/progress" informations.

If we are dealing with just a single step, like "select entry", then that select entry name should probably take the entire line? ...take up all the space of the steps bar?

The form for each step, e.g. the "select entry" step can be custom, so it makes sense to me to show the graph explorer to select, but also to show an additional "action bar" custom to that step, which allows a ctrl button to select more than one entry? ... i kinda feel that highlighting all selected entries in the graph explorer is enough and there is no need for having a big clunky input field with an x for each of them?

Imagine a file explorer, ...wouldnt you also use "ctrl+click" to select/deselect multiple entries in your file explorer?


required step
I think it is a good idea though to have a specific indicator for each step (e.g. the "*") to show a step is required, etc... we can also play with colors too.

  • not visited step (grey?)
  • a work in progress step (yellow?)
  • a completed step (green?)
  • an errorneous step (red border or background) - you show it already. great :-)

Actually, a form (like the select entry step form) could also have a "summary" bar below the graph explorer as well, to indicate information like e.g. total entries selected for example :-) ....but that kind of stuff has nothing to do with the steps wizard, but rather depends on the specific form used in a specific step ...and totally depends on the step and the type of command that we are currently trying to execute :-)

2 selects
Also the command label bar that shows during an active steps wizard should probably only have the x and v button and not a - button, because that seems very custom to this partifular "select entry" step, so if anything, the form for this step should contain such special buttons, but in our case, if you have the ctrl button as described earlier, you could just click a specific entry again to deselect it - that should do the trick here, no?

I think the x is backspacing everything and cancels the action.
I dont understand what the - as "cancel" would do.
If you dont like a specific step, you can just go to that step in the steps wizard (even a previous step) and change what you filled out... edit it... because nothing was yet locked in. Only if you submit the action, then things get executed - until then you are anyway free to edit all steps in all forms as long as you want.

select
Basically THIS is how it should work. If you select one or more entries, the graph explorer shows it, that should be good enough and people are familiar with this from normal file explorers already imho.
If you select multiple entries, it could also look like this:
multi


completing an action
action completed
If you confirm an action after filling out all required step forms, it would go back to the quick action bar... if you expand the "command history", you will see the action was triggered and it did what it was supposed to do.

For example, if you selected a different "theme", then that theme would now be applied to your running app :-) ...it really depends on the program view and what an action caused to your running program... for example if your running program is an editor and you changed the selected file, then the editor would now show the content of a different file.


pin entry / default entry

not sure i understood exaclty what you mean when you talked about it, but if you meant that the "theme widget" could have an action/command or quick action to pin a specific entry, that makes sense to me.


general feedback question section from last feedback

I had a bunch of questions about expanding/collapsing programs and mentioned: swipe button, wizard hat button, tab buttons.

Anyway, after your worklog and some additional inspiration it triggered, i think i now see it as follows:

  1. the playproject is the "background program" and cannot be collapsed. it is always there
    • if one wanted it to go away, they would need to go to playproject action bar and run a exit action to close it, but that doesnt collapse it but closes it.
    • another way would be to go to the theme widget action bar and run an unpin action to make it not a background program, but a normal program tab, and then it can be collapsed.
      • if there is nothing pinned as background program, then the background is just empty
  2. the theme bar can be collapsed by swiping the | button which should be prefixing all other icons in the "tabs bar" i think
  3. same as (2.), because playproject is either there or not there (see 1.)
  4. i guess combine (1.) by unpinning the background program and then swipe the | to collapse the task bar

But this is just me summarizing a bunch of things i already described above.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Apr 11, 2025

tasks - 2025.04.11

  • Theme_widget Mobile Wireframes
    • made Theme_widget Mobile Wireframes step by steps v0.0.4 -3h37min
    • made the graph explorer tree v0.0.3 -3h21min
    • discussion -1h12min
    • gathered UX ideas & suggestions-50min
    • recorded, updated task and worklog and hackmd -47min
    • @output 📦 theme_widget_step by step_v0.0.4
    • @output 📦 Graph explorer_tree_v0.0.3

worklog

Worklog-64


feedback


proposal

@serapath
Copy link
Member

serapath commented Apr 13, 2025

feedback 2025.04.13

task bar swipe

toggle_taskbar
The linebar as such is great, but don't forget we also need an indicator for scolling the tabs bar when there are many tabs, so i personally expected that bar "on top" of the task bar or even action bar instead of the bottom.

You say its a swipe up action to show and also hide the task bar... maybe that is intuitive for apple folks, but might also conflict with the built in gestures and its definitely confusing for me or many android users who never used that. I kinda prefer to swipe down to hide the bars ...make them move down ....and then swipe up to make them move up again.

Also - as you mentioned, on some phones, this might still conflict with the android or iOS built in gestures, so maybe having that bar left or right to prefix or postfix the action and/or tabs bar, so you would swipe left or right to toggle (collapse/expand) the theme widget bars (tabs/action bars) which we can call "task bar". ...so it would be a left/right swipe, but only in the bottom area where the task bar is.

If the up/down swipe is better ...i guess we have to try it out in practice in the end, then just to not forget that both, the tabs bar and actions bar might be swipeable left/right, in case there are more tabs and/or more actions than there is space in those bars.

One last thought to consider - if the app has a swipe up/down itself, there is always a risk to swip up/down and move the finger over the area where the app shows (so not the task bar), so this can cause a conflict and people with fat fingers might just struggle to press correctly. But if it is a left/right swipe on the task bar, then the finger will never even move over the area which shows the app, it will completely stay on the task bar area, so no risk here.

The difference between a scroll is whether the swip action starts with the touch over the tabs or icons, or whether it starts on the left or right of that not touching the tabs or quick actions.

So whatever you decide considering all this, its the version that we will roll with and then when we have it implemented we have to test a bit how it works.

steps wizard

stepswizard
Now this is confusing, because those 1, 2, 3 bubbles are basically similar to the listed steps, just that each step also includes the name. So i wouldnt duplicate.
If nothing else, i imagine the statusbar to be a simple 3/10 steps in case its a very long steps wizard. The quick action bar should also not look like an input field while the steps wizard is on and show the name of the current action, so also thats weird.

Basically the (1) circle before the step name "select an entry" can turn into a checkmark or an red error icon or a number in case its not yet filled out or some variety of different styles to indicate specific status, such as "work in progress" or "in focus" or "optional vs. required", etc... or whatever...

Oh sorry - i see that you actually already show yellow and red.
Definitely worth having a "figma version controlled components" to list all the possible states and combinations of how a step can look like based on status and stuff, so ahmed can know :-) ...including the properly green.

Basically: Ideally you would just show 1-2 screens showing the steps wizard, but then in between switch to the version controlled figma for steps wizard so show a list of all the variety of combinations and options a step can be in :-)

inputsfields
Also didnt we talk last time that (de)selecting entries in the graph explorer hilighting with a color is good enouugh, no need for those extra input fields? ...hmm.
Didnt exprect to see those again. Did you forget to remove them?
Just saying because this will all be confusing to ahmed.

select entry step

select entry step
So thats cool and a custom part of the specific form we will maybe use in the select entry form and otherwise unrelated to the "steps wizard", but just this particular step.

I feel it should be smaller though, no? ...like a text editor bottom status bar, that often shows information like line or column of cursor and similar things. You can check "hackmd" for an example of such a bottom status bar. It has one. I wouldnt make it the same height as a bar that is touchable/clickable... i perceive it as a pure info bar not supposed to be clickable, so it could be more subtle to save screen estate?

In general, clicking an already selected step wizard step again is difficult to assign any action to, because every step wizard form is different, so if at all, we might allow the implementer of a step wizard form to listen to the click on its step wizard button to react to it, so then it could do this expand/collapse thing if you think thats cool :-)

jump button

jump button
Yes, i feel clicking on the "jump button" will automatically start the "switch to entry" action immediately shows the step wizard (but you can click cancel if you dont want to run that "default" action), and if you select an existing tab it jumps to it, if you select a file for something new, it adds a new tab.
A user can of course can go to the command list and deselect a default action, so then when they click the jump button, they will first just see the quick action bar and then they have to click to start a quick action like "switch to entry" :-)

tabsbar2input
Why does the tabs bar turn into an input field?
I know we once said that, but didnt we already discuss in previous feedbacks to not do that anymore

collapsed taskbar

taskbarcollapsed
Okay, i think thats kinda fine and probably somebody could make a theme to make the quick actions only look like the way you show them, but my thinking was that it will just show the app and the quick actions icon are overlay with the quick actions bar to be otherwise transparent and in your example it still has some sort of black background...

...but otherwise, thats how i imagined it :-) cool.

another example

This is fine. In the end, how exactly the quick actions look depends on the active theme, so its not super important and we can play around with different versions later on.

I like this design better, but i guess i would just imagine it all icons bound or growing from the left border to fill the entire "bar", but being just icons with transparent background, but then again, there can be different themes of course :-)

task json

task json
Yes, in a way i guess thats fine.
The only issue i see is, that if you open a file or entry from that state, then it would open in a separate tab. The issue with that is, that you cant really edit and see the changes in the running program, because you would need to move back and forth between the program tab and the opened state entry tab, so thats why i was hoping there could be a split screen, so the program tab has some space for a second view (maybe 50%/50% or resizable) to show state entry and program view in parallel.

graph explorer

Not gonna say anything about the tree, because you werent really showing or explaining the details. The issue i can see is that what we have on discord using text characters to design the tree is better than what you have in figma.
You could argue whether the figma version is slightly nicer designed, but we can theme it anyway. The main issue is, that your tree did not have any "super entries", it was just strictly expanding downwards everywhere, which is an issue.

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Apr 19, 2025

tasks - 2025.04.20

  • Theme_widget Mobile Wireframes
    • made Theme_widget Mobile Wireframes step by steps v0.0.4 -1h34min
    • discussion -30min
    • gathered UX ideas & suggestions-20min
    • recorded, updated task and worklog -22min
    • @output 📦 theme_widget_step by step_v0.0.5

worklog

Worklog-65


feedback


proposal

@serapath
Copy link
Member

serapath commented Apr 20, 2025

feedback 2025.04.20

yes, seems good. lets do it so we can finally implement it all :-)


steps wizard

steps
So one thing i feel is kina a bit messy is to make the command name bar look like an input field, but overall, feature/functionality wise i think its perfect now.
Maybe we can improve the rest later when implemented by creating a better theme to make it somehow look better.

pathway
Actually by telling me that these input bars are for showing the "pathway", i feel you kinda got a point. Without it a user can never see the pathway.
So yeah, why not, lets have it like that :-)

The question in the end is if its worth showing the pathway. Either way, all the selected input paths will be listed in the task.json file anyway, so opening that will enable a user to see. But i guess it would be helpful, so lets keep it for now and we can change it when it is implemented and we can actually try to use it to see how it works in practice.

search
for search in graph explorer we can or should just have a little search input field at the bottom of the graph explorer for a user to use if they want to.
This is a feature that is not necessary for all commands or quick actions, but it might be useful for some, such as here, so that is why it should be part of this particular step or step wizard for the add/jump action ...and we can also add a search field for other actions that need it. ...that way it isnt part anymore of the general task bar, but instead we move the decision of whether something like this is useful to the specific actions that might need it, so if you think it is useful, then just add it as part of this step to the bottom of the graph explorer (above the add/jump step) :-)

The "command name" should not be clickable to turn it into a search bar, because not every command on every step wizard will need such a feature, so its kinda the wrong place to put it imho. ...so instead lets make it part of the specific step form in a specific commands step wizard, where it is actually useful and needed.


task/state

state
So i think thats pretty good. thanks.
I would say, when the user clicks into the "program view" ot the "state view", it will cause the program or state to focus.

The program will have different "quick actions" than the "state view" (e.g. task.json, etc...) The file switching and doing stuff should probably be just a quick action when focusing in on the "state view", so we dont have to always have that small graph explorer view open, but it can be opened when triggering a quick action or command from the action bar while the state view is focused. It can be opened and initially focused by clicking the icon/number of the tab, and again that might auto trigger the default action, which is selecting one of the task/state files to open first.


"show desktop"

The only thing is maybe the "show desktop" bar or whatever we call it.

You mention we could also just swipe up/down anywhere in the middle of the screen, but we cant, because playproject is a website and a user needs to be able to also scroll up and down on that website and they cant if thats now a swipe gesture to collapse the task bar.

We will never know what kind of "app" a developer will program and how they want to use their gestures, so the entire space of the background or any app should not collide with our task bar theme widget gestures.

show
Now if we have the situation that a user decided to not pin any actions at all, then it would not show any quick actions here, but it would somehow show this floating bar... which seems broken.

show2
Showing a small vertical bar on the bottom left or right corner seems a bit more subtle.
Maybe it can even have a 50% opacity or something, so it is really as minimal as it gets.

What is interesting is that you say swiping there closes the application. I checked that and there seems to be settings to do that - i'm just not using it, but i guess many do.

Now the issue is, that its for bottom up/down swiping and also bottom left/right swiping, so what we could do instead is add the small "show desktop" bar on the left or right of the action bar instead of tabs bar, because then it would probably not conflict with the android built in gestures and it would still not create a bar hovering in the middle of your screen and be still very subtle on 50% opacity or whatever when the task bar is collapsed. In fact it could also be somehow in the middle between both bars on the left, making the "task bar" a 2 bar heigh task bar ... where it contains a tabs bar and an action bar... so if the task bar is the container, then we could make that "vertical prefix bar" kinda centered on the right between action and tabs bar and swiping right to left collapses it and leaves the 50% opacity vertical bar on the left screen ...to swipe left to right to bring it back?

would that work?


But overall, i think we are mostly done and ready to explain everything to ahmed and let him implement.

@Mirabrar-21
Copy link
Author

tasks - 2025.04.21

  • Theme_widget component outline structure
    • made Theme_widget component outline structure -1h02min
    • wrote descriptions of Theme_widget component outline structure -1h22min
    • Added screenshots of component -20min
    • Added Wireframes links of component -17min
    • discussion -15min
    • made the doc box wireframe -5min
    • recorded, updated task and worklog -17min
    • @output 📦 Theme_widget_outline

worklog

Worklog-65


feedback


proposal

@serapath
Copy link
Member

feedback 2025.04.21
Great. Feedback on discord this time.
lets keep going :-)

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Apr 23, 2025

tasks - 2025.04.23

  • Theme_widget components explanation videos
    • Graph explorer component video -18min
    • Step wizard component video -7min
    • Quick actions component video -4min
    • Command list component video -4min
    • Console history component video -3min
    • Tabs component video -8min
    • Task.json component video -4min
    • Docbox component video -3min
    • Editor component video -2min
    • Swipe gesture component video -6min
    • Theme_widget explanation - 10min
    • Fixed the outlines in hackmd -18min
    • added videos links in the hackmd - 10min
    • discussion/feedback -20min
    • recorded, updated task and worklog -15min
    • @output 📦 Theme_widget_Component explanation

worklog

Worklog-67


feedback


proposal

@Mirabrar-21
Copy link
Author

Mirabrar-21 commented Apr 24, 2025

tasks - 2025.04.24

  • Made Theme_widget graph explorer
    • made theme_widget graph explorer structure - 1h42min
    • updated the screenshots in the hackmd - 5min
    • discussion/feedback -24min
    • recorded, updated task and worklog -12min
    • @output 📦 theme_widget tree v0.0.4

worklog

Worklog-68


feedback


proposal

@serapath
Copy link
Member

feedback 2025.04.25

nice, but needs some standardization of the "task" section to have all running programs represented with the same structure. I shared that on discord as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants