From 2fe22006afc8ab40e53df9c188abf3534e68e76e Mon Sep 17 00:00:00 2001 From: rajamatt Date: Thu, 9 May 2024 14:20:53 -0400 Subject: [PATCH] docs: UnoDspImportColors mention MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs: UnoDspImportColors mention chore: use ColorPaletteOverride.json instead chore: comments Co-Authored-By: Xiaotian Gu Co-Authored-By: Steve Bilogan Co-Authored-By: Agnès ZITTE <16295702+agneszitte@users.noreply.github.com> docs: UnoDspImportColors mention doc linter docs: UnoDspImportColor mention --- doc/assets/material-theme-builder-export2.png | Bin 14729 -> 18154 bytes doc/material-dsp.md | 36 +++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/doc/assets/material-theme-builder-export2.png b/doc/assets/material-theme-builder-export2.png index 6f4ea903abc058b1be7d045851b2c0062103913f..cd3742bfbf067966191a855193a8b0b730e2dc4f 100644 GIT binary patch literal 18154 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%0AQV=dD1%pj>DJn8 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 Vn=|`?yQClxIVokyQgOpi{|i2!f`$M9 diff --git a/doc/material-dsp.md b/doc/material-dsp.md index b6b59f048..f0f8ed5fe 100644 --- a/doc/material-dsp.md +++ b/doc/material-dsp.md @@ -32,18 +32,42 @@ This package will be automatically present in the project after [creating a new * The package is already present when you select _Material_ theme during project creation: ![Selection of Material theme when creating a project using the Uno Template Wizard](assets/material-theme-selection-wizard.png) -## Generating a custom color palette and export as DSP file +It is possible to configure the import process. The _UnoDspImportColors_ item found in the _csproj_ file has a number of attributes we can set: + +| Attribute | Description | Default Value | +|----------------|---------------------------------|-------------------------| +| `Include` | Style files to input | | +| `Generator`* | Type of generator to use | `xaml` | +| `OutputPath` | Path to use for the output | Input file directory | + +\* The possible values for Generator are `xaml` and `csharp`. + +```xml + + + +``` + +> [!NOTE] +> The Uno.Sdk will automatically include this configuration for you. Creating a new project with the _CSharpMarkup_ feature will automatically set the generator attribute to _csharp_. It will set the generator to _xaml_ by default. + +## Generating a custom color palette and exporting it as a JSON file 1. Navigate to the [Material Theme Builder](https://m3.material.io/theme-builder#/custom) and select the colors you want to use for your application. -2. Locate the _Export_ button and pick the _material Tokens (DSP)_ format. +2. Locate the _Export_ button and pick the _Material Theme (JSON)_ format. ![Export Button](assets/material-theme-builder-export1.png) ![DSP Selection](assets/material-theme-builder-export2.png) -3. Save the zip file to your computer. -4. Replace the file `ColorPaletteOverride.zip` in the `Styles` folder of your application project with the one you just downloaded. -5. Build your application. The `ColorPaletteOverride.xaml` file will be automatically updated with the colors present in the DSP zip file. +3. Save the file to your computer. +4. Replace the `ColorPaletteOverride.json` file in the `Styles` folder of your application project with the one you just downloaded. +5. Build your application. The `ColorPaletteOverride.xaml` file will be automatically updated with the colors present in the JSON file. ## More flexibility -This will generate the file at each build, potentially overriding any changes you made to the file. If you want to keep it that way, you can simply remove the `ColorPaletteOverride.zip` file from the `Styles` folder, the file won't get overwritten anymore. +This will generate the file at each build, potentially overriding any changes you made to the file. If you want to keep it that way, you can simply remove the `ColorPaletteOverride.json` file from the `Styles` folder, the file won't get overwritten anymore. Alternatively, you can also use the [Uno.Dsp.Cli](https://nuget.org/packages/Uno.Dsp.Cli) package to generate the file from the command line. This will allow you to generate the file only when you want to, and not at each build. + +> [!NOTE] +> Although the **Material Theme Builder Tool** doesn't export **Material Tokens (DSP)** packages anymore, the Uno Figma Plugin still supports this file format. +> To be able to import DSP packages just follow the same steps described previously and save the downloaded DSP zip file as `ColorPaletteOverride.zip` in the `Styles` folder of your application project. +> In that case, make sure to delete the `material-theme.json` file from `Styles` folder before building your application, to avoid conflicts.