The page which is opened in Experience Builder as part of the demo will look like this Figma design (see Target Pages for Barcelona > Kasey’s Homepage).
This is being implemented in its own demo theme that contains the design system components to support these designs as well as other common components.
Old summary:
The page which is opened in Experience Builder as part of the demo will look like this Figma design. We will need to implement that as a SDC based design system which could be used by the Experience Builder. There's some initial definition for the different ways to build components using SDC in #3446083: Document supported component modeling approaches. We may need to iterate on that as we implement this design system.
How to get involved
- Follow the project: demo_design_system
- Join the Slack channel: #starshot_demo_design_system
- Review the docs: main page
- Check the issue queue: open issues
- Attend our weekly Slack meeting: Wed 3am UTC
- Volunteer for a task: contribution guide
Remaining tasks
- Break designs into components
- Implement them as SDC components
- Test with XB
Experience Builder issues
1. Here are the current blockers for SDDS development:
- #3472900: XBEndpointRenderer & processResponseAssets() do not support `ajaxPageState` ⇒ duplicate CSS/JS loading
- #3472192: Redux support for ImageWidget: `[image] String value found, but an object is required`
- #3463842: [META] Redux sync on ALL prop types, not just ones with a single [value] property
2. Maybe not a blocker to development per se but these would be helpful:
- #3471169: Allow dragging components to top/bottom of page and in between adjacent components with slots
- #3469856: The component preview should have a background: include theme's global asset libraries for component preview
- #3472179: [PP-1] Can't toggle boolean prop back to true after changing to false
- #3467844: [PP-1] Log client-side errors
- #3470321: Surface verbose OpenAPI errors in the UI — for better bug reports and faster DX
- #3467843: Back-end route to allow logging from the UI
- #3469855: Emptying a required value through the UI crashes the app (empty <input>, selecting "None" option in <select> …)
- #3468944: Update XB's `image` SDC to comply with best practices, and document those best practices
- #3472893: SDDS responsive styles don't fit well within XB desktop preview
3. These are not blockers to development but ones we are also tracking:
- #3471108: Unable to scroll component props form
- #3472299: Update default config to make a fresh install result in an XB UI with an empty canvas
- #3454094: Milestone 0.1.0: Experience Builder Demo
- #3446083: Document supported component modeling approaches
- #3468112: Document the current component discovery + SDC criteria + `Component` config entity, and describe in an ADR
- #3462705: [META] Missing features in SDC needed for XB
4. Recently fixed issues that require us to update things:
- Nothing at the moment
5. Fixed or closed
- #3470550: Component config entities are incomplete: missing entries for optional props, causing errors in ComponentPropsForm
- #3454173: Media Library integration (includes introducing a new main content renderer/`_wrapper_format`)
- #3462310: Component props form: map textarea, bool, and select elements to React components
- #3463300: Implement the concept of sections within the client
- #3470973: Retain the placement of components within the preview when inserting a component
- #3469436: Fix the visually broken "image" component instance: use FileUriItem's computed `url` property, not the stored `value` property
- #3471085: Adding a component with slots does not register the slots as children
- #3471154: Allow deleting component instances by pressing "Delete" or "Backspace"
- #3463798: No upward auto-scroll when components are dragged
- #3469822: Highlight slot with a border where component/section is about to be placed
- #3469684: Surface the REASON for an SDC not being made available in XB (i.e. not meeting criteria)
- #3471171: Allow components to use textarea in favor of input
- #3469850: [PP-1] Occasional PHP warning when refreshing XB
- #3472907: AssertionError: assert($component_config !== NULL)
- #3471511: `enum` data shapes: error when choosing "- None -" in `<select>`
6. Post-Barcelona
- #3446052: [later phase] Create components for a default design system
- #3463188: Support propless SDCs
- #3455036: Clarify "components" vs "elements" vs "patterns"
- #3467954: META: Evolve XB UI's data model to allow non-SDC components' inputs, DynamicPropSource support, etc.
- #3467959: SDC and code component props should be able to receive HTML, editable in formatted text fields+widgets
- #3459088: Every XB `Component` config entity should have a `category` property
- #3467890: [later phase] Support `{type: object, …}` prop shapes with single level that require *multiple* field types: use `field_union`? — OUT OF SCOPE: nested components/component reuse
- #3467870: Support `{type: array, …}` prop shapes
Comments
Comment #2
wim leersIsn't this a duplicate of #3446052: [later phase] Create components for a default design system? 🤔
Also, related to this is what @ckrina started 2 weeks ago wrt design tokens (see https://wimleers.com/xb-week-3). Pinged her in Slack 👍
Comment #3
lauriiiThe default design system is the actual design system we'd deliver as a starting point for users with Experience Builder. The design system that we'd build here would be specific for demos. We certainly don't want to ship the Drupal design system as a starting point for new sites 😅
Comment #4
wim leersAhhhh, of course! Clarified in issue title.
Comment #5
kristen polCivicTheme is a design system with 60 components that has a Drupal theme. It has had 8000 hours of work put into it.
It does need to be switched to SDC but that shouldn’t be too hard.
http://www.drupal.org/project/civictheme
Let me know what you think about converting this for the demo.
Comment #6
kristen polI should also note that if CivicTheme was approved as the demo design system, it’s highly likely the original creators (Salsa) would sponsor their team to convert the design system theme to use SDC. This conversion is already on the product backlog.
Comment #7
lauriiiI personally don't have a strong preference over which design system or theme we use as the starting point so long as in the end, we'll achieve the designs linked in the issue summary that matches the new Drupal brand. This could be a great opportunity for an organization like Salsa to be involved in the initiative. There's probably some extra work involved if we used a non-SDC based theme in comparison to using a theme that was already using SDC, but maybe there's value in converting the theme to use SDC outside of this initiative.
Comment #8
larowlanI wonder if we should speak to the promote drupal folks or the DA who're working on the D10 version of drupal.org. Whilst we need it as a temporary solution - it feels like there is long-term value in having an actual design system for drupal.org
Comment #9
kristen pol@lauriii Thanks for the info. I will discuss with the CivicTheme team to see if those designs are feasible in a short timeframe. As they are planning on switching to SDC, this seems like a good time to do it if it would be the demo design system.
@larowlan Sounds good... is that something you are willing to take on? Or do you know who are the right people to discuss this with? I know some of the Promote Drupal team but I don't know what their goals are in terms of a design system.
Comment #10
larowlanWe have a monthly DA and committers catchup where I can raise it. I don't know anyone in the promote drupal initiative.
Comment #11
kristen polThanks for raising it there 👍 I’ll ping Suzanne to see if she knows anything about plans for a design system.
Comment #12
kristen polI’ve been chatting with the CivicTheme team… there is a question of if SDC is required before Barcelona for the demo design system? From above, it sounds like it’s not? I guess any hard requirements you do have beyond the Figma designs would be great. Thanks 🙏
Comment #13
lauriiiSDCs enable Experience Builder to leverage those components. That's something we'd definitely like to include in the demo. Therefore using SDCs is a hard requirement for the demo.
Comment #14
kristen polThanks for the clarification :)
For full transparency, I'm the Chair of the CivicTheme Steering Committee.
I've been talking with the CivicTheme team as well as other members of the steering committee. We are keen to throw our hat in the ring so to speak. The team is pretty heads down getting a release out the door, but the plan is to have some samples next week so you can see what CivicTheme can do right now so we can identify where the gaps are.
For an example, although not focused on Drupal, we put together samples for an open source grant proposal we did recently that may be interesting for people to peek at:
https://cardano.ideascale.com/c/idea/126352
If you search for "Prototype 1" in the proposal and scroll from that point, you'll see a number of samples/demos that were put together quickly for this grant. Here are some other resources as well:
https://www.civictheme.io/cardano/resources
https://www.figma.com/design/y4onMCtsVLXhuVEbzgGFSe/Cardano%3A-Design-Sy...
https://6661aebbcfd864009fb8f395--civictheme-uikit.netlify.app/?path=/st...
The CivicTheme team plans to put together similar Starshot/Drupal-focused samples over the next week for everyone to review and we can go from there.
Note, we do understand this is for the Barcelona demo and may not be folded into the product longer term and that is fine.
Also, there has been some concern above that perhaps we should start from scratch and build the starting *Drupal design system* rather than go with an existing design system such as CivicTheme and improve upon it. The point being then we aren't "throwing away work" and can use the same code for the demo and beyond. I do understand the concern and think we can work through this, but it would be useful for other people in the community to weigh in on this as well.
We are also open to additional questions and concerns that people may have so we can make sure to address them asap.
Thanks!
Comment #15
lauriiiThank you for stepping up! 🙏 Building some small proof of concepts sounds like a really good next step! 💯
Currently this milestone is specifically tied into a demo we're planning to launch around the time of DrupalCon Barcelona but it doesn't mean we couldn't use this going forward. I would imagine that the demo is something we use for marketing Experience Builder going forward, and we might evolve the same design system for future demos.
I think it would be totally fine for the team working on this to make a decision to use an open source design system. I personally don't see why we shouldn't leverage an existing design system if we can accelerate our progress by doing so.
Comment #16
kristen polThanks so much for the feedback :) Very exciting stuff, and we hope to get you all something more tangible to look at next week!
Comment #17
cellar door commentedI'd vote that whatever the design system to implement the demo is be the basic design system that we then extend into the full design system for launch. I can see the benefits of using something like civic theme as a starting point but it may be good to use it as a starting point but then fork it eventually to ensure the design system for the Experience Builder can make decisions on the directions of the design system without having to coordinate those with the larger design system.
Some questions we should look to ask:
1. What's the basis of the design system? Is is based on Radix, Bootstrap, etc. or is it built entirely unique to this theme? I believe Starshot is looking to use Radix as a base and I'd recommend we coordinate with that effort as well so as to create a cohesive system. Maybe they use CivicTheme?
2. What's the direction of CivicTheme going and how would that impact the inclusion of it in experience builder? Are there differing directions the design system is going that may be different than the project and what would it look like if that did happen?
3. How quickly could we get the components ported to SDC so we can use them in the experience builder demo? Is it going to be more effort to port them to SDC than to create from a different starting point?
Overall this is super promising though and may help prototype out things very quickly!
Comment #18
kristen pol@lauriii Question about the mockups as we just had a meeting about this and we were in Figma checking stuff out.
There is the
XM Content Mockuppage but there are some other things in Figma:Mockup - DUPLICATE PLEASEandUnconverted Design Mockups.For the initial sample/demo we send over soon, should we just focus on the
XM Content Mockupor should we also incorporate any of the other pages or sections/components of those pages?Please note that there is a big CivicTheme release that is scheduled for early next week so we are currently targeting towards the end of the week (Friday Australian time / Thursday US time) to get these samples here. They don't take a lot of time to create, but the release is a blocker to get the right people working on this. We will try to provide more updates early next week as we firm down the exact timing.
Comment #19
kristen polThanks @Cellar Door for you input :) In our meeting just now, we actually mentioned the possibility that Drupal may "fork" or move away from CT and do a more Drupal-product-focused thing post-demo. I don't think this is necessarily a bad thing. This is open source ;)
I can't answer all these questions as I didn't help build the design system, but I can follow up with the team for more clarity:
1. What's the basis of the design system? Is is based on Radix, Bootstrap, etc. or is it built entirely unique to this theme? I believe Starshot is looking to use Radix as a base and I'd recommend we coordinate with that effort as well so as to create a cohesive system. Maybe they use CivicTheme?
I don't think it's either Radix or Bootstrap. I will ask the tech lead for more details on this.
But, as far as I understand, we want Experience Builder to work with any design system that uses SDC, so perhaps this doesn't need to be considered for the demo design system? I defer to @lauriii and team to weigh in on that.
2. What's the direction of CivicTheme going and how would that impact the inclusion of it in experience builder? Are there differing directions the design system is going that may be different than the project and what would it look like if that did happen?
We have formed a steering committee to help with the governance model of the open source project. Although CivicTheme was open-sourced years ago, we are in the early days of the steerco and still recruiting new members. We actually have a steerco meeting today and will be discussing this potential opportunity.
The components thus far are all generic components that you come to expect from any design system. They were born out of years of experience in the government space (thus the "Civic" name) but they are generic and could be used for any website. We use them for non-government sites as well.
Some main things about the inclusion of official components into the design system are that they have user research to ensure they are what users actually want/need, they pass WCAG 2.2 AA standards, etc. That said, you can easily extend the design system to have whatever custom components you want, so you aren't locked into the governance model to get components officially added.
Our goal is to engage open source community members who will want to contribute well-thought out and highly-vetted components back into the system as official components. We have contribution guidelines and are working with several organizations who are working right now to contribute components back to the project.
3. How quickly could we get the components ported to SDC so we can use them in the experience builder demo? Is it going to be more effort to port them to SDC than to create from a different starting point?
This is an excellent question and one we've been discussing. I personally haven't used SDC or even researched it that much. Our tech lead did say awhile ago that it should be too hard to port these. We have an action item to look into this more closely and perhaps port one over as a PoC to see how long it takes so we can estimate the work. If there are other contributors who want to help, then this could be a nice way of getting involved by taking a few components and converting them :)
Thanks again for putting thought into this. We are excited at the prospect of CivicTheme being considered for the demo design system. We understand some people may have hesitations and concerns and we hope we can continue to discuss and sort these out.
Comment #20
lauriiiI agree that in an ideal world this would be the case. If the demo works out well with CivicTheme, it may give us confidence to use it as the default design system or as a starting point to build that. However, I've intentionally tried to keep these two somewhat decoupled for now because it doesn't seem realistic for us to make a decision on that right now.
For the demo, we should focus just on the XB Content Mockup.
The XB admin UI is currently being built with the Radix UI design system. That said, I don't think it needs to have an impact on the decision regarding which design system to build the demo design system because like @Kristen Pol is saying, XB should work with any SDC based design system.
Comment #21
kristen polThanks for all the clarifications @lauriii :)
Comment #22
guptahemant commentedWe have also developed a design system internally, which is integrated with storybook, http://space-design-system.qed42.net/?path=/story/welcome--page, Component are defined to be compatible with Ui patterns so should be easy to convert them and make them work with SDC as well.
Please let us know further thoughts around it.
Thanks
Comment #23
kristen polThanks @guptahemant. That's a fun coincidence that yours has a space theme :D
What kind of user testing did you do and what compliance standards does your design system comply with (e.g. WCAG AA 2.2)?
What are your open source licensing policies for Figma, UI Kit, etc?
Any background info on the design system's evolution would be helpful too.
Comment #24
kristen polForgot to mention that we were able to schedule work and should have the demo/samples by EOD Thursday (US time zone) but maybe earlier in the day.
Comment #25
kristen polOne thing that came up yesterday when we were discussing the XB designs was what user testing and accessibility review happened on these and if we have access to that information.
Comment #26
guptahemant commentedHi Kristen, I discussed internally and was able to get following information:
SPACE being component based allowed us to look at individual component performance and accessibility, allowing us to have lower time to assemble an accessible & performant web page. We have factored for WCAG 2.0? and have noticed some minor gaps that is easy to fix with nominal effort.
SPACE started as a Drupal accelerator for QED42's projects, since starshot announcement we see lot of similarities in both objective and approach and are looking into open source licensing of our core architecture.
We would also add a detailed write up around this in form of a blog post.
The naming is a pleasant co-incident, it strengthens our co-relation. We named it SPACE, for the fact that any branding needs can be accommodated on the platform and all 3rd party integrations possible in spirit of OpenDXP
Official links:
Main site: https://spacedxp.com
Design system: http://space-design-system.qed42.net
Beta Access: https://space-drupalconlille.qed42.net
Feel free to reach out for beta access.
Comment #27
kristen pol@guptahemant Thank you for these details. I'll post some CivicTheme samples for review shortly. And then I'll review and respond to your comment more thoughtfully.
Comment #28
kristen polHere are some samples of the XB home page mockup in the CivicTheme design system along with additional resources.
Screencasts (ignore recording numbering)
Templates
Prototypes
Resources
Next steps
Get approval from XB team to move forward and, if approved:
Comment #29
kristen polChange a summary heading back to what it was (changed by mistake).
Comment #30
kristen pol@guptahemant Apologies, but I'm not feeling well, so can't provide a proper response right now to your detailed comment.
For now, I'd lean on @lauriii to see what he thinks should be the next steps for this issue based on:
Comment #31
sime+1 on the demo strategy.
Just 2c about the future work. Specifically the model i like about civictheme is the UI Kit implementation with Storybook. However since experience builder will use SDC isn't there an SDC native design system technique we would be using?
Comment #32
guptahemant commentedHi Everyone
Internally at QED42 we challenged SPACE on the demo figma design, present in the issue summary, and were able to build it within a day by following these steps:
Demo link: https://demo.spacedxp.com
Note: Currently our components are built on top of UI patterns, but can easily be converted to SDC.
We welcome your feedback.
Thank you!
Comment #33
kristen pol@sime we would convert the CivicTheme components to SDC if we were chosen for the demo.
@guptahemant Thanks 👍 do you have the Figma for this as well? I do see you match closer to the mockup designs compared to the CivicTheme sample but please note there are UX/accessibility reasons behind why we did things differently that are explained in the Figma file if you are interested in reading those.
Comment #34
lauriiiFinally had a chance to review #28. The Figma file makes it really easy to see what the proposed design system would be which is great. It looks like there's quite a few changes proposed, and I'm not really sure I agree with the general direction. The goal is to showcase the new Drupal branding which can be found in https://drupal.widencollective.com/portals/gfvztttq/BrandPortal. The changes make the design look too generic. There's probably some feedback that should be addressed but we need to find a way to balance that better in order to remain original to the brand. I discussed this with @pixelite from Promote Drupal and at least on a high level, she agreed with that.
It looks like the design in #32 is much closer to the original designs. Is there a Storybook page or some other way to see how the design system is built?
Comment #35
kristen polComment #36
kristen polComment #37
kristen polThanks 🙏 Sorry but Im traveling and have no internet and only occasional partial cell reception for the next couple days so I’m leaving this quick acknowledgment from my phone. I did share your comment with our designer just now while I’m out of SOS mode. I should be able to follow up properly in a couple days.
Comment #38
vidit.anjaria commentedHey Laurii & Kristen,
https://www.figma.com/design/bAnd87KYw7YASCry80QOaY/SPACE-DS-%E2%80%93%C...
We aligned our component library with the provided starshot design, updated our design tokens and created the demo.spacedxp.com page.
For your reference have attached the figma file of our design system to have a look.
Would also like you to have a look at the comment #26 as well.
Happy to receive feedback and also would love to hear about the experience you had with SPACE instance.
Thank you!
Comment #39
kristen polBig apologies. I was in the countryside/mountains for a few days and didn't realize the Airbnbs wouldn't have internet, and the cell reception was very spotty. Then I had a family emergency on top of that. I'm back in civilization now.
@vidit.anjaria Thanks for the Figma and for pointing out the other resources again. I'll let Lauri comment on those.
On the CivicTheme side, thanks for reviewing the Figma @lauriii and we understand your concerns about the design looking too generic. I was able to talk with the team late last night and the designer will update the Figma file to match the demo designs based on your feedback.
For now, we'll assume that you will keep your demo designs as is and not incorporate any of our UX/accessibility feedback. He's finishing some client work in the next couple of days and then will do the Figma update. I'll post the updated Figma file here by the end of the week.
At that point, once both design systems implementations match the demo designs, we'll need direction from @lauriii on if one or both design systems should move forward to porting to SDC, so they can be tested with XB prior to the Barcelona demo. Or maybe there are other considerations that have surfaced that also need to be factored in to the chosen design system(s)? We are happy to continue on this journey, so just let us know :)
Comment #40
kristen polHello :)
Our designer was able to update the designs yesterday before going on vacation for 2 weeks. There are 2 variants:
Templates:
Note: I see that the outlines aren't on the "Build Outside The Box" images for the XB landing page. This is simple to update so I'll see if one of our other designers can update this. This is not a limitation of the system and can be easily done.
Icons: The Phosphor icon component was added based on discussions in the #promotedrupal Slack channel over the last week. It is not meant to replace the component in the XB mockup, but we thought it would be nice to add based on those recent discussions.
Prototypes
Exports
Next steps
@lauriii to review with the XB+Starshot teams to determine if:
Thanks!
Comment #41
lauriiiThank you @Kristen Pol and @guptahemant! I have following questions before making a decision who leads this track:
I'm planning to make a decision on 10.7. Let me know if you need more time to answer to these questions. 😊
Comment #42
kristen polThanks @lauriii 👍
I’ll check with the team but we are definitely open to collaborating and I can help coordinate that effort. I can add more detail in a day after checking on the other things.
A couple of questions:
1. When would you like the demo ready? You will need time to test so I’m assuming by mid-August at the latest?
2. Do you mean 10 July? (update, looks like you changed the 10.6 so yes ;)
[update] Btw, I'll be traveling 5+ hours today and am not sure I'll have much cell reception until I arrive at my destination.
Comment #43
guptahemant commentedHi @laurii
Regarding #41 Please find our response for each individual item:
We can start working from mid next week and we will be covering below things
We are expecting this to be completed by Mid August.
Initially, we prefer to work internally until the basic setup and cleanup tasks are completed. Once we reach that stage, we are open to collaborating with contributors to advance the project further. We anticipate reaching this point by the last week of July or aim to start collaborating with contributors during the mid-process of cleanup.
Yes, but not on the actual projects but our SPACE product architecture uses Ui patterns, so it should be easier to convert them on SDC.
(9.00-17.00) CET = (12.30-20.30) IST - Considering this, overlap hours can be 6-6.5 hours.
Please let us know your thoughts further.
Thanks
Comment #44
kristen polThanks @guptahemant!
Fyi, I'll post our responses before the end of my night (Pacific time zone) so it's available at the start of @lauriii's day to review and help inform the decision.
Comment #45
kristen polThanks @lauriii for leading this review process.
I will provide somewhat brief responses to your questions below, but I have more complete information in the attached slide deck. I’ve also recorded an unrehearsed (midnight!) video of me going through these slides if you prefer.
1. When do you expect to start and finish the project (rough timeline)?
Assuming you make your decision tomorrow, we would start planning the work more officially this week. Next week, we’d start architectural review and technical direction. Soon afterwards, with the first component migration, we’ll create an SDC migration guide, so that others can also contribute. The plan is to get components for your team to start testing mid-August and then iterate based on any feedback, so that we are done before September. In September, we would promote DrupalCon Barcelona and the XB demo, and we can also support you in-person in Barcelona if that helps. Here’s a visual breakdown of the timeline:
2. Are you open to collaborating with outside contributors or would you prefer to run this internally within your organization? If you are open to collaborating with outside contributors, how would you prefer to engage with outside contributors?
Definitely! CivicTheme has established contribution guidelines, processes and documentation, and we are comfortable working with community members to provide support and mentoring and to collaborate on contributions.
Some ways we would like to engage contributors is by creating an SDC migration guide, setting up dedicated Slack channel, running regular async meetings, etc. Based on the proposed timeline, we would be able to start community engagement in late July. Here is some supporting information:
3. Does your team have prior experience working with SDC?
While we haven’t used SDC on our client projects yet, we’ve used similar structures on many Drupal projects where we’ve implemented or integrated design systems and UI components. We’ve been designing, building and integrating design systems since late 2014.
Salsa also presented on SDC earlier this year for DrupalSouth 2024.
CivicTheme uses atomic design principles and is structured in a similar way as SDC. We’ve had SDC on our CivicTheme technical roadmap since it was added to Drupal core and have had discussions in the CivicTheme Steering Committee about this, so this will be a good opportunity to accelerate the migration.
How much timezone overlap does your team have with CET office hours (9.00-17.00)?
Our team are in Australia, India and the US. Async collaboration is best for worldwide participation, but real-time CET discussions can be supported as needed. I’ve included a worldbuddy image below that shows the time zones. For Pacific time zone, the best overlap is 3pm+ CET. For India, the best overlap is 9am to 1pm CET, but later hours can be supported. Australia business hours don’t align to CET business hours, but we can arrange for night meetings as needed until around 1pm CET. Putting this together, minimal coverage is from 9am to 1pm and 3pm to 5pm but probably can cover the entire time depending on which team member is needed.
We are curious what type of real-time coordination you would like to engage in, so we can better plan and support your contributors in European time zones.
One final note is I’m also attaching our whitepaper: “Designing evidence for a world-class open source design system” which talks about our evidence-based framework which you may find interesting.
Comment #46
lauriiiThank you for the prompt responses @guptahemant and @Kristen Pol! It's amazing to see the enthusiasm that both of you have towards contributing to the Experience Builder!
I've reviewed both of the proposals and I believe both of the teams would be well equipped to succeed at this. This makes it really challenging to make a decision between the proposals. Ideally, there's opportunities for both organizations to contribute to the project.
I really like that @Kristen Pol has given a lot of thought for how they could run the project as a community initiative. This is why I'd like @Kristen Pol and the Salsa Digital team to lead this project.
I'm confident that this will give opportunities for @guptahemant and QED42 to participate as well, once the Salsa Digital team has been able to set up some basic structure for the project. Alternatively, there's #3454525: [META] Track 1: Update Drupal.org for Drupal Starshot as well as work to implement these designs for Drupal.org which I believe the DA could use help with. In case that this is something you're interested in you should reach out to @hestenet.
I'm anticipating that there might be some blockers in SDC or Experience Builder that make it hard for the team to progress beyond a certain point without support from the core XB team. If the different teams have timezone overlap, it helps resolve these blockers more real-time, making the overall process more efficient.
Comment #47
kristen polThanks @lauriii for the thoughtful response.
We are very excited 🎉 and definitely welcome the QED42 team to join our effort. Though their team helping with the d.o redesign work sounds amazing too ❤️
We’ll get cranking on our end and even will likely pull in a CS intern to help which aligns with getting new people involved with Drupal.
More soon!
Comment #48
guptahemant commentedThanks @laurii for finalising on this.
We are committed and look forward to contributing here, We will keep following the progress via issue queues and slack, and will jump in to contribute when Migration guide is ready.
@Kristen Pol Please let us know if there are some specific areas where we can help. Overall very excited to see what we can deliver here as community.
Additionally we would definitely check around D.O redesign opportunities and would reach out to @hestenet via slack / Issue Queues
Comment #49
wim leersVery exciting to see this happen!
It's been quiet for a week now … I'm curious if there's any news to share? 🤓🤞
Comment #50
kristen polHaha... yes... thanks for the prod ;)
Been busy over here:
We'll be doing more this week to prep for making the guide next week in anticipation for getting more people involved.
Stay tuned!
Comment #51
kristen polProgress update: We are working on contribution guides now and are targeting those to be done by the end of next week, so we can do a webinar the following week and welcome new contributors. We are also planning on working on a couple of XB demo components next week as well as a handful of SDC conversions for the existing CivicTheme components to use as examples in the SDC conversion guide. Stay tuned :)
Comment #53
wim leersNow that #3463999: Auto-create/update Component config entities for all discovered SDCs that meet XB's minimum criteria is in, I just tried https://www.drupal.org/project/demo_design_system for the first time, together with @lauriii and @jessebaker.
Note that you'll need to do (a subset of) https://www.drupal.org/community-initiatives/starshot-demo-design-system... to get it to work — I only did the
npm run buildandcomposer require drupal/components:^3@beta.The good news
We got the

starshot-cardcomponent to render in XB:🥳
The bad news
There's lots of show-stopping problems:
Either default content must be present in each slot, or this conditional rendering must be removed.
I vote the latter, because … conditional rendering actually doesn't work anyway — see #953034: [meta] Themes improperly check renderable arrays when determining visibility.
starshot-cardcomponent says:those 3 are required props. But … neither
linknorimageis even an existing prop! 😅(
I'll add this upstream SDC bug to #3462705: [META] Missing features in SDC needed for XBtracking at #3462705-23: [META] Missing features in SDC needed for XB — SDC's DX should point out such problems!)Next steps
ComponentPropsFormroute uses the Olivero/Claro theme, rather than the default theme. → #3469686: Changing default theme can break HTML forms generated by XB API routes: always negotiate the Stark themeI'll create the issues on the XB side for those next steps 👍
Comment #54
wim leersIssues now exist for 1.2, 1.3 and 1.4 👍 #53 has been updated to link to them.
Comment #55
kristen polUh… I wasn’t given any heads up here and had no idea this was happening. I only yesterday got to testing XB and looking at the XB components and saw the examples section for example. I already made a ticket yesterday for that and also to clean up the required props so those are happening this week. Maybe popping in our slack channel or a DM on what’s happening would be good so we can coordinate better? Meanwhile I’ll review this more carefully to understand the other gaps
Comment #56
kristen polAnd apologies for my rudeness… it’s been quite a rough week.
Comment #57
kristen polAlso I’m not sure that you are aware but Suzanne asked me late last week if we can do all new custom components because they completely redid the redesign so our frontend folks are scrambling to do the new components.
Comment #58
kristen polJust an acknowledgement that we are working through the various issues and can see config getting created....
Because the components module is not ready for D11 and it's unclear the D11 MR is working, I've switched back to D10. Based on Wim's comment above, it's clear D10 was being used.
For now, required fields have been completely removed until the contributor working on that can go through all the components.
I expect we'll have much better alignment next week :)
Comment #59
wim leersYay! 🥳
💯
Can you indicate which components you'd expect to see appear in XB? Is it only the
experience_builder.component.starshot_demo+*ones or more? (👈 This was our question for you over at #53.1.1.)FYI: I've bumped every issue listed under #53.1 to critical and have a person assigned to them.
How critical is the reliance on the Components module? 🤞 Would it be hard or easy to refactor that away? (I have no idea! It's possible the answer is simply "Are you kidding me? You clearly don't know anything about this or you wouldn't even ask this!" — because I do not know. At the surface level, it seems to "just" be about Twig namespaces?)
I was not in any of the above conversations, so apologies if this was discussed out-of-band. I'm just surprised that module is a dependency — it saw its last release >2 years ago. (Also: why not list it as a dependency of the theme? That has been possible for 2.5 years now.)
I personally expected this demo design system to come with zero dependencies (on additional modules/themes). But I defer to @lauriii. Assigning to him to get his feedback.
Comment #60
kristen polThanks 🙏 regarding the components module dependency … I’d hoped we might be able to remove this… it’s for twig namespaces… but core doesn’t support that. We are using a UI kit that is tech agnostic so pulled in from outside of drupal and then additional custom components are added with the subtheme. We can hack it to use SDC for the namespace if you want no dependencies.
Given this is an existing design system, it of course has many components but…
As for the components that show for the demo, I would love it if we could have the group in the SDC yaml dictate the organization and then we could label all the custom components as “Starshot” or “Drupal”. or alternatively some sort of tag as has been mentioned
Sorry but on phone so this text is messy
Comment #61
kristen polAlso… i already put more context in slack last week on the components module stuff (and groups/categories) but one reason we use the module is so we can see the components in storybook (using npm, not the Drupal module).
So… SDC / core will probably need to allow custom namespaces to allow pulling in components that aren’t just for Drupal
But again… we can get rid of the dependency for Barcelona if you need it.
UPDATE: when trying to remove the dependency last week, it was removed from the info dependencies list but I was going to add that back today unless I hear that we have to remove the dependency
Comment #62
lauriiiI'm not sure how much would this help given that SDC as a format is already Drupal specific. In most scenarios where outside components are being used, I'd imagine that there's either a build step that compiles non-Drupal components into SDCs or a manual step where a developer integrates the components with Drupal (by writing *.component.yml and loading the template + CSS). This might become more valuable if SDC as a standard gets adopted outside of Drupal.
For the purposes of the demo, I don't have a strong opinion on how it's set up. If we have some known workarounds in there, instead of trying to get rid of them, I think it's fine to just document those so that if someone is looking at the code base, they get a sense of what the end result might look like.
Comment #63
kristen polThanks. We were thinking about having a build step anyway in order to combine the SDC YAML files with the ui kit components. We can revisit next week after we sort out more pressing things like the YAML structure and get the new designs pulled in
Comment #64
wim leersThat is the capability we've identified (listed in #3462705: [META] Missing features in SDC needed for XB), which is not yet implemented yet and won't be before DrupalCon — @laurii considered that non-essential for Barcelona. Unless @lauriii is changing his mind based on this? 😊
👍
Right, the technical underpinnings are not really visible in the demo. I do think it'd be nice if the Starshot demo design system were as close as possible to core's way of using SDCs though (no external dependencies, everything self-contained is a key design/architecture aspect of SDCs) 🤓
Comment #65
kristen polGotcha and understood. When chatting with Lauri yesterday, I suggested a stopgap where we can mark any of our components “obsolete” that shouldn’t be shown in the demo and created this issue:
#3470424: New component requirement: obsolete SDCs must not be auto-added, but must be auto-updated
Comment #66
kristen polNote that the SDDS team did build off of the original Figma designs:
https://www.figma.com/design/aADVsc8fdsENnUaKePvVpg/Experience-Builder-D...
but were asked to ditch those (we are renaming those components to old-component-name :) in lieu of the new designs that were sent less than 2 weeks ago:
Target Pages for Barcelona > Kasey’s Homepage
https://www.figma.com/design/tKYim76bnDZAyWubUi3sVv/New-Drupal-Brand---D...
so we should update the link in the summary, but I'm hesitant to update the summary myself :D
Comment #67
lauriiiFeel free to update the issue summary @kristen pol! You are leading this track so I think it's totally fine for you to update the issue summary based on the input that you received from the marketing team. 😊
Comment #68
kristen polUpdated summary with latest Figma and how to get involved.
While I will try to be more diligent about adding updates here, the best place for status is in the dedicated Slack channel and weekly meetings which are now noted in the summary.
Comment #69
kristen polAssigning to me.
Comment #70
kristen polWill try to update this issue more regularly for those who are not following the SDDS project issue queue or dedicated Slack channel.
We had a great breakthrough yesterday (see screenshot below) with refactoring our SCSS/CSS and getting most of the baseline SDC "examples" in place so we can see components and some are functional enough to see the preview upon hover and then drag into the main area and move around. Although most of those components will likely *not* be part of the demo, it shows a much more clear path forward, so I/we were very happy last night when seeing this 🎉
Things that should land this week include the new design components (getting final touches now) and tweaks to the examples (like placeholder images). Next week, we should be able to have more testing for components that have okay previews (even if they are not in the demo, we'd like people to test these as they may help find issues in XB).
The main "blockers" right now are:
Comment #71
kristen polI didn't list it as a "blocker" but am wondering where this one will land as well since this is obviously a "big deal" :D
#3467959: SDC and code component props should be able to receive HTML, editable in formatted text fields+widgets
Comment #72
kristen polLooks like maybe #3467870: Support `{type: array, …}` prop shapes is what we need for number 3 in #70. If so, then we will just not focus on those for now and just focus on single value props.
Comment #73
kristen polWe are adding SDC YAMLs to the new design components in MR right now.
Notes
.txtextension for now so they are not in the UI and we can see what we need to see betterCurrent Blockers
Comment #74
wim leers#70:
🥳🚀
#73:
/admin/structure/component. We're adding support for disabling them (use case: a SDC was not obsolete and has been adopted; then it was marked obsolete, which means it must not be listed anywhere, but it must continue to work) in #3470424: New component requirement: obsolete SDCs must not be auto-added, but must be auto-updated. Does that answer this question?type: arrayprop shapes yet, and will not before DrupalCon. Anything that we demo would simply exclude SDCs that havetype: array.RE: bockers:
Comment #75
kristen polThanks for the lengthy feedback and prioritizing those issues 🙏
It’s 1am here and been working since 730am except for a walk 😱 so I’ll read this more carefully tomorrow.
I think once the slot issue is fixed where you can drag into an empty slot, I’ll be able to refactor the components easier since I can test them. I’ll look at the XB image component tomorrow and compare against ours to see what’s amiss.
As for moving components out of the way, deleting from UI only works until you clear the cache. We have about 80 components in our design system plus the XB ones so I’ve gone through ours to “hide” many that won’t be demoed. I did leave a few simple ones that aren’t the new design to have something easier to play with.
Comment #76
wim leersYes, I prioritized that (#3469442: Impossible to drop a component into an empty column of the two) yesterday, and it's working, but it still needs review from @bnjmnm and/or @hooroomoo to land 😬
Indeed. Which is why @f.mazeikis is prioritizing the adding of more criteria to automatically include only relevant SDCs, and why #3470424: New component requirement: obsolete SDCs must not be auto-added, but must be auto-updated is extra important (the "disabling" ability would be survive cache clears). 👍
Comment #77
wim leers@kristen pol FYI, a number of improvements/fixes have landed that should make things much easier for you fine folks working on https://www.drupal.org/project/demo_design_system, when testing your SDCs in XB! 😊
Comment #78
kristen polWoohoo 🎉 Thanks 🙏
Comment #79
kristen pol1. Here are the current blockers for SDDS development:
2. Maybe not a blocker to development per se but these would be helpful:
3. These are not blockers to development but ones we are also tracking:
4. Recently fixed issues that require us to update things:
5. Post-Barcelona
Comment #80
wim leersFixed issues that should help y'all:
<textarea>to show up — but it won't work just yet — see #3463842-6: [META] Redux sync on ALL prop types, not just ones with a single [value] propertyComment #81
kristen polThanks! It looks like we are unblocked enough to move forward again
https://youtu.be/eW2FcHSx-bY
Comment #82
kristen polAdding to blockers:
#3472192: Redux support for ImageWidget: `[image] String value found, but an object is required`
And adding to other to watch:
#3472179: [PP-1] Can't toggle boolean prop back to true after changing to false
Comment #83
kristen polUpdated XB blocker issue list
[UPDATE: MOVED ISSUE LIST INTO ISSUE SUMMARY]
Comment #84
kristen polCopying the XB issues to issue summary.
Comment #85
wim leers#3469436: Fix the visually broken "image" component instance: use FileUriItem's computed `url` property, not the stored `value` property was just fixed.
The two other blockers are in progress too: #3472192: Redux support for ImageWidget: `[image] String value found, but an object is required` is being worked on by @bnjmnm, #3471085: Adding a component with slots does not register the slots as children is being worked on by @balintbrews & @jessebaker.
Issue summary updated for you, @kristen pol 👍
Comment #86
jessebaker commented#3471085: Adding a component with slots does not register the slots as children has now landed
Comment #87
kristen polThanks! From testing a couple hours ago. I still need to play with slots again.
https://youtu.be/j46NzjwEfp8
Comment #88
lauriiiResponding to #3463300-21: Implement the concept of sections within the client.
ui/src/services/sections.ts. It basically just stores JSON which would usually be generated by the XB.Comment #89
kristen polThanks for the details. I'll plan on looking more at sections early next week. We will be refactoring our new components over the next few days so will keep this in mind while we do.
Comment #90
lauriiiI'm happy to jump on a call to brainstorm this in case that that would be helpful. Let me know!
Comment #91
kristen polCool... that might be good early next week after we've done more integration work :)
New critical (regression):
#3472634: Component List doesn't scroll
Comment #92
kristen polI've been using the component scroll mr branch to continue to test. I'll try to give an update here late tonight or tomorrow but some progress has been shown in the XB Slack channel.
One thing we need direction on ASAP please so I know if our frontend devs need to adjust on our end:
#3472893: SDDS responsive styles don't fit well within XB desktop preview
And this is our number one blocker for testing:
#3472192: Redux support for ImageWidget: `[image] String value found, but an object is required`
though there may be others (maybe related?)... hard to say until that one is squashed.
Essentially, I can't use the prop form in most cases now and there isn't anything in the logs and the JS console isn't helpful. I'll probably just make an issue for your team to try some of the components and see if they can figure out what's going on with the prop form.
Comment #93
kristen polOkay... I've created one for the hanging props form:
#3472900: XBEndpointRenderer & processResponseAssets() do not support `ajaxPageState` ⇒ duplicate CSS/JS loading
Comment #94
kristen polAdd for the assert issue I've been working around:
#3472907: AssertionError: assert($component_config !== NULL)
Comment #95
kristen polFollowing up on sections from #88, we are going to see where we are at later this week to determine if it would make sense for us to do anything with those.
Comment #96
wim leersQuoting #53:
… that still doesn't work on Drupal 11, because #3428529: Automated Drupal 11 compatibility fixes for components isn't in
@lauriii, are you aware that this means that this is currently not yet on track to be demoable on Drupal 11?
Comment #97
kristen polWe’ve been trying hard to get that committed. Rob said he’d commit it if RTBC which it is and I’ve pinged his employer but nothing yet. John Albin has responded. I’ll ping Tim H.
Comment #98
kristen polI’m trying to fast track
#3468238: Offering to co-maintain Components
Comment #99
kristen polTim has added Adam as co-maintainer so I've pinged Adam and have moved this issue back to active:
#3471097: Switch SDDS to D11 components module once it's available
I'm assuming I'll be able to switch us in a couple days.
Comment #100
kristen polNote that:
#3472192: Redux support for ImageWidget: `[image] String value found, but an object is required`
is currently fixed in the MR here:
#3472900: XBEndpointRenderer & processResponseAssets() do not support `ajaxPageState` ⇒ duplicate CSS/JS loading
along with textarea so I will use that branch for now even though it hasn't fixed everything yet.
Comment #101
kristen polAdam said he'll get the D11 components MR merged today so we should be able to switch to D11 by tomorrow.
Comment #102
kristen polWe're on D11 now. And I've done some cleanup and can't reproduce:
#3472907: AssertionError: assert($component_config !== NULL)
with completely fresh local so hopefully that was just due to cruft of testing many versions.
I've changed the top priorities for us as:
#3472900: XBEndpointRenderer & processResponseAssets() do not support `ajaxPageState` ⇒ duplicate CSS/JS loading
and
#3463842: [META] Redux sync on ALL prop types, not just ones with a single [value] property
Comment #103
wim leers#3469684: Surface the REASON for an SDC not being made available in XB (i.e. not meeting criteria) is in too, which should help local testing a lot :)
👇
Quoting #53:
Everything under point 1 on the XB side is now finally done. 🏁
@lauriii & @kristen pol: did the two of you ever sync/agree on what the list of SDCs is that we're aiming to have appear in XB for the DrupalCon Barcelona demo?
Based on the messages above, I think that's the case, but I'd rather be safe than sorry 😇
Comment #104
kristen polThanks!
I don't normally have trouble getting components to show up as I understand the limitations of XB very well now and can hack around things.
But, editing in the props form has been a huge bug bear and what I've been mainly working around which probably takes me 2 to 4 times longer to do anything. For example, to test all the props except image, I'll comment out the image, reload components, test the props, and then the image isn't in the preview, so have to switch back to having the image in it again. If I need to retest the props, rinse and repeat.
I've also run into a variety of bugs that probably don't have issues. For example, with integers, it seems where two components using the same prop name and one is an integer and another is a string. But, we are are too down to the wire so we will change on our end to use different prop names or not use integer. At this point, rather than reporting bug after bug, I'm just trying to find ways around the bugs.
I've been working closely with @alan.cole on adding more slots and sub-components so that you build up the sections to make it look like the design.
XB has only been somewhat usable enough for the last few days to work through this better. We've made good progress in the last couple days, but it's still in an MR at the moment. I feel like we have a good way forward for everything except perhaps the slider, but I'm checking with Alan on that when he gets online.
The biggest blocker for me (and what is preventing getting more people in the community to help test) are still the following which are probably all related:
#3472900: XBEndpointRenderer & processResponseAssets() do not support `ajaxPageState` ⇒ duplicate CSS/JS loading
#3463842: [META] Redux sync on ALL prop types, not just ones with a single [value] property
#3472192: Redux support for ImageWidget: `[image] String value found, but an object is required`
I need the props form to work for all components, so I don't need to waste time commenting out, rebuilding, testing, uncommenting out, rebuilding, etc.
As for the components to show in the demo, we have been building everything from the designs (again, updates are in the MR and not in the main branch yet).
We can easily rename any of these, but here's what I've been testing:
For structure:
Simple things:
Cards:
Bigger things:
I should be able to create a video with building up the page in the next couple days. Again, the slider is still questionable, but we could at least put columns and put the slider card in there to represent the section.
As for other components beyond these, there are some that work fine from the old design and from the base CivicTheme theme, but I don't know what should be demoed beyond the landing page sections.
And, as for "actual Sections", I still haven't had time or energy to look at this. We can revisit at the end of the week.
Note that it will show up fine at 1024 so that's no longer an issue.
Comment #105
kristen polMoving issues around in the summary.
Comment #106
kristen polp.s. I think I already said before I've been using the MR here:
#3472900: XBEndpointRenderer & processResponseAssets() do not support `ajaxPageState` ⇒ duplicate CSS/JS loading
so that textareas work and some other things.
Comment #107
kristen polReordered blockers.
Comment #108
kristen polSome videos using the MR that I'll be merging shortly.
Best to watch in this order:
Comment #109
kristen polHard to get a full screenshot but here are some partials...
Comment #110
kristen polManaged to zoom out to get a better screenshot
Comment #111
wim leersVery nice! 👏
I assume those screenshots are why in your meeting with @lauriii #3472893: SDDS responsive styles don't fit well within XB desktop preview was marked ? :)
We're very well aware of the component props form functionality being incomplete. There's not enough of us to have it all working already. Just this morning, a big leap forward on that front landed (#3473155: Redux Sync all single-value types in the SDC test all props form) — and it came with end-to-end test coverage to ensure that for the tested prop shapes (and hence field types+widgets), it does work correctly 👍
Comment #112
kristen polUsing MR from #3472900: XBEndpointRenderer & processResponseAssets() do not support `ajaxPageState` ⇒ duplicate CSS/JS loading...
It took me a few tries, but I made it through all components except the last one in one go... I had to side step some issues (e.g. dragging certain things, can't upload), but this is SO DEMOABLE if you know what *not* to do :D
https://youtu.be/SAir2OxwMS4
Comment #113
kristen polLatest testing details and videos:
https://www.drupal.org/project/demo_design_system/issues/3473641#comment...
Given we can demo for Barcelona (using MR branch etc as noted above), I don't think we "need" to do anything more on the SDDS side before Barcelona.
@lauriii please let me know if you have any blockers or want any tweaks.
Comment #114
effulgentsia commentedDo folks here think #3475652: Should we add SDDS to XB's Tugboat? is a good idea or bad idea? Please chime in over there with what you see as pros or cons of that.
Comment #115
kristen polI think it would be great... I added a quick comment :)
Comment #116
wim leersComment #117
wim leersDrupalCon Barcelona happened, https://www.drupal.org/project/experience_builder/releases/0.1.0-alpha1 shipped, https://dri.es/state-of-drupal-presentation-september-2024 is live … great job, @kristen pol and team! 🙏👏
Comment #118
kristen polWoohoo! Let us know if you want/need anything in SDDS for Singapore and/or 15 Jan 2025.