Skip to content
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

Shared theme code across MFEs #144

Open
2 of 3 tasks
xitij2000 opened this issue Apr 28, 2022 · 9 comments
Open
2 of 3 tasks

Shared theme code across MFEs #144

xitij2000 opened this issue Apr 28, 2022 · 9 comments
Assignees
Labels
epic Large unit of work, consisting of multiple tasks

Comments

@xitij2000
Copy link

xitij2000 commented Apr 28, 2022

Abstract

Update all MFEs to use a shared consolidated SCSS codebase that can be deployed separately from the MFE. This will make theme testing, building, and deployment, much quicker, easier, and more flexible.

Context & Background

Currently, each MFE build and bundles its own SCSS code, and it is deployed separately with each MFE even though most of the code is shared.

We should have each MFE load a shared common theme that can be centrally deployed and updated. If an MFE needs some custom SCSS it should not have any dependencies on theme variables, so it can be loaded separately.

This has been discused before in discoveries and on the forums

Scope & Approach

The scope of this work is to end up with a single consolidated theme that can be loaded statically or dynamically from any MFE.

Value & Impact

By deduplicating and consolidating common theme code, we make them easier to cache, which in turn makes MFEs load quicker. It is also easier and quicker to deploy the theme code since the base theme is built and deployed once for all MFEs.

This also unlocks the possibility of switching themes at run time (light/dark/high contrast) and unlocking per-site, per-org, per-user themes.

Milestones and/or Epics

Milestone 1: Reduce/remove usage of SCSS in MFEs

  • For all MFEs remove as much custom SCSS as possible, and move it to paragon/bootstrap classes
  • Especially eliminate any SCSS that uses theme variables.

Milestone 2: Load shared theme across all MFEs

  • Allow building and deploying a theme outside the MFE that can nevertheless be loaded by the MFE.
  • Enable MFEs to load a common shared theme

Named Release

Oak

Timeline

The aim is to have it possible to load a central theme by Oak

Proposed By

OpenCraft

Additional Info

No response

@github-actions
Copy link

Thanks for your submission, @openedx/open-edx-project-managers will review shortly.

@gabrieldamours
Copy link

@jmakowski1123

We were about to submit this, but the author notices that it might be a duplicate of #25. Should we consolidate/reconcile both tickets and submit just this one? cc. @xitij2000

@jmakowski1123
Copy link

Submitting this one is fine. I'll close #25 in favor of this ticket. #25 was just the opportunity brief created for the initiative back in 2020 - this ticket is tracking work already underway for the same project, so let's go with this one. Thanks!

@jmakowski1123
Copy link

jmakowski1123 commented Jul 7, 2022

Milestone 1:
Granular tracking of ADR reviews: openedx/axim-engineering#284

@gabrieldamours
Copy link

gabrieldamours commented Jul 8, 2022 via email

@jmakowski1123
Copy link

jmakowski1123 commented Jul 8, 2022 via email

@arbrandes
Copy link

Linking to openedx/paragon#1623 for reference. That's where the Design Token initial doc was committed.

@arbrandes
Copy link

This should be considered when evaluating openedx/open-edx-proposals#410.

@arbrandes arbrandes removed their assignment Jan 30, 2023
@arbrandes
Copy link

I took the liberty of adding openedx/frontend-platform#440 and related issues/PRs as subtasks to this one.

@arbrandes arbrandes moved this from In progress to Backlog in Frontend Working Group Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic Large unit of work, consisting of multiple tasks
Projects
Status: Backlog
Development

No branches or pull requests

4 participants