SolidOS technical implementation of new UI #229
Replies: 5 comments 1 reply
-
Proposed solutionFor CSS:
This is a W3C-approved workaround for the “Shadow DOM blocks CSS” problem which offers full flexibility. Why Shadow DOM?
Why custom CSS properties?
Example:Every solid-ui component exposes theme hooks via CSS variables. Example in A developer’s app can override them at any global scope: Or globally: This is safe and supported inside Shadow DOM because custom properties pierce Shadow DOM boundaries. Further technical proposal:To achieve the usability and developer experience requirements, I propose to use the standard Web Components(https://www.webcomponents.org/specs). Advantages:
Prototype implementationLook at the code and how it changes in Profile-pane: SolidOS/profile-pane#141 |
Beta Was this translation helpful? Give feedback.
-
|
I really like the responsive design choices as far as CSS. The curved edges make a huge difference! Placement of the vCard saves space. How much website real estate/negative space do you believe is necessary for the new user/onboarding experiences? Do you think that the Contact "Login to chat with me" part should be merged with the top part? Make it one big contact card? It may save more space. For example, Facebook seems to imply that when a user visits a profile, they have to login in to continue to connect with said person. Just a thought. But overall it definitely feels like feels more professional pod experience already!!! 😊 |
Beta Was this translation helpful? Give feedback.
-
|
Hi @timea-solid, Great to see you back and working on Solid OS! I would like you to think hard before committing to the Web Components route. For context, read Ryan Carniato's blog post https://dev.to/ryansolid/web-components-are-not-the-future-48bh. If you are not aware, Ryan authored the Solid.js framework (unrelated to Solid) whose internals are copied by literally every front-end framework on the planet (React, Svelte, Vue, Angular amongst others). |
Beta Was this translation helpful? Give feedback.
-
|
Thank you @CxRes for sharing! A revised technical proposal is as follows: Have Solid-ui as a “Solid Design System”
This can be used as
Solid panes such as Profile Pane
Other code stays the same
CSS (in theory - this also still needs to be prototyped)
|
Beta Was this translation helpful? Give feedback.
-
|
I believe the best bet for panes is to build a Additionally, this container can serve as an open standard for panes for use with Solid OS. It can provide a standardized mechanism for interacting with the graph created by RDFlib.js. You can also explore if you want to limit the access of a component to a certain part of the linked data graph (I prefer that architecture, but it may not feasible with RDFlib or desirable for expedited querying). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The NLnet grant allows us to improve SolidOS UI. Before going into technical solutions, I list the requirements.
High-level requirements are:
The longevity requirement is undebatable.
Accessibility is a requirement by the grant, which involves using HTML5 and ARIA.
Reusability:
solid-ui was always envisioned as an HTML elements library dedicated to Solid functionality. Example: a list build based on a given predicate to more complex widgets like a login window. These HTML elements will have styles that can be themed to look like the app they are used in.
solid panes are mini applications, such as profile dashboard, file explorer, and contacts. They use solid-ui HTML elements and add more HTML functionality where needed. They also have their own style elements, for extra elements it implements. For example, the QR code in the profile card. Like solid-ui, the entire pane's style will be able to be themed to look like the app they are used in.
Developer adoption:
Beta Was this translation helpful? Give feedback.
All reactions