From 40a79c2b5dc573ec64633d8d9e67930f93d78c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?andr=C3=A9s=20gonz=C3=A1lez?= Date: Thu, 2 Jul 2026 09:06:44 +0200 Subject: [PATCH] :books: Update user guide for 2.17 release (#10518) --- docs/img/styling/background-blur.webp | Bin 0 -> 34700 bytes .../user-guide/design-systems/design-tokens.njk | 9 +++++++-- docs/user-guide/designing/color-stroke.njk | 3 ++- docs/user-guide/designing/layers.njk | 14 ++++++++++++-- .../prototyping-testing/prototyping.njk | 4 ++++ 5 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 docs/img/styling/background-blur.webp diff --git a/docs/img/styling/background-blur.webp b/docs/img/styling/background-blur.webp new file mode 100644 index 0000000000000000000000000000000000000000..3c7a0859ded882dc676f560f7d9b5927e94da7d3 GIT binary patch literal 34700 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
mFv5avM`fT{uv8Z!6377Es~5PsK&VGx80q1m~R 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 K65k#okN5&%6Y)C$ literal 0 HcmV?d00001 diff --git a/docs/user-guide/design-systems/design-tokens.njk b/docs/user-guide/design-systems/design-tokens.njk index 390959a2ed..53f58cdb99 100644 --- a/docs/user-guide/design-systems/design-tokens.njk +++ b/docs/user-guide/design-systems/design-tokens.njk @@ -31,6 +31,7 @@ desc: Learn how to create, manage and apply Penpot Design Tokens using W3C DTCG
  • Description: You can also choose to add a description to your token.
  • Once you have named the token and assigned it a value, click Save to store the token and start referencing it.

    +

    Token value fields suggest existing tokens as you type. Pick a suggestion to insert a reference, or keep typing a custom value.

    Referencing tokens into values (aliases)

    When assigning a value to a token, you can reference existing tokens - these are called aliases at the DTCG Glossary.

    @@ -111,7 +112,7 @@ desc: Learn how to create, manage and apply Penpot Design Tokens using W3C DTCG

    This ensures the spacing is at least 8, even if the base token is smaller.

    Editing a token

    -

    Tokens can be edited by right-clicking the token and selecting Edit token. This will allow you to change the tokens name, value and description. Once the changes are made, click Save.

    +

    Tokens can be edited by right-clicking the token and selecting Edit token. This will allow you to change the tokens name, value and description. Value fields offer the same token suggestions as when creating a token. Once the changes are made, click Save.

    Tokens edit
    @@ -141,12 +142,15 @@ desc: Learn how to create, manage and apply Penpot Design Tokens using W3C DTCG
  • Size and position: width, height, x, y
  • Rotation and border radius
  • Layout spacing: gaps, paddings, margins, min and max widths and heights
  • -
  • Typography: letter spacing and line height
  • +
  • Typography: letter spacing, line height, and composite typography tokens on text layers
  • Stroke width
  • Shadows: x, y, blur, spread
  • Blur amount
  • Click the token control on a field to open a list of applicable tokens from your active sets and themes. Select a token to apply it; a token pill shows the bound token. Use the pill menu to detach the token when you need a custom value again.

    +

    On text layers, the Typography section shows a composite typography token row when one is applied. Open the token list from the section header to pick or switch tokens without going to the Tokens panel. Hover a token name to see its resolved values (font family, size, weight, and the rest).

    +

    When you multi-select text layers that share typography tokens, the Typography section shows the applied token. If the selection mixes different tokens, detach them from there or apply a new one to the whole selection.

    +

    Typography options in the dropdown list show resolved values on hover, so you can tell styles apart before applying them.

    When a numeric field has a token applied, drag-to-change is disabled for that field. Edit the token or detach it first.

    Token list on a numeric field in the Design sidebar @@ -528,6 +532,7 @@ ExtraBold Italic

    Apply a Typography token

    A Typography composite token can be applied to a full text layer to set all typography properties at once. This lets you manage complete text styles using a single token instead of combining multiple individual ones.

    +

    Apply it from the Tokens panel, or from the Typography section in the Design sidebar when a text layer is selected.

    When applying a Typography composite token to a layer, any previously applied Typography composite token or style will be detached. The same happens in reverse. Only one of them can be active at a time.

    Shadow

    diff --git a/docs/user-guide/designing/color-stroke.njk b/docs/user-guide/designing/color-stroke.njk index d6d227fac3..012b45b264 100644 --- a/docs/user-guide/designing/color-stroke.njk +++ b/docs/user-guide/designing/color-stroke.njk @@ -57,7 +57,7 @@ desc: Style your designs with Penpot's options! Learn about color fills, gradien
  • Color type - Solid, gradient, or image.
  • Sliders - Easily manage settings like brightness, saturation or opacity.
  • Values - Set precise color values. Available formats depend on the selected color model.
  • -
  • Libraries - Switch between recent colors and libraries.
  • +
  • Libraries - Switch between recent colors and libraries. Color tokens in a library can be shown as a grid or a list. Use the list view when you need to scan names or work with long token lists.
  • Color palette - A quick launcher of the palette with the selected library.
  • @@ -116,6 +116,7 @@ desc: Style your designs with Penpot's options! Learn about color fills, gradien
  • Style - solid, dotted, dashed, mixed
  • Visibility - show or hide the stroke without removing it
  • +

    When the style is set to dashed, two extra fields appear to control the dash and gap length in pixels.

    You can add as many strokes as you want to the same layer.

    Multiple strokes diff --git a/docs/user-guide/designing/layers.njk b/docs/user-guide/designing/layers.njk index 474432b66c..2c55a7a7ca 100644 --- a/docs/user-guide/designing/layers.njk +++ b/docs/user-guide/designing/layers.njk @@ -461,8 +461,18 @@ You can choose to edit individual nodes or create new ones. Press Esc

    Blur

    -

    You can set a blur for each and every layer at Penpot.

    -

    Applying a lot and/or big values for blurs can affect Penpot’s performance as it requires a lot from the browser.

    +

    You can add blur effects to layers from the Design sidebar. Penpot supports two types:

    +
      +
    • Layer blur blurs the layer content itself.
    • +
    • Background blur blurs whatever sits behind the layer. Use it for frosted-glass or depth effects. Background blur requires the WebGL renderer to be enabled.
    • +
    +

    Background blur is not included in exported files yet (PNG, SVG, PDF, and others). The exporter still uses the legacy SVG renderer, so the effect only shows in the workspace and View mode. Export support is a current priority and will land in an upcoming release.

    +
    + Colorful shapes behind a frosted panel with background blur applied +
    Background blur affects the layers behind the shape, not the shape itself.
    +
    +

    Click + in the Blur section to add an effect. You can apply both types on the same layer. Use the type selector to switch between them, the eye icon to show or hide an effect without removing it, and the value field to set the blur amount.

    +

    Applying many or large blur values can affect Penpot’s performance, as it requires a lot from the browser.