-
Notifications
You must be signed in to change notification settings - Fork 839
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
Initial Amsterdam Setup #2541
Initial Amsterdam Setup #2541
Conversation
I'd like to throw out a few a11y related design challenges that might be appropriate to tackle with this revamp:
|
@myasonik I'd like to keep this PR focused on the infrastructure changes needed to accommodate a new theme, one that touches more than just global SASS variables. But, this is a really great list and I don't want it to get lost in the comments of this PR. Perhaps we should make a Meta ticket for what is to be accomplished with Amsterdam (I'm coming around to it:) and add this stuff to it. @johnbarrierwilson Want to start a Meta issue with the few things you've already outlined and then @myasonik can also add his a11y needs? The GH issue can also serve as a running list of all the changes that can then be published somewhere for anyone's reference to know the differences in theme. |
@johnbarrierwilson Will this be the feature branch you work against as we provide feedback on the design changes? It may go without saying, but just so everybody involved is on the same page... my thought is that we shouldn't merge this until those discussions and feedback have been taken into account. We could do PRs against this branch or just work from this one exclusively, but let's not merge in any new themes (i.e. let's not expose this to users on the docs site) until we iron things out. Thanks! |
^ Related to my last comment, let me know when you're ready for design feedback. I tried this out locally (only skimmed code thus far) and the theme switching worked as expected. |
@cchaos @myasonik In this meta issue, I copy/pasted for now. But as more gets added, I'll make sure to keep it organized. Feel free to edit as desired! 😊
@ryankeairns I totally understand and agree that we should not expose this to users at this point. At the same time, we would like to start using this new theme in Swiftype properties. If we can get the stylesheet into the build and able to import into our Swiftype projects, I believe it would be a great place to iron things out in context. I do think there's a safe balance we could strike. Would it be acceptable to disable it on the public version of the docs, yet leave the stylesheet in the package build?
Would love feedback early and often! Not sure the best way to keep up with feedback at this point. Maybe since it's so early and high-level, keep it in Slack (I can create an #eui-amsterdam channel)? |
Just to give some high level framing and expectation.
|
@johnbarrierwilson Understood and +1 to testing within context. I'll give it a more thorough design review and send you some feedback so we can get this first pass in. After that, we can do the contextual reviews (Swiftype, Kibana, Cloud) and keep iterating on the various sections that are being touched. Sounds like a plan! |
@johnbarrierwilson I'm doing an initial review purely on the architecture. I'm sure you've noticed that we're not quite setup currently for being perfectly theme-able. And as I've fussed around a bit in the code and drawing out the current architecture in Whimsical, I think we will need to take this even further and not worry about introducing breaking changes to the file/import structure. (So long as we are mindful of how each breaking changes PR will increase the EUI versioning and try to combine as many into one PR as possible in the beginning). Here's my diagram of how the file system is currently architected, how this PR tries to utilize the current architecture but can't quite manipulate it efficiently, and how we should be architected to allow for easier theming. Your change to the EuiPanel mixin is a perfect opportunity to see how other components rely on that particular mixin which is established in the component file instead of a global file. You can see in the diagram that card's are reliant on this mixin but unless you then also override all of the card imports, it still uses the old What does this all mean?Essentially, we (all maintainers of EUI) need to be cognizant of deciding when to create global and when to create component-only mixins. I'm not advocating that every single component mixin needs to be global. But we need to consider if it most likely will get re-used. Or if we end up re-using one, that we move it to the globals (and probably rename it). I'm creating a PR that will showcase the |
@cchaos I really like the clean cut rule at the end of your explanation... if you re-use a mixin from another component, then that mixin should be moved to global. |
Agreed! In fact, I think that clear cut rule renders this PR invalid. The other work that was included in this PR is easily replicable in another PR with proper architecture. |
My comment was not meant to say that this PR was wrong, but that it just needs to architecture tweaks. It's totally valid to keep this PR open and continue to update it. |
Not taken that way all! :) I just think that your direction is different enough to warrant closing this since the architecture work is more in-depth than the style changes I made. So, from my perspective, it's more simple, easier and different enough to move to a different PR. |
Sure thing, whatever works best for you! |
Summary
As part of the "Break Stuff for 8.0" design theme, this PR sets up the scaffolding for a new theme codenamed "EUI Amsterdam" (yes, we can change the name later if anyone feels strongly enough about it :).
When setting this up, I basically duplicated the manifest and replaced specific mixin files for the changes I wanted to make on the component-level, and variable changes for everything else. I also went ahead and made a few changes to components to make sure the system worked properly. Those changes include:
Question
Checklist
Didn't complete all these since I would consider this a theme that's in beta. But, let me know if I should go ahead and complete all these, or any specific one. I'll make a note in changelog before merging.