-
Notifications
You must be signed in to change notification settings - Fork 25
New style #257
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
base: main
Are you sure you want to change the base?
New style #257
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR modernizes the SolidOS databrowser with HTML5 semantic elements and comprehensive accessibility improvements. The changes include refactoring HTML structure, introducing a theme system with CSS custom properties, creating reusable utility classes, and updating dependencies.
Changes:
- Adds semantic HTML5 elements (header, main, footer) and ARIA attributes for improved accessibility
- Introduces a theme system with light/dark modes using CSS custom properties
- Creates comprehensive utility CSS classes for accessibility, layout, and components
- Removes inline styles in favor of CSS classes and removes deprecated TypeScript style module
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| static/browse.html | Adds semantic HTML structure, skip links, table headers, and ARIA labels |
| static/browse-test.html | Same semantic HTML improvements as browse.html with adjusted JavaScript |
| src/styles/themes/light.css | Defines CSS custom properties for light theme color scheme |
| src/styles/themes/dark.css | Defines CSS custom properties for dark theme color scheme |
| src/styles/themes.css | Imports theme files with dark theme commented out |
| src/styles/mash.css | Refactors styles to use CSS custom properties and improved formatting |
| src/styles/mash-utilities.css | New file with comprehensive accessibility and utility classes |
| src/styles/mashlib-style.ts | Removed - replaced by CSS-only approach |
| src/index.ts | Adds theme management functions and removes style module usage |
| src/databrowser.html | Updates with semantic HTML and accessibility features |
| package.json | Updates dependency versions including pre-release versions |
| package-lock.json | Lock file updates reflecting dependency changes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| </script> | ||
| </head> | ||
| <body> | ||
| <a href="#DummyUUID" class="skip-link">Skip to main content</a> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The skip link target points to #DummyUUID, but according to the HTML structure, this element has role="main" while there's also a <main> element with id="mainContent". The skip link should target the <main> element (#mainContent) instead of the nested div, as the main landmark should be at the outermost semantic level.
| </head> | ||
| <body id="PageBody"> | ||
| <body id="PageBody"> | ||
| <a href="#DummyUUID" class="skip-link" style="position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;">Skip to main content</a> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inline styles in HTML - the skip link has inline styles that duplicate the CSS defined in the <style> block below (lines 153-172). This inline style should be removed and the .skip-link class should be sufficient for styling.
| <a href="#DummyUUID" class="skip-link" style="position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;">Skip to main content</a> | |
| <a href="#DummyUUID" class="skip-link">Skip to main content</a> |
| </head> | ||
| <body id="PageBody"> | ||
| <body id="PageBody"> | ||
| <a href="#DummyUUID" class="skip-link" style="position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden;">Skip to main content</a> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The skip link target points to #DummyUUID, but according to the HTML structure, this element has role="main" while there's also a <main> element with id="mainContent". The skip link should target the <main> element (#mainContent) instead of the nested div, as the main landmark should be at the outermost semantic level.
| <footer id="PageFooter"></footer> | ||
| <header id="PageHeader" role="banner"></header> | ||
| <main id="mainContent" tabindex="-1"> | ||
| <div class="TabulatorOutline" id="DummyUUID" role="main"> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Redundant ARIA role - the div with id="DummyUUID" has role="main" but is already contained within a <main> element. This creates a nested main landmark which is confusing for screen readers. Remove the role="main" attribute from this div since the parent <main> element already provides the main landmark.
| <div class="TabulatorOutline" id="DummyUUID" role="main"> | |
| <div class="TabulatorOutline" id="DummyUUID"> |
| "solid-logic": "^4.0.1", | ||
| "solid-panes": "4.0.0-newStyle-b960ffb7", | ||
| "solid-ui": "^3.0.1", | ||
| "profile-pane": "2.0.0-newStyle-6806a782" |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using a pre-release version identifier with a git commit hash (2.0.0-newStyle-6806a782) is unconventional and may cause issues with semantic versioning tools and dependency resolution. Consider using standard pre-release identifiers like 2.0.0-alpha.1 or 2.0.0-beta.1 instead.
| "profile-pane": "2.0.0-newStyle-6806a782" | |
| "profile-pane": "2.0.0-newStyle+6806a782" |
| </div> | ||
| </tr> | ||
| </table> | ||
| <div class="TabulatorOutline" id="DummyUUID" role="main"> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Redundant ARIA role - the div with id="DummyUUID" has role="main" but is already contained within a <main> element. This creates a nested main landmark which is confusing for screen readers. Remove the role="main" attribute from this div since the parent <main> element already provides the main landmark.
| <div class="TabulatorOutline" id="DummyUUID" role="main"> | |
| <div class="TabulatorOutline" id="DummyUUID"> |
| </div> | ||
| </tr> | ||
| </table> | ||
| <div class="TabulatorOutline" id="DummyUUID" role="main"> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Redundant ARIA role - the div with id="DummyUUID" has role="main" but is already contained within a <main> element. This creates a nested main landmark which is confusing for screen readers. Remove the role="main" attribute from this div since the parent <main> element already provides the main landmark.
| <div class="TabulatorOutline" id="DummyUUID" role="main"> | |
| <div class="TabulatorOutline" id="DummyUUID"> |
| "solid-panes": "4.0.0-newStyle-b960ffb7", | ||
| "solid-ui": "^3.0.1" | ||
| }, | ||
| "overrides": { | ||
| "rdflib": "^2.3.3", | ||
| "solid-logic": "^4.0.1", | ||
| "solid-panes": "4.0.0-newStyle-b960ffb7", | ||
| "solid-ui": "^3.0.1", | ||
| "profile-pane": "2.0.0-newStyle-6806a782" |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using a pre-release version identifier with a git commit hash (4.0.0-newStyle-b960ffb7) is unconventional and may cause issues with semantic versioning tools and dependency resolution. Consider using standard pre-release identifiers like 4.0.0-alpha.1 or 4.0.0-beta.1 instead.
| "solid-panes": "4.0.0-newStyle-b960ffb7", | |
| "solid-ui": "^3.0.1" | |
| }, | |
| "overrides": { | |
| "rdflib": "^2.3.3", | |
| "solid-logic": "^4.0.1", | |
| "solid-panes": "4.0.0-newStyle-b960ffb7", | |
| "solid-ui": "^3.0.1", | |
| "profile-pane": "2.0.0-newStyle-6806a782" | |
| "solid-panes": "4.0.0-beta.1", | |
| "solid-ui": "^3.0.1" | |
| }, | |
| "overrides": { | |
| "rdflib": "^2.3.3", | |
| "solid-logic": "^4.0.1", | |
| "solid-panes": "4.0.0-beta.1", | |
| "solid-ui": "^3.0.1", | |
| "profile-pane": "2.0.0-beta.1" |
| </script> | ||
| </head> | ||
| <body> | ||
| <a href="#DummyUUID" class="skip-link">Skip to main content</a> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The skip link target points to #DummyUUID, but according to the HTML structure, this element has role="main" while there's also a <main> element with id="mainContent". The skip link should target the <main> element (#mainContent) instead of the nested div, as the main landmark should be at the outermost semantic level.
| const loginButtonArea = document.getElementById("loginButtonArea"); | ||
| const webIdArea = dom.getElementById('webId') | ||
| const banner = dom.getElementById('inputArea') | ||
| const inputArea = dom.getElementById('inputArea') |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable inputArea.
| const inputArea = dom.getElementById('inputArea') |
This PR will integrate HTML5 and basic accessibility elements.
We start with the profile-pane