Skip to content

Sandcastle using Stratakit #12731

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
wants to merge 16 commits into
base: sandcastle-v2
Choose a base branch
from
Open

Sandcastle using Stratakit #12731

wants to merge 16 commits into from

Conversation

jjspace
Copy link
Contributor

@jjspace jjspace commented Jul 11, 2025

Description

The purpose of this PR was to do a full facelift to the new version of Sandcastle and embrace the Stratakit UI components. I also focused on solidifying the behavior of the various panels and parts of the app. It should now be very close to how we want it based on our latest designs.

What this PR does

  • Switch from itwin-ui to stratakit packages
    • Updated necessary CSS variables we were already using
  • Restructure the main App component to include a header and application/platform of left navigation
  • Added a console mirror with draggable height
  • Re-arranged the header buttons to be with the code editor
  • Restructured Gallery to be a panel covering the left side of the screen
  • Early localStorage based settings with the theme button
  • Add many icons from stratakit throughout for buttons

What this PR does NOT do

  • Gallery search - The inputs are there but do nothing
  • Modals, settings and the title/description metadata
  • Stratakit CSS in the bucket iframe
    • I re-define a few variables in the CSS for now, this will be changed in a separate PR

Issue number and link

Part of #12566

Testing plan

  • Run npm run dev from the Sandcastle package or npm run build-sandcastle and npm start from the root
  • Open the new sandcastle and play with it, this is a mostly visual change so check spacing, layout, interactions
    • I added a "viewerless" sandcastle for now to help when testing to not always have to load the viewer and WebGL context
  • Check the console is working as intended
    • Create a sandcastle that uses console.log, console.warn and console.error to make sure it displays them all correctly
    • Should auto-open if there are any warnings or errors
    • Should stay scrolled to the bottom as new messages come in
    • The multiple arguments issue will be fixed separately
    • Clicking to collapse and expand again should remember the height
  • Make sure loading the base route starts on the gallery. Make sure any route with a share string or id starts on the editor
  • Make sure the viewer area does not flash or double render when loading or picking new gallery items
  • Make sure the theme is remembered and stays the same after refreshing the page

Author checklist

  • I have submitted a Contributor License Agreement
  • I have added my name to CONTRIBUTORS.md
  • I have updated CHANGES.md with a short summary of my change
  • I have added or updated unit tests to ensure consistent code coverage
  • I have updated the inline documentation, and included code examples where relevant
  • I have performed a self-review of my code

@jjspace jjspace requested a review from ggetz July 11, 2025 21:16
Copy link

Thank you for the pull request, @jjspace!

✅ We can confirm we have a CLA on file for you.

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

Successfully merging this pull request may close these issues.

1 participant