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

Expose builtin block Sass variables as CSS variables #35173

Closed
Tracked by #34827
kdmccormick opened this issue Jul 25, 2024 · 1 comment · Fixed by #35233
Closed
Tracked by #34827

Expose builtin block Sass variables as CSS variables #35173

kdmccormick opened this issue Jul 25, 2024 · 1 comment · Fixed by #35233
Assignees

Comments

@kdmccormick
Copy link
Member

kdmccormick commented Jul 25, 2024

Goal

As a prerequisite to extracting the blocks into their own repo, we need to decouple the built-in XBlocks from edx-platform's Sass build. We can achieve this by exposing the blocks' Sass vars into CSS vars.

Background

Currently, the built-in XBlocks are styled by .scss (aka Sass) files in ./xmodule/assets. Each Sass file is applied to its corresponding block using the xmodule.util.builtin_assets.add_sass_to_fragment function (PollBlock example). These XBlock Sass files are compiled as part of ./scripts/compile_sass.sh, which is executed as part of npm run build.

Each builtin block's Sass file references several Sass variables (for example, $bg-color). These variables can be customized by comprehensive themes. Here is an example of how tutor-indigo customizes the variables.

These Sass variables need to keep working when the blocks are extracted, but we cannot actually use the Sass variables in the extracted blocks.

Approach

  1. Record a list of every Sass variable used by builtin block Sass.
    • The builtin block Sass files are all located under xmodule/assets.
    • A Sass variable is indicated with a dollar sign, for example $bg-color or $success.
  2. Create a new Sass module common/static/sass/_builtin-block-variables.scss
    • This module will generate a corresponding CSS variable for every Sass variable that the builtin blocks need. Build it using the list you recorded above.
    • For example: --bg-color: $bg-color
    • To make the variables, wrap them all in one big :root { ... }
    • (CSS var reference on MDN)
  3. Include the new common/static/sass/_builtin-block-variables.scss file into lms/static/base/variables.scss and cms/static/sass/_base.scss
@kdmccormick kdmccormick changed the title Convert builtin block Sass vars into CSS vars Convert builtin block Sass into vanilla CSS Jul 25, 2024
@farhan farhan self-assigned this Aug 6, 2024
@kdmccormick kdmccormick changed the title Convert builtin block Sass into vanilla CSS Convert builtin block Sass variables into CSS variables Aug 12, 2024
@farhan
Copy link
Contributor

farhan commented Aug 13, 2024

@kdmccormick I have moved point 4 to this new issue, please remove it from this story

@kdmccormick kdmccormick changed the title Convert builtin block Sass variables into CSS variables Expose builtin block Sass variables as CSS variables Aug 13, 2024
farhan added a commit that referenced this issue Aug 20, 2024
…35233)

* feat: Expose xmodule xblocks Sass variables as vanilla CSS variables
* #35173
rediris pushed a commit to gymnasium/edx-platform that referenced this issue Aug 27, 2024
…penedx#35233)

* feat: Expose xmodule xblocks Sass variables as vanilla CSS variables
* openedx#35173
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

2 participants