* feat: Better support for multiple themes
This change adds support for two CLI options to the build-tokens
command.
The first, --all-themes makes the build-tokens command process all
themes in the source directory as opposed to specifying all the names
via --theme.
Secondly, --base-paragon-theme allows you to have multiple themes derived
from the same common base. If specified, you can have a derived theme that
still loads tokens from the light theme. For example, you can have a
site theme called 'theme-one' and set the base theme to light so it will
reuse the core light theme tokens and layer on changes from 'theme-one'.
* fixup! feat: Better support for multiple themes
* fixup! fixup! feat: Better support for multiple themes
Improves the developer experience (DX) around local development for brand packages to be able to serve their built CSS files as if they were hosted on a CDN for use in the recently updated Paragon documentation website theme selector that allows users to create custom themes with external CSS URLs.
Brand packages may now run `paragon serve-theme-css --theme-name "Custom Theme Name"` to generate a Paragon documentation website URL with the local CSS files applied.
---------
Co-authored-by: Adam Stankiewicz <agstanki@gmail.com>
* feat: --output-references CLI arg for build-tokens, registers filters, and updates CSS vars format
* Exposes `--output-references` CLI argument for `build-tokens` command. Defaults to `true`. Ensures brand package output with the CLI includes references in build output out-of-the-box.
* Registers filter(s) `isThemeVariant.{'light'}`, handling future theme variants when implemented (e.g., `isThemeVariant.dark`).
* Migrates `createCustomCSSVariables` to use `formattedVariables` to rely on out-of-the-box CSS variable formatting. The formatter still supports token-specific overrides of `outputReferences`. If a token has modifications via `modify`, the modified base reference is not included in the output.
* Updates custom fileHeader implementation, including a relative path to design tokens documentation.
* Fixes bug with line-height tokens, switching their `$type` from `dimension` to `number` to resolve typography style regressions.
* Updates typography tokens related to font size, font weight, and line-height for more consistent naming structure when taking into account mobile.
* Updates `@mobile-type` SCSS mixin to support level-specific customization of mobile typography styles for display 1-4.
* Renames `"description"` field in tokens to `"$description""` per the DTCG format.
* Ensures the "Typography" foundations page properly previews the correct font size for regular "Body" text and includes the missing "HEADING LABEL" example.
* Updates to "Colors" page in docs site:
* Displays token name instead of CSS variable in the color swatch previews (see screenshot below).
* Include `accent-a` and `accent-b` alongside other color names, rather than manually rendering `Swatch` for the accents.
* Modifies the grid styles for color swatch preview to be more responsive.
* Resolves `NaNpx` bug in `MeasuredItem` component on docs site, while computing the measurements to display for an element (e.g., font size). Instead, it renders an empty block while measurements are resolved.
* Updates `CodeBlock` styles on docs site to add its border and background color only to the `LivePreview`, not the entire `CodeBlock` example.
* Reduces whitespace on docs site homepage.
* Simplifies columns on docs site header, ensuring `SiteTitle` is horizontally aligned in the center.
* feat: added migration command to new openedx-paragon npm package
* chore: add default path to the cli
---------
Co-authored-by: Viktor Rusakov <vrusakov66@gmail.com>
Exposes a `paragon` CLI with an `install-theme` command.
Example usage in `package.json`:
```
{
"scripts": {
"start:with-theme": "paragon install-theme && npm start",
"build:with-theme": "paragon install-theme && npm run build"
}
}
```
The Paragon CLI will prompt from which NPM package you wish to install as the `@edx/brand` package (e.g., `@edx/brand-edx.org@latest`), and install it without modifying the `package.json` or `package-lock.json` files.
Additional commands will be added to the `paragon` CLI tool in the future.